diff --git a/Assets/Sprites/Props/tree-autumn-leaves-0.ase b/Assets/Sprites/Props/tree-autumn-leaves-0.ase index 84b1a67..3a0cadb 100644 Binary files a/Assets/Sprites/Props/tree-autumn-leaves-0.ase and b/Assets/Sprites/Props/tree-autumn-leaves-0.ase differ diff --git a/Assets/Sprites/Props/tree-autumn-leaves-0.png b/Assets/Sprites/Props/tree-autumn-leaves-0.png index c714bc8..393a3aa 100644 Binary files a/Assets/Sprites/Props/tree-autumn-leaves-0.png and b/Assets/Sprites/Props/tree-autumn-leaves-0.png differ diff --git a/Assets/Sprites/Props/tree-autumn-leaves-1.ase b/Assets/Sprites/Props/tree-autumn-leaves-1.ase index f350817..c4b0ef0 100644 Binary files a/Assets/Sprites/Props/tree-autumn-leaves-1.ase and b/Assets/Sprites/Props/tree-autumn-leaves-1.ase differ diff --git a/Assets/Sprites/Props/tree-autumn-leaves-1.png b/Assets/Sprites/Props/tree-autumn-leaves-1.png index b5e5cce..e0c3d12 100644 Binary files a/Assets/Sprites/Props/tree-autumn-leaves-1.png and b/Assets/Sprites/Props/tree-autumn-leaves-1.png differ diff --git a/Assets/Sprites/Props/tree-autumn-leaves-2.ase b/Assets/Sprites/Props/tree-autumn-leaves-2.ase index c6c630e..d6434e4 100644 Binary files a/Assets/Sprites/Props/tree-autumn-leaves-2.ase and b/Assets/Sprites/Props/tree-autumn-leaves-2.ase differ diff --git a/Assets/Sprites/Props/tree-autumn-leaves-2.png b/Assets/Sprites/Props/tree-autumn-leaves-2.png index 144d9bc..6b5dfb7 100644 Binary files a/Assets/Sprites/Props/tree-autumn-leaves-2.png and b/Assets/Sprites/Props/tree-autumn-leaves-2.png differ diff --git a/Assets/Sprites/Props/tree-autumn-leaves-3.ase b/Assets/Sprites/Props/tree-autumn-leaves-3.ase index d8ce2dd..c816bca 100644 Binary files a/Assets/Sprites/Props/tree-autumn-leaves-3.ase and b/Assets/Sprites/Props/tree-autumn-leaves-3.ase differ diff --git a/Assets/Sprites/Props/tree-autumn-leaves-3.png b/Assets/Sprites/Props/tree-autumn-leaves-3.png index 352f457..22a579f 100644 Binary files a/Assets/Sprites/Props/tree-autumn-leaves-3.png and b/Assets/Sprites/Props/tree-autumn-leaves-3.png differ diff --git a/Assets/Sprites/UI/hotbar-inactive.ase b/Assets/Sprites/UI/hotbar-inactive.ase new file mode 100644 index 0000000..cc58d37 Binary files /dev/null and b/Assets/Sprites/UI/hotbar-inactive.ase differ diff --git a/Assets/Sprites/UI/hotbar-inactive.png b/Assets/Sprites/UI/hotbar-inactive.png new file mode 100644 index 0000000..584cce5 Binary files /dev/null and b/Assets/Sprites/UI/hotbar-inactive.png differ diff --git a/Assets/Sprites/UI/hotbar-inactive.png.import b/Assets/Sprites/UI/hotbar-inactive.png.import new file mode 100644 index 0000000..bf55c24 --- /dev/null +++ b/Assets/Sprites/UI/hotbar-inactive.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b16461tjso0j7" +path="res://.godot/imported/hotbar-inactive.png-6fcc3850a902bef479b03a3199eff195.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/UI/hotbar-inactive.png" +dest_files=["res://.godot/imported/hotbar-inactive.png-6fcc3850a902bef479b03a3199eff195.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Sprites/UI/menu-rect-no-bg-32.ase b/Assets/Sprites/UI/menu-rect-no-bg-32.ase new file mode 100644 index 0000000..5396185 Binary files /dev/null and b/Assets/Sprites/UI/menu-rect-no-bg-32.ase differ diff --git a/Assets/Sprites/UI/menu-rect-no-bg-32.png b/Assets/Sprites/UI/menu-rect-no-bg-32.png new file mode 100644 index 0000000..44d10de Binary files /dev/null and b/Assets/Sprites/UI/menu-rect-no-bg-32.png differ diff --git a/Assets/Sprites/UI/menu-rect-no-bg-32.png.import b/Assets/Sprites/UI/menu-rect-no-bg-32.png.import new file mode 100644 index 0000000..9a5dddf --- /dev/null +++ b/Assets/Sprites/UI/menu-rect-no-bg-32.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bd81g8aivb2ql" +path="res://.godot/imported/menu-rect-no-bg-32.png-abe037c99735f5bb541fe56551407940.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/UI/menu-rect-no-bg-32.png" +dest_files=["res://.godot/imported/menu-rect-no-bg-32.png-abe037c99735f5bb541fe56551407940.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Sprites/UI/menu-rect-no-bg.ase b/Assets/Sprites/UI/menu-rect-no-bg.ase new file mode 100644 index 0000000..26a5cc6 Binary files /dev/null and b/Assets/Sprites/UI/menu-rect-no-bg.ase differ diff --git a/Assets/Sprites/UI/menu-rect-no-bg.png b/Assets/Sprites/UI/menu-rect-no-bg.png new file mode 100644 index 0000000..2d5458c Binary files /dev/null and b/Assets/Sprites/UI/menu-rect-no-bg.png differ diff --git a/Assets/Sprites/UI/menu-rect-no-bg.png.import b/Assets/Sprites/UI/menu-rect-no-bg.png.import new file mode 100644 index 0000000..ba12e58 --- /dev/null +++ b/Assets/Sprites/UI/menu-rect-no-bg.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dvccvnhd8p6oe" +path="res://.godot/imported/menu-rect-no-bg.png-97eadcb3fdb4cea6e754caa7d4b779f4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/UI/menu-rect-no-bg.png" +dest_files=["res://.godot/imported/menu-rect-no-bg.png-97eadcb3fdb4cea6e754caa7d4b779f4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Sprites/sword.ase b/Assets/Sprites/sword.ase index fa3073a..b9a4d94 100644 Binary files a/Assets/Sprites/sword.ase and b/Assets/Sprites/sword.ase differ diff --git a/Assets/Sprites/sword.png b/Assets/Sprites/sword.png index ffc26c8..54c466a 100644 Binary files a/Assets/Sprites/sword.png and b/Assets/Sprites/sword.png differ diff --git a/Characters/Doc.tscn b/Characters/Doc.tscn index ff819bb..55319ae 100644 --- a/Characters/Doc.tscn +++ b/Characters/Doc.tscn @@ -522,16 +522,14 @@ point_count = 3 curve = SubResource("Curve_x3x4q") [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_s1tqp"] +particle_flag_disable_z = true emission_shape = 3 emission_box_extents = Vector3(8, 1, 1) -particle_flag_disable_z = true direction = Vector3(0, -1, 0) spread = 0.0 -gravity = Vector3(0, 0, 0) initial_velocity_min = 32.0 initial_velocity_max = 64.0 -orbit_velocity_min = 0.0 -orbit_velocity_max = 0.0 +gravity = Vector3(0, 0, 0) scale_max = 1.5 scale_curve = SubResource("CurveTexture_ssoms") color_ramp = SubResource("GradientTexture1D_pjeh8") @@ -542,8 +540,6 @@ color_initial_ramp = SubResource("GradientTexture1D_5606i") [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_j1srf"] particle_flag_disable_z = true gravity = Vector3(0, 98, 0) -orbit_velocity_min = 0.0 -orbit_velocity_max = 0.0 [sub_resource type="RectangleShape2D" id="RectangleShape2D_uict5"] size = Vector2(11, 5) @@ -774,9 +770,10 @@ Faction = 2 position = Vector2(0, -3.5) shape = SubResource("RectangleShape2D_8lxmf") -[node name="Inventory" type="Node2D" parent="."] +[node name="Inventory" type="Node2D" parent="." node_paths=PackedStringArray("Items")] y_sort_enabled = true script = ExtResource("8_r8ejq") +Items = [] [node name="DocLance" parent="Inventory" instance=ExtResource("24_2es2r")] unique_name_in_owner = true diff --git a/Characters/Player.cs b/Characters/Player.cs index 0c1a7c9..8bf64cf 100644 --- a/Characters/Player.cs +++ b/Characters/Player.cs @@ -74,6 +74,8 @@ public sealed partial class Player : Character var signal = Events.EventBus.SignalName.PlayerHealthChanged; this.GetEventBus().EmitSignal(signal, args); }; + + Inventory.AddItemToHotbar(Inventory.Items[0]); } public override void _Process(double delta) @@ -224,6 +226,7 @@ public sealed partial class Player : Character switch (inputMethod) { case State.Global.InputMethod.Joystick: + GD.Print(joystick); if (joystick.IsZeroApprox()) { return Direction; diff --git a/Characters/Player.tscn b/Characters/Player.tscn index 1a70a06..fe094cc 100644 --- a/Characters/Player.tscn +++ b/Characters/Player.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=76 format=3 uid="uid://b2254pup8k161"] +[gd_scene load_steps=72 format=3 uid="uid://b2254pup8k161"] [ext_resource type="Script" path="res://Characters/Player.cs" id="1_flygr"] [ext_resource type="Shader" path="res://Shaders/Flash.gdshader" id="2_ngsgt"] @@ -10,7 +10,6 @@ [ext_resource type="Script" path="res://Utils/Values/DoubleValue.cs" id="5_txl0r"] [ext_resource type="Script" path="res://Utils/Values/IntValue.cs" id="6_sunc5"] [ext_resource type="Script" path="res://State/Character/PlayerIdleState.cs" id="6_wkfdm"] -[ext_resource type="PackedScene" uid="uid://dvqap2uhcah63" path="res://Items/Weapons/Sword.tscn" id="7_4rxuv"] [ext_resource type="Script" path="res://State/Character/PlayerMoveState.cs" id="7_dfqd8"] [ext_resource type="Script" path="res://Utils/AnimationManager.cs" id="7_sdgvb"] [ext_resource type="Script" path="res://Items/Inventory.cs" id="7_xyenu"] @@ -29,16 +28,13 @@ [ext_resource type="Script" path="res://BoundingBoxes/InteractionRay.cs" id="13_hs3u1"] [ext_resource type="Script" path="res://State/Character/PlayerHealState.cs" id="13_t103m"] [ext_resource type="Script" path="res://State/Character/PlayerMaxLevelState.cs" id="14_1sn10"] -[ext_resource type="PackedScene" uid="uid://p7oijq6dbvvk" path="res://Items/Weapons/DocLance.tscn" id="14_bj0lo"] [ext_resource type="Texture2D" uid="uid://d1ukste16yq6v" path="res://Assets/Sprites/Particles/player-light.png" id="15_3hahh"] [ext_resource type="Script" path="res://Utils/DamageTime.cs" id="15_4xl06"] [ext_resource type="AudioStream" uid="uid://st8qgqiygy5a" path="res://Assets/Sounds/electricity.wav" id="15_61bua"] [ext_resource type="PackedScene" uid="uid://ce0ph4wk0ylra" path="res://UI/TargetTracer.tscn" id="22_hxi53"] -[ext_resource type="PackedScene" uid="uid://5y1acxl4j4n7" path="res://Items/Weapons/Pugio.tscn" id="22_mqpn7"] -[ext_resource type="PackedScene" uid="uid://d1d4vg7we5rjr" path="res://Items/Weapons/Shotgun.tscn" id="22_rmciq"] [ext_resource type="Texture2D" uid="uid://bd8l8kafb42dt" path="res://Assets/Sprites/Particles/circle.png" id="22_uefct"] [ext_resource type="Texture2D" uid="uid://bcgm3r168qjn3" path="res://Assets/Sprites/Particles/cast-effect.png" id="24_njn4h"] -[ext_resource type="PackedScene" uid="uid://cgg0sfm2qeiwn" path="res://Items/Weapons/Bow.tscn" id="29_7j1fs"] +[ext_resource type="Resource" uid="uid://cl7jvdu2lnv2d" path="res://Items/Weapons/Sword.tres" id="31_vr68e"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_h78y7"] shader = ExtResource("2_ngsgt") @@ -566,7 +562,7 @@ color_ramp = SubResource("GradientTexture1D_3jlnh") light_mode = 1 [sub_resource type="RectangleShape2D" id="RectangleShape2D_bfqew"] -size = Vector2(12, 4) +size = Vector2(12, 6) [sub_resource type="LabelSettings" id="LabelSettings_q5h1n"] font_size = 24 @@ -601,11 +597,9 @@ script = ExtResource("4_06oya") [node name="XP" type="Node" parent="Stats"] script = ExtResource("5_txl0r") -Value = null [node name="Level" type="Node" parent="Stats"] script = ExtResource("6_sunc5") -Value = null [node name="StateMachine" type="Node" parent="." node_paths=PackedStringArray("InitialState", "Character")] script = ExtResource("5_rgckv") @@ -623,7 +617,7 @@ Character = NodePath("../..") [node name="Move" type="Node" parent="StateMachine" node_paths=PackedStringArray("AbilityState", "IdleState", "MaxLevelState", "Character")] script = ExtResource("7_dfqd8") -AbilityState = NodePath("../Roll") +AbilityState = NodePath("../Dash") IdleState = NodePath("../Idle") MaxLevelState = NodePath("../MaxLevel") Character = NodePath("../..") @@ -802,6 +796,7 @@ offset = Vector2(-9.5, -14) hframes = 6 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(0, -1) shape = SubResource("RectangleShape2D_bfqew") [node name="Debug" type="Control" parent="."] @@ -819,32 +814,18 @@ text = "lol" label_settings = SubResource("LabelSettings_q5h1n") horizontal_alignment = 1 -[node name="Inventory" type="Node2D" parent="." node_paths=PackedStringArray("Items")] +[node name="Inventory" type="Node2D" parent="." node_paths=PackedStringArray("Hotbar")] y_sort_enabled = true position = Vector2(0, -2) script = ExtResource("7_xyenu") -Items = [] +Hotbar = [] +Items = [ExtResource("31_vr68e")] InventoryMap = { "equip_1": 0, "equip_2": 1, "equip_3": 2 } -[node name="DocLance" parent="Inventory" instance=ExtResource("14_bj0lo")] -visible = false - -[node name="Node2D" parent="Inventory" instance=ExtResource("7_4rxuv")] -visible = false - -[node name="Bow" parent="Inventory" instance=ExtResource("29_7j1fs")] -visible = false - -[node name="Sword" parent="Inventory" instance=ExtResource("22_mqpn7")] -visible = false - -[node name="Shotgun" parent="Inventory" instance=ExtResource("22_rmciq")] -visible = false - [node name="RemoteTransform2D2" type="RemoteTransform2D" parent="Inventory"] position = Vector2(0, 4) diff --git a/Events/EventBus.cs b/Events/EventBus.cs index 24835a2..fe2e150 100644 --- a/Events/EventBus.cs +++ b/Events/EventBus.cs @@ -27,6 +27,9 @@ public partial class EventBus : Node [Signal] public delegate void PlayerLevelChangedEventHandler(int level); + [Signal] + public delegate void PlayerInventoryUpdateEventHandler(Items.Inventory inventory); + [Signal] public delegate void PlayerHealthChangedEventHandler(HealthChangedArgs args); diff --git a/Items/Inventory.cs b/Items/Inventory.cs index eb8c84d..305afbd 100644 --- a/Items/Inventory.cs +++ b/Items/Inventory.cs @@ -9,7 +9,10 @@ public partial class Inventory : Node2D public Character Character { get; private set; } [Export] - public Array Items { get; private set; } + public Array Hotbar { get; private set; } + + [Export] + public Array Items { get; private set; } [Export] public Dictionary InventoryMap { get; set; } @@ -17,7 +20,7 @@ public partial class Inventory : Node2D [Signal] public delegate void UsedItemEventHandler(Item item); - public const int MaxCapacity = 32; + public const int MaxCapacity = 3; private Item _selectedItem; @@ -53,12 +56,18 @@ public partial class Inventory : Node2D public override void _Ready() { - if (Items is null) + if (Hotbar is null) { // instantiating a new array will prevent characters from // sharing inventories - Items = new Array(); + Hotbar = new(); } + + if (Items is null) + { + Items = new(); + } + Character = GetParent(); foreach (Node child in GetChildren()) { @@ -67,14 +76,17 @@ public partial class Inventory : Node2D AddItem(item); } } + + Events.EventBus.Instance.EmitSignal( + Events.EventBus.SignalName.PlayerInventoryUpdate, this); base._Ready(); } public bool EquipIndex(int index) { - if (index < Items.Count) + if (index < Hotbar.Count) { - return EquipItem(Items[index], ref _selectedItem); + return EquipItem(Hotbar[index], ref _selectedItem); } return EquipItem(null, ref _selectedItem); @@ -84,7 +96,7 @@ public partial class Inventory : Node2D { if (item is not null) { - if (!Items.Contains(item)) + if (!Hotbar.Contains(item)) { GD.PrintErr("Tried to equip an item not in the inventory."); return false; @@ -103,6 +115,9 @@ public partial class Inventory : Node2D item.Equip(Character); } + Events.EventBus.Instance.EmitSignal( + Events.EventBus.SignalName.PlayerInventoryUpdate, this); + return true; } @@ -111,27 +126,36 @@ public partial class Inventory : Node2D if (InventoryMap.ContainsKey(keymap)) { int idx = InventoryMap[keymap]; - if (idx < Items.Count) + if (idx < Hotbar.Count) { - return Items[InventoryMap[keymap]]; + return Hotbar[InventoryMap[keymap]]; } } else GD.Print(keymap + " does not exist"); return null; } + public Item AddItemToHotbar(ItemMetadata metadata) + { + var item = metadata.Instance.Instantiate(); + AddItem(item); + AddChild(item); + GD.Print("Added " + item.Metadata.Name); + return item; + } + public Item AddItem(Item item) { - if (Items.Count >= MaxCapacity) + if (Hotbar.Count >= MaxCapacity) { return null; } item.CharacterOwner = Character; item.Visible = false; - if (!Items.Contains(item)) + if (!Hotbar.Contains(item)) { - Items.Add(item); + Hotbar.Add(item); } return item; } diff --git a/Items/ItemMetadata.cs b/Items/ItemMetadata.cs index 4308e8e..ef2adad 100644 --- a/Items/ItemMetadata.cs +++ b/Items/ItemMetadata.cs @@ -8,6 +8,9 @@ public partial class ItemMetadata : Resource [Export] public Utils.ScenePath Instance { get; set; } + [Export] + public Texture2D Icon { get; set; } + [Export] public string Name { get; set; } diff --git a/Items/Weapons/Sword.tres b/Items/Weapons/Sword.tres index 406e7ec..93e5f88 100644 --- a/Items/Weapons/Sword.tres +++ b/Items/Weapons/Sword.tres @@ -1,5 +1,6 @@ -[gd_resource type="Resource" script_class="ItemMetadata" load_steps=4 format=3 uid="uid://cl7jvdu2lnv2d"] +[gd_resource type="Resource" script_class="ItemMetadata" load_steps=5 format=3 uid="uid://cl7jvdu2lnv2d"] +[ext_resource type="Texture2D" uid="uid://dfpe74vxvuwal" path="res://Assets/Sprites/Items/pugio.png" id="1_j0i86"] [ext_resource type="Script" path="res://Utils/ScenePath.cs" id="1_mh5y8"] [ext_resource type="Script" path="res://Items/ItemMetadata.cs" id="2_asbkr"] @@ -10,5 +11,6 @@ Path = "res://Items/Weapons/Sword.tscn" [resource] script = ExtResource("2_asbkr") Instance = SubResource("Resource_qqiwa") -Name = "Sword" -Description = "A basic sword." +Icon = ExtResource("1_j0i86") +Name = "The Fool's Sword" +Description = "" diff --git a/Items/Weapons/Sword.tscn b/Items/Weapons/Sword.tscn index 11b79cb..a0a541e 100644 --- a/Items/Weapons/Sword.tscn +++ b/Items/Weapons/Sword.tscn @@ -1,8 +1,7 @@ -[gd_scene load_steps=29 format=3 uid="uid://dvqap2uhcah63"] +[gd_scene load_steps=26 format=3 uid="uid://dvqap2uhcah63"] [ext_resource type="Script" path="res://Items/Weapons/Sword.cs" id="1_mlo73"] -[ext_resource type="Script" path="res://Utils/ScenePath.cs" id="2_g8hkw"] -[ext_resource type="Script" path="res://Items/ItemMetadata.cs" id="2_gy7e7"] +[ext_resource type="Resource" uid="uid://cl7jvdu2lnv2d" path="res://Items/Weapons/Sword.tres" id="2_atd4f"] [ext_resource type="Script" path="res://State/Weapon/WeaponStateMachine.cs" id="2_vwirq"] [ext_resource type="Script" path="res://State/Weapon/SwordIdleState.cs" id="3_nw6r0"] [ext_resource type="Texture2D" uid="uid://dp7osg05ip5oo" path="res://Assets/Sprites/sword.png" id="3_r75ni"] @@ -17,16 +16,6 @@ [ext_resource type="Texture2D" uid="uid://cmvh6pc71ir1m" path="res://Assets/Sprites/sword-swing-large.png" id="10_672jv"] [ext_resource type="AudioStream" uid="uid://qvthq6tppp63" path="res://Assets/Sounds/whoosh.wav" id="10_mfnl7"] -[sub_resource type="Resource" id="Resource_qqiwa"] -script = ExtResource("2_g8hkw") -Path = "res://Items/Weapons/Sword.tscn" - -[sub_resource type="Resource" id="Resource_advps"] -script = ExtResource("2_gy7e7") -Instance = SubResource("Resource_qqiwa") -Name = "The Fool's Sword" -Description = "The Top Right's Sword" - [sub_resource type="Environment" id="Environment_72txp"] background_mode = 3 glow_enabled = true @@ -332,7 +321,7 @@ Knockback = 64.0 ShouldHideIdle = true PlayerLevelGain = 1.0 HandAnchor = NodePath("Anchor/Node2D/Sprite2D/Hand") -Metadata = SubResource("Resource_advps") +Metadata = ExtResource("2_atd4f") [node name="State" type="Node" parent="." node_paths=PackedStringArray("InitialState")] script = ExtResource("2_vwirq") @@ -382,7 +371,7 @@ position = Vector2(-2.52724e-05, 7) rotation = 1.5708 [node name="ParryParticles" type="GPUParticles2D" parent="Anchor/Node2D/Sprite2D"] -modulate = Color(1.2, 1.2, 1.2, 1) +modulate = Color(4, 4, 4, 1) position = Vector2(0, -3) rotation = 0.785398 emitting = false diff --git a/Scenes/Maps/ForestNew.tscn b/Scenes/Maps/ForestNew.tscn index eb11d80..74a9176 100644 --- a/Scenes/Maps/ForestNew.tscn +++ b/Scenes/Maps/ForestNew.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=21 format=3 uid="uid://cumi1cbg6xfdd"] +[gd_scene load_steps=22 format=3 uid="uid://cumi1cbg6xfdd"] [ext_resource type="PackedScene" uid="uid://clwv2owvk6abe" path="res://Scenes/BaseMap.tscn" id="1_oy3cp"] [ext_resource type="Texture2D" uid="uid://c70cn53osy56w" path="res://Assets/Sprites/dev-tileset.png" id="2_2gdry"] @@ -9,6 +9,7 @@ [ext_resource type="Texture2D" uid="uid://puckmeudo5c0" path="res://Assets/Sprites/Props/tree-bare-1.png" id="6_fb6dk"] [ext_resource type="Texture2D" uid="uid://byntc6llmuusb" path="res://Assets/Sprites/Props/tree-autumn-leaves-0.png" id="7_7yyym"] [ext_resource type="Texture2D" uid="uid://chwwo6vmf8iri" path="res://Assets/Sprites/Props/tree-autumn-leaves-2.png" id="8_4laic"] +[ext_resource type="Texture2D" uid="uid://dhf2f5a1ty502" path="res://Assets/Sprites/Props/tree-autumn-leaves-1.png" id="8_hyhpu"] [ext_resource type="Texture2D" uid="uid://crvbsxrda5gcj" path="res://Assets/Sprites/Props/tree-autumn-leaves-3.png" id="9_exvkw"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_s1h2f"] @@ -436,7 +437,7 @@ sources/3 = SubResource("TileSetAtlasSource_w8vpx") sources/1 = SubResource("TileSetAtlasSource_tw0o1") [sub_resource type="RectangleShape2D" id="RectangleShape2D_0ifx7"] -size = Vector2(272, 112) +size = Vector2(272, 102) [sub_resource type="RectangleShape2D" id="RectangleShape2D_x6mjw"] size = Vector2(96, 144) @@ -468,26 +469,32 @@ agent_radius = 8.0 [node name="TileMap" groups=["navigation"] instance=ExtResource("1_oy3cp")] tile_set = SubResource("TileSet_q7vkh") layer_0/tile_data = PackedInt32Array(-589794, 131072, 4, -524258, 131072, 4, -458722, 131072, 4, -393186, 131072, 4, -655330, 131072, 4, -524270, 65536, 3, -524269, 65536, 3, -524268, 65536, 3, -524267, 65536, 3, -524266, 65536, 3, -524265, 262144, 4, -589801, 0, 4, -655337, 0, 4, -720873, 0, 3, -720866, 131072, 3, -720872, 65536, 3, -720869, 65536, 3, -720868, 65536, 3, -720867, 65536, 3, -458734, 65536, 4, -458733, 65536, 4, -458732, 65536, 4, -458731, 65536, 4, -458730, 65536, 4, -458729, 65536, 4, -655336, 65536, 4, -655333, 65536, 4, -655332, 65536, 4, -655331, 65536, 4, -196590, 65536, 3, -196589, 65536, 3, -196588, 65536, 3, -196587, 65536, 3, -196586, 65536, 3, -131050, 0, 3, -65514, 0, 4, 22, 0, 4, -196585, 65536, 3, -131049, 65536, 3, -196584, 65536, 3, -131048, 65536, 3, -196583, 65536, 3, -131047, 262144, 4, -196580, 65536, 3, -131044, 196608, 4, -196579, 65536, 3, -131043, 65536, 3, -262114, 131072, 4, -196578, 131072, 4, -131042, 65536, 3, -65505, 131072, 4, 31, 131072, 4, 65558, 0, 4, -65513, 65536, 4, 65559, 65536, 3, -65512, 65536, 4, 65560, 65536, 3, -65511, 65536, 4, 65561, 65536, 3, -65508, 65536, 4, 65564, 65536, 3, -65507, 65536, 4, 65565, 65536, 3, -65506, 65536, 4, 65566, 65536, 3, 65567, 131072, 4, -131041, 131072, 3, -327650, 131072, 4) -layer_3/tile_data = PackedInt32Array(-917533, 0, 1, -851997, 0, 1, -786461, 0, 1, -720925, 0, 1, -655389, 0, 1, -917532, 0, 1, -851996, 0, 1, -786460, 0, 1, -720924, 0, 1, -655388, 0, 1, -917531, 0, 1, -851995, 0, 1, -786459, 0, 1, -720923, 0, 1, -655387, 0, 1, -917530, 0, 1, -851994, 0, 1, -786458, 0, 1, -720922, 0, 1, -655386, 0, 1, -917529, 0, 1, -851993, 0, 1, -786457, 0, 1, -720921, 0, 1, -655385, 0, 1, -917528, 0, 1, -851992, 0, 1, -786456, 0, 1, -720920, 0, 1, -655384, 0, 1, -917527, 0, 1, -851991, 0, 1, -786455, 0, 1, -720919, 0, 1, -655383, 0, 1, -917526, 0, 1, -851990, 0, 1, -786454, 0, 1, -720918, 0, 1, -655382, 0, 1, -917525, 0, 1, -851989, 0, 1, -786453, 0, 1, -720917, 0, 1, -655381, 0, 1, -1310740, 0, 1, -1245204, 0, 1, -1179668, 0, 1, -1114132, 0, 1, -1048596, 0, 1, -983060, 0, 1, -917524, 0, 1, -851988, 0, 1, -786452, 0, 1, -720916, 0, 1, -655380, 0, 1, -589844, 0, 1, -524308, 0, 1, -458772, 0, 1, -393236, 0, 1, -327700, 0, 1, -262164, 0, 1, -1310739, 0, 1, -1245203, 0, 1, -1179667, 0, 1, -1114131, 0, 1, -1048595, 0, 1, -983059, 0, 1, -917523, 0, 1, -851987, 0, 1, -786451, 0, 1, -720915, 0, 1, -655379, 0, 1, -589843, 0, 1, -524307, 0, 1, -458771, 0, 1, -393235, 0, 1, -327699, 0, 1, -1310738, 0, 1, -1245202, 0, 1, -1179666, 0, 1, -1114130, 0, 1, -1048594, 0, 1, -983058, 0, 1, -917522, 0, 1, -851986, 0, 1, -786450, 0, 1, -720914, 0, 1, -655378, 0, 1, -589842, 0, 1, -524306, 0, 1, -458770, 0, 1, -393234, 0, 1, -327698, 0, 1, -1310737, 0, 1, -1245201, 0, 1, -1179665, 0, 1, -1114129, 0, 1, -1048593, 0, 1, -983057, 0, 1, -917521, 0, 1, -851985, 0, 1, -786449, 0, 1, -720913, 0, 1, -655377, 0, 1, -589841, 0, 1, -524305, 0, 1, -458769, 0, 1, -393233, 0, 1, -327697, 0, 1, -1310736, 0, 1, -1245200, 0, 1, -1179664, 0, 1, -1114128, 0, 1, -1048592, 0, 1, -983056, 0, 1, -917520, 0, 1, -851984, 0, 1, -786448, 0, 1, -720912, 0, 1, -655376, 0, 1, -589840, 0, 1, -393232, 0, 1, -327696, 0, 1, -1310735, 0, 1, -1245199, 0, 1, -1179663, 0, 1, -1114127, 0, 1, -1048591, 0, 1, -983055, 0, 1, -917519, 0, 1, -851983, 0, 1, -786447, 0, 1, -720911, 0, 1, -655375, 0, 1, -589839, 0, 1, -393231, 0, 1, -327695, 0, 1, -1310734, 0, 1, -1245198, 0, 1, -1179662, 0, 1, -1114126, 0, 1, -1048590, 0, 1, -983054, 0, 1, -917518, 0, 1, -851982, 0, 1, -786446, 0, 1, -720910, 0, 1, -655374, 0, 1, -589838, 0, 1, -393230, 0, 1, -327694, 0, 1, -1310733, 0, 1, -1245197, 0, 1, -1179661, 0, 1, -1114125, 0, 1, -1048589, 0, 1, -983053, 0, 1, -917517, 0, 1, -851981, 0, 1, -786445, 0, 1, -720909, 0, 1, -655373, 0, 1, -589837, 0, 1, -393229, 0, 1, -327693, 0, 1, -1310732, 0, 1, -1245196, 0, 1, -1179660, 0, 1, -1114124, 0, 1, -1048588, 0, 1, -983052, 0, 1, -917516, 0, 1, -851980, 0, 1, -786444, 0, 1, -720908, 0, 1, -393228, 0, 1, -327692, 0, 1, -1310731, 0, 1, -1245195, 0, 1, -1179659, 0, 1, -1114123, 0, 1, -1048587, 0, 1, -983051, 0, 1, -917515, 0, 1, -851979, 0, 1, -786443, 0, 1, -720907, 0, 1, -655371, 0, 1, -327691, 0, 1, -1310730, 0, 1, -1245194, 0, 1, -1179658, 0, 1, -1114122, 0, 1, -1048586, 0, 1, -983050, 0, 1, -917514, 0, 1, -851978, 0, 1, -786442, 0, 1, -720906, 0, 1, -655370, 0, 1, -1179650, 0, 1, -1114114, 0, 1, -1048578, 0, 1, -983042, 0, 1, -1310721, 0, 1, -1245185, 0, 1, -1179649, 0, 1, -1114113, 0, 1, -1048577, 0, 1, -983041, 0, 1, -1507328, 0, 1, -1441792, 0, 1, -1376256, 0, 1, -1310720, 0, 1, -1245184, 0, 1, -1179648, 0, 1, -1114112, 0, 1, -1048576, 0, 1, -1638399, 0, 1, -1572863, 0, 1, -1507327, 0, 1, -1441791, 0, 1, -1376255, 0, 1, -1310719, 0, 1, -1245183, 0, 1, -1179647, 0, 1, -1114111, 0, 1, -1048575, 0, 1, -1769470, 0, 1, -1703934, 0, 1, -1638398, 0, 1, -1572862, 0, 1, -1507326, 0, 1, -1441790, 0, 1, -1376254, 0, 1, -1310718, 0, 1, -1245182, 0, 1, -1179646, 0, 1, -1114110, 0, 1, -1048574, 0, 1, -1900541, 0, 1, -1835005, 0, 1, -1769469, 0, 1, -1703933, 0, 1, -1638397, 0, 1, -1572861, 0, 1, -1507325, 0, 1, -1441789, 0, 1, -1376253, 0, 1, -1310717, 0, 1, -1245181, 0, 1, -1179645, 0, 1, -1114109, 0, 1, -1048573, 0, 1, -2031612, 0, 1, -1966076, 0, 1, -1900540, 0, 1, -1835004, 0, 1, -1769468, 0, 1, -1703932, 0, 1, -1638396, 0, 1, -1572860, 0, 1, -1507324, 0, 1, -1441788, 0, 1, -1376252, 0, 1, -1310716, 0, 1, -1245180, 0, 1, -1179644, 0, 1, -1114108, 0, 1, -1048572, 0, 1, -2162683, 0, 1, -2097147, 0, 1, -2031611, 0, 1, -1966075, 0, 1, -1900539, 0, 1, -1835003, 0, 1, -1769467, 0, 1, -1703931, 0, 1, -1638395, 0, 1, -1572859, 0, 1, -1507323, 0, 1, -1441787, 0, 1, -1376251, 0, 1, -1310715, 0, 1, -1245179, 0, 1, -1179643, 0, 1, -1114107, 0, 1, -1048571, 0, 1, -2293754, 0, 1, -2228218, 0, 1, -2162682, 0, 1, -2097146, 0, 1, -2031610, 0, 1, -1966074, 0, 1, -1900538, 0, 1, -1835002, 0, 1, -1769466, 0, 1, -1703930, 0, 1, -1638394, 0, 1, -1572858, 0, 1, -1507322, 0, 1, -1441786, 0, 1, -1376250, 0, 1, -1310714, 0, 1, -1245178, 0, 1, -1179642, 0, 1, -1114106, 0, 1, -1048570, 0, 1, -2293753, 0, 1, -2228217, 0, 1, -2162681, 0, 1, -2097145, 0, 1, -2031609, 0, 1, -1966073, 0, 1, -1900537, 0, 1, -1835001, 0, 1, -1769465, 0, 1, -1703929, 0, 1, -1638393, 0, 1, -1572857, 0, 1, -1507321, 0, 1, -1441785, 0, 1, -1376249, 0, 1, -1310713, 0, 1, -1245177, 0, 1, -1179641, 0, 1, -1114105, 0, 1, -1048569, 0, 1, -2293752, 0, 1, -2228216, 0, 1, -2162680, 0, 1, -2097144, 0, 1, -2031608, 0, 1, -1966072, 0, 1, -1900536, 0, 1, -1835000, 0, 1, -1769464, 0, 1, -1703928, 0, 1, -1638392, 0, 1, -1572856, 0, 1, -1507320, 0, 1, -1441784, 0, 1, -1376248, 0, 1, -1310712, 0, 1, -1245176, 0, 1, -1179640, 0, 1, -1114104, 0, 1, -1048568, 0, 1, -2293751, 0, 1, -2228215, 0, 1, -2162679, 0, 1, -2097143, 0, 1, -2031607, 0, 1, -1966071, 0, 1, -1900535, 0, 1, -1834999, 0, 1, -1769463, 0, 1, -1703927, 0, 1, -1638391, 0, 1, -1572855, 0, 1, -1507319, 0, 1, -1441783, 0, 1, -1376247, 0, 1, -1310711, 0, 1, -1245175, 0, 1, -1179639, 0, 1, -1114103, 0, 1, -1048567, 0, 1, -2293750, 0, 1, -2228214, 0, 1, -2162678, 0, 1, -2097142, 0, 1, -2031606, 0, 1, -1966070, 0, 1, -1900534, 0, 1, -1834998, 0, 1, -1769462, 0, 1, -1703926, 0, 1, -1638390, 0, 1, -1572854, 0, 1, -1507318, 0, 1, -1441782, 0, 1, -1376246, 0, 1, -1310710, 0, 1, -1245174, 0, 1, -1179638, 0, 1, -1114102, 0, 1, -1048566, 0, 1, -2293749, 0, 1, -2228213, 0, 1, -2162677, 0, 1, -2097141, 0, 1, -2031605, 0, 1, -1966069, 0, 1, -1900533, 0, 1, -1834997, 0, 1, -1769461, 0, 1, -1703925, 0, 1, -1638389, 0, 1, -1572853, 0, 1, -1507317, 0, 1, -1441781, 0, 1, -1376245, 0, 1, -1310709, 0, 1, -1245173, 0, 1, -1179637, 0, 1, -1114101, 0, 1, -1048565, 0, 1, -2293748, 0, 1, -2228212, 0, 1, -2162676, 0, 1, -2097140, 0, 1, -2031604, 0, 1, -1966068, 0, 1, -1900532, 0, 1, -1834996, 0, 1, -1769460, 0, 1, -1703924, 0, 1, -1638388, 0, 1, -1572852, 0, 1, -1507316, 0, 1, -1441780, 0, 1, -1376244, 0, 1, -1310708, 0, 1, -1245172, 0, 1, -1179636, 0, 1, -1114100, 0, 1, -1048564, 0, 1, -2293747, 0, 1, -2228211, 0, 1, -2162675, 0, 1, -2097139, 0, 1, -2031603, 0, 1, -1966067, 0, 1, -1900531, 0, 1, -1834995, 0, 1, -1769459, 0, 1, -1703923, 0, 1, -1638387, 0, 1, -1572851, 0, 1, -1507315, 0, 1, -1441779, 0, 1, -1376243, 0, 1, -1310707, 0, 1, -1245171, 0, 1, -1179635, 0, 1, -1114099, 0, 1, -1048563, 0, 1, -2293746, 0, 1, -2228210, 0, 1, -2162674, 0, 1, -2097138, 0, 1, -2031602, 0, 1, -1966066, 0, 1, -1900530, 0, 1, -1834994, 0, 1, -1769458, 0, 1, -1703922, 0, 1, -1638386, 0, 1, -1572850, 0, 1, -1507314, 0, 1, -1441778, 0, 1, -1376242, 0, 1, -1310706, 0, 1, -1245170, 0, 1, -1179634, 0, 1, -1114098, 0, 1, -1048562, 0, 1, -2293745, 0, 1, -2228209, 0, 1, -2162673, 0, 1, -2097137, 0, 1, -2031601, 0, 1, -1966065, 0, 1, -1900529, 0, 1, -1834993, 0, 1, -1769457, 0, 1, -1703921, 0, 1, -1638385, 0, 1, -1572849, 0, 1, -1507313, 0, 1, -1441777, 0, 1, -1376241, 0, 1, -1310705, 0, 1, -1245169, 0, 1, -1179633, 0, 1, -1114097, 0, 1, -1048561, 0, 1, -2293744, 0, 1, -2228208, 0, 1, -2162672, 0, 1, -2097136, 0, 1, -2031600, 0, 1, -1966064, 0, 1, -1900528, 0, 1, -1834992, 0, 1, -1769456, 0, 1, -1703920, 0, 1, -1638384, 0, 1, -1572848, 0, 1, -1507312, 0, 1, -1441776, 0, 1, -1376240, 0, 1, -1310704, 0, 1, -1245168, 0, 1, -1179632, 0, 1, -1114096, 0, 1, -1048560, 0, 1, -2293743, 0, 1, -2228207, 0, 1, -2162671, 0, 1, -2097135, 0, 1, -2031599, 0, 1, -1966063, 0, 1, -1900527, 0, 1, -1834991, 0, 1, -1769455, 0, 1, -1703919, 0, 1, -1638383, 0, 1, -1572847, 0, 1, -1507311, 0, 1, -1441775, 0, 1, -1376239, 0, 1, -1310703, 0, 1, -1245167, 0, 1, -1179631, 0, 1, -1114095, 0, 1, -1048559, 0, 1, -2293742, 0, 1, -2228206, 0, 1, -2162670, 0, 1, -2097134, 0, 1, -2031598, 0, 1, -1966062, 0, 1, -1900526, 0, 1, -1834990, 0, 1, -1769454, 0, 1, -1703918, 0, 1, -1638382, 0, 1, -1572846, 0, 1, -1507310, 0, 1, -1441774, 0, 1, -1376238, 0, 1, -1310702, 0, 1, -1245166, 0, 1, -1179630, 0, 1, -1114094, 0, 1, -1048558, 0, 1, -983022, 0, 1, -917486, 0, 1, -851950, 0, 1, -786414, 0, 1, -720878, 0, 1, -655342, 0, 1, -589806, 0, 1, -524270, 0, 1, -2293741, 0, 1, -2228205, 0, 1, -2162669, 0, 1, -2097133, 0, 1, -2031597, 0, 1, -1966061, 0, 1, -1900525, 0, 1, -1834989, 0, 1, -1769453, 0, 1, -1703917, 0, 1, -1638381, 0, 1, -1572845, 0, 1, -1507309, 0, 1, -1441773, 0, 1, -1376237, 0, 1, -1310701, 0, 1, -1245165, 0, 1, -1179629, 0, 1, -1114093, 0, 1, -1048557, 0, 1, -983021, 0, 1, -917485, 0, 1, -851949, 0, 1, -786413, 0, 1, -720877, 0, 1, -655341, 0, 1, -589805, 0, 1, -524269, 0, 1, -2293740, 0, 1, -2228204, 0, 1, -2162668, 0, 1, -2097132, 0, 1, -2031596, 0, 1, -1966060, 0, 1, -1900524, 0, 1, -1834988, 0, 1, -1769452, 0, 1, -1703916, 0, 1, -1638380, 0, 1, -1572844, 0, 1, -1507308, 0, 1, -1441772, 0, 1, -1376236, 0, 1, -1310700, 0, 1, -1245164, 0, 1, -1179628, 0, 1, -1114092, 0, 1, -1048556, 0, 1, -983020, 0, 1, -917484, 0, 1, -851948, 0, 1, -786412, 0, 1, -720876, 0, 1, -655340, 0, 1, -589804, 0, 1, -524268, 0, 1, -2293739, 0, 1, -2228203, 0, 1, -2162667, 0, 1, -2097131, 0, 1, -2031595, 0, 1, -1966059, 0, 1, -1900523, 0, 1, -1834987, 0, 1, -1769451, 0, 1, -1703915, 0, 1, -1638379, 0, 1, -1572843, 0, 1, -1507307, 0, 1, -1441771, 0, 1, -1376235, 0, 1, -1310699, 0, 1, -1245163, 0, 1, -1179627, 0, 1, -1114091, 0, 1, -1048555, 0, 1, -983019, 0, 1, -917483, 0, 1, -851947, 0, 1, -786411, 0, 1, -720875, 0, 1, -655339, 0, 1, -589803, 0, 1, -524267, 0, 1, -2293738, 0, 1, -2228202, 0, 1, -2162666, 0, 1, -2097130, 0, 1, -2031594, 0, 1, -1966058, 0, 1, -1900522, 0, 1, -1834986, 0, 1, -1769450, 0, 1, -1703914, 0, 1, -1638378, 0, 1, -1572842, 0, 1, -1507306, 0, 1, -1441770, 0, 1, -1376234, 0, 1, -1310698, 0, 1, -1245162, 0, 1, -1179626, 0, 1, -1114090, 0, 1, -1048554, 0, 1, -983018, 0, 1, -917482, 0, 1, -851946, 0, 1, -786410, 0, 1, -720874, 0, 1, -655338, 0, 1, -589802, 0, 1, -524266, 0, 1, -2293737, 0, 1, -2228201, 0, 1, -2162665, 0, 1, -2097129, 0, 1, -2031593, 0, 1, -1966057, 0, 1, -1900521, 0, 1, -1834985, 0, 1, -1769449, 0, 1, -1703913, 0, 1, -1638377, 0, 1, -1572841, 0, 1, -1507305, 0, 1, -1441769, 0, 1, -1376233, 0, 1, -1310697, 0, 1, -1245161, 0, 1, -1179625, 0, 1, -1114089, 0, 1, -1048553, 0, 1, -983017, 0, 1, -917481, 0, 1, -851945, 0, 1, -786409, 0, 1, -720873, 0, 1, -655337, 0, 1, -589801, 0, 1, -524265, 0, 1, -393199, 3, 6, -327663, 3, 6, -262127, 3, 6, -196591, 3, 6, -65539, 3, 5, -3, 3, 6, 65533, 3, 7, -65538, 65539, 5, -2, 65539, 6, 65534, 65539, 7, -65537, 131075, 5, -1, 131075, 6, 65535, 131075, 7, -131054, 0, 1, -65518, 0, 1, 18, 0, 1, 19, 0, 1, -65517, 0, 1, -131053, 0, 1, 65555, 0, 1, 131091, 0, 1, 131090, 0, 1, 65554, 0, 1, 20, 0, 1, -65516, 0, 1, -65515, 0, 1, -131051, 0, 1, -131052, 0, 1, -131050, 0, 1, -65514, 0, 1, 131094, 0, 1, 196630, 0, 1, 196629, 0, 1, 131093, 0, 1, 65557, 0, 1, 21, 0, 1, 131092, 0, 1, 65556, 0, 1, 196628, 0, 1, 262164, 0, 1, 196627, 0, 1, 262163, 0, 1, 196626, 0, 1, 262162, 0, 1, 262161, 0, 1, 196625, 0, 1, 262165, 0, 1, 327700, 0, 1, 327699, 0, 1, 327698, 0, 1, 262160, 0, 1, 196624, 0, 1, 196623, 0, 1, 196622, 0, 1, 262158, 0, 1, 262157, 0, 1, 262156, 0, 1, 196621, 0, 1, 262127, 0, 1, 327663, 0, 1, 393199, 0, 1, 262128, 0, 1, 327664, 0, 1, 393200, 0, 1, 262129, 0, 1, 327665, 0, 1, 393201, 0, 1, 262130, 0, 1, 327666, 0, 1, 393202, 0, 1, 262131, 0, 1, 327667, 0, 1, 393203, 0, 1, 262132, 0, 1, 327668, 0, 1, 393204, 0, 1, 262133, 0, 1, 327669, 0, 1, 393205, 0, 1, 262134, 0, 1, 327670, 0, 1, 393206, 0, 1, 262135, 0, 1, 327671, 0, 1, 393207, 0, 1, 262136, 0, 1, 327672, 0, 1, 393208, 0, 1, 262137, 0, 1, 327673, 0, 1, 393209, 0, 1, 262138, 0, 1, 327674, 0, 1, 393210, 0, 1, 262139, 0, 1, 327675, 0, 1, 393211, 0, 1, 262140, 0, 1, 327676, 0, 1, 393212, 0, 1, 262141, 0, 1, 327677, 0, 1, 393213, 0, 1, 262142, 0, 1, 327678, 0, 1, 393214, 0, 1, 262143, 0, 1, 327679, 0, 1, 393215, 0, 1, 196608, 0, 1, 262144, 0, 1, 327680, 0, 1, 196609, 0, 1, 262145, 0, 1, 327681, 0, 1, 196610, 0, 1, 262146, 0, 1, 327682, 0, 1, 196611, 0, 1, 262147, 0, 1, 327683, 0, 1, 196612, 0, 1, 262148, 0, 1, 327684, 0, 1, 196613, 0, 1, 262149, 0, 1, 327685, 0, 1, 196614, 0, 1, 262150, 0, 1, 327686, 0, 1, 196615, 0, 1, 262151, 0, 1, 327687, 0, 1, 196616, 0, 1, 262152, 0, 1, 327688, 0, 1, 196617, 0, 1, 262153, 0, 1, 327689, 0, 1, 196618, 0, 1, 262154, 0, 1, 327690, 0, 1, 196619, 0, 1, 262155, 0, 1, 327691, 0, 1, 196620, 0, 1, 327692, 0, 1, 327693, 0, 1, 327694, 0, 1, 262159, 0, 1, 327695, 0, 1, 327696, 0, 1, 327697, 0, 1, 458736, 0, 1, 458737, 0, 1, 524274, 0, 1, 589811, 0, 1, 524276, 0, 1, 458740, 0, 1, 458741, 0, 1, 458739, 0, 1, 458738, 0, 1, 458742, 0, 1, 524277, 0, 1, 524278, 0, 1, 524279, 0, 1, 458744, 0, 1, 458745, 0, 1, 524280, 0, 1, 589815, 0, 1, 524275, 0, 1, 458743, 0, 1, 589816, 0, 1, 589817, 0, 1, 524282, 0, 1, 458746, 0, 1, 458747, 0, 1, 458748, 0, 1, 524283, 0, 1, 458749, 0, 1, 458750, 0, 1, 458751, 0, 1, 524287, 0, 1, 458752, 0, 1, 524284, 0, 1, 524285, 0, 1, 524286, 0, 1, 458753, 0, 1, 393218, 0, 1, 393217, 0, 1, 393216, 0, 1, 524281, 0, 1, 458754, 0, 1, 458755, 0, 1, 458756, 0, 1, 458757, 0, 1, 524293, 0, 1, 393219, 0, 1, 393220, 0, 1, 393221, 0, 1, 393222, 0, 1, 393223, 0, 1, 393224, 0, 1, 393225, 0, 1, 393226, 0, 1, 393227, 0, 1, 393228, 0, 1, -196577, 0, 1, -262113, 0, 1, -262112, 0, 1, -327648, 0, 1, -393184, 0, 1, -458720, 0, 1, -458721, 0, 1, -393185, 0, 1, -327649, 0, 1, -327650, 0, 1, -262114, 0, 1, -393186, 0, 1, -524257, 0, 1, -196576, 0, 1, -131040, 0, 1, -131041, 0, 1, 131103, 0, 1, 196639, 0, 1, 196640, 0, 1, 131104, 0, 1, 65568, 0, 1, 32, 0, 1, 262176, 0, 1, 262175, 0, 1, 327711, 0, 1, 393247, 0, 1, 393248, 0, 1, 458784, 0, 1, 327712, 0, 1, 393249, 0, 1, 262166, 0, 1, 393236, 0, 1, 393235, 0, 1, 393234, 0, 1, 458770, 0, 1, 458769, 0, 1, 458768, 0, 1, 393232, 0, 1, 393231, 0, 1, 393230, 0, 1, 393229, 0, 1, 393233, 0, 1, 458767, 0, 1, 458766, 0, 1, 458765, 0, 1, 458764, 0, 1, -65504, 0, 1, 458785, 0, 1, 524321, 0, 1, 589857, 0, 1, 524320, 0, 1, -655329, 0, 1, -655330, 0, 1, -589794, 0, 1, -524258, 0, 1, -458722, 0, 1, -589793, 0, 1, -589792, 0, 1, -720864, 0, 1, -655328, 0, 1, -524256, 0, 1, 196631, 0, 1, 262167, 0, 1, 327701, 0, 1, 327702, 0, 1, 327703, 0, 1, 458771, 0, 1, 393237, 0, 1, -720863, 0, 1, -655327, 0, 1, -589791, 0, 1, -524255, 0, 1, -458719, 0, 1, -393183, 0, 1, -327647, 0, 1, -262111, 0, 1, -196575, 0, 1, -131039, 0, 1, -65503, 0, 1, 33, 0, 1, 65569, 0, 1, 131105, 0, 1, 196641, 0, 1, 262177, 0, 1, 327713, 0, 1, -720862, 0, 1, -655326, 0, 1, -589790, 0, 1, -524254, 0, 1, -458718, 0, 1, -393182, 0, 1, -327646, 0, 1, -262110, 0, 1, -196574, 0, 1, -131038, 0, 1, -65502, 0, 1, 34, 0, 1, 65570, 0, 1, 131106, 0, 1, 196642, 0, 1, 262178, 0, 1, 327714, 0, 1, 393250, 0, 1, 458786, 0, 1, 524322, 0, 1, 589858, 0, 1, -720861, 0, 1, -655325, 0, 1, -589789, 0, 1, -524253, 0, 1, -458717, 0, 1, -393181, 0, 1, -327645, 0, 1, -262109, 0, 1, -196573, 0, 1, -131037, 0, 1, -65501, 0, 1, 35, 0, 1, 65571, 0, 1, 131107, 0, 1, 196643, 0, 1, 262179, 0, 1, 327715, 0, 1, 393251, 0, 1, 458787, 0, 1, 524323, 0, 1, 589859, 0, 1, -720860, 0, 1, -655324, 0, 1, -589788, 0, 1, -524252, 0, 1, -458716, 0, 1, -393180, 0, 1, -327644, 0, 1, -262108, 0, 1, -196572, 0, 1, -131036, 0, 1, -65500, 0, 1, 36, 0, 1, 65572, 0, 1, 131108, 0, 1, 196644, 0, 1, 262180, 0, 1, 327716, 0, 1, 393252, 0, 1, 458788, 0, 1, 524324, 0, 1, 589860, 0, 1, -720859, 0, 1, -655323, 0, 1, -589787, 0, 1, -524251, 0, 1, -458715, 0, 1, -393179, 0, 1, -327643, 0, 1, -262107, 0, 1, -196571, 0, 1, -131035, 0, 1, -65499, 0, 1, 37, 0, 1, 65573, 0, 1, 131109, 0, 1, 196645, 0, 1, 262181, 0, 1, 327717, 0, 1, 393253, 0, 1, 458789, 0, 1, 524325, 0, 1, 589861, 0, 1, -720858, 0, 1, -655322, 0, 1, -589786, 0, 1, -524250, 0, 1, -458714, 0, 1, -393178, 0, 1, -327642, 0, 1, -262106, 0, 1, -196570, 0, 1, -131034, 0, 1, -65498, 0, 1, 38, 0, 1, 65574, 0, 1, 131110, 0, 1, 196646, 0, 1, 262182, 0, 1, 327718, 0, 1, 393254, 0, 1, 458790, 0, 1, 524326, 0, 1, 589862, 0, 1, -720857, 0, 1, -655321, 0, 1, -589785, 0, 1, -524249, 0, 1, -458713, 0, 1, -393177, 0, 1, -327641, 0, 1, -262105, 0, 1, -196569, 0, 1, -131033, 0, 1, -65497, 0, 1, 39, 0, 1, 65575, 0, 1, 131111, 0, 1, 196647, 0, 1, 262183, 0, 1, 327719, 0, 1, 393255, 0, 1, 458791, 0, 1, 524327, 0, 1, 589863, 0, 1, -720856, 0, 1, -655320, 0, 1, -589784, 0, 1, -524248, 0, 1, -458712, 0, 1, -393176, 0, 1, -327640, 0, 1, -262104, 0, 1, -196568, 0, 1, -131032, 0, 1, -65496, 0, 1, 40, 0, 1, 65576, 0, 1, 131112, 0, 1, 196648, 0, 1, 262184, 0, 1, 327720, 0, 1, 393256, 0, 1, 458792, 0, 1, 524328, 0, 1, 589864, 0, 1, -720855, 0, 1, -655319, 0, 1, -589783, 0, 1, -524247, 0, 1, -458711, 0, 1, -393175, 0, 1, -327639, 0, 1, -262103, 0, 1, -196567, 0, 1, -131031, 0, 1, -65495, 0, 1, 41, 0, 1, 65577, 0, 1, 131113, 0, 1, 196649, 0, 1, 262185, 0, 1, 327721, 0, 1, 393257, 0, 1, 458793, 0, 1, 524329, 0, 1, 589865, 0, 1, -720854, 0, 1, -655318, 0, 1, -589782, 0, 1, -524246, 0, 1, -458710, 0, 1, -393174, 0, 1, -327638, 0, 1, -262102, 0, 1, -196566, 0, 1, -131030, 0, 1, -65494, 0, 1, 42, 0, 1, 65578, 0, 1, 131114, 0, 1, 196650, 0, 1, 262186, 0, 1, 327722, 0, 1, 393258, 0, 1, 458794, 0, 1, 524330, 0, 1, 589866, 0, 1, -720853, 0, 1, -655317, 0, 1, -589781, 0, 1, -524245, 0, 1, -458709, 0, 1, -393173, 0, 1, -327637, 0, 1, -262101, 0, 1, -196565, 0, 1, -131029, 0, 1, -65493, 0, 1, 43, 0, 1, 65579, 0, 1, 131115, 0, 1, 196651, 0, 1, 262187, 0, 1, 327723, 0, 1, 393259, 0, 1, 458795, 0, 1, 524331, 0, 1, 589867, 0, 1, -720852, 0, 1, -655316, 0, 1, -589780, 0, 1, -524244, 0, 1, -458708, 0, 1, -393172, 0, 1, -327636, 0, 1, -262100, 0, 1, -196564, 0, 1, -131028, 0, 1, -65492, 0, 1, 44, 0, 1, 65580, 0, 1, 131116, 0, 1, 196652, 0, 1, 262188, 0, 1, 327724, 0, 1, 393260, 0, 1, 458796, 0, 1, 524332, 0, 1, 589868, 0, 1, -720851, 0, 1, -655315, 0, 1, -589779, 0, 1, -524243, 0, 1, -458707, 0, 1, -393171, 0, 1, -327635, 0, 1, -262099, 0, 1, -196563, 0, 1, -131027, 0, 1, -65491, 0, 1, 45, 0, 1, 65581, 0, 1, 131117, 0, 1, 196653, 0, 1, 262189, 0, 1, 327725, 0, 1, 393261, 0, 1, 458797, 0, 1, 524333, 0, 1, 589869, 0, 1, -720850, 0, 1, -655314, 0, 1, -589778, 0, 1, -524242, 0, 1, -458706, 0, 1, -393170, 0, 1, -327634, 0, 1, -262098, 0, 1, -196562, 0, 1, -131026, 0, 1, -65490, 0, 1, 46, 0, 1, 65582, 0, 1, 131118, 0, 1, 196654, 0, 1, 262190, 0, 1, 327726, 0, 1, 393262, 0, 1, 458798, 0, 1, 524334, 0, 1, 589870, 0, 1, -720849, 0, 1, -655313, 0, 1, -589777, 0, 1, -524241, 0, 1, -458705, 0, 1, -393169, 0, 1, -327633, 0, 1, -262097, 0, 1, -196561, 0, 1, -131025, 0, 1, -65489, 0, 1, 47, 0, 1, 65583, 0, 1, 131119, 0, 1, 196655, 0, 1, 262191, 0, 1, 327727, 0, 1, 393263, 0, 1, 458799, 0, 1, 524335, 0, 1, 589871, 0, 1, -720848, 0, 1, -655312, 0, 1, -589776, 0, 1, -524240, 0, 1, -458704, 0, 1, -393168, 0, 1, -327632, 0, 1, -262096, 0, 1, -196560, 0, 1, -131024, 0, 1, -65488, 0, 1, 48, 0, 1, 65584, 0, 1, 131120, 0, 1, 196656, 0, 1, 262192, 0, 1, 327728, 0, 1, 393264, 0, 1, 458800, 0, 1, 524336, 0, 1, 589872, 0, 1, -720847, 0, 1, -655311, 0, 1, -589775, 0, 1, -524239, 0, 1, -458703, 0, 1, -393167, 0, 1, -327631, 0, 1, -262095, 0, 1, -196559, 0, 1, -131023, 0, 1, -65487, 0, 1, 49, 0, 1, 65585, 0, 1, 131121, 0, 1, 196657, 0, 1, 262193, 0, 1, 327729, 0, 1, 393265, 0, 1, 458801, 0, 1, 524337, 0, 1, 589873, 0, 1, -720846, 0, 1, -655310, 0, 1, -589774, 0, 1, -524238, 0, 1, -458702, 0, 1, -393166, 0, 1, -327630, 0, 1, -262094, 0, 1, -196558, 0, 1, -131022, 0, 1, -65486, 0, 1, 50, 0, 1, 65586, 0, 1, 131122, 0, 1, 196658, 0, 1, 262194, 0, 1, 327730, 0, 1, 393266, 0, 1, 458802, 0, 1, 524338, 0, 1, 589874, 0, 1, -720845, 0, 1, -655309, 0, 1, -589773, 0, 1, -524237, 0, 1, -458701, 0, 1, -393165, 0, 1, -327629, 0, 1, -262093, 0, 1, -196557, 0, 1, -131021, 0, 1, -65485, 0, 1, 51, 0, 1, 65587, 0, 1, 131123, 0, 1, 196659, 0, 1, 262195, 0, 1, 327731, 0, 1, 393267, 0, 1, 458803, 0, 1, 524339, 0, 1, 589875, 0, 1, -720842, 0, 1, -655306, 0, 1, -589770, 0, 1, -524234, 0, 1, -458698, 0, 1, -393162, 0, 1, -327626, 0, 1, -262090, 0, 1, -196554, 0, 1, -131018, 0, 1, -65482, 0, 1, 54, 0, 1, 65590, 0, 1, 131126, 0, 1, 196662, 0, 1, 262198, 0, 1, 327734, 0, 1, 393270, 0, 1, 458806, 0, 1, 524342, 0, 1, 589878, 0, 1, -720841, 0, 1, -655305, 0, 1, -589769, 0, 1, -524233, 0, 1, -458697, 0, 1, -393161, 0, 1, -327625, 0, 1, -262089, 0, 1, -196553, 0, 1, -131017, 0, 1, -65481, 0, 1, 55, 0, 1, 65591, 0, 1, 131127, 0, 1, 196663, 0, 1, 262199, 0, 1, 327735, 0, 1, 393271, 0, 1, 458807, 0, 1, 524343, 0, 1, 589879, 0, 1, -720840, 0, 1, -655304, 0, 1, -589768, 0, 1, -524232, 0, 1, -458696, 0, 1, -393160, 0, 1, -327624, 0, 1, -262088, 0, 1, -196552, 0, 1, -131016, 0, 1, -65480, 0, 1, 56, 0, 1, 65592, 0, 1, 131128, 0, 1, 196664, 0, 1, 262200, 0, 1, 327736, 0, 1, 393272, 0, 1, 458808, 0, 1, 524344, 0, 1, 589880, 0, 1, -720839, 0, 1, -655303, 0, 1, -589767, 0, 1, -524231, 0, 1, -458695, 0, 1, -393159, 0, 1, -327623, 0, 1, -262087, 0, 1, -196551, 0, 1, -131015, 0, 1, -65479, 0, 1, 57, 0, 1, 65593, 0, 1, 131129, 0, 1, 196665, 0, 1, 262201, 0, 1, 327737, 0, 1, 393273, 0, 1, 458809, 0, 1, 524345, 0, 1, 589881, 0, 1, -720838, 0, 1, -655302, 0, 1, -589766, 0, 1, -524230, 0, 1, -458694, 0, 1, -393158, 0, 1, -327622, 0, 1, -262086, 0, 1, -196550, 0, 1, -131014, 0, 1, -65478, 0, 1, 58, 0, 1, 65594, 0, 1, 131130, 0, 1, 196666, 0, 1, 262202, 0, 1, 327738, 0, 1, 393274, 0, 1, 458810, 0, 1, 524346, 0, 1, 589882, 0, 1, -720837, 0, 1, -655301, 0, 1, -589765, 0, 1, -524229, 0, 1, -458693, 0, 1, -393157, 0, 1, -327621, 0, 1, -262085, 0, 1, -196549, 0, 1, -131013, 0, 1, -65477, 0, 1, 59, 0, 1, 65595, 0, 1, 131131, 0, 1, 196667, 0, 1, 262203, 0, 1, 327739, 0, 1, 393275, 0, 1, 458811, 0, 1, 524347, 0, 1, 589883, 0, 1, -720836, 0, 1, -655300, 0, 1, -589764, 0, 1, -524228, 0, 1, -458692, 0, 1, -393156, 0, 1, -327620, 0, 1, -262084, 0, 1, -196548, 0, 1, -131012, 0, 1, -65476, 0, 1, 60, 0, 1, 65596, 0, 1, 131132, 0, 1, 196668, 0, 1, 262204, 0, 1, 327740, 0, 1, 393276, 0, 1, 458812, 0, 1, 524348, 0, 1, 589884, 0, 1, -720835, 0, 1, -655299, 0, 1, -589763, 0, 1, -524227, 0, 1, -458691, 0, 1, -393155, 0, 1, -327619, 0, 1, -262083, 0, 1, -196547, 0, 1, -131011, 0, 1, -65475, 0, 1, 61, 0, 1, 65597, 0, 1, 131133, 0, 1, 196669, 0, 1, 262205, 0, 1, 327741, 0, 1, 393277, 0, 1, 458813, 0, 1, 524349, 0, 1, 589885, 0, 1, -720834, 0, 1, -655298, 0, 1, -589762, 0, 1, -524226, 0, 1, -458690, 0, 1, -393154, 0, 1, -327618, 0, 1, -262082, 0, 1, -196546, 0, 1, -131010, 0, 1, -65474, 0, 1, 62, 0, 1, 65598, 0, 1, 131134, 0, 1, 196670, 0, 1, 262206, 0, 1, 327742, 0, 1, 393278, 0, 1, 458814, 0, 1, 524350, 0, 1, 589886, 0, 1, -720833, 0, 1, -655297, 0, 1, -589761, 0, 1, -524225, 0, 1, -458689, 0, 1, -393153, 0, 1, -327617, 0, 1, -262081, 0, 1, -196545, 0, 1, -131009, 0, 1, -65473, 0, 1, 63, 0, 1, 65599, 0, 1, 131135, 0, 1, 196671, 0, 1, 262207, 0, 1, 327743, 0, 1, 393279, 0, 1, 458815, 0, 1, 524351, 0, 1, 589887, 0, 1, -720832, 0, 1, -655296, 0, 1, -589760, 0, 1, -524224, 0, 1, -458688, 0, 1, -393152, 0, 1, -327616, 0, 1, -262080, 0, 1, -196544, 0, 1, -131008, 0, 1, -65472, 0, 1, 64, 0, 1, 65600, 0, 1, 131136, 0, 1, 196672, 0, 1, 262208, 0, 1, 327744, 0, 1, 393280, 0, 1, 458816, 0, 1, 524352, 0, 1, 589888, 0, 1, -720831, 0, 1, -655295, 0, 1, -589759, 0, 1, -524223, 0, 1, -458687, 0, 1, -393151, 0, 1, -327615, 0, 1, -262079, 0, 1, -196543, 0, 1, -131007, 0, 1, -65471, 0, 1, 65, 0, 1, 65601, 0, 1, 131137, 0, 1, 196673, 0, 1, 262209, 0, 1, 327745, 0, 1, 393281, 0, 1, 458817, 0, 1, 524353, 0, 1, 589889, 0, 1, -720830, 0, 1, -655294, 0, 1, -589758, 0, 1, -524222, 0, 1, -458686, 0, 1, -393150, 0, 1, -327614, 0, 1, -262078, 0, 1, -196542, 0, 1, -131006, 0, 1, -65470, 0, 1, 66, 0, 1, 65602, 0, 1, 131138, 0, 1, 196674, 0, 1, 262210, 0, 1, 327746, 0, 1, 393282, 0, 1, 458818, 0, 1, 524354, 0, 1, 589890, 0, 1, -720829, 0, 1, -655293, 0, 1, -589757, 0, 1, -524221, 0, 1, -458685, 0, 1, -393149, 0, 1, -327613, 0, 1, -262077, 0, 1, -196541, 0, 1, -131005, 0, 1, -65469, 0, 1, 67, 0, 1, 65603, 0, 1, 131139, 0, 1, 196675, 0, 1, 262211, 0, 1, 327747, 0, 1, 393283, 0, 1, 458819, 0, 1, 524355, 0, 1, 589891, 0, 1, -720828, 0, 1, -655292, 0, 1, -589756, 0, 1, -524220, 0, 1, -458684, 0, 1, -393148, 0, 1, -327612, 0, 1, -262076, 0, 1, -196540, 0, 1, -131004, 0, 1, -65468, 0, 1, 68, 0, 1, 65604, 0, 1, 131140, 0, 1, 196676, 0, 1, 262212, 0, 1, 327748, 0, 1, 393284, 0, 1, 458820, 0, 1, 524356, 0, 1, 589892, 0, 1, -720827, 0, 1, -655291, 0, 1, -589755, 0, 1, -524219, 0, 1, -458683, 0, 1, -393147, 0, 1, -327611, 0, 1, -262075, 0, 1, -196539, 0, 1, -131003, 0, 1, -65467, 0, 1, 69, 0, 1, 65605, 0, 1, 131141, 0, 1, 196677, 0, 1, 262213, 0, 1, 327749, 0, 1, 393285, 0, 1, 458821, 0, 1, 524357, 0, 1, 589893, 0, 1, -720826, 0, 1, -655290, 0, 1, -589754, 0, 1, -524218, 0, 1, -458682, 0, 1, -393146, 0, 1, -327610, 0, 1, -262074, 0, 1, -196538, 0, 1, -131002, 0, 1, -65466, 0, 1, 70, 0, 1, 65606, 0, 1, 131142, 0, 1, 196678, 0, 1, 262214, 0, 1, 327750, 0, 1, 393286, 0, 1, 458822, 0, 1, 524358, 0, 1, 589894, 0, 1, -2031545, 0, 1, -1966009, 0, 1, -1900473, 0, 1, -1834937, 0, 1, -1769401, 0, 1, -1703865, 0, 1, -1638329, 0, 1, -1572793, 0, 1, -1507257, 0, 1, -1441721, 0, 1, -1376185, 0, 1, -1310649, 0, 1, -1245113, 0, 1, -1179577, 0, 1, -1114041, 0, 1, -1048505, 0, 1, -982969, 0, 1, -917433, 0, 1, -851897, 0, 1, -786361, 0, 1, -720825, 0, 1, -655289, 0, 1, -589753, 0, 1, -524217, 0, 1, -458681, 0, 1, -393145, 0, 1, -327609, 0, 1, -2031544, 0, 1, -1966008, 0, 1, -1900472, 0, 1, -1834936, 0, 1, -1769400, 0, 1, -1703864, 0, 1, -1638328, 0, 1, -1572792, 0, 1, -1507256, 0, 1, -1441720, 0, 1, -1376184, 0, 1, -1310648, 0, 1, -1245112, 0, 1, -1179576, 0, 1, -1114040, 0, 1, -1048504, 0, 1, -982968, 0, 1, -917432, 0, 1, -851896, 0, 1, -786360, 0, 1, -720824, 0, 1, -655288, 0, 1, -589752, 0, 1, -524216, 0, 1, -458680, 0, 1, -393144, 0, 1, -327608, 0, 1, -2031543, 0, 1, -1966007, 0, 1, -1900471, 0, 1, -1834935, 0, 1, -1769399, 0, 1, -1703863, 0, 1, -1638327, 0, 1, -1572791, 0, 1, -1507255, 0, 1, -1441719, 0, 1, -1376183, 0, 1, -1310647, 0, 1, -1245111, 0, 1, -1179575, 0, 1, -1114039, 0, 1, -1048503, 0, 1, -982967, 0, 1, -917431, 0, 1, -851895, 0, 1, -786359, 0, 1, -720823, 0, 1, -655287, 0, 1, -589751, 0, 1, -524215, 0, 1, -458679, 0, 1, -393143, 0, 1, -327607, 0, 1, -2031542, 0, 1, -1966006, 0, 1, -1900470, 0, 1, -1834934, 0, 1, -1769398, 0, 1, -1703862, 0, 1, -1638326, 0, 1, -1572790, 0, 1, -1507254, 0, 1, -1441718, 0, 1, -1376182, 0, 1, -1310646, 0, 1, -1245110, 0, 1, -1179574, 0, 1, -1114038, 0, 1, -1048502, 0, 1, -982966, 0, 1, -917430, 0, 1, -851894, 0, 1, -786358, 0, 1, -720822, 0, 1, -655286, 0, 1, -589750, 0, 1, -524214, 0, 1, -458678, 0, 1, -393142, 0, 1, -327606, 0, 1, -2031541, 0, 1, -1966005, 0, 1, -1900469, 0, 1, -1834933, 0, 1, -1769397, 0, 1, -1703861, 0, 1, -1638325, 0, 1, -1572789, 0, 1, -1507253, 0, 1, -1441717, 0, 1, -1376181, 0, 1, -1310645, 0, 1, -1245109, 0, 1, -1179573, 0, 1, -1114037, 0, 1, -1048501, 0, 1, -982965, 0, 1, -917429, 0, 1, -851893, 0, 1, -786357, 0, 1, -720821, 0, 1, -655285, 0, 1, -589749, 0, 1, -524213, 0, 1, -458677, 0, 1, -393141, 0, 1, -327605, 0, 1, -2031540, 0, 1, -1966004, 0, 1, -1900468, 0, 1, -1834932, 0, 1, -1769396, 0, 1, -1703860, 0, 1, -1638324, 0, 1, -1572788, 0, 1, -1507252, 0, 1, -1441716, 0, 1, -1376180, 0, 1, -1310644, 0, 1, -1245108, 0, 1, -1179572, 0, 1, -1114036, 0, 1, -1048500, 0, 1, -982964, 0, 1, -917428, 0, 1, -851892, 0, 1, -786356, 0, 1, -720820, 0, 1, -655284, 0, 1, -589748, 0, 1, -524212, 0, 1, -458676, 0, 1, -393140, 0, 1, -327604, 0, 1, -2031539, 0, 1, -1966003, 0, 1, -1900467, 0, 1, -1834931, 0, 1, -1769395, 0, 1, -1703859, 0, 1, -1638323, 0, 1, -1572787, 0, 1, -1507251, 0, 1, -1441715, 0, 1, -1376179, 0, 1, -1310643, 0, 1, -1245107, 0, 1, -1179571, 0, 1, -1114035, 0, 1, -1048499, 0, 1, -982963, 0, 1, -917427, 0, 1, -851891, 0, 1, -786355, 0, 1, -720819, 0, 1, -655283, 0, 1, -589747, 0, 1, -524211, 0, 1, -458675, 0, 1, -393139, 0, 1, -327603, 0, 1, -2031538, 0, 1, -1966002, 0, 1, -1900466, 0, 1, -1834930, 0, 1, -1769394, 0, 1, -1703858, 0, 1, -1638322, 0, 1, -1572786, 0, 1, -1507250, 0, 1, -1441714, 0, 1, -1376178, 0, 1, -1310642, 0, 1, -1245106, 0, 1, -1179570, 0, 1, -1114034, 0, 1, -1048498, 0, 1, -982962, 0, 1, -917426, 0, 1, -851890, 0, 1, -786354, 0, 1, -720818, 0, 1, -655282, 0, 1, -589746, 0, 1, -524210, 0, 1, -458674, 0, 1, -393138, 0, 1, -327602, 0, 1, -2031537, 0, 1, -1966001, 0, 1, -1900465, 0, 1, -1834929, 0, 1, -1769393, 0, 1, -1703857, 0, 1, -1638321, 0, 1, -1572785, 0, 1, -1507249, 0, 1, -1441713, 0, 1, -1376177, 0, 1, -1310641, 0, 1, -1245105, 0, 1, -1179569, 0, 1, -1114033, 0, 1, -1048497, 0, 1, -982961, 0, 1, -917425, 0, 1, -851889, 0, 1, -786353, 0, 1, -720817, 0, 1, -655281, 0, 1, -589745, 0, 1, -524209, 0, 1, -458673, 0, 1, -393137, 0, 1, -327601, 0, 1, -2031536, 0, 1, -1966000, 0, 1, -1900464, 0, 1, -1834928, 0, 1, -1769392, 0, 1, -1703856, 0, 1, -1638320, 0, 1, -1572784, 0, 1, -1507248, 0, 1, -1441712, 0, 1, -1376176, 0, 1, -1310640, 0, 1, -1245104, 0, 1, -1179568, 0, 1, -1114032, 0, 1, -1048496, 0, 1, -982960, 0, 1, -917424, 0, 1, -851888, 0, 1, -786352, 0, 1, -720816, 0, 1, -655280, 0, 1, -589744, 0, 1, -524208, 0, 1, -458672, 0, 1, -393136, 0, 1, -327600, 0, 1, -2031535, 0, 1, -1965999, 0, 1, -1900463, 0, 1, -1834927, 0, 1, -1769391, 0, 1, -1703855, 0, 1, -1638319, 0, 1, -1572783, 0, 1, -1507247, 0, 1, -1441711, 0, 1, -1376175, 0, 1, -1310639, 0, 1, -1245103, 0, 1, -1179567, 0, 1, -1114031, 0, 1, -1048495, 0, 1, -982959, 0, 1, -917423, 0, 1, -851887, 0, 1, -786351, 0, 1, -720815, 0, 1, -655279, 0, 1, -589743, 0, 1, -524207, 0, 1, -458671, 0, 1, -393135, 0, 1, -327599, 0, 1, -2031534, 0, 1, -1965998, 0, 1, -1900462, 0, 1, -1834926, 0, 1, -1769390, 0, 1, -1703854, 0, 1, -1638318, 0, 1, -1572782, 0, 1, -1507246, 0, 1, -1441710, 0, 1, -1376174, 0, 1, -1310638, 0, 1, -1245102, 0, 1, -1179566, 0, 1, -1114030, 0, 1, -1048494, 0, 1, -982958, 0, 1, -917422, 0, 1, -851886, 0, 1, -786350, 0, 1, -720814, 0, 1, -655278, 0, 1, -589742, 0, 1, -524206, 0, 1, -458670, 0, 1, -393134, 0, 1, -327598, 0, 1, -2031533, 0, 1, -1965997, 0, 1, -1900461, 0, 1, -1834925, 0, 1, -1769389, 0, 1, -1703853, 0, 1, -1638317, 0, 1, -1572781, 0, 1, -1507245, 0, 1, -1441709, 0, 1, -1376173, 0, 1, -1310637, 0, 1, -1245101, 0, 1, -1179565, 0, 1, -1114029, 0, 1, -1048493, 0, 1, -982957, 0, 1, -917421, 0, 1, -851885, 0, 1, -786349, 0, 1, -720813, 0, 1, -655277, 0, 1, -589741, 0, 1, -524205, 0, 1, -458669, 0, 1, -393133, 0, 1, -327597, 0, 1, -2031532, 0, 1, -1965996, 0, 1, -1900460, 0, 1, -1834924, 0, 1, -1769388, 0, 1, -1703852, 0, 1, -1638316, 0, 1, -1572780, 0, 1, -1507244, 0, 1, -1441708, 0, 1, -1376172, 0, 1, -1310636, 0, 1, -1245100, 0, 1, -1179564, 0, 1, -1114028, 0, 1, -1048492, 0, 1, -982956, 0, 1, -917420, 0, 1, -851884, 0, 1, -786348, 0, 1, -720812, 0, 1, -655276, 0, 1, -589740, 0, 1, -524204, 0, 1, -458668, 0, 1, -393132, 0, 1, -327596, 0, 1, -2031531, 0, 1, -1965995, 0, 1, -1900459, 0, 1, -1834923, 0, 1, -1769387, 0, 1, -1703851, 0, 1, -1638315, 0, 1, -1572779, 0, 1, -1507243, 0, 1, -1441707, 0, 1, -1376171, 0, 1, -1310635, 0, 1, -1245099, 0, 1, -1179563, 0, 1, -1114027, 0, 1, -1048491, 0, 1, -982955, 0, 1, -917419, 0, 1, -851883, 0, 1, -786347, 0, 1, -720811, 0, 1, -655275, 0, 1, -589739, 0, 1, -524203, 0, 1, -458667, 0, 1, -393131, 0, 1, -327595, 0, 1, -2031530, 0, 1, -1965994, 0, 1, -1900458, 0, 1, -1834922, 0, 1, -1769386, 0, 1, -1703850, 0, 1, -1638314, 0, 1, -1572778, 0, 1, -1507242, 0, 1, -1441706, 0, 1, -1376170, 0, 1, -1310634, 0, 1, -1245098, 0, 1, -1179562, 0, 1, -1114026, 0, 1, -1048490, 0, 1, -982954, 0, 1, -917418, 0, 1, -851882, 0, 1, -786346, 0, 1, -720810, 0, 1, -655274, 0, 1, -589738, 0, 1, -524202, 0, 1, -458666, 0, 1, -393130, 0, 1, -327594, 0, 1, -2031529, 0, 1, -1965993, 0, 1, -1900457, 0, 1, -1834921, 0, 1, -1769385, 0, 1, -1703849, 0, 1, -1638313, 0, 1, -1572777, 0, 1, -1507241, 0, 1, -1441705, 0, 1, -1376169, 0, 1, -1310633, 0, 1, -1245097, 0, 1, -1179561, 0, 1, -1114025, 0, 1, -1048489, 0, 1, -982953, 0, 1, -917417, 0, 1, -851881, 0, 1, -786345, 0, 1, -720809, 0, 1, -655273, 0, 1, -589737, 0, 1, -524201, 0, 1, -458665, 0, 1, -393129, 0, 1, -327593, 0, 1, -2031528, 0, 1, -1965992, 0, 1, -1900456, 0, 1, -1834920, 0, 1, -1769384, 0, 1, -1703848, 0, 1, -1638312, 0, 1, -1572776, 0, 1, -1507240, 0, 1, -1441704, 0, 1, -1376168, 0, 1, -1310632, 0, 1, -1245096, 0, 1, -1179560, 0, 1, -1114024, 0, 1, -1048488, 0, 1, -982952, 0, 1, -917416, 0, 1, -851880, 0, 1, -786344, 0, 1, -720808, 0, 1, -655272, 0, 1, -589736, 0, 1, -524200, 0, 1, -458664, 0, 1, -393128, 0, 1, -327592, 0, 1, -262073, 0, 1, -196537, 0, 1, -131001, 0, 1, -65465, 0, 1, 71, 0, 1, 65607, 0, 1, 131143, 0, 1, 196679, 0, 1, 262215, 0, 1, 327751, 0, 1, 393287, 0, 1, 458823, 0, 1, 524359, 0, 1, 589895, 0, 1, -262072, 0, 1, -196536, 0, 1, -131000, 0, 1, -65464, 0, 1, 72, 0, 1, 65608, 0, 1, 131144, 0, 1, 196680, 0, 1, 262216, 0, 1, 327752, 0, 1, 393288, 0, 1, 458824, 0, 1, 524360, 0, 1, 589896, 0, 1, -262071, 0, 1, -196535, 0, 1, -130999, 0, 1, -65463, 0, 1, 73, 0, 1, 65609, 0, 1, 131145, 0, 1, 196681, 0, 1, 262217, 0, 1, 327753, 0, 1, 393289, 0, 1, 458825, 0, 1, 524361, 0, 1, 589897, 0, 1, -262070, 0, 1, -196534, 0, 1, -130998, 0, 1, -65462, 0, 1, 74, 0, 1, 65610, 0, 1, 131146, 0, 1, 196682, 0, 1, 262218, 0, 1, 327754, 0, 1, 393290, 0, 1, 458826, 0, 1, 524362, 0, 1, 589898, 0, 1, -262069, 0, 1, -196533, 0, 1, -130997, 0, 1, -65461, 0, 1, 75, 0, 1, 65611, 0, 1, 131147, 0, 1, 196683, 0, 1, 262219, 0, 1, 327755, 0, 1, 393291, 0, 1, 458827, 0, 1, 524363, 0, 1, 589899, 0, 1, -262068, 0, 1, -196532, 0, 1, -130996, 0, 1, -65460, 0, 1, 76, 0, 1, 65612, 0, 1, 131148, 0, 1, 196684, 0, 1, 262220, 0, 1, 327756, 0, 1, 393292, 0, 1, 458828, 0, 1, 524364, 0, 1, 589900, 0, 1, -262067, 0, 1, -196531, 0, 1, -130995, 0, 1, -65459, 0, 1, 77, 0, 1, 65613, 0, 1, 131149, 0, 1, 196685, 0, 1, 262221, 0, 1, 327757, 0, 1, 393293, 0, 1, 458829, 0, 1, 524365, 0, 1, 589901, 0, 1, -262066, 0, 1, -196530, 0, 1, -130994, 0, 1, -65458, 0, 1, 78, 0, 1, 65614, 0, 1, 131150, 0, 1, 196686, 0, 1, 262222, 0, 1, 327758, 0, 1, 393294, 0, 1, 458830, 0, 1, 524366, 0, 1, 589902, 0, 1, -262065, 0, 1, -196529, 0, 1, -130993, 0, 1, -65457, 0, 1, 79, 0, 1, 65615, 0, 1, 131151, 0, 1, 196687, 0, 1, 262223, 0, 1, 327759, 0, 1, 393295, 0, 1, 458831, 0, 1, 524367, 0, 1, 589903, 0, 1, -262064, 0, 1, -196528, 0, 1, -130992, 0, 1, -65456, 0, 1, 80, 0, 1, 65616, 0, 1, 131152, 0, 1, 196688, 0, 1, 262224, 0, 1, 327760, 0, 1, 393296, 0, 1, 458832, 0, 1, 524368, 0, 1, 589904, 0, 1, -262063, 0, 1, -196527, 0, 1, -130991, 0, 1, -65455, 0, 1, 81, 0, 1, 65617, 0, 1, 131153, 0, 1, 196689, 0, 1, 262225, 0, 1, 327761, 0, 1, 393297, 0, 1, 458833, 0, 1, 524369, 0, 1, 589905, 0, 1, -262062, 0, 1, -196526, 0, 1, -130990, 0, 1, -65454, 0, 1, 82, 0, 1, 65618, 0, 1, 131154, 0, 1, 196690, 0, 1, 262226, 0, 1, 327762, 0, 1, 393298, 0, 1, 458834, 0, 1, 524370, 0, 1, 589906, 0, 1, -262061, 0, 1, -196525, 0, 1, -130989, 0, 1, -65453, 0, 1, 83, 0, 1, 65619, 0, 1, 131155, 0, 1, 196691, 0, 1, 262227, 0, 1, 327763, 0, 1, 393299, 0, 1, 458835, 0, 1, 524371, 0, 1, 589907, 0, 1, -262060, 0, 1, -196524, 0, 1, -130988, 0, 1, -65452, 0, 1, 84, 0, 1, 65620, 0, 1, 131156, 0, 1, 196692, 0, 1, 262228, 0, 1, 327764, 0, 1, 393300, 0, 1, 458836, 0, 1, 524372, 0, 1, 589908, 0, 1, -262059, 0, 1, -196523, 0, 1, -130987, 0, 1, -65451, 0, 1, 85, 0, 1, 65621, 0, 1, 131157, 0, 1, 196693, 0, 1, 262229, 0, 1, 327765, 0, 1, 393301, 0, 1, 458837, 0, 1, 524373, 0, 1, 589909, 0, 1, -262058, 0, 1, -196522, 0, 1, -130986, 0, 1, -65450, 0, 1, 86, 0, 1, 65622, 0, 1, 131158, 0, 1, 196694, 0, 1, 262230, 0, 1, 327766, 0, 1, 393302, 0, 1, 458838, 0, 1, 524374, 0, 1, 589910, 0, 1, -262057, 0, 1, -196521, 0, 1, -130985, 0, 1, -65449, 0, 1, 87, 0, 1, 65623, 0, 1, 131159, 0, 1, 196695, 0, 1, 262231, 0, 1, 327767, 0, 1, 393303, 0, 1, 458839, 0, 1, 524375, 0, 1, 589911, 0, 1, -262056, 0, 1, -196520, 0, 1, -130984, 0, 1, -65448, 0, 1, 88, 0, 1, 65624, 0, 1, 131160, 0, 1, 196696, 0, 1, 262232, 0, 1, 327768, 0, 1, 393304, 0, 1, 458840, 0, 1, 524376, 0, 1, 589912, 0, 1, -524199, 0, 1, -458663, 0, 1, -393127, 0, 1, -327591, 0, 1, -262055, 0, 1, -196519, 0, 1, -130983, 0, 1, -65447, 0, 1, 89, 0, 1, 65625, 0, 1, 131161, 0, 1, 196697, 0, 1, 262233, 0, 1, 327769, 0, 1, 393305, 0, 1, 458841, 0, 1, 524377, 0, 1, 589913, 0, 1, -524198, 0, 1, -458662, 0, 1, -393126, 0, 1, -327590, 0, 1, -262054, 0, 1, -196518, 0, 1, -130982, 0, 1, -65446, 0, 1, 90, 0, 1, 65626, 0, 1, 131162, 0, 1, 196698, 0, 1, 262234, 0, 1, 327770, 0, 1, 393306, 0, 1, 458842, 0, 1, 524378, 0, 1, 589914, 0, 1, -524197, 0, 1, -458661, 0, 1, -393125, 0, 1, -327589, 0, 1, -262053, 0, 1, -196517, 0, 1, -130981, 0, 1, -65445, 0, 1, 91, 0, 1, 65627, 0, 1, 131163, 0, 1, 196699, 0, 1, 262235, 0, 1, 327771, 0, 1, 393307, 0, 1, 458843, 0, 1, 524379, 0, 1, 589915, 0, 1, -524196, 0, 1, -458660, 0, 1, -393124, 0, 1, -327588, 0, 1, -262052, 0, 1, -196516, 0, 1, -130980, 0, 1, -65444, 0, 1, 92, 0, 1, 65628, 0, 1, 131164, 0, 1, 196700, 0, 1, 262236, 0, 1, 327772, 0, 1, 393308, 0, 1, 458844, 0, 1, 524380, 0, 1, 589916, 0, 1, -524195, 0, 1, -458659, 0, 1, -393123, 0, 1, -327587, 0, 1, -262051, 0, 1, -196515, 0, 1, -130979, 0, 1, -65443, 0, 1, 93, 0, 1, 65629, 0, 1, 131165, 0, 1, 196701, 0, 1, 262237, 0, 1, 327773, 0, 1, 393309, 0, 1, 458845, 0, 1, 524381, 0, 1, 589917, 0, 1, -524194, 0, 1, -458658, 0, 1, -393122, 0, 1, -327586, 0, 1, -262050, 0, 1, -196514, 0, 1, -130978, 0, 1, -65442, 0, 1, 94, 0, 1, 65630, 0, 1, 131166, 0, 1, 196702, 0, 1, 262238, 0, 1, 327774, 0, 1, 393310, 0, 1, 458846, 0, 1, 524382, 0, 1, 589918, 0, 1, -524193, 0, 1, -458657, 0, 1, -393121, 0, 1, -327585, 0, 1, -262049, 0, 1, -196513, 0, 1, -130977, 0, 1, -65441, 0, 1, 95, 0, 1, 65631, 0, 1, 131167, 0, 1, 196703, 0, 1, 262239, 0, 1, 327775, 0, 1, 393311, 0, 1, 458847, 0, 1, 524383, 0, 1, 589919, 0, 1, -524192, 0, 1, -458656, 0, 1, -393120, 0, 1, -327584, 0, 1, -262048, 0, 1, -196512, 0, 1, -130976, 0, 1, -65440, 0, 1, 96, 0, 1, 65632, 0, 1, 131168, 0, 1, 196704, 0, 1, 262240, 0, 1, 327776, 0, 1, 393312, 0, 1, 458848, 0, 1, 524384, 0, 1, 589920, 0, 1, -524191, 0, 1, -458655, 0, 1, -393119, 0, 1, -327583, 0, 1, -262047, 0, 1, -196511, 0, 1, -130975, 0, 1, -65439, 0, 1, 97, 0, 1, 65633, 0, 1, 131169, 0, 1, 196705, 0, 1, 262241, 0, 1, 327777, 0, 1, 393313, 0, 1, 458849, 0, 1, 524385, 0, 1, 589921, 0, 1, -524190, 0, 1, -458654, 0, 1, -393118, 0, 1, -327582, 0, 1, -262046, 0, 1, -196510, 0, 1, -130974, 0, 1, -65438, 0, 1, 98, 0, 1, 65634, 0, 1, 131170, 0, 1, 196706, 0, 1, 262242, 0, 1, 327778, 0, 1, 393314, 0, 1, 458850, 0, 1, 524386, 0, 1, 589922, 0, 1, -524189, 0, 1, -458653, 0, 1, -393117, 0, 1, -327581, 0, 1, -262045, 0, 1, -196509, 0, 1, -130973, 0, 1, -65437, 0, 1, 99, 0, 1, 65635, 0, 1, 131171, 0, 1, 196707, 0, 1, 262243, 0, 1, 327779, 0, 1, 393315, 0, 1, 458851, 0, 1, 524387, 0, 1, 589923, 0, 1, -524188, 0, 1, -458652, 0, 1, -393116, 0, 1, -327580, 0, 1, -262044, 0, 1, -196508, 0, 1, -130972, 0, 1, -65436, 0, 1, 100, 0, 1, 65636, 0, 1, 131172, 0, 1, 196708, 0, 1, 262244, 0, 1, 327780, 0, 1, 393316, 0, 1, 458852, 0, 1, 524388, 0, 1, 589924, 0, 1, -524187, 0, 1, -458651, 0, 1, -393115, 0, 1, -327579, 0, 1, -262043, 0, 1, -196507, 0, 1, -130971, 0, 1, -65435, 0, 1, 101, 0, 1, 65637, 0, 1, 131173, 0, 1, 196709, 0, 1, 262245, 0, 1, 327781, 0, 1, 393317, 0, 1, 458853, 0, 1, 524389, 0, 1, 589925, 0, 1, -524186, 0, 1, -458650, 0, 1, -393114, 0, 1, -327578, 0, 1, -262042, 0, 1, -196506, 0, 1, -130970, 0, 1, -65434, 0, 1, 102, 0, 1, 65638, 0, 1, 131174, 0, 1, 196710, 0, 1, 262246, 0, 1, 327782, 0, 1, 393318, 0, 1, 458854, 0, 1, 524390, 0, 1, 589926, 0, 1, -524185, 0, 1, -458649, 0, 1, -393113, 0, 1, -327577, 0, 1, -262041, 0, 1, -196505, 0, 1, -130969, 0, 1, -65433, 0, 1, 103, 0, 1, 65639, 0, 1, 131175, 0, 1, 196711, 0, 1, 262247, 0, 1, 327783, 0, 1, 393319, 0, 1, 458855, 0, 1, 524391, 0, 1, 589927, 0, 1, -524184, 0, 1, -458648, 0, 1, -393112, 0, 1, -327576, 0, 1, -262040, 0, 1, -196504, 0, 1, -130968, 0, 1, -65432, 0, 1, 104, 0, 1, 65640, 0, 1, 131176, 0, 1, 196712, 0, 1, 262248, 0, 1, 327784, 0, 1, 393320, 0, 1, 458856, 0, 1, 524392, 0, 1, 589928, 0, 1, -524183, 0, 1, -458647, 0, 1, -393111, 0, 1, -327575, 0, 1, -262039, 0, 1, -196503, 0, 1, -130967, 0, 1, -65431, 0, 1, 105, 0, 1, 65641, 0, 1, 131177, 0, 1, 196713, 0, 1, 262249, 0, 1, 327785, 0, 1, 393321, 0, 1, 458857, 0, 1, 524393, 0, 1, 589929, 0, 1, -524182, 0, 1, -458646, 0, 1, -393110, 0, 1, -327574, 0, 1, -262038, 0, 1, -196502, 0, 1, -130966, 0, 1, -65430, 0, 1, 106, 0, 1, 65642, 0, 1, 131178, 0, 1, 196714, 0, 1, 262250, 0, 1, 327786, 0, 1, 393322, 0, 1, 458858, 0, 1, 524394, 0, 1, 589930, 0, 1, -524181, 0, 1, -458645, 0, 1, -393109, 0, 1, -327573, 0, 1, -262037, 0, 1, -196501, 0, 1, -130965, 0, 1, -65429, 0, 1, 107, 0, 1, 65643, 0, 1, 131179, 0, 1, 196715, 0, 1, 262251, 0, 1, 327787, 0, 1, 393323, 0, 1, 458859, 0, 1, 524395, 0, 1, 589931, 0, 1, -524180, 0, 1, -458644, 0, 1, -393108, 0, 1, -327572, 0, 1, -262036, 0, 1, -196500, 0, 1, -130964, 0, 1, -65428, 0, 1, 108, 0, 1, 65644, 0, 1, 131180, 0, 1, 196716, 0, 1, 262252, 0, 1, 327788, 0, 1, 393324, 0, 1, 458860, 0, 1, 524396, 0, 1, 589932, 0, 1, -524179, 0, 1, -458643, 0, 1, -393107, 0, 1, -327571, 0, 1, -262035, 0, 1, -196499, 0, 1, -130963, 0, 1, -65427, 0, 1, 109, 0, 1, 65645, 0, 1, 131181, 0, 1, 196717, 0, 1, 262253, 0, 1, 327789, 0, 1, 393325, 0, 1, 458861, 0, 1, 524397, 0, 1, 589933, 0, 1, -524178, 0, 1, -458642, 0, 1, -393106, 0, 1, -327570, 0, 1, -262034, 0, 1, -196498, 0, 1, -130962, 0, 1, -65426, 0, 1, 110, 0, 1, 65646, 0, 1, 131182, 0, 1, 196718, 0, 1, 262254, 0, 1, 327790, 0, 1, 393326, 0, 1, 458862, 0, 1, 524398, 0, 1, 589934, 0, 1, -524177, 0, 1, -458641, 0, 1, -393105, 0, 1, -327569, 0, 1, -262033, 0, 1, -196497, 0, 1, -130961, 0, 1, -65425, 0, 1, 111, 0, 1, 65647, 0, 1, 131183, 0, 1, 196719, 0, 1, 262255, 0, 1, 327791, 0, 1, 393327, 0, 1, 458863, 0, 1, 524399, 0, 1, 589935, 0, 1, -524176, 0, 1, -458640, 0, 1, -393104, 0, 1, -327568, 0, 1, -262032, 0, 1, -196496, 0, 1, -130960, 0, 1, -65424, 0, 1, 112, 0, 1, 65648, 0, 1, 131184, 0, 1, 196720, 0, 1, 262256, 0, 1, 327792, 0, 1, 393328, 0, 1, 458864, 0, 1, 524400, 0, 1, 589936, 0, 1, -524175, 0, 1, -458639, 0, 1, -393103, 0, 1, -327567, 0, 1, -262031, 0, 1, -196495, 0, 1, -130959, 0, 1, -65423, 0, 1, 113, 0, 1, 65649, 0, 1, 131185, 0, 1, 196721, 0, 1, 262257, 0, 1, 327793, 0, 1, 393329, 0, 1, 458865, 0, 1, 524401, 0, 1, 589937, 0, 1, -524174, 0, 1, -458638, 0, 1, -393102, 0, 1, -327566, 0, 1, -262030, 0, 1, -196494, 0, 1, -130958, 0, 1, -65422, 0, 1, 114, 0, 1, 65650, 0, 1, 131186, 0, 1, 196722, 0, 1, 262258, 0, 1, 327794, 0, 1, 393330, 0, 1, 458866, 0, 1, 524402, 0, 1, 589938, 0, 1, -524173, 0, 1, -458637, 0, 1, -393101, 0, 1, -327565, 0, 1, -262029, 0, 1, -196493, 0, 1, -130957, 0, 1, -65421, 0, 1, 115, 0, 1, 65651, 0, 1, 131187, 0, 1, 196723, 0, 1, 262259, 0, 1, 327795, 0, 1, 393331, 0, 1, 458867, 0, 1, 524403, 0, 1, 589939, 0, 1, -524172, 0, 1, -458636, 0, 1, -393100, 0, 1, -327564, 0, 1, -262028, 0, 1, -196492, 0, 1, -130956, 0, 1, -65420, 0, 1, 116, 0, 1, 65652, 0, 1, 131188, 0, 1, 196724, 0, 1, 262260, 0, 1, 327796, 0, 1, 393332, 0, 1, 458868, 0, 1, 524404, 0, 1, 589940, 0, 1, -524171, 0, 1, -458635, 0, 1, -393099, 0, 1, -327563, 0, 1, -262027, 0, 1, -196491, 0, 1, -130955, 0, 1, -65419, 0, 1, 117, 0, 1, 65653, 0, 1, 131189, 0, 1, 196725, 0, 1, 262261, 0, 1, 327797, 0, 1, 393333, 0, 1, 458869, 0, 1, 524405, 0, 1, 589941, 0, 1, -524170, 0, 1, -458634, 0, 1, -393098, 0, 1, -327562, 0, 1, -262026, 0, 1, -196490, 0, 1, -130954, 0, 1, -65418, 0, 1, 118, 0, 1, 65654, 0, 1, 131190, 0, 1, 196726, 0, 1, 262262, 0, 1, 327798, 0, 1, 393334, 0, 1, 458870, 0, 1, 524406, 0, 1, 589942, 0, 1, 655431, 0, 1, 720967, 0, 1, 786503, 0, 1, 852039, 0, 1, 917575, 0, 1, 983111, 0, 1, 1048647, 0, 1, 1114183, 0, 1, 1179719, 0, 1, 655432, 0, 1, 720968, 0, 1, 786504, 0, 1, 852040, 0, 1, 917576, 0, 1, 983112, 0, 1, 1048648, 0, 1, 1114184, 0, 1, 1179720, 0, 1, 655433, 0, 1, 720969, 0, 1, 786505, 0, 1, 852041, 0, 1, 917577, 0, 1, 983113, 0, 1, 1048649, 0, 1, 1114185, 0, 1, 1179721, 0, 1, 655434, 0, 1, 720970, 0, 1, 786506, 0, 1, 852042, 0, 1, 917578, 0, 1, 983114, 0, 1, 1048650, 0, 1, 1114186, 0, 1, 1179722, 0, 1, 655435, 0, 1, 720971, 0, 1, 786507, 0, 1, 852043, 0, 1, 917579, 0, 1, 983115, 0, 1, 1048651, 0, 1, 1114187, 0, 1, 1179723, 0, 1, 655436, 0, 1, 720972, 0, 1, 786508, 0, 1, 852044, 0, 1, 917580, 0, 1, 983116, 0, 1, 1048652, 0, 1, 1114188, 0, 1, 1179724, 0, 1, 655437, 0, 1, 720973, 0, 1, 786509, 0, 1, 852045, 0, 1, 917581, 0, 1, 983117, 0, 1, 1048653, 0, 1, 1114189, 0, 1, 1179725, 0, 1, 655438, 0, 1, 720974, 0, 1, 786510, 0, 1, 852046, 0, 1, 917582, 0, 1, 983118, 0, 1, 1048654, 0, 1, 1114190, 0, 1, 1179726, 0, 1, 655439, 0, 1, 720975, 0, 1, 786511, 0, 1, 852047, 0, 1, 917583, 0, 1, 983119, 0, 1, 1048655, 0, 1, 1114191, 0, 1, 1179727, 0, 1, 655440, 0, 1, 720976, 0, 1, 786512, 0, 1, 852048, 0, 1, 917584, 0, 1, 983120, 0, 1, 1048656, 0, 1, 1114192, 0, 1, 1179728, 0, 1, 655441, 0, 1, 720977, 0, 1, 786513, 0, 1, 852049, 0, 1, 917585, 0, 1, 983121, 0, 1, 1048657, 0, 1, 1114193, 0, 1, 1179729, 0, 1, 119, 0, 1, 65655, 0, 1, 131191, 0, 1, 196727, 0, 1, 262263, 0, 1, 327799, 0, 1, 393335, 0, 1, 458871, 0, 1, 524407, 0, 1, 589943, 0, 1, 655479, 0, 1, 721015, 0, 1, 786551, 0, 1, 852087, 0, 1, 917623, 0, 1, 983159, 0, 1, 1048695, 0, 1, 1114231, 0, 1, 120, 0, 1, 65656, 0, 1, 131192, 0, 1, 196728, 0, 1, 262264, 0, 1, 327800, 0, 1, 393336, 0, 1, 458872, 0, 1, 524408, 0, 1, 589944, 0, 1, 655480, 0, 1, 721016, 0, 1, 786552, 0, 1, 852088, 0, 1, 917624, 0, 1, 983160, 0, 1, 1048696, 0, 1, 1114232, 0, 1, 121, 0, 1, 65657, 0, 1, 131193, 0, 1, 196729, 0, 1, 262265, 0, 1, 327801, 0, 1, 393337, 0, 1, 458873, 0, 1, 524409, 0, 1, 589945, 0, 1, 655481, 0, 1, 721017, 0, 1, 786553, 0, 1, 852089, 0, 1, 917625, 0, 1, 983161, 0, 1, 1048697, 0, 1, 1114233, 0, 1, 122, 0, 1, 65658, 0, 1, 131194, 0, 1, 196730, 0, 1, 262266, 0, 1, 327802, 0, 1, 393338, 0, 1, 458874, 0, 1, 524410, 0, 1, 589946, 0, 1, 655482, 0, 1, 721018, 0, 1, 786554, 0, 1, 852090, 0, 1, 917626, 0, 1, 983162, 0, 1, 1048698, 0, 1, 1114234, 0, 1, 123, 0, 1, 65659, 0, 1, 131195, 0, 1, 196731, 0, 1, 262267, 0, 1, 327803, 0, 1, 393339, 0, 1, 458875, 0, 1, 524411, 0, 1, 589947, 0, 1, 655483, 0, 1, 721019, 0, 1, 786555, 0, 1, 852091, 0, 1, 917627, 0, 1, 983163, 0, 1, 1048699, 0, 1, 1114235, 0, 1, 124, 0, 1, 65660, 0, 1, 131196, 0, 1, 196732, 0, 1, 262268, 0, 1, 327804, 0, 1, 393340, 0, 1, 458876, 0, 1, 524412, 0, 1, 589948, 0, 1, 655484, 0, 1, 721020, 0, 1, 786556, 0, 1, 852092, 0, 1, 917628, 0, 1, 983164, 0, 1, 1048700, 0, 1, 1114236, 0, 1, 125, 0, 1, 65661, 0, 1, 131197, 0, 1, 196733, 0, 1, 262269, 0, 1, 327805, 0, 1, 393341, 0, 1, 458877, 0, 1, 524413, 0, 1, 589949, 0, 1, 655485, 0, 1, 721021, 0, 1, 786557, 0, 1, 852093, 0, 1, 917629, 0, 1, 983165, 0, 1, 1048701, 0, 1, 1114237, 0, 1, 126, 0, 1, 65662, 0, 1, 131198, 0, 1, 196734, 0, 1, 262270, 0, 1, 327806, 0, 1, 393342, 0, 1, 458878, 0, 1, 524414, 0, 1, 589950, 0, 1, 655486, 0, 1, 721022, 0, 1, 786558, 0, 1, 852094, 0, 1, 917630, 0, 1, 983166, 0, 1, 1048702, 0, 1, 1114238, 0, 1, 127, 0, 1, 65663, 0, 1, 131199, 0, 1, 196735, 0, 1, 262271, 0, 1, 327807, 0, 1, 393343, 0, 1, 458879, 0, 1, 524415, 0, 1, 589951, 0, 1, 655487, 0, 1, 721023, 0, 1, 786559, 0, 1, 852095, 0, 1, 917631, 0, 1, 983167, 0, 1, 1048703, 0, 1, 1114239, 0, 1, 128, 0, 1, 65664, 0, 1, 131200, 0, 1, 196736, 0, 1, 262272, 0, 1, 327808, 0, 1, 393344, 0, 1, 458880, 0, 1, 524416, 0, 1, 589952, 0, 1, 655488, 0, 1, 721024, 0, 1, 786560, 0, 1, 852096, 0, 1, 917632, 0, 1, 983168, 0, 1, 1048704, 0, 1, 1114240, 0, 1, 129, 0, 1, 65665, 0, 1, 131201, 0, 1, 196737, 0, 1, 262273, 0, 1, 327809, 0, 1, 393345, 0, 1, 458881, 0, 1, 524417, 0, 1, 589953, 0, 1, 655489, 0, 1, 721025, 0, 1, 786561, 0, 1, 852097, 0, 1, 917633, 0, 1, 983169, 0, 1, 1048705, 0, 1, 1114241, 0, 1, 130, 0, 1, 65666, 0, 1, 131202, 0, 1, 196738, 0, 1, 262274, 0, 1, 327810, 0, 1, 393346, 0, 1, 458882, 0, 1, 524418, 0, 1, 589954, 0, 1, 655490, 0, 1, 721026, 0, 1, 786562, 0, 1, 852098, 0, 1, 917634, 0, 1, 983170, 0, 1, 1048706, 0, 1, 1114242, 0, 1, 131, 0, 1, 65667, 0, 1, 131203, 0, 1, 196739, 0, 1, 262275, 0, 1, 327811, 0, 1, 393347, 0, 1, 458883, 0, 1, 524419, 0, 1, 589955, 0, 1, 655491, 0, 1, 721027, 0, 1, 786563, 0, 1, 852099, 0, 1, 917635, 0, 1, 983171, 0, 1, 1048707, 0, 1, 1114243, 0, 1, 132, 0, 1, 65668, 0, 1, 131204, 0, 1, 196740, 0, 1, 262276, 0, 1, 327812, 0, 1, 393348, 0, 1, 458884, 0, 1, 524420, 0, 1, 589956, 0, 1, 655492, 0, 1, 721028, 0, 1, 786564, 0, 1, 852100, 0, 1, 917636, 0, 1, 983172, 0, 1, 1048708, 0, 1, 1114244, 0, 1, 133, 0, 1, 65669, 0, 1, 131205, 0, 1, 196741, 0, 1, 262277, 0, 1, 327813, 0, 1, 393349, 0, 1, 458885, 0, 1, 524421, 0, 1, 589957, 0, 1, 655493, 0, 1, 721029, 0, 1, 786565, 0, 1, 852101, 0, 1, 917637, 0, 1, 983173, 0, 1, 1048709, 0, 1, 1114245, 0, 1, 1179767, 0, 1, 1245303, 0, 1, 1179768, 0, 1, 1245304, 0, 1, 1179769, 0, 1, 1245305, 0, 1, 1179770, 0, 1, 1245306, 0, 1, 1179771, 0, 1, 1245307, 0, 1, 1179772, 0, 1, 1245308, 0, 1, 1245255, 0, 1, 1245256, 0, 1, 1245257, 0, 1, 1245258, 0, 1, 1245259, 0, 1, 1245260, 0, 1, 1245261, 0, 1, 1245262, 0, 1, 1245263, 0, 1, 1245264, 0, 1, 1245265, 0, 1, 1179773, 0, 1, 1245309, 0, 1, 1179774, 0, 1, 1245310, 0, 1, 1179775, 0, 1, 1245311, 0, 1, 1179776, 0, 1, 1245312, 0, 1, 1179777, 0, 1, 1245313, 0, 1, 1179778, 0, 1, 1245314, 0, 1, 1179779, 0, 1, 1245315, 0, 1, 1179780, 0, 1, 1245316, 0, 1, 1179781, 0, 1, 1245317, 0, 1, 2097204, 0, 1, 2162740, 0, 1, 2228276, 0, 1, 2097205, 0, 1, 2162741, 0, 1, 2228277, 0, 1, 2097206, 0, 1, 2162742, 0, 1, 2228278, 0, 1, 2097207, 0, 1, 2162743, 0, 1, 2228279, 0, 1, 2097208, 0, 1, 2162744, 0, 1, 2228280, 0, 1, 2097209, 0, 1, 2162745, 0, 1, 2228281, 0, 1, 2097210, 0, 1, 2162746, 0, 1, 2228282, 0, 1, 2097211, 0, 1, 2162747, 0, 1, 2228283, 0, 1, 2097212, 0, 1, 2162748, 0, 1, 2228284, 0, 1, 2097213, 0, 1, 2162749, 0, 1, 2228285, 0, 1, 2097214, 0, 1, 2162750, 0, 1, 2228286, 0, 1, 2097215, 0, 1, 2162751, 0, 1, 2228287, 0, 1, 2097216, 0, 1, 2162752, 0, 1, 2228288, 0, 1, 2097217, 0, 1, 2162753, 0, 1, 2228289, 0, 1, 2097218, 0, 1, 2162754, 0, 1, 2228290, 0, 1, 2097219, 0, 1, 2162755, 0, 1, 2228291, 0, 1, 2097220, 0, 1, 2162756, 0, 1, 2228292, 0, 1, 2097221, 0, 1, 2162757, 0, 1, 2228293, 0, 1, 2097222, 0, 1, 2162758, 0, 1, 2228294, 0, 1, 2097223, 0, 1, 2162759, 0, 1, 2228295, 0, 1, 2097224, 0, 1, 2162760, 0, 1, 2228296, 0, 1, 2097225, 0, 1, 2162761, 0, 1, 2228297, 0, 1, 2097226, 0, 1, 2162762, 0, 1, 2228298, 0, 1, 2097227, 0, 1, 2162763, 0, 1, 2228299, 0, 1, 2097228, 0, 1, 2162764, 0, 1, 2228300, 0, 1, 2097229, 0, 1, 2162765, 0, 1, 2228301, 0, 1, 2097230, 0, 1, 2162766, 0, 1, 2228302, 0, 1, 2097231, 0, 1, 2162767, 0, 1, 2228303, 0, 1, 2097232, 0, 1, 2162768, 0, 1, 2228304, 0, 1, 2097233, 0, 1, 2162769, 0, 1, 2228305, 0, 1, 2097234, 0, 1, 2162770, 0, 1, 2228306, 0, 1, 2097235, 0, 1, 2162771, 0, 1, 2228307, 0, 1, 655442, 0, 1, 720978, 0, 1, 786514, 0, 1, 852050, 0, 1, 917586, 0, 1, 983122, 0, 1, 1048658, 0, 1, 1114194, 0, 1, 1179730, 0, 1, 1245266, 0, 1, 655443, 0, 1, 720979, 0, 1, 786515, 0, 1, 852051, 0, 1, 917587, 0, 1, 983123, 0, 1, 1048659, 0, 1, 1114195, 0, 1, 1179731, 0, 1, 1245267, 0, 1, 2293812, 0, 1, 2293813, 0, 1, 2293814, 0, 1, 2293815, 0, 1, 2293816, 0, 1, 2293817, 0, 1, 2293818, 0, 1, 2293819, 0, 1, 2293820, 0, 1, 2293821, 0, 1, 2293822, 0, 1, 2293823, 0, 1, 2293824, 0, 1, 2293825, 0, 1, 2293826, 0, 1, 2293827, 0, 1, 2293828, 0, 1, 2293829, 0, 1, 2293830, 0, 1, 2293831, 0, 1, 2293832, 0, 1, 2293833, 0, 1, 2293834, 0, 1, 2293835, 0, 1, 2293836, 0, 1, 2293837, 0, 1, 2293838, 0, 1, 2293839, 0, 1, 2293840, 0, 1, 2293841, 0, 1, 2293842, 0, 1, 2293843, 0, 1, 1310768, 0, 1, 1376304, 0, 1, 1310769, 0, 1, 1376305, 0, 1, 1310770, 0, 1, 1376306, 0, 1, 1310771, 0, 1, 1376307, 0, 1, 1310772, 0, 1, 1376308, 0, 1, 1310773, 0, 1, 1376309, 0, 1, 1310774, 0, 1, 1376310, 0, 1, 1310775, 0, 1, 1376311, 0, 1, 1310776, 0, 1, 1376312, 0, 1, 1310777, 0, 1, 1376313, 0, 1, 1310778, 0, 1, 1376314, 0, 1, 1310779, 0, 1, 1376315, 0, 1, 1310780, 0, 1, 1376316, 0, 1, 1310781, 0, 1, 1376317, 0, 1, 1310782, 0, 1, 1376318, 0, 1, 1310783, 0, 1, 1376319, 0, 1, 1441854, 0, 1, 1507390, 0, 1, 1572926, 0, 1, 1638462, 0, 1, 1703998, 0, 1, 1769534, 0, 1, 1835070, 0, 1, 1900606, 0, 1, 1966142, 0, 1, 2031678, 0, 1, 1441855, 0, 1, 1507391, 0, 1, 1572927, 0, 1, 1638463, 0, 1, 1703999, 0, 1, 1769535, 0, 1, 1835071, 0, 1, 1900607, 0, 1, 1966143, 0, 1, 2031679, 0, 1, -131082, 0, 1, -65546, 0, 1, -65545, 0, 1, -65544, 0, 1, -131080, 0, 1, -131081, 0, 1, -131079, 0, 1, -131078, 0, 1, -65542, 0, 1, -65543, 0, 1, -65541, 0, 1, -131077, 0, 1, -10, 65539, 7, -9, 65539, 7, -8, 65539, 7, -7, 65539, 7, -6, 65539, 7, -5, 65539, 7, -262163, 0, 1, -262162, 0, 1, -262161, 0, 1, -524304, 0, 1, -458768, 0, 1, -262160, 0, 1, -524303, 0, 1, -458767, 0, 1, -262159, 0, 1, -524302, 0, 1, -458766, 0, 1, -262158, 0, 1, -524301, 0, 1, -458765, 0, 1, -262157, 0, 1, -655372, 0, 1, -589836, 0, 1, -524300, 0, 1, -458764, 0, 1, -262156, 0, 1, -589835, 0, 1, -524299, 0, 1, -458763, 0, 1, -393227, 0, 1, -262155, 0, 1, -589834, 0, 1, -524298, 0, 1, -458762, 0, 1, -393226, 0, 1, -327690, 0, 1, -262154, 0, 1, -196618, 0, 1, -589833, 0, 1, -524297, 0, 1, -458761, 0, 1, -393225, 0, 1, -327689, 0, 1, -262153, 0, 1, -196617, 0, 1, -589832, 0, 1, -524296, 0, 1, -458760, 0, 1, -393224, 0, 1, -327688, 0, 1, -262152, 0, 1, -196616, 0, 1, -589831, 0, 1, -524295, 0, 1, -458759, 0, 1, -393223, 0, 1, -327687, 0, 1, -262151, 0, 1, -196615, 0, 1, -589830, 0, 1, -524294, 0, 1, -458758, 0, 1, -393222, 0, 1, -327686, 0, 1, -262150, 0, 1, -196614, 0, 1, -589829, 0, 1, -524293, 0, 1, -458757, 0, 1, -393221, 0, 1, -327685, 0, 1, -262149, 0, 1, -196613, 0, 1, -589828, 0, 1, -524292, 0, 1, -458756, 0, 1, -393220, 0, 1, -327684, 0, 1, -262148, 0, 1, -196612, 0, 1, -589827, 0, 1, -524291, 0, 1, -458755, 0, 1, -393219, 0, 1, -327683, 0, 1, -262147, 0, 1, -196611, 0, 1, -589826, 0, 1, -524290, 0, 1, -458754, 0, 1, -393218, 0, 1, -327682, 0, 1, -262146, 0, 1, -196610, 0, 1, -589825, 0, 1, -524289, 0, 1, -458753, 0, 1, -393217, 0, 1, -327681, 0, 1, -262145, 0, 1, -196609, 0, 1, -655360, 0, 1, -589824, 0, 1, -524288, 0, 1, -458752, 0, 1, -393216, 0, 1, -327680, 0, 1, -262144, 0, 1, -655359, 0, 1, -589823, 0, 1, -524287, 0, 1, -458751, 0, 1, -393215, 0, 1, -327679, 0, 1, -262143, 0, 1, -655358, 0, 1, -589822, 0, 1, -524286, 0, 1, -458750, 0, 1, -393214, 0, 1, -327678, 0, 1, -262142, 0, 1, -655357, 0, 1, -589821, 0, 1, -524285, 0, 1, -458749, 0, 1, -393213, 0, 1, -327677, 0, 1, -262141, 0, 1, -655356, 0, 1, -589820, 0, 1, -524284, 0, 1, -458748, 0, 1, -393212, 0, 1, -327676, 0, 1, -262140, 0, 1, -655355, 0, 1, -589819, 0, 1, -524283, 0, 1, -458747, 0, 1, -393211, 0, 1, -327675, 0, 1, -262139, 0, 1, -655354, 0, 1, -589818, 0, 1, -524282, 0, 1, -458746, 0, 1, -393210, 0, 1, -327674, 0, 1, -262138, 0, 1, -655353, 0, 1, -589817, 0, 1, -524281, 0, 1, -458745, 0, 1, -393209, 0, 1, -327673, 0, 1, -262137, 0, 1, -655352, 0, 1, -589816, 0, 1, -524280, 0, 1, -458744, 0, 1, -393208, 0, 1, -327672, 0, 1, -262136, 0, 1, -655351, 0, 1, -589815, 0, 1, -524279, 0, 1, -458743, 0, 1, -393207, 0, 1, -327671, 0, 1, -262135, 0, 1, -655350, 0, 1, -589814, 0, 1, -524278, 0, 1, -458742, 0, 1, -393206, 0, 1, -327670, 0, 1, -262134, 0, 1, -655349, 0, 1, -589813, 0, 1, -524277, 0, 1, -458741, 0, 1, -393205, 0, 1, -327669, 0, 1, -262133, 0, 1, -655348, 0, 1, -589812, 0, 1, -524276, 0, 1, -458740, 0, 1, -393204, 0, 1, -327668, 0, 1, -262132, 0, 1) +layer_3/tile_data = PackedInt32Array(-917533, 0, 1, -851997, 0, 1, -786461, 0, 1, -720925, 0, 1, -655389, 0, 1, -917532, 0, 1, -851996, 0, 1, -786460, 0, 1, -720924, 0, 1, -655388, 0, 1, -917531, 0, 1, -851995, 0, 1, -786459, 0, 1, -720923, 0, 1, -655387, 0, 1, -917530, 0, 1, -851994, 0, 1, -786458, 0, 1, -720922, 0, 1, -655386, 0, 1, -917529, 0, 1, -851993, 0, 1, -786457, 0, 1, -720921, 0, 1, -655385, 0, 1, -917528, 0, 1, -851992, 0, 1, -786456, 0, 1, -720920, 0, 1, -655384, 0, 1, -917527, 0, 1, -851991, 0, 1, -786455, 0, 1, -720919, 0, 1, -655383, 0, 1, -917526, 0, 1, -851990, 0, 1, -786454, 0, 1, -720918, 0, 1, -655382, 0, 1, -917525, 0, 1, -851989, 0, 1, -786453, 0, 1, -720917, 0, 1, -655381, 0, 1, -1310740, 0, 1, -1245204, 0, 1, -1179668, 0, 1, -1114132, 0, 1, -1048596, 0, 1, -983060, 0, 1, -917524, 0, 1, -851988, 0, 1, -786452, 0, 1, -720916, 0, 1, -655380, 0, 1, -589844, 0, 1, -524308, 0, 1, -458772, 0, 1, -393236, 0, 1, -327700, 0, 1, -262164, 0, 1, -1310739, 0, 1, -1245203, 0, 1, -1179667, 0, 1, -1114131, 0, 1, -1048595, 0, 1, -983059, 0, 1, -917523, 0, 1, -851987, 0, 1, -786451, 0, 1, -720915, 0, 1, -655379, 0, 1, -589843, 0, 1, -524307, 0, 1, -458771, 0, 1, -393235, 0, 1, -327699, 0, 1, -1310738, 0, 1, -1245202, 0, 1, -1179666, 0, 1, -1114130, 0, 1, -1048594, 0, 1, -983058, 0, 1, -917522, 0, 1, -851986, 0, 1, -786450, 0, 1, -720914, 0, 1, -655378, 0, 1, -589842, 0, 1, -524306, 0, 1, -458770, 0, 1, -393234, 0, 1, -327698, 0, 1, -1310737, 0, 1, -1245201, 0, 1, -1179665, 0, 1, -1114129, 0, 1, -1048593, 0, 1, -983057, 0, 1, -917521, 0, 1, -851985, 0, 1, -786449, 0, 1, -720913, 0, 1, -655377, 0, 1, -589841, 0, 1, -524305, 0, 1, -458769, 0, 1, -393233, 0, 1, -327697, 0, 1, -1310736, 0, 1, -1245200, 0, 1, -1179664, 0, 1, -1114128, 0, 1, -1048592, 0, 1, -983056, 0, 1, -917520, 0, 1, -851984, 0, 1, -786448, 0, 1, -720912, 0, 1, -655376, 0, 1, -589840, 0, 1, -393232, 0, 1, -327696, 0, 1, -1310735, 0, 1, -1245199, 0, 1, -1179663, 0, 1, -1114127, 0, 1, -1048591, 0, 1, -983055, 0, 1, -917519, 0, 1, -851983, 0, 1, -786447, 0, 1, -720911, 0, 1, -655375, 0, 1, -589839, 0, 1, -393231, 0, 1, -327695, 0, 1, -1310734, 0, 1, -1245198, 0, 1, -1179662, 0, 1, -1114126, 0, 1, -1048590, 0, 1, -983054, 0, 1, -917518, 0, 1, -851982, 0, 1, -786446, 0, 1, -720910, 0, 1, -655374, 0, 1, -589838, 0, 1, -393230, 0, 1, -327694, 0, 1, -1310733, 0, 1, -1245197, 0, 1, -1179661, 0, 1, -1114125, 0, 1, -1048589, 0, 1, -983053, 0, 1, -917517, 0, 1, -851981, 0, 1, -786445, 0, 1, -720909, 0, 1, -655373, 0, 1, -589837, 0, 1, -393229, 0, 1, -327693, 0, 1, -1310732, 0, 1, -1245196, 0, 1, -1179660, 0, 1, -1114124, 0, 1, -1048588, 0, 1, -983052, 0, 1, -917516, 0, 1, -851980, 0, 1, -786444, 0, 1, -720908, 0, 1, -393228, 0, 1, -327692, 0, 1, -1310731, 0, 1, -1245195, 0, 1, -1179659, 0, 1, -1114123, 0, 1, -1048587, 0, 1, -983051, 0, 1, -917515, 0, 1, -851979, 0, 1, -786443, 0, 1, -720907, 0, 1, -655371, 0, 1, -327691, 0, 1, -1310730, 0, 1, -1245194, 0, 1, -1179658, 0, 1, -1114122, 0, 1, -1048586, 0, 1, -983050, 0, 1, -917514, 0, 1, -851978, 0, 1, -786442, 0, 1, -720906, 0, 1, -655370, 0, 1, -1179650, 0, 1, -1114114, 0, 1, -1048578, 0, 1, -983042, 0, 1, -1310721, 0, 1, -1245185, 0, 1, -1179649, 0, 1, -1114113, 0, 1, -1048577, 0, 1, -983041, 0, 1, -1507328, 0, 1, -1441792, 0, 1, -1376256, 0, 1, -1310720, 0, 1, -1245184, 0, 1, -1179648, 0, 1, -1114112, 0, 1, -1048576, 0, 1, -1638399, 0, 1, -1572863, 0, 1, -1507327, 0, 1, -1441791, 0, 1, -1376255, 0, 1, -1310719, 0, 1, -1245183, 0, 1, -1179647, 0, 1, -1114111, 0, 1, -1048575, 0, 1, -1769470, 0, 1, -1703934, 0, 1, -1638398, 0, 1, -1572862, 0, 1, -1507326, 0, 1, -1441790, 0, 1, -1376254, 0, 1, -1310718, 0, 1, -1245182, 0, 1, -1179646, 0, 1, -1114110, 0, 1, -1048574, 0, 1, -1900541, 0, 1, -1835005, 0, 1, -1769469, 0, 1, -1703933, 0, 1, -1638397, 0, 1, -1572861, 0, 1, -1507325, 0, 1, -1441789, 0, 1, -1376253, 0, 1, -1310717, 0, 1, -1245181, 0, 1, -1179645, 0, 1, -1114109, 0, 1, -1048573, 0, 1, -2031612, 0, 1, -1966076, 0, 1, -1900540, 0, 1, -1835004, 0, 1, -1769468, 0, 1, -1703932, 0, 1, -1638396, 0, 1, -1572860, 0, 1, -1507324, 0, 1, -1441788, 0, 1, -1376252, 0, 1, -1310716, 0, 1, -1245180, 0, 1, -1179644, 0, 1, -1114108, 0, 1, -1048572, 0, 1, -2162683, 0, 1, -2097147, 0, 1, -2031611, 0, 1, -1966075, 0, 1, -1900539, 0, 1, -1835003, 0, 1, -1769467, 0, 1, -1703931, 0, 1, -1638395, 0, 1, -1572859, 0, 1, -1507323, 0, 1, -1441787, 0, 1, -1376251, 0, 1, -1310715, 0, 1, -1245179, 0, 1, -1179643, 0, 1, -1114107, 0, 1, -1048571, 0, 1, -2293754, 0, 1, -2228218, 0, 1, -2162682, 0, 1, -2097146, 0, 1, -2031610, 0, 1, -1966074, 0, 1, -1900538, 0, 1, -1835002, 0, 1, -1769466, 0, 1, -1703930, 0, 1, -1638394, 0, 1, -1572858, 0, 1, -1507322, 0, 1, -1441786, 0, 1, -1376250, 0, 1, -1310714, 0, 1, -1245178, 0, 1, -1179642, 0, 1, -1114106, 0, 1, -1048570, 0, 1, -2293753, 0, 1, -2228217, 0, 1, -2162681, 0, 1, -2097145, 0, 1, -2031609, 0, 1, -1966073, 0, 1, -1900537, 0, 1, -1835001, 0, 1, -1769465, 0, 1, -1703929, 0, 1, -1638393, 0, 1, -1572857, 0, 1, -1507321, 0, 1, -1441785, 0, 1, -1376249, 0, 1, -1310713, 0, 1, -1245177, 0, 1, -1179641, 0, 1, -1114105, 0, 1, -1048569, 0, 1, -2293752, 0, 1, -2228216, 0, 1, -2162680, 0, 1, -2097144, 0, 1, -2031608, 0, 1, -1966072, 0, 1, -1900536, 0, 1, -1835000, 0, 1, -1769464, 0, 1, -1703928, 0, 1, -1638392, 0, 1, -1572856, 0, 1, -1507320, 0, 1, -1441784, 0, 1, -1376248, 0, 1, -1310712, 0, 1, -1245176, 0, 1, -1179640, 0, 1, -1114104, 0, 1, -1048568, 0, 1, -2293751, 0, 1, -2228215, 0, 1, -2162679, 0, 1, -2097143, 0, 1, -2031607, 0, 1, -1966071, 0, 1, -1900535, 0, 1, -1834999, 0, 1, -1769463, 0, 1, -1703927, 0, 1, -1638391, 0, 1, -1572855, 0, 1, -1507319, 0, 1, -1441783, 0, 1, -1376247, 0, 1, -1310711, 0, 1, -1245175, 0, 1, -1179639, 0, 1, -1114103, 0, 1, -1048567, 0, 1, -2293750, 0, 1, -2228214, 0, 1, -2162678, 0, 1, -2097142, 0, 1, -2031606, 0, 1, -1966070, 0, 1, -1900534, 0, 1, -1834998, 0, 1, -1769462, 0, 1, -1703926, 0, 1, -1638390, 0, 1, -1572854, 0, 1, -1507318, 0, 1, -1441782, 0, 1, -1376246, 0, 1, -1310710, 0, 1, -1245174, 0, 1, -1179638, 0, 1, -1114102, 0, 1, -1048566, 0, 1, -2293749, 0, 1, -2228213, 0, 1, -2162677, 0, 1, -2097141, 0, 1, -2031605, 0, 1, -1966069, 0, 1, -1900533, 0, 1, -1834997, 0, 1, -1769461, 0, 1, -1703925, 0, 1, -1638389, 0, 1, -1572853, 0, 1, -1507317, 0, 1, -1441781, 0, 1, -1376245, 0, 1, -1310709, 0, 1, -1245173, 0, 1, -1179637, 0, 1, -1114101, 0, 1, -1048565, 0, 1, -2293748, 0, 1, -2228212, 0, 1, -2162676, 0, 1, -2097140, 0, 1, -2031604, 0, 1, -1966068, 0, 1, -1900532, 0, 1, -1834996, 0, 1, -1769460, 0, 1, -1703924, 0, 1, -1638388, 0, 1, -1572852, 0, 1, -1507316, 0, 1, -1441780, 0, 1, -1376244, 0, 1, -1310708, 0, 1, -1245172, 0, 1, -1179636, 0, 1, -1114100, 0, 1, -1048564, 0, 1, -2293747, 0, 1, -2228211, 0, 1, -2162675, 0, 1, -2097139, 0, 1, -2031603, 0, 1, -1966067, 0, 1, -1900531, 0, 1, -1834995, 0, 1, -1769459, 0, 1, -1703923, 0, 1, -1638387, 0, 1, -1572851, 0, 1, -1507315, 0, 1, -1441779, 0, 1, -1376243, 0, 1, -1310707, 0, 1, -1245171, 0, 1, -1179635, 0, 1, -1114099, 0, 1, -1048563, 0, 1, -2293746, 0, 1, -2228210, 0, 1, -2162674, 0, 1, -2097138, 0, 1, -2031602, 0, 1, -1966066, 0, 1, -1900530, 0, 1, -1834994, 0, 1, -1769458, 0, 1, -1703922, 0, 1, -1638386, 0, 1, -1572850, 0, 1, -1507314, 0, 1, -1441778, 0, 1, -1376242, 0, 1, -1310706, 0, 1, -1245170, 0, 1, -1179634, 0, 1, -1114098, 0, 1, -1048562, 0, 1, -2293745, 0, 1, -2228209, 0, 1, -2162673, 0, 1, -2097137, 0, 1, -2031601, 0, 1, -1966065, 0, 1, -1900529, 0, 1, -1834993, 0, 1, -1769457, 0, 1, -1703921, 0, 1, -1638385, 0, 1, -1572849, 0, 1, -1507313, 0, 1, -1441777, 0, 1, -1376241, 0, 1, -1310705, 0, 1, -1245169, 0, 1, -1179633, 0, 1, -1114097, 0, 1, -1048561, 0, 1, -2293744, 0, 1, -2228208, 0, 1, -2162672, 0, 1, -2097136, 0, 1, -2031600, 0, 1, -1966064, 0, 1, -1900528, 0, 1, -1834992, 0, 1, -1769456, 0, 1, -1703920, 0, 1, -1638384, 0, 1, -1572848, 0, 1, -1507312, 0, 1, -1441776, 0, 1, -1376240, 0, 1, -1310704, 0, 1, -1245168, 0, 1, -1179632, 0, 1, -1114096, 0, 1, -1048560, 0, 1, -2293743, 0, 1, -2228207, 0, 1, -2162671, 0, 1, -2097135, 0, 1, -2031599, 0, 1, -1966063, 0, 1, -1900527, 0, 1, -1834991, 0, 1, -1769455, 0, 1, -1703919, 0, 1, -1638383, 0, 1, -1572847, 0, 1, -1507311, 0, 1, -1441775, 0, 1, -1376239, 0, 1, -1310703, 0, 1, -1245167, 0, 1, -1179631, 0, 1, -1114095, 0, 1, -1048559, 0, 1, -2293742, 0, 1, -2228206, 0, 1, -2162670, 0, 1, -2097134, 0, 1, -2031598, 0, 1, -1966062, 0, 1, -1900526, 0, 1, -1834990, 0, 1, -1769454, 0, 1, -1703918, 0, 1, -1638382, 0, 1, -1572846, 0, 1, -1507310, 0, 1, -1441774, 0, 1, -1376238, 0, 1, -1310702, 0, 1, -1245166, 0, 1, -1179630, 0, 1, -1114094, 0, 1, -1048558, 0, 1, -983022, 0, 1, -917486, 0, 1, -851950, 0, 1, -786414, 0, 1, -720878, 0, 1, -655342, 0, 1, -589806, 0, 1, -524270, 0, 1, -2293741, 0, 1, -2228205, 0, 1, -2162669, 0, 1, -2097133, 0, 1, -2031597, 0, 1, -1966061, 0, 1, -1900525, 0, 1, -1834989, 0, 1, -1769453, 0, 1, -1703917, 0, 1, -1638381, 0, 1, -1572845, 0, 1, -1507309, 0, 1, -1441773, 0, 1, -1376237, 0, 1, -1310701, 0, 1, -1245165, 0, 1, -1179629, 0, 1, -1114093, 0, 1, -1048557, 0, 1, -983021, 0, 1, -917485, 0, 1, -851949, 0, 1, -786413, 0, 1, -720877, 0, 1, -655341, 0, 1, -589805, 0, 1, -524269, 0, 1, -2293740, 0, 1, -2228204, 0, 1, -2162668, 0, 1, -2097132, 0, 1, -2031596, 0, 1, -1966060, 0, 1, -1900524, 0, 1, -1834988, 0, 1, -1769452, 0, 1, -1703916, 0, 1, -1638380, 0, 1, -1572844, 0, 1, -1507308, 0, 1, -1441772, 0, 1, -1376236, 0, 1, -1310700, 0, 1, -1245164, 0, 1, -1179628, 0, 1, -1114092, 0, 1, -1048556, 0, 1, -983020, 0, 1, -917484, 0, 1, -851948, 0, 1, -786412, 0, 1, -720876, 0, 1, -655340, 0, 1, -589804, 0, 1, -524268, 0, 1, -2293739, 0, 1, -2228203, 0, 1, -2162667, 0, 1, -2097131, 0, 1, -2031595, 0, 1, -1966059, 0, 1, -1900523, 0, 1, -1834987, 0, 1, -1769451, 0, 1, -1703915, 0, 1, -1638379, 0, 1, -1572843, 0, 1, -1507307, 0, 1, -1441771, 0, 1, -1376235, 0, 1, -1310699, 0, 1, -1245163, 0, 1, -1179627, 0, 1, -1114091, 0, 1, -1048555, 0, 1, -983019, 0, 1, -917483, 0, 1, -851947, 0, 1, -786411, 0, 1, -720875, 0, 1, -655339, 0, 1, -589803, 0, 1, -524267, 0, 1, -2293738, 0, 1, -2228202, 0, 1, -2162666, 0, 1, -2097130, 0, 1, -2031594, 0, 1, -1966058, 0, 1, -1900522, 0, 1, -1834986, 0, 1, -1769450, 0, 1, -1703914, 0, 1, -1638378, 0, 1, -1572842, 0, 1, -1507306, 0, 1, -1441770, 0, 1, -1376234, 0, 1, -1310698, 0, 1, -1245162, 0, 1, -1179626, 0, 1, -1114090, 0, 1, -1048554, 0, 1, -983018, 0, 1, -917482, 0, 1, -851946, 0, 1, -786410, 0, 1, -720874, 0, 1, -655338, 0, 1, -589802, 0, 1, -524266, 0, 1, -2293737, 0, 1, -2228201, 0, 1, -2162665, 0, 1, -2097129, 0, 1, -2031593, 0, 1, -1966057, 0, 1, -1900521, 0, 1, -1834985, 0, 1, -1769449, 0, 1, -1703913, 0, 1, -1638377, 0, 1, -1572841, 0, 1, -1507305, 0, 1, -1441769, 0, 1, -1376233, 0, 1, -1310697, 0, 1, -1245161, 0, 1, -1179625, 0, 1, -1114089, 0, 1, -1048553, 0, 1, -983017, 0, 1, -917481, 0, 1, -851945, 0, 1, -786409, 0, 1, -720873, 0, 1, -655337, 0, 1, -589801, 0, 1, -524265, 0, 1, -393199, 3, 6, -327663, 3, 6, -262127, 3, 6, -196591, 3, 6, -65539, 3, 5, -3, 3, 6, 65533, 3, 7, -65538, 65539, 5, -2, 65539, 6, 65534, 65539, 7, -65537, 131075, 5, -1, 131075, 6, 65535, 131075, 7, -131054, 0, 1, -65518, 0, 1, 18, 0, 1, 19, 0, 1, -65517, 0, 1, -131053, 0, 1, 65555, 0, 1, 131091, 0, 1, 131090, 0, 1, 65554, 0, 1, 20, 0, 1, -65516, 0, 1, -65515, 0, 1, -131051, 0, 1, -131052, 0, 1, -131050, 0, 1, -65514, 0, 1, 131094, 0, 1, 196630, 0, 1, 196629, 0, 1, 131093, 0, 1, 65557, 0, 1, 21, 0, 1, 131092, 0, 1, 65556, 0, 1, 196628, 0, 1, 262164, 0, 1, 196627, 0, 1, 262163, 0, 1, 196626, 0, 1, 262162, 0, 1, 262161, 0, 1, 196625, 0, 1, 262165, 0, 1, 327700, 0, 1, 327699, 0, 1, 327698, 0, 1, 262160, 0, 1, 196624, 0, 1, 196623, 0, 1, 196622, 0, 1, 262158, 0, 1, 262157, 0, 1, 262156, 0, 1, 196621, 0, 1, 262127, 0, 1, 327663, 0, 1, 393199, 0, 1, 262128, 0, 1, 327664, 0, 1, 393200, 0, 1, 262129, 0, 1, 327665, 0, 1, 393201, 0, 1, 262130, 0, 1, 327666, 0, 1, 393202, 0, 1, 262131, 0, 1, 327667, 0, 1, 393203, 0, 1, 262132, 0, 1, 327668, 0, 1, 393204, 0, 1, 262133, 0, 1, 327669, 0, 1, 393205, 0, 1, 262134, 0, 1, 327670, 0, 1, 393206, 0, 1, 262135, 0, 1, 327671, 0, 1, 393207, 0, 1, 262136, 0, 1, 327672, 0, 1, 393208, 0, 1, 262137, 0, 1, 327673, 0, 1, 393209, 0, 1, 262138, 0, 1, 327674, 0, 1, 393210, 0, 1, 262139, 0, 1, 327675, 0, 1, 393211, 0, 1, 262140, 0, 1, 327676, 0, 1, 393212, 0, 1, 262141, 0, 1, 327677, 0, 1, 393213, 0, 1, 262142, 0, 1, 327678, 0, 1, 393214, 0, 1, 262143, 0, 1, 327679, 0, 1, 393215, 0, 1, 196608, 0, 1, 262144, 0, 1, 327680, 0, 1, 196609, 0, 1, 262145, 0, 1, 327681, 0, 1, 196610, 0, 1, 262146, 0, 1, 327682, 0, 1, 196611, 0, 1, 262147, 0, 1, 327683, 0, 1, 196612, 0, 1, 262148, 0, 1, 327684, 0, 1, 196613, 0, 1, 262149, 0, 1, 327685, 0, 1, 196614, 0, 1, 262150, 0, 1, 327686, 0, 1, 196615, 0, 1, 262151, 0, 1, 327687, 0, 1, 196616, 0, 1, 262152, 0, 1, 327688, 0, 1, 196617, 0, 1, 262153, 0, 1, 327689, 0, 1, 196618, 0, 1, 262154, 0, 1, 327690, 0, 1, 196619, 0, 1, 262155, 0, 1, 327691, 0, 1, 196620, 0, 1, 327692, 0, 1, 327693, 0, 1, 327694, 0, 1, 262159, 0, 1, 327695, 0, 1, 327696, 0, 1, 327697, 0, 1, 458736, 0, 1, 458737, 0, 1, 524274, 0, 1, 589811, 0, 1, 524276, 0, 1, 458740, 0, 1, 458741, 0, 1, 458739, 0, 1, 458738, 0, 1, 458742, 0, 1, 524277, 0, 1, 524278, 0, 1, 524279, 0, 1, 458744, 0, 1, 458745, 0, 1, 524280, 0, 1, 589815, 0, 1, 524275, 0, 1, 458743, 0, 1, 589816, 0, 1, 589817, 0, 1, 524282, 0, 1, 458746, 0, 1, 458747, 0, 1, 458748, 0, 1, 524283, 0, 1, 458749, 0, 1, 458750, 0, 1, 458751, 0, 1, 524287, 0, 1, 458752, 0, 1, 524284, 0, 1, 524285, 0, 1, 524286, 0, 1, 458753, 0, 1, 393218, 0, 1, 393217, 0, 1, 393216, 0, 1, 524281, 0, 1, 458754, 0, 1, 458755, 0, 1, 458756, 0, 1, 458757, 0, 1, 524293, 0, 1, 393219, 0, 1, 393220, 0, 1, 393221, 0, 1, 393222, 0, 1, 393223, 0, 1, 393224, 0, 1, 393225, 0, 1, 393226, 0, 1, 393227, 0, 1, 393228, 0, 1, -196577, 0, 1, -262113, 0, 1, -262112, 0, 1, -327648, 0, 1, -393184, 0, 1, -458720, 0, 1, -458721, 0, 1, -393185, 0, 1, -327649, 0, 1, -327650, 0, 1, -262114, 0, 1, -393186, 0, 1, -524257, 0, 1, -196576, 0, 1, -131040, 0, 1, -131041, 0, 1, 131103, 0, 1, 196639, 0, 1, 196640, 0, 1, 131104, 0, 1, 65568, 0, 1, 32, 0, 1, 262176, 0, 1, 262175, 0, 1, 327711, 0, 1, 393247, 0, 1, 393248, 0, 1, 458784, 0, 1, 327712, 0, 1, 393249, 0, 1, 262166, 0, 1, 393236, 0, 1, 393235, 0, 1, 393234, 0, 1, 458770, 0, 1, 458769, 0, 1, 458768, 0, 1, 393232, 0, 1, 393231, 0, 1, 393230, 0, 1, 393229, 0, 1, 393233, 0, 1, 458767, 0, 1, 458766, 0, 1, 458765, 0, 1, 458764, 0, 1, -65504, 0, 1, 458785, 0, 1, 524321, 0, 1, 589857, 0, 1, 524320, 0, 1, -655329, 0, 1, -655330, 0, 1, -589794, 0, 1, -524258, 0, 1, -458722, 0, 1, -589793, 0, 1, -589792, 0, 1, -720864, 0, 1, -655328, 0, 1, -524256, 0, 1, 196631, 0, 1, 262167, 0, 1, 327701, 0, 1, 327702, 0, 1, 327703, 0, 1, 458771, 0, 1, 393237, 0, 1, -720863, 0, 1, -655327, 0, 1, -589791, 0, 1, -524255, 0, 1, -458719, 0, 1, -393183, 0, 1, -327647, 0, 1, -262111, 0, 1, -196575, 0, 1, -131039, 0, 1, -65503, 0, 1, 33, 0, 1, 65569, 0, 1, 131105, 0, 1, 196641, 0, 1, 262177, 0, 1, 327713, 0, 1, -720862, 0, 1, -655326, 0, 1, -589790, 0, 1, -524254, 0, 1, -458718, 0, 1, -393182, 0, 1, -327646, 0, 1, -262110, 0, 1, -196574, 0, 1, -131038, 0, 1, -65502, 0, 1, 34, 0, 1, 65570, 0, 1, 131106, 0, 1, 196642, 0, 1, 262178, 0, 1, 327714, 0, 1, 393250, 0, 1, 458786, 0, 1, 524322, 0, 1, 589858, 0, 1, -720861, 0, 1, -655325, 0, 1, -589789, 0, 1, -524253, 0, 1, -458717, 0, 1, -393181, 0, 1, -327645, 0, 1, -262109, 0, 1, -196573, 0, 1, -131037, 0, 1, -65501, 0, 1, 35, 0, 1, 65571, 0, 1, 131107, 0, 1, 196643, 0, 1, 262179, 0, 1, 327715, 0, 1, 393251, 0, 1, 458787, 0, 1, 524323, 0, 1, 589859, 0, 1, -720860, 0, 1, -655324, 0, 1, -589788, 0, 1, -524252, 0, 1, -458716, 0, 1, -393180, 0, 1, -327644, 0, 1, -262108, 0, 1, -196572, 0, 1, -131036, 0, 1, -65500, 0, 1, 36, 0, 1, 65572, 0, 1, 131108, 0, 1, 196644, 0, 1, 262180, 0, 1, 327716, 0, 1, 393252, 0, 1, 458788, 0, 1, 524324, 0, 1, 589860, 0, 1, -720859, 0, 1, -655323, 0, 1, -589787, 0, 1, -524251, 0, 1, -458715, 0, 1, -393179, 0, 1, -327643, 0, 1, -262107, 0, 1, -196571, 0, 1, -131035, 0, 1, -65499, 0, 1, 37, 0, 1, 65573, 0, 1, 131109, 0, 1, 196645, 0, 1, 262181, 0, 1, 327717, 0, 1, 393253, 0, 1, 458789, 0, 1, 524325, 0, 1, 589861, 0, 1, -720858, 0, 1, -655322, 0, 1, -589786, 0, 1, -524250, 0, 1, -458714, 0, 1, -393178, 0, 1, -327642, 0, 1, -262106, 0, 1, -196570, 0, 1, -131034, 0, 1, -65498, 0, 1, 38, 0, 1, 65574, 0, 1, 131110, 0, 1, 196646, 0, 1, 262182, 0, 1, 327718, 0, 1, 393254, 0, 1, 458790, 0, 1, 524326, 0, 1, 589862, 0, 1, -720857, 0, 1, -655321, 0, 1, -589785, 0, 1, -524249, 0, 1, -458713, 0, 1, -393177, 0, 1, -327641, 0, 1, -262105, 0, 1, -196569, 0, 1, -131033, 0, 1, -65497, 0, 1, 39, 0, 1, 65575, 0, 1, 131111, 0, 1, 196647, 0, 1, 262183, 0, 1, 327719, 0, 1, 393255, 0, 1, 458791, 0, 1, 524327, 0, 1, 589863, 0, 1, -720856, 0, 1, -655320, 0, 1, -589784, 0, 1, -524248, 0, 1, -458712, 0, 1, -393176, 0, 1, -327640, 0, 1, -262104, 0, 1, -196568, 0, 1, -131032, 0, 1, -65496, 0, 1, 40, 0, 1, 65576, 0, 1, 131112, 0, 1, 196648, 0, 1, 262184, 0, 1, 327720, 0, 1, 393256, 0, 1, 458792, 0, 1, 524328, 0, 1, 589864, 0, 1, -720855, 0, 1, -655319, 0, 1, -589783, 0, 1, -524247, 0, 1, -458711, 0, 1, -393175, 0, 1, -327639, 0, 1, -262103, 0, 1, -196567, 0, 1, -131031, 0, 1, -65495, 0, 1, 41, 0, 1, 65577, 0, 1, 131113, 0, 1, 196649, 0, 1, 262185, 0, 1, 327721, 0, 1, 393257, 0, 1, 458793, 0, 1, 524329, 0, 1, 589865, 0, 1, -720854, 0, 1, -655318, 0, 1, -589782, 0, 1, -524246, 0, 1, -458710, 0, 1, -393174, 0, 1, -327638, 0, 1, -262102, 0, 1, -196566, 0, 1, -131030, 0, 1, -65494, 0, 1, 42, 0, 1, 65578, 0, 1, 131114, 0, 1, 196650, 0, 1, 262186, 0, 1, 327722, 0, 1, 393258, 0, 1, 458794, 0, 1, 524330, 0, 1, 589866, 0, 1, -720853, 0, 1, -655317, 0, 1, -589781, 0, 1, -524245, 0, 1, -458709, 0, 1, -393173, 0, 1, -327637, 0, 1, -262101, 0, 1, -196565, 0, 1, -131029, 0, 1, -65493, 0, 1, 43, 0, 1, 65579, 0, 1, 131115, 0, 1, 196651, 0, 1, 262187, 0, 1, 327723, 0, 1, 393259, 0, 1, 458795, 0, 1, 524331, 0, 1, 589867, 0, 1, -720852, 0, 1, -655316, 0, 1, -589780, 0, 1, -524244, 0, 1, -458708, 0, 1, -393172, 0, 1, -327636, 0, 1, -262100, 0, 1, -196564, 0, 1, -131028, 0, 1, -65492, 0, 1, 44, 0, 1, 65580, 0, 1, 131116, 0, 1, 196652, 0, 1, 262188, 0, 1, 327724, 0, 1, 393260, 0, 1, 458796, 0, 1, 524332, 0, 1, 589868, 0, 1, -720851, 0, 1, -655315, 0, 1, -589779, 0, 1, -524243, 0, 1, -458707, 0, 1, -393171, 0, 1, -327635, 0, 1, -262099, 0, 1, -196563, 0, 1, -131027, 0, 1, -65491, 0, 1, 45, 0, 1, 65581, 0, 1, 131117, 0, 1, 196653, 0, 1, 262189, 0, 1, 327725, 0, 1, 393261, 0, 1, 458797, 0, 1, 524333, 0, 1, 589869, 0, 1, -720850, 0, 1, -655314, 0, 1, -589778, 0, 1, -524242, 0, 1, -458706, 0, 1, -393170, 0, 1, -327634, 0, 1, -262098, 0, 1, -196562, 0, 1, -131026, 0, 1, -65490, 0, 1, 46, 0, 1, 65582, 0, 1, 131118, 0, 1, 196654, 0, 1, 262190, 0, 1, 327726, 0, 1, 393262, 0, 1, 458798, 0, 1, 524334, 0, 1, 589870, 0, 1, -720849, 0, 1, -655313, 0, 1, -589777, 0, 1, -524241, 0, 1, -458705, 0, 1, -393169, 0, 1, -327633, 0, 1, -262097, 0, 1, -196561, 0, 1, -131025, 0, 1, -65489, 0, 1, 47, 0, 1, 65583, 0, 1, 131119, 0, 1, 196655, 0, 1, 262191, 0, 1, 327727, 0, 1, 393263, 0, 1, 458799, 0, 1, 524335, 0, 1, 589871, 0, 1, -720848, 0, 1, -655312, 0, 1, -589776, 0, 1, -524240, 0, 1, -458704, 0, 1, -393168, 0, 1, -327632, 0, 1, -262096, 0, 1, -196560, 0, 1, -131024, 0, 1, -65488, 0, 1, 48, 0, 1, 65584, 0, 1, 131120, 0, 1, 196656, 0, 1, 262192, 0, 1, 327728, 0, 1, 393264, 0, 1, 458800, 0, 1, 524336, 0, 1, 589872, 0, 1, -720847, 0, 1, -655311, 0, 1, -589775, 0, 1, -524239, 0, 1, -458703, 0, 1, -393167, 0, 1, -327631, 0, 1, -262095, 0, 1, -196559, 0, 1, -131023, 0, 1, -65487, 0, 1, 49, 0, 1, 65585, 0, 1, 131121, 0, 1, 196657, 0, 1, 262193, 0, 1, 327729, 0, 1, 393265, 0, 1, 458801, 0, 1, 524337, 0, 1, 589873, 0, 1, -720846, 0, 1, -655310, 0, 1, -589774, 0, 1, -524238, 0, 1, -458702, 0, 1, -393166, 0, 1, -327630, 0, 1, -262094, 0, 1, -196558, 0, 1, -131022, 0, 1, -65486, 0, 1, 50, 0, 1, 65586, 0, 1, 131122, 0, 1, 196658, 0, 1, 262194, 0, 1, 327730, 0, 1, 393266, 0, 1, 458802, 0, 1, 524338, 0, 1, 589874, 0, 1, -720845, 0, 1, -655309, 0, 1, -589773, 0, 1, -524237, 0, 1, -458701, 0, 1, -393165, 0, 1, -327629, 0, 1, -262093, 0, 1, -196557, 0, 1, -131021, 0, 1, -65485, 0, 1, 51, 0, 1, 65587, 0, 1, 131123, 0, 1, 196659, 0, 1, 262195, 0, 1, 327731, 0, 1, 393267, 0, 1, 458803, 0, 1, 524339, 0, 1, 589875, 0, 1, -720842, 0, 1, -655306, 0, 1, -589770, 0, 1, -524234, 0, 1, -458698, 0, 1, -393162, 0, 1, -327626, 0, 1, -262090, 0, 1, -196554, 0, 1, -131018, 0, 1, -65482, 0, 1, 54, 0, 1, 65590, 0, 1, 131126, 0, 1, 196662, 0, 1, 262198, 0, 1, 327734, 0, 1, 393270, 0, 1, 458806, 0, 1, 524342, 0, 1, 589878, 0, 1, -720841, 0, 1, -655305, 0, 1, -589769, 0, 1, -524233, 0, 1, -458697, 0, 1, -393161, 0, 1, -327625, 0, 1, -262089, 0, 1, -196553, 0, 1, -131017, 0, 1, -65481, 0, 1, 55, 0, 1, 65591, 0, 1, 131127, 0, 1, 196663, 0, 1, 262199, 0, 1, 327735, 0, 1, 393271, 0, 1, 458807, 0, 1, 524343, 0, 1, 589879, 0, 1, -720840, 0, 1, -655304, 0, 1, -589768, 0, 1, -524232, 0, 1, -458696, 0, 1, -393160, 0, 1, -327624, 0, 1, -262088, 0, 1, -196552, 0, 1, -131016, 0, 1, -65480, 0, 1, 56, 0, 1, 65592, 0, 1, 131128, 0, 1, 196664, 0, 1, 262200, 0, 1, 327736, 0, 1, 393272, 0, 1, 458808, 0, 1, 524344, 0, 1, 589880, 0, 1, -720839, 0, 1, -655303, 0, 1, -589767, 0, 1, -524231, 0, 1, -458695, 0, 1, -393159, 0, 1, -327623, 0, 1, -262087, 0, 1, -196551, 0, 1, -131015, 0, 1, -65479, 0, 1, 57, 0, 1, 65593, 0, 1, 131129, 0, 1, 196665, 0, 1, 262201, 0, 1, 327737, 0, 1, 393273, 0, 1, 458809, 0, 1, 524345, 0, 1, 589881, 0, 1, -720838, 0, 1, -655302, 0, 1, -589766, 0, 1, -524230, 0, 1, -458694, 0, 1, -393158, 0, 1, -327622, 0, 1, -262086, 0, 1, -196550, 0, 1, -131014, 0, 1, -65478, 0, 1, 58, 0, 1, 65594, 0, 1, 131130, 0, 1, 196666, 0, 1, 262202, 0, 1, 327738, 0, 1, 393274, 0, 1, 458810, 0, 1, 524346, 0, 1, 589882, 0, 1, -720837, 0, 1, -655301, 0, 1, -589765, 0, 1, -524229, 0, 1, -458693, 0, 1, -393157, 0, 1, -327621, 0, 1, -262085, 0, 1, -196549, 0, 1, -131013, 0, 1, -65477, 0, 1, 59, 0, 1, 65595, 0, 1, 131131, 0, 1, 196667, 0, 1, 262203, 0, 1, 327739, 0, 1, 393275, 0, 1, 458811, 0, 1, 524347, 0, 1, 589883, 0, 1, -720836, 0, 1, -655300, 0, 1, -589764, 0, 1, -524228, 0, 1, -458692, 0, 1, -393156, 0, 1, -327620, 0, 1, -262084, 0, 1, -196548, 0, 1, -131012, 0, 1, -65476, 0, 1, 60, 0, 1, 65596, 0, 1, 131132, 0, 1, 196668, 0, 1, 262204, 0, 1, 327740, 0, 1, 393276, 0, 1, 458812, 0, 1, 524348, 0, 1, 589884, 0, 1, -720835, 0, 1, -655299, 0, 1, -589763, 0, 1, -524227, 0, 1, -458691, 0, 1, -393155, 0, 1, -327619, 0, 1, -262083, 0, 1, -196547, 0, 1, -131011, 0, 1, -65475, 0, 1, 61, 0, 1, 65597, 0, 1, 131133, 0, 1, 196669, 0, 1, 262205, 0, 1, 327741, 0, 1, 393277, 0, 1, 458813, 0, 1, 524349, 0, 1, 589885, 0, 1, -720834, 0, 1, -655298, 0, 1, -589762, 0, 1, -524226, 0, 1, -458690, 0, 1, -393154, 0, 1, -327618, 0, 1, -262082, 0, 1, -196546, 0, 1, -131010, 0, 1, -65474, 0, 1, 62, 0, 1, 65598, 0, 1, 131134, 0, 1, 196670, 0, 1, 262206, 0, 1, 327742, 0, 1, 393278, 0, 1, 458814, 0, 1, 524350, 0, 1, 589886, 0, 1, -720833, 0, 1, -655297, 0, 1, -589761, 0, 1, -524225, 0, 1, -458689, 0, 1, -393153, 0, 1, -327617, 0, 1, -262081, 0, 1, -196545, 0, 1, -131009, 0, 1, -65473, 0, 1, 63, 0, 1, 65599, 0, 1, 131135, 0, 1, 196671, 0, 1, 262207, 0, 1, 327743, 0, 1, 393279, 0, 1, 458815, 0, 1, 524351, 0, 1, 589887, 0, 1, -720832, 0, 1, -655296, 0, 1, -589760, 0, 1, -524224, 0, 1, -458688, 0, 1, -393152, 0, 1, -327616, 0, 1, -262080, 0, 1, -196544, 0, 1, -131008, 0, 1, -65472, 0, 1, 64, 0, 1, 65600, 0, 1, 131136, 0, 1, 196672, 0, 1, 262208, 0, 1, 327744, 0, 1, 393280, 0, 1, 458816, 0, 1, 524352, 0, 1, 589888, 0, 1, -720831, 0, 1, -655295, 0, 1, -589759, 0, 1, -524223, 0, 1, -458687, 0, 1, -393151, 0, 1, -327615, 0, 1, -262079, 0, 1, -196543, 0, 1, -131007, 0, 1, -65471, 0, 1, 65, 0, 1, 65601, 0, 1, 131137, 0, 1, 196673, 0, 1, 262209, 0, 1, 327745, 0, 1, 393281, 0, 1, 458817, 0, 1, 524353, 0, 1, 589889, 0, 1, -720830, 0, 1, -655294, 0, 1, -589758, 0, 1, -524222, 0, 1, -458686, 0, 1, -393150, 0, 1, -327614, 0, 1, -262078, 0, 1, -196542, 0, 1, -131006, 0, 1, -65470, 0, 1, 66, 0, 1, 65602, 0, 1, 131138, 0, 1, 196674, 0, 1, 262210, 0, 1, 327746, 0, 1, 393282, 0, 1, 458818, 0, 1, 524354, 0, 1, 589890, 0, 1, -720829, 0, 1, -655293, 0, 1, -589757, 0, 1, -524221, 0, 1, -458685, 0, 1, -393149, 0, 1, -327613, 0, 1, -262077, 0, 1, -196541, 0, 1, -131005, 0, 1, -65469, 0, 1, 67, 0, 1, 65603, 0, 1, 131139, 0, 1, 196675, 0, 1, 262211, 0, 1, 327747, 0, 1, 393283, 0, 1, 458819, 0, 1, 524355, 0, 1, 589891, 0, 1, -720828, 0, 1, -655292, 0, 1, -589756, 0, 1, -524220, 0, 1, -458684, 0, 1, -393148, 0, 1, -327612, 0, 1, -262076, 0, 1, -196540, 0, 1, -131004, 0, 1, -65468, 0, 1, 68, 0, 1, 65604, 0, 1, 131140, 0, 1, 196676, 0, 1, 262212, 0, 1, 327748, 0, 1, 393284, 0, 1, 458820, 0, 1, 524356, 0, 1, 589892, 0, 1, -720827, 0, 1, -655291, 0, 1, -589755, 0, 1, -524219, 0, 1, -458683, 0, 1, -393147, 0, 1, -327611, 0, 1, -262075, 0, 1, -196539, 0, 1, -131003, 0, 1, -65467, 0, 1, 69, 0, 1, 65605, 0, 1, 131141, 0, 1, 196677, 0, 1, 262213, 0, 1, 327749, 0, 1, 393285, 0, 1, 458821, 0, 1, 524357, 0, 1, 589893, 0, 1, -720826, 0, 1, -655290, 0, 1, -589754, 0, 1, -524218, 0, 1, -458682, 0, 1, -393146, 0, 1, -327610, 0, 1, -262074, 0, 1, -196538, 0, 1, -131002, 0, 1, -65466, 0, 1, 70, 0, 1, 65606, 0, 1, 131142, 0, 1, 196678, 0, 1, 262214, 0, 1, 327750, 0, 1, 393286, 0, 1, 458822, 0, 1, 524358, 0, 1, 589894, 0, 1, -2031545, 0, 1, -1966009, 0, 1, -1900473, 0, 1, -1834937, 0, 1, -1769401, 0, 1, -1703865, 0, 1, -1638329, 0, 1, -1572793, 0, 1, -1507257, 0, 1, -1441721, 0, 1, -1376185, 0, 1, -1310649, 0, 1, -1245113, 0, 1, -1179577, 0, 1, -1114041, 0, 1, -1048505, 0, 1, -982969, 0, 1, -917433, 0, 1, -851897, 0, 1, -786361, 0, 1, -720825, 0, 1, -655289, 0, 1, -589753, 0, 1, -524217, 0, 1, -458681, 0, 1, -393145, 0, 1, -327609, 0, 1, -2031544, 0, 1, -1966008, 0, 1, -1900472, 0, 1, -1834936, 0, 1, -1769400, 0, 1, -1703864, 0, 1, -1638328, 0, 1, -1572792, 0, 1, -1507256, 0, 1, -1441720, 0, 1, -1376184, 0, 1, -1310648, 0, 1, -1245112, 0, 1, -1179576, 0, 1, -1114040, 0, 1, -1048504, 0, 1, -982968, 0, 1, -917432, 0, 1, -851896, 0, 1, -786360, 0, 1, -720824, 0, 1, -655288, 0, 1, -589752, 0, 1, -524216, 0, 1, -458680, 0, 1, -393144, 0, 1, -327608, 0, 1, -2031543, 0, 1, -1966007, 0, 1, -1900471, 0, 1, -1834935, 0, 1, -1769399, 0, 1, -1703863, 0, 1, -1638327, 0, 1, -1572791, 0, 1, -1507255, 0, 1, -1441719, 0, 1, -1376183, 0, 1, -1310647, 0, 1, -1245111, 0, 1, -1179575, 0, 1, -1114039, 0, 1, -1048503, 0, 1, -982967, 0, 1, -917431, 0, 1, -851895, 0, 1, -786359, 0, 1, -720823, 0, 1, -655287, 0, 1, -589751, 0, 1, -524215, 0, 1, -458679, 0, 1, -393143, 0, 1, -327607, 0, 1, -2031542, 0, 1, -1966006, 0, 1, -1900470, 0, 1, -1834934, 0, 1, -1769398, 0, 1, -1703862, 0, 1, -1638326, 0, 1, -1572790, 0, 1, -1507254, 0, 1, -1441718, 0, 1, -1376182, 0, 1, -1310646, 0, 1, -1245110, 0, 1, -1179574, 0, 1, -1114038, 0, 1, -1048502, 0, 1, -982966, 0, 1, -917430, 0, 1, -851894, 0, 1, -786358, 0, 1, -720822, 0, 1, -655286, 0, 1, -589750, 0, 1, -524214, 0, 1, -458678, 0, 1, -393142, 0, 1, -327606, 0, 1, -2031541, 0, 1, -1966005, 0, 1, -1900469, 0, 1, -1834933, 0, 1, -1769397, 0, 1, -1703861, 0, 1, -1638325, 0, 1, -1572789, 0, 1, -1507253, 0, 1, -1441717, 0, 1, -1376181, 0, 1, -1310645, 0, 1, -1245109, 0, 1, -1179573, 0, 1, -1114037, 0, 1, -1048501, 0, 1, -982965, 0, 1, -917429, 0, 1, -851893, 0, 1, -786357, 0, 1, -720821, 0, 1, -655285, 0, 1, -589749, 0, 1, -524213, 0, 1, -458677, 0, 1, -393141, 0, 1, -327605, 0, 1, -2031540, 0, 1, -1966004, 0, 1, -1900468, 0, 1, -1834932, 0, 1, -1769396, 0, 1, -1703860, 0, 1, -1638324, 0, 1, -1572788, 0, 1, -1507252, 0, 1, -1441716, 0, 1, -1376180, 0, 1, -1310644, 0, 1, -1245108, 0, 1, -1179572, 0, 1, -1114036, 0, 1, -1048500, 0, 1, -982964, 0, 1, -917428, 0, 1, -851892, 0, 1, -786356, 0, 1, -720820, 0, 1, -655284, 0, 1, -589748, 0, 1, -524212, 0, 1, -458676, 0, 1, -393140, 0, 1, -327604, 0, 1, -2031539, 0, 1, -1966003, 0, 1, -1900467, 0, 1, -1834931, 0, 1, -1769395, 0, 1, -1703859, 0, 1, -1638323, 0, 1, -1572787, 0, 1, -1507251, 0, 1, -1441715, 0, 1, -1376179, 0, 1, -1310643, 0, 1, -1245107, 0, 1, -1179571, 0, 1, -1114035, 0, 1, -1048499, 0, 1, -982963, 0, 1, -917427, 0, 1, -851891, 0, 1, -786355, 0, 1, -720819, 0, 1, -655283, 0, 1, -589747, 0, 1, -524211, 0, 1, -458675, 0, 1, -393139, 0, 1, -327603, 0, 1, -2031538, 0, 1, -1966002, 0, 1, -1900466, 0, 1, -1834930, 0, 1, -1769394, 0, 1, -1703858, 0, 1, -1638322, 0, 1, -1572786, 0, 1, -1507250, 0, 1, -1441714, 0, 1, -1376178, 0, 1, -1310642, 0, 1, -1245106, 0, 1, -1179570, 0, 1, -1114034, 0, 1, -1048498, 0, 1, -982962, 0, 1, -917426, 0, 1, -851890, 0, 1, -786354, 0, 1, -720818, 0, 1, -655282, 0, 1, -589746, 0, 1, -524210, 0, 1, -458674, 0, 1, -393138, 0, 1, -327602, 0, 1, -2031537, 0, 1, -1966001, 0, 1, -1900465, 0, 1, -1834929, 0, 1, -1769393, 0, 1, -1703857, 0, 1, -1638321, 0, 1, -1572785, 0, 1, -1507249, 0, 1, -1441713, 0, 1, -1376177, 0, 1, -1310641, 0, 1, -1245105, 0, 1, -1179569, 0, 1, -1114033, 0, 1, -1048497, 0, 1, -982961, 0, 1, -917425, 0, 1, -851889, 0, 1, -786353, 0, 1, -720817, 0, 1, -655281, 0, 1, -589745, 0, 1, -524209, 0, 1, -458673, 0, 1, -393137, 0, 1, -327601, 0, 1, -2031536, 0, 1, -1966000, 0, 1, -1900464, 0, 1, -1834928, 0, 1, -1769392, 0, 1, -1703856, 0, 1, -1638320, 0, 1, -1572784, 0, 1, -1507248, 0, 1, -1441712, 0, 1, -1376176, 0, 1, -1310640, 0, 1, -1245104, 0, 1, -1179568, 0, 1, -1114032, 0, 1, -1048496, 0, 1, -982960, 0, 1, -917424, 0, 1, -851888, 0, 1, -786352, 0, 1, -720816, 0, 1, -655280, 0, 1, -589744, 0, 1, -524208, 0, 1, -458672, 0, 1, -393136, 0, 1, -327600, 0, 1, -2031535, 0, 1, -1965999, 0, 1, -1900463, 0, 1, -1834927, 0, 1, -1769391, 0, 1, -1703855, 0, 1, -1638319, 0, 1, -1572783, 0, 1, -1507247, 0, 1, -1441711, 0, 1, -1376175, 0, 1, -1310639, 0, 1, -1245103, 0, 1, -1179567, 0, 1, -1114031, 0, 1, -1048495, 0, 1, -982959, 0, 1, -917423, 0, 1, -851887, 0, 1, -786351, 0, 1, -720815, 0, 1, -655279, 0, 1, -589743, 0, 1, -524207, 0, 1, -458671, 0, 1, -393135, 0, 1, -327599, 0, 1, -2031534, 0, 1, -1965998, 0, 1, -1900462, 0, 1, -1834926, 0, 1, -1769390, 0, 1, -1703854, 0, 1, -1638318, 0, 1, -1572782, 0, 1, -1507246, 0, 1, -1441710, 0, 1, -1376174, 0, 1, -1310638, 0, 1, -1245102, 0, 1, -1179566, 0, 1, -1114030, 0, 1, -1048494, 0, 1, -982958, 0, 1, -917422, 0, 1, -851886, 0, 1, -786350, 0, 1, -720814, 0, 1, -655278, 0, 1, -589742, 0, 1, -524206, 0, 1, -458670, 0, 1, -393134, 0, 1, -327598, 0, 1, -2031533, 0, 1, -1965997, 0, 1, -1900461, 0, 1, -1834925, 0, 1, -1769389, 0, 1, -1703853, 0, 1, -1638317, 0, 1, -1572781, 0, 1, -1507245, 0, 1, -1441709, 0, 1, -1376173, 0, 1, -1310637, 0, 1, -1245101, 0, 1, -1179565, 0, 1, -1114029, 0, 1, -1048493, 0, 1, -982957, 0, 1, -917421, 0, 1, -851885, 0, 1, -786349, 0, 1, -720813, 0, 1, -655277, 0, 1, -589741, 0, 1, -524205, 0, 1, -458669, 0, 1, -393133, 0, 1, -327597, 0, 1, -2031532, 0, 1, -1965996, 0, 1, -1900460, 0, 1, -1834924, 0, 1, -1769388, 0, 1, -1703852, 0, 1, -1638316, 0, 1, -1572780, 0, 1, -1507244, 0, 1, -1441708, 0, 1, -1376172, 0, 1, -1310636, 0, 1, -1245100, 0, 1, -1179564, 0, 1, -1114028, 0, 1, -1048492, 0, 1, -982956, 0, 1, -917420, 0, 1, -851884, 0, 1, -786348, 0, 1, -720812, 0, 1, -655276, 0, 1, -589740, 0, 1, -524204, 0, 1, -458668, 0, 1, -393132, 0, 1, -327596, 0, 1, -2031531, 0, 1, -1965995, 0, 1, -1900459, 0, 1, -1834923, 0, 1, -1769387, 0, 1, -1703851, 0, 1, -1638315, 0, 1, -1572779, 0, 1, -1507243, 0, 1, -1441707, 0, 1, -1376171, 0, 1, -1310635, 0, 1, -1245099, 0, 1, -1179563, 0, 1, -1114027, 0, 1, -1048491, 0, 1, -982955, 0, 1, -917419, 0, 1, -851883, 0, 1, -786347, 0, 1, -720811, 0, 1, -655275, 0, 1, -589739, 0, 1, -524203, 0, 1, -458667, 0, 1, -393131, 0, 1, -327595, 0, 1, -2031530, 0, 1, -1965994, 0, 1, -1900458, 0, 1, -1834922, 0, 1, -1769386, 0, 1, -1703850, 0, 1, -1638314, 0, 1, -1572778, 0, 1, -1507242, 0, 1, -1441706, 0, 1, -1376170, 0, 1, -1310634, 0, 1, -1245098, 0, 1, -1179562, 0, 1, -1114026, 0, 1, -1048490, 0, 1, -982954, 0, 1, -917418, 0, 1, -851882, 0, 1, -786346, 0, 1, -720810, 0, 1, -655274, 0, 1, -589738, 0, 1, -524202, 0, 1, -458666, 0, 1, -393130, 0, 1, -327594, 0, 1, -2031529, 0, 1, -1965993, 0, 1, -1900457, 0, 1, -1834921, 0, 1, -1769385, 0, 1, -1703849, 0, 1, -1638313, 0, 1, -1572777, 0, 1, -1507241, 0, 1, -1441705, 0, 1, -1376169, 0, 1, -1310633, 0, 1, -1245097, 0, 1, -1179561, 0, 1, -1114025, 0, 1, -1048489, 0, 1, -982953, 0, 1, -917417, 0, 1, -851881, 0, 1, -786345, 0, 1, -720809, 0, 1, -655273, 0, 1, -589737, 0, 1, -524201, 0, 1, -458665, 0, 1, -393129, 0, 1, -327593, 0, 1, -2031528, 0, 1, -1965992, 0, 1, -1900456, 0, 1, -1834920, 0, 1, -1769384, 0, 1, -1703848, 0, 1, -1638312, 0, 1, -1572776, 0, 1, -1507240, 0, 1, -1441704, 0, 1, -1376168, 0, 1, -1310632, 0, 1, -1245096, 0, 1, -1179560, 0, 1, -1114024, 0, 1, -1048488, 0, 1, -982952, 0, 1, -917416, 0, 1, -851880, 0, 1, -786344, 0, 1, -720808, 0, 1, -655272, 0, 1, -589736, 0, 1, -524200, 0, 1, -458664, 0, 1, -393128, 0, 1, -327592, 0, 1, -262073, 0, 1, -196537, 0, 1, -131001, 0, 1, -65465, 0, 1, 71, 0, 1, 65607, 0, 1, 131143, 0, 1, 196679, 0, 1, 262215, 0, 1, 327751, 0, 1, 393287, 0, 1, 458823, 0, 1, 524359, 0, 1, 589895, 0, 1, -262072, 0, 1, -196536, 0, 1, -131000, 0, 1, -65464, 0, 1, 72, 0, 1, 65608, 0, 1, 131144, 0, 1, 196680, 0, 1, 262216, 0, 1, 327752, 0, 1, 393288, 0, 1, 458824, 0, 1, 524360, 0, 1, 589896, 0, 1, -262071, 0, 1, -196535, 0, 1, -130999, 0, 1, -65463, 0, 1, 73, 0, 1, 65609, 0, 1, 131145, 0, 1, 196681, 0, 1, 262217, 0, 1, 327753, 0, 1, 393289, 0, 1, 458825, 0, 1, 524361, 0, 1, 589897, 0, 1, -262070, 0, 1, -196534, 0, 1, -130998, 0, 1, -65462, 0, 1, 74, 0, 1, 65610, 0, 1, 131146, 0, 1, 196682, 0, 1, 262218, 0, 1, 327754, 0, 1, 393290, 0, 1, 458826, 0, 1, 524362, 0, 1, 589898, 0, 1, -262069, 0, 1, -196533, 0, 1, -130997, 0, 1, -65461, 0, 1, 75, 0, 1, 65611, 0, 1, 131147, 0, 1, 196683, 0, 1, 262219, 0, 1, 327755, 0, 1, 393291, 0, 1, 458827, 0, 1, 524363, 0, 1, 589899, 0, 1, -262068, 0, 1, -196532, 0, 1, -130996, 0, 1, -65460, 0, 1, 76, 0, 1, 65612, 0, 1, 131148, 0, 1, 196684, 0, 1, 262220, 0, 1, 327756, 0, 1, 393292, 0, 1, 458828, 0, 1, 524364, 0, 1, 589900, 0, 1, -262067, 0, 1, -196531, 0, 1, -130995, 0, 1, -65459, 0, 1, 77, 0, 1, 65613, 0, 1, 131149, 0, 1, 196685, 0, 1, 262221, 0, 1, 327757, 0, 1, 393293, 0, 1, 458829, 0, 1, 524365, 0, 1, 589901, 0, 1, -262066, 0, 1, -196530, 0, 1, -130994, 0, 1, -65458, 0, 1, 78, 0, 1, 65614, 0, 1, 131150, 0, 1, 196686, 0, 1, 262222, 0, 1, 327758, 0, 1, 393294, 0, 1, 458830, 0, 1, 524366, 0, 1, 589902, 0, 1, -262065, 0, 1, -196529, 0, 1, -130993, 0, 1, -65457, 0, 1, 79, 0, 1, 65615, 0, 1, 131151, 0, 1, 196687, 0, 1, 262223, 0, 1, 327759, 0, 1, 393295, 0, 1, 458831, 0, 1, 524367, 0, 1, 589903, 0, 1, -262064, 0, 1, -196528, 0, 1, -130992, 0, 1, -65456, 0, 1, 80, 0, 1, 65616, 0, 1, 131152, 0, 1, 196688, 0, 1, 262224, 0, 1, 327760, 0, 1, 393296, 0, 1, 458832, 0, 1, 524368, 0, 1, 589904, 0, 1, -262063, 0, 1, -196527, 0, 1, -130991, 0, 1, -65455, 0, 1, 81, 0, 1, 65617, 0, 1, 131153, 0, 1, 196689, 0, 1, 262225, 0, 1, 327761, 0, 1, 393297, 0, 1, 458833, 0, 1, 524369, 0, 1, 589905, 0, 1, -262062, 0, 1, -196526, 0, 1, -130990, 0, 1, -65454, 0, 1, 82, 0, 1, 65618, 0, 1, 131154, 0, 1, 196690, 0, 1, 262226, 0, 1, 327762, 0, 1, 393298, 0, 1, 458834, 0, 1, 524370, 0, 1, 589906, 0, 1, -262061, 0, 1, -196525, 0, 1, -130989, 0, 1, -65453, 0, 1, 83, 0, 1, 65619, 0, 1, 131155, 0, 1, 196691, 0, 1, 262227, 0, 1, 327763, 0, 1, 393299, 0, 1, 458835, 0, 1, 524371, 0, 1, 589907, 0, 1, -262060, 0, 1, -196524, 0, 1, -130988, 0, 1, -65452, 0, 1, 84, 0, 1, 65620, 0, 1, 131156, 0, 1, 196692, 0, 1, 262228, 0, 1, 327764, 0, 1, 393300, 0, 1, 458836, 0, 1, 524372, 0, 1, 589908, 0, 1, -262059, 0, 1, -196523, 0, 1, -130987, 0, 1, -65451, 0, 1, 85, 0, 1, 65621, 0, 1, 131157, 0, 1, 196693, 0, 1, 262229, 0, 1, 327765, 0, 1, 393301, 0, 1, 458837, 0, 1, 524373, 0, 1, 589909, 0, 1, -262058, 0, 1, -196522, 0, 1, -130986, 0, 1, -65450, 0, 1, 86, 0, 1, 65622, 0, 1, 131158, 0, 1, 196694, 0, 1, 262230, 0, 1, 327766, 0, 1, 393302, 0, 1, 458838, 0, 1, 524374, 0, 1, 589910, 0, 1, -262057, 0, 1, -196521, 0, 1, -130985, 0, 1, -65449, 0, 1, 87, 0, 1, 65623, 0, 1, 131159, 0, 1, 196695, 0, 1, 262231, 0, 1, 327767, 0, 1, 393303, 0, 1, 458839, 0, 1, 524375, 0, 1, 589911, 0, 1, -262056, 0, 1, -196520, 0, 1, -130984, 0, 1, -65448, 0, 1, 88, 0, 1, 65624, 0, 1, 131160, 0, 1, 196696, 0, 1, 262232, 0, 1, 327768, 0, 1, 393304, 0, 1, 458840, 0, 1, 524376, 0, 1, 589912, 0, 1, -524199, 0, 1, -458663, 0, 1, -393127, 0, 1, -327591, 0, 1, -262055, 0, 1, -196519, 0, 1, -130983, 0, 1, -65447, 0, 1, 89, 0, 1, 65625, 0, 1, 131161, 0, 1, 196697, 0, 1, 262233, 0, 1, 327769, 0, 1, 393305, 0, 1, 458841, 0, 1, 524377, 0, 1, 589913, 0, 1, -524198, 0, 1, -458662, 0, 1, -393126, 0, 1, -327590, 0, 1, -262054, 0, 1, -196518, 0, 1, -130982, 0, 1, -65446, 0, 1, 90, 0, 1, 65626, 0, 1, 131162, 0, 1, 196698, 0, 1, 262234, 0, 1, 327770, 0, 1, 393306, 0, 1, 458842, 0, 1, 524378, 0, 1, 589914, 0, 1, -524197, 0, 1, -458661, 0, 1, -393125, 0, 1, -327589, 0, 1, -262053, 0, 1, -196517, 0, 1, -130981, 0, 1, -65445, 0, 1, 91, 0, 1, 65627, 0, 1, 131163, 0, 1, 196699, 0, 1, 262235, 0, 1, 327771, 0, 1, 393307, 0, 1, 458843, 0, 1, 524379, 0, 1, 589915, 0, 1, -524196, 0, 1, -458660, 0, 1, -393124, 0, 1, -327588, 0, 1, -262052, 0, 1, -196516, 0, 1, -130980, 0, 1, -65444, 0, 1, 92, 0, 1, 65628, 0, 1, 131164, 0, 1, 196700, 0, 1, 262236, 0, 1, 327772, 0, 1, 393308, 0, 1, 458844, 0, 1, 524380, 0, 1, 589916, 0, 1, -524195, 0, 1, -458659, 0, 1, -393123, 0, 1, -327587, 0, 1, -262051, 0, 1, -196515, 0, 1, -130979, 0, 1, -65443, 0, 1, 93, 0, 1, 65629, 0, 1, 131165, 0, 1, 196701, 0, 1, 262237, 0, 1, 327773, 0, 1, 393309, 0, 1, 458845, 0, 1, 524381, 0, 1, 589917, 0, 1, -524194, 0, 1, -458658, 0, 1, -393122, 0, 1, -327586, 0, 1, -262050, 0, 1, -196514, 0, 1, -130978, 0, 1, -65442, 0, 1, 94, 0, 1, 65630, 0, 1, 131166, 0, 1, 196702, 0, 1, 262238, 0, 1, 327774, 0, 1, 393310, 0, 1, 458846, 0, 1, 524382, 0, 1, 589918, 0, 1, -524193, 0, 1, -458657, 0, 1, -393121, 0, 1, -327585, 0, 1, -262049, 0, 1, -196513, 0, 1, -130977, 0, 1, -65441, 0, 1, 95, 0, 1, 65631, 0, 1, 131167, 0, 1, 196703, 0, 1, 262239, 0, 1, 327775, 0, 1, 393311, 0, 1, 458847, 0, 1, 524383, 0, 1, 589919, 0, 1, -524192, 0, 1, -458656, 0, 1, -393120, 0, 1, -327584, 0, 1, -262048, 0, 1, -196512, 0, 1, -130976, 0, 1, -65440, 0, 1, 96, 0, 1, 65632, 0, 1, 131168, 0, 1, 196704, 0, 1, 262240, 0, 1, 327776, 0, 1, 393312, 0, 1, 458848, 0, 1, 524384, 0, 1, 589920, 0, 1, -524191, 0, 1, -458655, 0, 1, -393119, 0, 1, -327583, 0, 1, -262047, 0, 1, -196511, 0, 1, -130975, 0, 1, -65439, 0, 1, 97, 0, 1, 65633, 0, 1, 131169, 0, 1, 196705, 0, 1, 262241, 0, 1, 327777, 0, 1, 393313, 0, 1, 458849, 0, 1, 524385, 0, 1, 589921, 0, 1, -524190, 0, 1, -458654, 0, 1, -393118, 0, 1, -327582, 0, 1, -262046, 0, 1, -196510, 0, 1, -130974, 0, 1, -65438, 0, 1, 98, 0, 1, 65634, 0, 1, 131170, 0, 1, 196706, 0, 1, 262242, 0, 1, 327778, 0, 1, 393314, 0, 1, 458850, 0, 1, 524386, 0, 1, 589922, 0, 1, -524189, 0, 1, -458653, 0, 1, -393117, 0, 1, -327581, 0, 1, -262045, 0, 1, -196509, 0, 1, -130973, 0, 1, -65437, 0, 1, 99, 0, 1, 65635, 0, 1, 131171, 0, 1, 196707, 0, 1, 262243, 0, 1, 327779, 0, 1, 393315, 0, 1, 458851, 0, 1, 524387, 0, 1, 589923, 0, 1, -524188, 0, 1, -458652, 0, 1, -393116, 0, 1, -327580, 0, 1, -262044, 0, 1, -196508, 0, 1, -130972, 0, 1, -65436, 0, 1, 100, 0, 1, 65636, 0, 1, 131172, 0, 1, 196708, 0, 1, 262244, 0, 1, 327780, 0, 1, 393316, 0, 1, 458852, 0, 1, 524388, 0, 1, 589924, 0, 1, -524187, 0, 1, -458651, 0, 1, -393115, 0, 1, -327579, 0, 1, -262043, 0, 1, -196507, 0, 1, -130971, 0, 1, -65435, 0, 1, 101, 0, 1, 65637, 0, 1, 131173, 0, 1, 196709, 0, 1, 262245, 0, 1, 327781, 0, 1, 393317, 0, 1, 458853, 0, 1, 524389, 0, 1, 589925, 0, 1, -524186, 0, 1, -458650, 0, 1, -393114, 0, 1, -327578, 0, 1, -262042, 0, 1, -196506, 0, 1, -130970, 0, 1, -65434, 0, 1, 102, 0, 1, 65638, 0, 1, 131174, 0, 1, 196710, 0, 1, 262246, 0, 1, 327782, 0, 1, 393318, 0, 1, 458854, 0, 1, 524390, 0, 1, 589926, 0, 1, -524185, 0, 1, -458649, 0, 1, -393113, 0, 1, -327577, 0, 1, -262041, 0, 1, -196505, 0, 1, -130969, 0, 1, -65433, 0, 1, 103, 0, 1, 65639, 0, 1, 131175, 0, 1, 196711, 0, 1, 262247, 0, 1, 327783, 0, 1, 393319, 0, 1, 458855, 0, 1, 524391, 0, 1, 589927, 0, 1, -524184, 0, 1, -458648, 0, 1, -393112, 0, 1, -327576, 0, 1, -262040, 0, 1, -196504, 0, 1, -130968, 0, 1, -65432, 0, 1, 104, 0, 1, 65640, 0, 1, 131176, 0, 1, 196712, 0, 1, 262248, 0, 1, 327784, 0, 1, 393320, 0, 1, 458856, 0, 1, 524392, 0, 1, 589928, 0, 1, -524183, 0, 1, -458647, 0, 1, -393111, 0, 1, -327575, 0, 1, -262039, 0, 1, -196503, 0, 1, -130967, 0, 1, -65431, 0, 1, 105, 0, 1, 65641, 0, 1, 131177, 0, 1, 196713, 0, 1, 262249, 0, 1, 327785, 0, 1, 393321, 0, 1, 458857, 0, 1, 524393, 0, 1, 589929, 0, 1, -524182, 0, 1, -458646, 0, 1, -393110, 0, 1, -327574, 0, 1, -262038, 0, 1, -196502, 0, 1, -130966, 0, 1, -65430, 0, 1, 106, 0, 1, 65642, 0, 1, 131178, 0, 1, 196714, 0, 1, 262250, 0, 1, 327786, 0, 1, 393322, 0, 1, 458858, 0, 1, 524394, 0, 1, 589930, 0, 1, -524181, 0, 1, -458645, 0, 1, -393109, 0, 1, -327573, 0, 1, -262037, 0, 1, -196501, 0, 1, -130965, 0, 1, -65429, 0, 1, 107, 0, 1, 65643, 0, 1, 131179, 0, 1, 196715, 0, 1, 262251, 0, 1, 327787, 0, 1, 393323, 0, 1, 458859, 0, 1, 524395, 0, 1, 589931, 0, 1, -524180, 0, 1, -458644, 0, 1, -393108, 0, 1, -327572, 0, 1, -262036, 0, 1, -196500, 0, 1, -130964, 0, 1, -65428, 0, 1, 108, 0, 1, 65644, 0, 1, 131180, 0, 1, 196716, 0, 1, 262252, 0, 1, 327788, 0, 1, 393324, 0, 1, 458860, 0, 1, 524396, 0, 1, 589932, 0, 1, -524179, 0, 1, -458643, 0, 1, -393107, 0, 1, -327571, 0, 1, -262035, 0, 1, -196499, 0, 1, -130963, 0, 1, -65427, 0, 1, 109, 0, 1, 65645, 0, 1, 131181, 0, 1, 196717, 0, 1, 262253, 0, 1, 327789, 0, 1, 393325, 0, 1, 458861, 0, 1, 524397, 0, 1, 589933, 0, 1, -524178, 0, 1, -458642, 0, 1, -393106, 0, 1, -327570, 0, 1, -262034, 0, 1, -196498, 0, 1, -130962, 0, 1, -65426, 0, 1, 110, 0, 1, 65646, 0, 1, 131182, 0, 1, 196718, 0, 1, 262254, 0, 1, 327790, 0, 1, 393326, 0, 1, 458862, 0, 1, 524398, 0, 1, 589934, 0, 1, -524177, 0, 1, -458641, 0, 1, -393105, 0, 1, -327569, 0, 1, -262033, 0, 1, -196497, 0, 1, -130961, 0, 1, -65425, 0, 1, 111, 0, 1, 65647, 0, 1, 131183, 0, 1, 196719, 0, 1, 262255, 0, 1, 327791, 0, 1, 393327, 0, 1, 458863, 0, 1, 524399, 0, 1, 589935, 0, 1, -524176, 0, 1, -458640, 0, 1, -393104, 0, 1, -327568, 0, 1, -262032, 0, 1, -196496, 0, 1, -130960, 0, 1, -65424, 0, 1, 112, 0, 1, 65648, 0, 1, 131184, 0, 1, 196720, 0, 1, 262256, 0, 1, 327792, 0, 1, 393328, 0, 1, 458864, 0, 1, 524400, 0, 1, 589936, 0, 1, -524175, 0, 1, -458639, 0, 1, -393103, 0, 1, -327567, 0, 1, -262031, 0, 1, -196495, 0, 1, -130959, 0, 1, -65423, 0, 1, 113, 0, 1, 65649, 0, 1, 131185, 0, 1, 196721, 0, 1, 262257, 0, 1, 327793, 0, 1, 393329, 0, 1, 458865, 0, 1, 524401, 0, 1, 589937, 0, 1, -524174, 0, 1, -458638, 0, 1, -393102, 0, 1, -327566, 0, 1, -262030, 0, 1, -196494, 0, 1, -130958, 0, 1, -65422, 0, 1, 114, 0, 1, 65650, 0, 1, 131186, 0, 1, 196722, 0, 1, 262258, 0, 1, 327794, 0, 1, 393330, 0, 1, 458866, 0, 1, 524402, 0, 1, 589938, 0, 1, -524173, 0, 1, -458637, 0, 1, -393101, 0, 1, -327565, 0, 1, -262029, 0, 1, -196493, 0, 1, -130957, 0, 1, -65421, 0, 1, 115, 0, 1, 65651, 0, 1, 131187, 0, 1, 196723, 0, 1, 262259, 0, 1, 327795, 0, 1, 393331, 0, 1, 458867, 0, 1, 524403, 0, 1, 589939, 0, 1, -524172, 0, 1, -458636, 0, 1, -393100, 0, 1, -327564, 0, 1, -262028, 0, 1, -196492, 0, 1, -130956, 0, 1, -65420, 0, 1, 116, 0, 1, 65652, 0, 1, 131188, 0, 1, 196724, 0, 1, 262260, 0, 1, 327796, 0, 1, 393332, 0, 1, 458868, 0, 1, 524404, 0, 1, 589940, 0, 1, -524171, 0, 1, -458635, 0, 1, -393099, 0, 1, -327563, 0, 1, -262027, 0, 1, -196491, 0, 1, -130955, 0, 1, -65419, 0, 1, 117, 0, 1, 65653, 0, 1, 131189, 0, 1, 196725, 0, 1, 262261, 0, 1, 327797, 0, 1, 393333, 0, 1, 458869, 0, 1, 524405, 0, 1, 589941, 0, 1, -524170, 0, 1, -458634, 0, 1, -393098, 0, 1, -327562, 0, 1, -262026, 0, 1, -196490, 0, 1, -130954, 0, 1, -65418, 0, 1, 118, 0, 1, 65654, 0, 1, 131190, 0, 1, 196726, 0, 1, 262262, 0, 1, 327798, 0, 1, 393334, 0, 1, 458870, 0, 1, 524406, 0, 1, 589942, 0, 1, 655431, 0, 1, 720967, 0, 1, 786503, 0, 1, 852039, 0, 1, 917575, 0, 1, 983111, 0, 1, 1048647, 0, 1, 1114183, 0, 1, 1179719, 0, 1, 655432, 0, 1, 720968, 0, 1, 786504, 0, 1, 852040, 0, 1, 917576, 0, 1, 983112, 0, 1, 1048648, 0, 1, 1114184, 0, 1, 1179720, 0, 1, 655433, 0, 1, 720969, 0, 1, 786505, 0, 1, 852041, 0, 1, 917577, 0, 1, 983113, 0, 1, 1048649, 0, 1, 1114185, 0, 1, 1179721, 0, 1, 655434, 0, 1, 720970, 0, 1, 786506, 0, 1, 852042, 0, 1, 917578, 0, 1, 983114, 0, 1, 1048650, 0, 1, 1114186, 0, 1, 1179722, 0, 1, 655435, 0, 1, 720971, 0, 1, 786507, 0, 1, 852043, 0, 1, 917579, 0, 1, 983115, 0, 1, 1048651, 0, 1, 1114187, 0, 1, 1179723, 0, 1, 655436, 0, 1, 720972, 0, 1, 786508, 0, 1, 852044, 0, 1, 917580, 0, 1, 983116, 0, 1, 1048652, 0, 1, 1114188, 0, 1, 1179724, 0, 1, 655437, 0, 1, 720973, 0, 1, 786509, 0, 1, 852045, 0, 1, 917581, 0, 1, 983117, 0, 1, 1048653, 0, 1, 1114189, 0, 1, 1179725, 0, 1, 655438, 0, 1, 720974, 0, 1, 786510, 0, 1, 852046, 0, 1, 917582, 0, 1, 983118, 0, 1, 1048654, 0, 1, 1114190, 0, 1, 1179726, 0, 1, 655439, 0, 1, 720975, 0, 1, 786511, 0, 1, 852047, 0, 1, 917583, 0, 1, 983119, 0, 1, 1048655, 0, 1, 1114191, 0, 1, 1179727, 0, 1, 655440, 0, 1, 720976, 0, 1, 786512, 0, 1, 852048, 0, 1, 917584, 0, 1, 983120, 0, 1, 1048656, 0, 1, 1114192, 0, 1, 1179728, 0, 1, 655441, 0, 1, 720977, 0, 1, 786513, 0, 1, 852049, 0, 1, 917585, 0, 1, 983121, 0, 1, 1048657, 0, 1, 1114193, 0, 1, 1179729, 0, 1, 119, 0, 1, 65655, 0, 1, 131191, 0, 1, 196727, 0, 1, 262263, 0, 1, 327799, 0, 1, 393335, 0, 1, 458871, 0, 1, 524407, 0, 1, 589943, 0, 1, 655479, 0, 1, 721015, 0, 1, 786551, 0, 1, 852087, 0, 1, 917623, 0, 1, 983159, 0, 1, 1048695, 0, 1, 1114231, 0, 1, 120, 0, 1, 65656, 0, 1, 131192, 0, 1, 196728, 0, 1, 262264, 0, 1, 327800, 0, 1, 393336, 0, 1, 458872, 0, 1, 524408, 0, 1, 589944, 0, 1, 655480, 0, 1, 721016, 0, 1, 786552, 0, 1, 852088, 0, 1, 917624, 0, 1, 983160, 0, 1, 1048696, 0, 1, 1114232, 0, 1, 121, 0, 1, 65657, 0, 1, 131193, 0, 1, 196729, 0, 1, 262265, 0, 1, 327801, 0, 1, 393337, 0, 1, 458873, 0, 1, 524409, 0, 1, 589945, 0, 1, 655481, 0, 1, 721017, 0, 1, 786553, 0, 1, 852089, 0, 1, 917625, 0, 1, 983161, 0, 1, 1048697, 0, 1, 1114233, 0, 1, 122, 0, 1, 65658, 0, 1, 131194, 0, 1, 196730, 0, 1, 262266, 0, 1, 327802, 0, 1, 393338, 0, 1, 458874, 0, 1, 524410, 0, 1, 589946, 0, 1, 655482, 0, 1, 721018, 0, 1, 786554, 0, 1, 852090, 0, 1, 917626, 0, 1, 983162, 0, 1, 1048698, 0, 1, 1114234, 0, 1, 123, 0, 1, 65659, 0, 1, 131195, 0, 1, 196731, 0, 1, 262267, 0, 1, 327803, 0, 1, 393339, 0, 1, 458875, 0, 1, 524411, 0, 1, 589947, 0, 1, 655483, 0, 1, 721019, 0, 1, 786555, 0, 1, 852091, 0, 1, 917627, 0, 1, 983163, 0, 1, 1048699, 0, 1, 1114235, 0, 1, 124, 0, 1, 65660, 0, 1, 131196, 0, 1, 196732, 0, 1, 262268, 0, 1, 327804, 0, 1, 393340, 0, 1, 458876, 0, 1, 524412, 0, 1, 589948, 0, 1, 655484, 0, 1, 721020, 0, 1, 786556, 0, 1, 852092, 0, 1, 917628, 0, 1, 983164, 0, 1, 1048700, 0, 1, 1114236, 0, 1, 125, 0, 1, 65661, 0, 1, 131197, 0, 1, 196733, 0, 1, 262269, 0, 1, 327805, 0, 1, 393341, 0, 1, 458877, 0, 1, 524413, 0, 1, 589949, 0, 1, 655485, 0, 1, 721021, 0, 1, 786557, 0, 1, 852093, 0, 1, 917629, 0, 1, 983165, 0, 1, 1048701, 0, 1, 1114237, 0, 1, 126, 0, 1, 65662, 0, 1, 131198, 0, 1, 196734, 0, 1, 262270, 0, 1, 327806, 0, 1, 393342, 0, 1, 458878, 0, 1, 524414, 0, 1, 589950, 0, 1, 655486, 0, 1, 721022, 0, 1, 786558, 0, 1, 852094, 0, 1, 917630, 0, 1, 983166, 0, 1, 1048702, 0, 1, 1114238, 0, 1, 127, 0, 1, 65663, 0, 1, 131199, 0, 1, 196735, 0, 1, 262271, 0, 1, 327807, 0, 1, 393343, 0, 1, 458879, 0, 1, 524415, 0, 1, 589951, 0, 1, 655487, 0, 1, 721023, 0, 1, 786559, 0, 1, 852095, 0, 1, 917631, 0, 1, 983167, 0, 1, 1048703, 0, 1, 1114239, 0, 1, 128, 0, 1, 65664, 0, 1, 131200, 0, 1, 196736, 0, 1, 262272, 0, 1, 327808, 0, 1, 393344, 0, 1, 458880, 0, 1, 524416, 0, 1, 589952, 0, 1, 655488, 0, 1, 721024, 0, 1, 786560, 0, 1, 852096, 0, 1, 917632, 0, 1, 983168, 0, 1, 1048704, 0, 1, 1114240, 0, 1, 129, 0, 1, 65665, 0, 1, 131201, 0, 1, 196737, 0, 1, 262273, 0, 1, 327809, 0, 1, 393345, 0, 1, 458881, 0, 1, 524417, 0, 1, 589953, 0, 1, 655489, 0, 1, 721025, 0, 1, 786561, 0, 1, 852097, 0, 1, 917633, 0, 1, 983169, 0, 1, 1048705, 0, 1, 1114241, 0, 1, 130, 0, 1, 65666, 0, 1, 131202, 0, 1, 196738, 0, 1, 262274, 0, 1, 327810, 0, 1, 393346, 0, 1, 458882, 0, 1, 524418, 0, 1, 589954, 0, 1, 655490, 0, 1, 721026, 0, 1, 786562, 0, 1, 852098, 0, 1, 917634, 0, 1, 983170, 0, 1, 1048706, 0, 1, 1114242, 0, 1, 131, 0, 1, 65667, 0, 1, 131203, 0, 1, 196739, 0, 1, 262275, 0, 1, 327811, 0, 1, 393347, 0, 1, 458883, 0, 1, 524419, 0, 1, 589955, 0, 1, 655491, 0, 1, 721027, 0, 1, 786563, 0, 1, 852099, 0, 1, 917635, 0, 1, 983171, 0, 1, 1048707, 0, 1, 1114243, 0, 1, 132, 0, 1, 65668, 0, 1, 131204, 0, 1, 196740, 0, 1, 262276, 0, 1, 327812, 0, 1, 393348, 0, 1, 458884, 0, 1, 524420, 0, 1, 589956, 0, 1, 655492, 0, 1, 721028, 0, 1, 786564, 0, 1, 852100, 0, 1, 917636, 0, 1, 983172, 0, 1, 1048708, 0, 1, 1114244, 0, 1, 133, 0, 1, 65669, 0, 1, 131205, 0, 1, 196741, 0, 1, 262277, 0, 1, 327813, 0, 1, 393349, 0, 1, 458885, 0, 1, 524421, 0, 1, 589957, 0, 1, 655493, 0, 1, 721029, 0, 1, 786565, 0, 1, 852101, 0, 1, 917637, 0, 1, 983173, 0, 1, 1048709, 0, 1, 1114245, 0, 1, 1179767, 0, 1, 1245303, 0, 1, 1179768, 0, 1, 1245304, 0, 1, 1179769, 0, 1, 1245305, 0, 1, 1179770, 0, 1, 1245306, 0, 1, 1179771, 0, 1, 1245307, 0, 1, 1179772, 0, 1, 1245308, 0, 1, 1245255, 0, 1, 1245256, 0, 1, 1245257, 0, 1, 1245258, 0, 1, 1245259, 0, 1, 1245260, 0, 1, 1245261, 0, 1, 1245262, 0, 1, 1245263, 0, 1, 1245264, 0, 1, 1245265, 0, 1, 1179773, 0, 1, 1245309, 0, 1, 1179774, 0, 1, 1245310, 0, 1, 1179775, 0, 1, 1245311, 0, 1, 1179776, 0, 1, 1245312, 0, 1, 1179777, 0, 1, 1245313, 0, 1, 1179778, 0, 1, 1245314, 0, 1, 1179779, 0, 1, 1245315, 0, 1, 1179780, 0, 1, 1245316, 0, 1, 1179781, 0, 1, 1245317, 0, 1, 2097204, 0, 1, 2162740, 0, 1, 2228276, 0, 1, 2097205, 0, 1, 2162741, 0, 1, 2228277, 0, 1, 2097206, 0, 1, 2162742, 0, 1, 2228278, 0, 1, 2097207, 0, 1, 2162743, 0, 1, 2228279, 0, 1, 2097208, 0, 1, 2162744, 0, 1, 2228280, 0, 1, 2097209, 0, 1, 2162745, 0, 1, 2228281, 0, 1, 2097210, 0, 1, 2162746, 0, 1, 2228282, 0, 1, 2097211, 0, 1, 2162747, 0, 1, 2228283, 0, 1, 2097212, 0, 1, 2162748, 0, 1, 2228284, 0, 1, 2097213, 0, 1, 2162749, 0, 1, 2228285, 0, 1, 2097214, 0, 1, 2162750, 0, 1, 2228286, 0, 1, 2097215, 0, 1, 2162751, 0, 1, 2228287, 0, 1, 2097216, 0, 1, 2162752, 0, 1, 2228288, 0, 1, 2097217, 0, 1, 2162753, 0, 1, 2228289, 0, 1, 2097218, 0, 1, 2162754, 0, 1, 2228290, 0, 1, 2097219, 0, 1, 2162755, 0, 1, 2228291, 0, 1, 2097220, 0, 1, 2162756, 0, 1, 2228292, 0, 1, 2097221, 0, 1, 2162757, 0, 1, 2228293, 0, 1, 2097222, 0, 1, 2162758, 0, 1, 2228294, 0, 1, 2097223, 0, 1, 2162759, 0, 1, 2228295, 0, 1, 2097224, 0, 1, 2162760, 0, 1, 2228296, 0, 1, 2097225, 0, 1, 2162761, 0, 1, 2228297, 0, 1, 2097226, 0, 1, 2162762, 0, 1, 2228298, 0, 1, 2097227, 0, 1, 2162763, 0, 1, 2228299, 0, 1, 2097228, 0, 1, 2162764, 0, 1, 2228300, 0, 1, 2097229, 0, 1, 2162765, 0, 1, 2228301, 0, 1, 2097230, 0, 1, 2162766, 0, 1, 2228302, 0, 1, 2097231, 0, 1, 2162767, 0, 1, 2228303, 0, 1, 2097232, 0, 1, 2162768, 0, 1, 2228304, 0, 1, 2097233, 0, 1, 2162769, 0, 1, 2228305, 0, 1, 2097234, 0, 1, 2162770, 0, 1, 2228306, 0, 1, 2097235, 0, 1, 2162771, 0, 1, 2228307, 0, 1, 655442, 0, 1, 720978, 0, 1, 786514, 0, 1, 852050, 0, 1, 917586, 0, 1, 983122, 0, 1, 1048658, 0, 1, 1114194, 0, 1, 1179730, 0, 1, 1245266, 0, 1, 655443, 0, 1, 720979, 0, 1, 786515, 0, 1, 852051, 0, 1, 917587, 0, 1, 983123, 0, 1, 1048659, 0, 1, 1114195, 0, 1, 1179731, 0, 1, 1245267, 0, 1, 2293812, 0, 1, 2293813, 0, 1, 2293814, 0, 1, 2293815, 0, 1, 2293816, 0, 1, 2293817, 0, 1, 2293818, 0, 1, 2293819, 0, 1, 2293820, 0, 1, 2293821, 0, 1, 2293822, 0, 1, 2293823, 0, 1, 2293824, 0, 1, 2293825, 0, 1, 2293826, 0, 1, 2293827, 0, 1, 2293828, 0, 1, 2293829, 0, 1, 2293830, 0, 1, 2293831, 0, 1, 2293832, 0, 1, 2293833, 0, 1, 2293834, 0, 1, 2293835, 0, 1, 2293836, 0, 1, 2293837, 0, 1, 2293838, 0, 1, 2293839, 0, 1, 2293840, 0, 1, 2293841, 0, 1, 2293842, 0, 1, 2293843, 0, 1, 1310768, 0, 1, 1376304, 0, 1, 1310769, 0, 1, 1376305, 0, 1, 1310770, 0, 1, 1376306, 0, 1, 1310771, 0, 1, 1376307, 0, 1, 1310772, 0, 1, 1376308, 0, 1, 1310773, 0, 1, 1376309, 0, 1, 1310774, 0, 1, 1376310, 0, 1, 1310775, 0, 1, 1376311, 0, 1, 1310776, 0, 1, 1376312, 0, 1, 1310777, 0, 1, 1376313, 0, 1, 1310778, 0, 1, 1376314, 0, 1, 1310779, 0, 1, 1376315, 0, 1, 1310780, 0, 1, 1376316, 0, 1, 1310781, 0, 1, 1376317, 0, 1, 1310782, 0, 1, 1376318, 0, 1, 1310783, 0, 1, 1376319, 0, 1, 1441854, 0, 1, 1507390, 0, 1, 1572926, 0, 1, 1638462, 0, 1, 1703998, 0, 1, 1769534, 0, 1, 1835070, 0, 1, 1900606, 0, 1, 1966142, 0, 1, 2031678, 0, 1, 1441855, 0, 1, 1507391, 0, 1, 1572927, 0, 1, 1638463, 0, 1, 1703999, 0, 1, 1769535, 0, 1, 1835071, 0, 1, 1900607, 0, 1, 1966143, 0, 1, 2031679, 0, 1, -131082, 0, 1, -65546, 0, 1, -65545, 0, 1, -65544, 0, 1, -131080, 0, 1, -131081, 0, 1, -131079, 0, 1, -131078, 0, 1, -65542, 0, 1, -65543, 0, 1, -65541, 0, 1, -131077, 0, 1, -10, 65539, 7, -9, 65539, 7, -8, 65539, 7, -7, 65539, 7, -6, 65539, 7, -5, 65539, 7, -262163, 0, 1, -262162, 0, 1, -262161, 0, 1, -524304, 0, 1, -458768, 0, 1, -262160, 0, 1, -524303, 0, 1, -458767, 0, 1, -262159, 0, 1, -524302, 0, 1, -458766, 0, 1, -262158, 0, 1, -524301, 0, 1, -458765, 0, 1, -262157, 0, 1, -655372, 0, 1, -589836, 0, 1, -524300, 0, 1, -458764, 0, 1, -262156, 0, 1, -589835, 0, 1, -524299, 0, 1, -458763, 0, 1, -393227, 0, 1, -262155, 0, 1, -589834, 65537, 1, -524298, 131073, 2, -458762, 65537, 1, -393226, 65537, 1, -327690, 0, 1, -262154, 0, 1, -196618, 0, 1, -589833, 131073, 1, -524297, 131073, 1, -458761, 131073, 2, -393225, 131073, 1, -327689, 0, 1, -262153, 0, 1, -196617, 0, 1, -589832, 0, 1, -524296, 65537, 1, -458760, 65537, 2, -393224, 65537, 1, -327688, 65537, 1, -262152, 0, 1, -196616, 0, 1, -589831, 0, 1, -524295, 131073, 1, -458759, 131073, 1, -393223, 65537, 1, -327687, 131073, 1, -262151, 0, 1, -196615, 0, 1, -589830, 65537, 1, -524294, 65537, 1, -458758, 262145, 1, -393222, 262145, 2, -327686, 65537, 1, -262150, 0, 1, -196614, 0, 1, -589829, 131073, 1, -524293, 131073, 1, -458757, 327681, 1, -393221, 327681, 2, -327685, 131073, 1, -262149, 0, 1, -196613, 0, 1, -589828, 65537, 1, -524292, 262145, 0, -458756, 65537, 1, -393220, 65537, 2, -327684, 0, 1, -262148, 65537, 3, -589827, 131073, 1, -524291, 131073, 1, -458755, 65537, 2, -393219, 131073, 1, -327683, 0, 1, -262147, 131073, 3, -589826, 65537, 1, -524290, 65537, 1, -458754, 65537, 1, -393218, 65537, 1, -327682, 0, 1, -262146, 65537, 3, -589825, 131073, 1, -524289, 131073, 1, -458753, 131073, 2, -393217, 131073, 1, -327681, 0, 1, -262145, 131073, 3, -655360, 0, 1, -589824, 65537, 1, -524288, 65537, 1, -458752, 65537, 1, -393216, 65537, 2, -327680, 131073, 3, -655359, 0, 1, -589823, 131073, 1, -524287, 65537, 2, -458751, 131073, 1, -393215, 65537, 1, -327679, 65537, 3, -655358, 0, 1, -589822, 0, 1, -524286, 65537, 1, -458750, 65537, 1, -393214, 131073, 1, -327678, 131073, 3, -655357, 0, 1, -589821, 0, 1, -524285, 65537, 1, -458749, 65537, 1, -393213, 65537, 1, -327677, 65537, 3, -655356, 0, 1, -589820, 0, 1, -524284, 131073, 1, -458748, 131073, 1, -393212, 131073, 1, -327676, 131073, 3, -655355, 0, 1, -589819, 0, 1, -524283, 65537, 2, -458747, 65537, 1, -393211, 65537, 1, -327675, 65537, 3, -655354, 0, 1, -589818, 0, 1, -524282, 262145, 1, -458746, 262145, 2, -393210, 131073, 1, -327674, 131073, 3, -655353, 0, 1, -589817, 65537, 1, -524281, 327681, 1, -458745, 327681, 2, -393209, 0, 1, -327673, 65537, 3, -655352, 0, 1, -589816, 131073, 1, -524280, 131073, 1, -458744, 65537, 2, -393208, 0, 1, -327672, 131073, 3, -655351, 0, 1, -589815, 65537, 1, -524279, 65537, 1, -458743, 65537, 1, -393207, 0, 1, -327671, 65537, 3, -655350, 0, 1, -589814, 131073, 1, -524278, 65537, 2, -458742, 65537, 2, -393206, 65537, 1, -327670, 131073, 3, -655349, 0, 1, -589813, 65537, 1, -524277, 65537, 1, -458741, 65537, 1, -393205, 131073, 1, -327669, 65537, 3, -655348, 0, 1, -589812, 131073, 1, -524276, 131073, 1, -458740, 131073, 1, -393204, 0, 1, -327668, 131073, 3) layer_4/tile_data = PackedInt32Array(-393198, 65536, 0, -327662, 65536, 0, -393197, 65536, 0, -327661, 65536, 0, -393196, 65536, 0, -327660, 65536, 0, -393195, 65536, 0, -327659, 65536, 0, -393194, 65536, 0, -327658, 65536, 0, -393193, 65536, 0, -327657, 65536, 0, -393192, 65536, 0, -327656, 65536, 0, -393191, 65536, 0, -327655, 65536, 0, -393190, 65536, 0, -327654, 65536, 0, -393189, 65536, 0, -327653, 65536, 0, -393188, 65536, 0, -327652, 65536, 0, -393187, 65536, 0, -327651, 65536, 0, -589800, 65536, 0, -524264, 65536, 0, -458728, 65536, 0, -589799, 65536, 0, -524263, 65536, 0, -458727, 65536, 0, -589798, 65536, 0, -524262, 65536, 0, -458726, 65536, 0, -589797, 65536, 0, -524261, 65536, 0, -458725, 65536, 0, -589796, 65536, 0, -524260, 65536, 0, -458724, 65536, 0, -589795, 65536, 0, -524259, 65536, 0, -458723, 65536, 0, 65541, 196611, 0, 5, 196611, 0, -65531, 327683, 1, -131067, 327683, 0, -196603, 196611, 0, -196604, 196611, 0, -196605, 196611, 0, -196606, 196611, 0, -196607, 196611, 0, -196608, 196611, 0, -131073, 196611, 0, -131074, 196611, 0, -131075, 196611, 0, -131076, 196611, 0, -65540, 196611, 0, -4, 196611, 0, -5, 196611, 0, -6, 196611, 0, -7, 196611, 0, -8, 196611, 0, -9, 196611, 0, -10, 196611, 0, -11, 196611, 0, -65547, 196611, 0, -131083, 196611, 0, -196619, 196611, 0, -196620, 196611, 0, -196621, 196611, 0, -196622, 196611, 0, -196623, 196611, 0, -196624, 196611, 0, -196625, 196611, 0, -131089, 196611, 0, -65553, 196611, 0, -17, 196611, 0, 65519, 458755, 0, 131055, 458755, 1, 196591, 196611, 0, 196592, 196611, 0, 131056, 196611, 0, 65520, 196611, 0, -16, 196611, 0, -65552, 196611, 0, -131088, 196611, 0, -131087, 196611, 0, -65551, 196611, 0, -15, 196611, 0, 65521, 196611, 0, 131057, 196611, 0, 196593, 196611, 0, 196594, 196611, 0, 131058, 196611, 0, 65522, 196611, 0, -14, 196611, 0, -65550, 196611, 0, -131086, 262147, 0, -131085, 196611, 0, -65549, 196611, 0, -13, 196611, 0, 65523, 196611, 0, 131059, 196611, 0, 196595, 196611, 0, 196596, 196611, 0, 131060, 196611, 0, 65524, 196611, 0, -12, 196611, 0, -65548, 196611, 0, -131084, 196611, 0, 65525, 262147, 0, 131061, 196611, 0, 196597, 196611, 0, 196598, 196611, 0, 131062, 196611, 0, 65526, 196611, 0, 65527, 196611, 0, 131063, 196611, 0, 196599, 196611, 0, 196600, 196611, 0, 131064, 196611, 0, 65528, 196611, 0, 65529, 196611, 0, 131065, 196611, 0, 196601, 196611, 0, 196602, 196611, 0, 131066, 196611, 0, 65530, 196611, 0, 65531, 196611, 0, 131067, 196611, 0, 196603, 196611, 0, 196604, 196611, 0, 131068, 196611, 0, 65532, 196611, 0, 65533, 196611, 0, -3, 196611, 0, -65539, 196611, 0, -65538, 196611, 0, -2, 196611, 0, 65534, 196611, 0, 131070, 196611, 0, 131069, 262147, 0, 196605, 196611, 0, 196606, 196611, 0, 196607, 196611, 0, 131071, 196611, 0, 65535, 196611, 0, -1, 196611, 0, -65537, 196611, 0, -131072, 196611, 0, -65536, 196611, 0, 0, 196611, 0, 65536, 196611, 0, 131072, 196611, 0, 131073, 196611, 0, 65537, 196611, 0, 1, 196611, 0, -65535, 196611, 0, -131071, 196611, 0, -131070, 196611, 0, -65534, 196611, 0, 2, 196611, 0, 65538, 196611, 0, 131074, 196611, 0, 131075, 458755, 1, 65539, 458755, 0, 3, 196611, 0, -65533, 196611, 0, -131069, 196611, 0, -131068, 196611, 0, -65532, 196611, 0, 4, 196611, 0, 65540, 196611, 0, 131076, 196611, 0, 131077, 196611, 0, 131078, 196611, 0, 65542, 196611, 0, 6, 196611, 0, -65530, 393219, 1, -131066, 393219, 0, -196602, 196611, 0, -196601, 196611, 0, -131065, 458755, 0, -65529, 458755, 1, 7, 196611, 0, 65543, 196611, 0, 131079, 196611, 0, 131080, 196611, 0, 65544, 196611, 0, 8, 196611, 0, -65528, 196611, 0, -131064, 196611, 0, -196600, 196611, 0, -196599, 196611, 0, -131063, 196611, 0, -65527, 196611, 0, 9, 196611, 0, 65545, 196611, 0, 131081, 196611, 0, 131082, 196611, 0, 65546, 196611, 0, 10, 196611, 0, -65526, 196611, 0, -131062, 196611, 0, -196598, 196611, 0, -196597, 327683, 2, -131061, 327683, 3, -65525, 196611, 0, 11, 196611, 0, 65547, 196611, 0, 131083, 196611, 0, 131084, 196611, 0, 65548, 196611, 0, 12, 196611, 0, -65524, 196611, 0, -131060, 393219, 3, -196596, 393219, 2, -196595, 458755, 2, -262131, 196611, 0, -327667, 196611, 0, -393203, 196611, 4, -458739, 196611, 3, -524275, 196611, 0, -589811, 196611, 0, -655347, 196611, 0, -720883, 196611, 0, -786419, 196611, 0, -851955, 196611, 0, -917491, 196611, 0, -983027, 196611, 0, -983028, 196611, 0, -983029, 262147, 0, -983030, 196611, 0, -983031, 196611, 0, -983032, 196611, 0, -983033, 196611, 0, -983034, 196611, 0, -983035, 262147, 3, -983036, 196611, 3, -983037, 458755, 0, -983038, 196611, 0, -983039, 196611, 0, -983040, 196611, 0, -917505, 196611, 0, -917506, 196611, 0, -917507, 196611, 0, -917508, 196611, 0, -917509, 196611, 0, -917510, 196611, 0, -917511, 196611, 0, -917512, 196611, 0, -917513, 196611, 0, -851977, 196611, 0, -786441, 196611, 0, -720905, 458755, 0, -655369, 458755, 1, -655368, 196611, 0, -720904, 196611, 0, -786440, 196611, 0, -851976, 196611, 0, -851975, 196611, 0, -786439, 196611, 0, -720903, 196611, 0, -655367, 196611, 0, -655366, 196611, 0, -720902, 196611, 0, -786438, 196611, 0, -851974, 196611, 0, -851973, 196611, 0, -786437, 196611, 0, -720901, 196611, 0, -655365, 196611, 0, -655364, 196611, 0, -720900, 262147, 0, -786436, 196611, 0, -851972, 196611, 0, -851971, 196611, 0, -786435, 196611, 0, -720899, 196611, 0, -655363, 196611, 0, -655362, 196611, 0, -720898, 196611, 0, -786434, 196611, 0, -851970, 196611, 0, -851969, 196611, 0, -786433, 196611, 0, -720897, 196611, 0, -655361, 196611, 0, -720896, 196611, 0, -786432, 196611, 0, -851968, 196611, 0, -917504, 196611, 0, -917503, 196611, 0, -851967, 196611, 0, -786431, 196611, 0, -720895, 196611, 0, -720894, 196611, 0, -786430, 196611, 0, -851966, 196611, 0, -917502, 196611, 0, -917501, 458755, 1, -851965, 196611, 0, -786429, 196611, 0, -720893, 196611, 0, -720892, 196611, 0, -786428, 196611, 0, -851964, 196611, 0, -917500, 196611, 4, -917499, 262147, 4, -851963, 196611, 0, -786427, 196611, 0, -720891, 196611, 0, -720890, 196611, 0, -786426, 196611, 0, -851962, 196611, 0, -917498, 196611, 0, -917497, 196611, 0, -851961, 196611, 0, -786425, 196611, 0, -720889, 196611, 0, -720888, 196611, 0, -786424, 196611, 0, -851960, 196611, 0, -917496, 196611, 0, -917495, 196611, 0, -851959, 196611, 0, -786423, 196611, 0, -720887, 196611, 0, -720886, 196611, 0, -786422, 196611, 0, -851958, 196611, 0, -917494, 196611, 0, -917493, 196611, 0, -851957, 196611, 0, -786421, 196611, 0, -720885, 196611, 0, -720884, 196611, 0, -786420, 196611, 0, -851956, 196611, 0, -917492, 196611, 0, -983026, 196611, 0, -917490, 196611, 0, -851954, 196611, 0, -786418, 196611, 0, -720882, 196611, 0, -655346, 196611, 0, -589810, 196611, 0, -524274, 196611, 0, -458738, 262147, 3, -393202, 262147, 4, -327666, 196611, 0, -262130, 196611, 0, -196594, 196611, 0, -131058, 196611, 0, -131059, 458755, 3, -65523, 196611, 0, 13, 196611, 0, 65549, 196611, 0, 131085, 196611, 0, 131086, 196611, 0, 65550, 196611, 0, 14, 196611, 0, -65522, 196611, 0, -65521, 196611, 0, -131057, 196611, 0, -196593, 196611, 0, -262129, 327683, 1, -327665, 327683, 0, -393201, 196611, 0, -458737, 196611, 0, -524273, 196611, 0, -589809, 196611, 0, -655345, 196611, 0, -720881, 196611, 0, -786417, 196611, 0, -851953, 196611, 0, -917489, 196611, 0, -983025, 196611, 0, -983024, 196611, 0, -917488, 327683, 2, -851952, 327683, 3, -786416, 196611, 0, -720880, 196611, 0, -655344, 196611, 0, -589808, 196611, 0, -524272, 196611, 0, -458736, 196611, 0, -393200, 196611, 0, -327664, 393219, 0, -262128, 393219, 1, -196592, 196611, 0, -131056, 196611, 0, -65520, 196611, 0, 16, 196611, 0, 15, 196611, 0, 65551, 196611, 0, 131087, 196611, 0, 131088, 196611, 0, 65552, 262147, 0, 65553, 196611, 0, 17, 196611, 0, -327663, 458755, 0, -393199, 196611, 0, -458735, 196611, 0, -524271, 196611, 0, -589807, 196611, 0, -655343, 262147, 2, -720879, 196611, 0, -786415, 196611, 0, -851951, 393219, 3, -917487, 393219, 2, -983023, 196611, 0, 131089, 196611, 0, 65562, 65536, 0, 65563, 65536, 0, 131099, 131072, 2, 131098, 131072, 2, 196634, 131072, 2, 196635, 131072, 2, 262171, 131072, 2, 262170, 131072, 2, 131124, 131072, 2, 196660, 131072, 2, 262196, 131072, 2, 327732, 131072, 2, 131125, 131072, 2, 196661, 131072, 2, 262197, 131072, 2, 327733, 131072, 2, -131020, 131072, 2, -65484, 131072, 2, 52, 131072, 2, 65588, 131072, 2, -131019, 131072, 2, -65483, 131072, 2, 53, 131072, 2, 65589, 131072, 2, 327693, 196611, 0, 393229, 196611, 0, 458765, 196611, 0, 524301, 196611, 0, 589837, 196611, 0, 655373, 196611, 0, 720909, 196611, 0, 786445, 196611, 0, 851981, 196611, 0, 327694, 196611, 0, 393230, 196611, 0, 458766, 196611, 0, 524302, 196611, 0, 589838, 196611, 0, 655374, 196611, 0, 720910, 196611, 0, 786446, 196611, 0, 851982, 196611, 0, 327695, 196611, 0, 393231, 196611, 0, 458767, 196611, 0, 524303, 196611, 0, 589839, 196611, 0, 655375, 196611, 0, 720911, 196611, 0, 786447, 196611, 0, 851983, 196611, 0, 327696, 196611, 0, 393232, 196611, 0, 458768, 196611, 0, 524304, 196611, 0, 589840, 196611, 0, 655376, 196611, 0, 720912, 196611, 0, 786448, 196611, 0, 851984, 196611, 0, 327697, 196611, 0, 393233, 196611, 0, 458769, 196611, 0, 524305, 196611, 0, 589841, 196611, 0, 655377, 196611, 0, 720913, 196611, 0, 786449, 196611, 0, 851985, 196611, 0, 327698, 196611, 0, 393234, 196611, 0, 458770, 196611, 0, 524306, 196611, 0, 589842, 196611, 0, 655378, 196611, 0, 720914, 196611, 0, 786450, 196611, 0, 851986, 196611, 0, 327699, 196611, 0, 393235, 196611, 0, 458771, 196611, 0, 524307, 196611, 0, 589843, 196611, 0, 655379, 196611, 0, 720915, 196611, 0, 786451, 196611, 0, 851987, 196611, 0, 327700, 196611, 0, 393236, 196611, 0, 458772, 196611, 0, 524308, 196611, 0, 589844, 196611, 0, 655380, 196611, 0, 720916, 196611, 0, 786452, 196611, 0, 851988, 196611, 0, 327701, 196611, 0, 393237, 196611, 0, 458773, 131075, 268435459, 524309, 131075, 268435460, 589845, 196611, 0, 655381, 196611, 0, 720917, 196611, 0, 786453, 196611, 0, 851989, 196611, 0, 327702, 196611, 0, 393238, 196611, 0, 458774, 65539, 268435459, 524310, 65539, 268435460, 589846, 196611, 0, 655382, 196611, 0, 720918, 196611, 0, 786454, 196611, 0, 851990, 196611, 0, 327703, 196611, 0, 393239, 196611, 0, 458775, 3, 268435459, 524311, 3, 268435460, 589847, 196611, 0, 655383, 196611, 0, 720919, 196611, 0, 786455, 196611, 0, 851991, 196611, 0, 327704, 196611, 0, 393240, 196611, 0, 458776, 196611, 0, 524312, 196611, 0, 589848, 196611, 0, 655384, 196611, 0, 720920, 196611, 0, 786456, 196611, 0, 851992, 196611, 0, 327705, 196611, 0, 393241, 196611, 0, 458777, 196611, 0, 524313, 196611, 0, 589849, 196611, 0, 655385, 196611, 0, 720921, 196611, 0, 786457, 196611, 0, 851993, 196611, 0, 327706, 131072, 0, 393242, 131072, 0, 458778, 131072, 0, 524314, 131072, 0, 589850, 131072, 0, 655386, 131072, 0, 720922, 131072, 0, 786458, 196611, 0, 851994, 196611, 0, 327707, 131072, 0, 393243, 131072, 0, 458779, 131072, 0, 524315, 131072, 0, 589851, 131072, 0, 655387, 131072, 0, 720923, 131072, 0, 786459, 196611, 0, 851995, 196611, 0, 327708, 196611, 0, 393244, 196611, 0, 458780, 196611, 0, 524316, 327683, 2, 589852, 327683, 3, 655388, 196611, 0, 720924, 196611, 0, 786460, 196611, 0, 851996, 196611, 0, 327709, 196611, 0, 393245, 196611, 0, 458781, 196611, 0, 524317, 393219, 2, 589853, 393219, 3, 655389, 196611, 0, 720925, 196611, 0, 786461, 196611, 0, 851997, 196611, 0, 327710, 196611, 0, 393246, 196611, 0, 458782, 196611, 0, 524318, 458755, 2, 589854, 458755, 3, 655390, 196611, 0, 720926, 196611, 0, 786462, 196611, 0, 851998, 196611, 0, 327711, 196611, 0, 393247, 196611, 0, 458783, 196611, 0, 524319, 196611, 0, 589855, 196611, 0, 655391, 196611, 0, 720927, 196611, 0, 786463, 196611, 0, 851999, 196611, 0, 327712, 196611, 0, 393248, 196611, 0, 458784, 196611, 0, 524320, 196611, 0, 589856, 196611, 0, 655392, 196611, 0, 720928, 196611, 0, 786464, 196611, 0, 852000, 196611, 0, 327713, 196611, 0, 393249, 196611, 0, 458785, 196611, 0, 524321, 196611, 0, 589857, 196611, 0, 655393, 196611, 0, 720929, 196611, 0, 786465, 196611, 0, 852001, 196611, 0, 327714, 196611, 0, 393250, 196611, 0, 458786, 196611, 0, 524322, 196611, 0, 589858, 196611, 0, 655394, 196611, 0, 720930, 196611, 0, 786466, 196611, 0, 852002, 196611, 0, 327715, 196611, 0, 393251, 196611, 0, 458787, 196611, 0, 524323, 196611, 0, 589859, 196611, 0, 655395, 196611, 0, 720931, 196611, 0, 786467, 196611, 0, 852003, 196611, 0, 327716, 196611, 0, 393252, 196611, 0, 458788, 196611, 0, 524324, 196611, 0, 589860, 196611, 0, 655396, 196611, 0, 720932, 196611, 0, 786468, 196611, 0, 852004, 196611, 0, 327717, 196611, 0, 393253, 196611, 0, 458789, 196611, 0, 524325, 196611, 0, 589861, 196611, 0, 655397, 196611, 0, 720933, 196611, 0, 786469, 196611, 0, 852005, 196611, 0, 327718, 196611, 0, 393254, 196611, 0, 458790, 196611, 0, 524326, 196611, 0, 589862, 196611, 0, 655398, 196611, 0, 720934, 196611, 0, 786470, 196611, 0, 852006, 196611, 0, 327719, 196611, 0, 393255, 196611, 0, 458791, 196611, 0, 524327, 196611, 0, 589863, 196611, 0, 655399, 196611, 0, 720935, 196611, 0, 786471, 196611, 0, 852007, 196611, 0, 327720, 196611, 0, 393256, 196611, 0, 458792, 196611, 0, 524328, 196611, 0, 589864, 196611, 0, 655400, 196611, 0, 720936, 196611, 0, 786472, 196611, 0, 852008, 196611, 0, 458735, 196611, 0, 524271, 196611, 0, 589807, 196611, 0, 655343, 196611, 0, 720879, 196611, 0, 786415, 196611, 0, 851951, 196611, 0, 917487, 196611, 0, 458736, 196611, 0, 524272, 196611, 0, 589808, 196611, 0, 655344, 196611, 0, 720880, 196611, 0, 786416, 196611, 0, 851952, 196611, 0, 917488, 196611, 0, 458737, 196611, 0, 524273, 196611, 0, 589809, 196611, 0, 655345, 196611, 0, 720881, 196611, 0, 786417, 196611, 0, 851953, 196611, 0, 917489, 196611, 0, 458738, 196611, 0, 524274, 196611, 0, 589810, 196611, 0, 655346, 196611, 0, 720882, 196611, 0, 786418, 327683, 1342177283, 851954, 393219, 1342177283, 917490, 458755, 1342177283, 458739, 196611, 0, 524275, 196611, 0, 589811, 196611, 0, 655347, 196611, 0, 720883, 196611, 0, 786419, 327683, 1342177282, 851955, 393219, 1342177282, 917491, 458755, 1342177282, 458740, 196611, 0, 524276, 196611, 0, 589812, 196611, 0, 655348, 196611, 0, 720884, 196611, 0, 786420, 196611, 0, 851956, 196611, 0, 917492, 196611, 0, 458741, 196611, 0, 524277, 196611, 0, 589813, 196611, 0, 655349, 196611, 0, 720885, 196611, 0, 786421, 196611, 0, 851957, 196611, 0, 917493, 196611, 0, 458742, 196611, 0, 524278, 196611, 0, 589814, 196611, 0, 655350, 196611, 0, 720886, 196611, 0, 786422, 196611, 0, 851958, 196611, 0, 917494, 196611, 0, 458743, 196611, 0, 524279, 196611, 0, 589815, 196611, 0, 655351, 196611, 0, 720887, 196611, 0, 786423, 196611, 0, 851959, 196611, 0, 917495, 196611, 0, 458744, 196611, 0, 524280, 196611, 0, 589816, 196611, 0, 655352, 196611, 0, 720888, 196611, 0, 786424, 196611, 0, 851960, 196611, 0, 917496, 196611, 0, 458745, 196611, 0, 524281, 196611, 0, 589817, 196611, 0, 655353, 196611, 0, 720889, 196611, 0, 786425, 196611, 0, 851961, 196611, 0, 917497, 196611, 0, 458746, 196611, 0, 524282, 196611, 0, 589818, 196611, 0, 655354, 196611, 0, 720890, 196611, 0, 786426, 196611, 0, 851962, 196611, 0, 917498, 196611, 0, 458747, 196611, 0, 524283, 196611, 0, 589819, 196611, 0, 655355, 196611, 0, 720891, 196611, 0, 786427, 196611, 0, 851963, 196611, 0, 917499, 196611, 0, 458748, 196611, 0, 524284, 196611, 0, 589820, 196611, 0, 655356, 196611, 0, 720892, 196611, 0, 786428, 196611, 0, 851964, 196611, 0, 917500, 196611, 0, 458749, 196611, 0, 524285, 196611, 0, 589821, 196611, 0, 655357, 196611, 0, 720893, 196611, 0, 786429, 196611, 0, 851965, 196611, 0, 917501, 196611, 0, 458750, 196611, 0, 524286, 196611, 0, 589822, 196611, 0, 655358, 196611, 0, 720894, 196611, 0, 786430, 196611, 0, 851966, 196611, 0, 917502, 196611, 0, 458751, 196611, 0, 524287, 196611, 0, 589823, 196611, 0, 655359, 196611, 0, 720895, 196611, 0, 786431, 196611, 0, 851967, 196611, 0, 917503, 196611, 0, 393216, 196611, 0, 458752, 196611, 0, 524288, 196611, 0, 589824, 196611, 0, 655360, 196611, 0, 720896, 196611, 0, 786432, 196611, 0, 851968, 196611, 0, 393217, 196611, 0, 458753, 196611, 0, 524289, 196611, 0, 589825, 196611, 0, 655361, 196611, 0, 720897, 196611, 0, 786433, 196611, 0, 851969, 196611, 0, 393218, 196611, 0, 458754, 196611, 0, 524290, 196611, 0, 589826, 196611, 0, 655362, 196611, 0, 720898, 196611, 0, 786434, 196611, 0, 851970, 196611, 0, 393219, 196611, 0, 458755, 196611, 0, 524291, 196611, 0, 589827, 196611, 0, 655363, 196611, 0, 720899, 196611, 0, 786435, 196611, 0, 851971, 196611, 0, 393220, 196611, 0, 458756, 196611, 0, 524292, 196611, 0, 589828, 196611, 0, 655364, 196611, 0, 720900, 196611, 0, 786436, 196611, 0, 851972, 196611, 0, 393221, 196611, 0, 458757, 196611, 0, 524293, 196611, 0, 589829, 196611, 0, 655365, 196611, 0, 720901, 196611, 0, 786437, 196611, 0, 851973, 196611, 0, 393222, 196611, 0, 458758, 196611, 0, 524294, 196611, 0, 589830, 196611, 0, 655366, 196611, 0, 720902, 196611, 0, 786438, 196611, 0, 851974, 196611, 0, 393223, 196611, 0, 458759, 196611, 0, 524295, 196611, 0, 589831, 196611, 0, 655367, 196611, 0, 720903, 196611, 0, 786439, 196611, 0, 851975, 196611, 0, 393224, 196611, 0, 458760, 196611, 0, 524296, 196611, 0, 589832, 196611, 0, 655368, 196611, 0, 720904, 196611, 0, 786440, 196611, 0, 851976, 196611, 0, 393225, 196611, 0, 458761, 196611, 0, 524297, 196611, 0, 589833, 196611, 0, 655369, 196611, 0, 720905, 196611, 0, 786441, 196611, 0, 851977, 196611, 0, 393226, 196611, 0, 458762, 196611, 0, 524298, 196611, 0, 589834, 196611, 0, 655370, 196611, 0, 720906, 196611, 0, 786442, 196611, 0, 851978, 196611, 0, 393227, 196611, 0, 458763, 196611, 0, 524299, 196611, 0, 589835, 196611, 0, 655371, 196611, 0, 720907, 196611, 0, 786443, 196611, 0, 851979, 196611, 0, 393228, 196611, 0, 458764, 196611, 0, 524300, 196611, 0, 589836, 196611, 0, 655372, 196611, 0, 720908, 196611, 0, 786444, 196611, 0, 851980, 196611, 0, 917521, 196611, 0, 983057, 196611, 0, 1048593, 196611, 0, 1114129, 196611, 0, 1179665, 196611, 0, 1245201, 196611, 0, 1310737, 196611, 0, 1376273, 196611, 0, 1441809, 196611, 0, 1507345, 196611, 0, 1572881, 196611, 0, 1638417, 196611, 0, 1703953, 196611, 0, 917522, 196611, 0, 983058, 196611, 0, 1048594, 196611, 0, 1114130, 196611, 0, 1179666, 196611, 0, 1245202, 196611, 0, 1310738, 196611, 0, 1376274, 196611, 0, 1441810, 196611, 0, 1507346, 196611, 0, 1572882, 196611, 0, 1638418, 196611, 0, 1703954, 196611, 0, 917523, 196611, 0, 983059, 196611, 0, 1048595, 196611, 0, 1114131, 196611, 0, 1179667, 196611, 0, 1245203, 196611, 0, 1310739, 196611, 0, 1376275, 196611, 0, 1441811, 196611, 0, 1507347, 196611, 0, 1572883, 196611, 0, 1638419, 196611, 0, 1703955, 196611, 0, 917524, 196611, 0, 983060, 196611, 0, 1048596, 196611, 0, 1114132, 196611, 0, 1179668, 196611, 0, 1245204, 196611, 0, 1310740, 196611, 0, 1376276, 196611, 0, 1441812, 196611, 0, 1507348, 196611, 0, 1572884, 196611, 0, 1638420, 196611, 0, 1703956, 196611, 0, 917525, 196611, 0, 983061, 196611, 0, 1048597, 196611, 0, 1114133, 196611, 0, 1179669, 196611, 0, 1245205, 196611, 0, 1310741, 196611, 0, 1376277, 196611, 0, 1441813, 196611, 0, 1507349, 196611, 0, 1572885, 196611, 0, 1638421, 196611, 0, 1703957, 196611, 0, 917526, 196611, 0, 983062, 196611, 0, 1048598, 196611, 0, 1114134, 196611, 0, 1179670, 196611, 0, 1245206, 196611, 0, 1310742, 196611, 0, 1376278, 196611, 0, 1441814, 196611, 0, 1507350, 196611, 0, 1572886, 196611, 0, 1638422, 196611, 0, 1703958, 196611, 0, 917527, 196611, 0, 983063, 196611, 0, 1048599, 196611, 0, 1114135, 196611, 0, 1179671, 196611, 0, 1245207, 196611, 0, 1310743, 196611, 0, 1376279, 196611, 0, 1441815, 196611, 0, 1507351, 196611, 0, 1572887, 196611, 0, 1638423, 196611, 0, 1703959, 196611, 0, 917528, 196611, 0, 983064, 196611, 0, 1048600, 196611, 0, 1114136, 196611, 0, 1179672, 196611, 0, 1245208, 196611, 0, 1310744, 196611, 0, 1376280, 196611, 0, 1441816, 196611, 0, 1507352, 196611, 0, 1572888, 196611, 0, 1638424, 196611, 0, 1703960, 196611, 0, 917529, 196611, 0, 983065, 196611, 0, 1048601, 196611, 0, 1114137, 196611, 0, 1179673, 196611, 0, 1245209, 196611, 0, 1310745, 196611, 0, 1376281, 196611, 0, 1441817, 196611, 0, 1507353, 196611, 0, 1572889, 196611, 0, 1638425, 196611, 0, 1703961, 196611, 0, 917530, 196611, 0, 983066, 196611, 0, 1048602, 196611, 0, 1114138, 196611, 0, 1179674, 196611, 0, 1245210, 196611, 0, 1310746, 196611, 0, 1376282, 196611, 0, 1441818, 196611, 3, 1507354, 196611, 4, 1572890, 196611, 0, 1638426, 196611, 0, 1703962, 196611, 0, 917531, 196611, 0, 983067, 196611, 0, 1048603, 196611, 0, 1114139, 196611, 0, 1179675, 196611, 0, 1245211, 196611, 0, 1310747, 196611, 0, 1376283, 196611, 0, 1441819, 262147, 3, 1507355, 262147, 4, 1572891, 196611, 0, 1638427, 196611, 0, 1703963, 196611, 0, 917532, 196611, 0, 983068, 196611, 0, 1048604, 196611, 0, 1114140, 196611, 0, 1179676, 196611, 0, 1245212, 196611, 0, 1310748, 196611, 0, 1376284, 196611, 0, 1441820, 196611, 0, 1507356, 196611, 0, 1572892, 196611, 0, 1638428, 196611, 0, 1703964, 196611, 0, 917533, 196611, 0, 983069, 196611, 0, 1048605, 196611, 0, 1114141, 196611, 0, 1179677, 196611, 0, 1245213, 196611, 0, 1310749, 196611, 0, 1376285, 196611, 0, 1441821, 196611, 0, 1507357, 196611, 0, 1572893, 196611, 0, 1638429, 196611, 0, 1703965, 196611, 0, 917534, 196611, 0, 983070, 196611, 0, 1048606, 196611, 0, 1114142, 196611, 0, 1179678, 196611, 0, 1245214, 196611, 0, 1310750, 196611, 0, 1376286, 196611, 0, 1441822, 196611, 0, 1507358, 196611, 0, 1572894, 196611, 0, 1638430, 196611, 0, 1703966, 196611, 0, 917535, 196611, 0, 983071, 196611, 0, 1048607, 196611, 0, 1114143, 196611, 0, 1179679, 196611, 0, 1245215, 196611, 0, 1310751, 196611, 0, 1376287, 196611, 0, 1441823, 196611, 0, 1507359, 196611, 0, 1572895, 196611, 0, 1638431, 196611, 0, 1703967, 196611, 0, 917536, 196611, 0, 983072, 196611, 0, 1048608, 196611, 0, 1114144, 196611, 0, 1179680, 196611, 0, 1245216, 196611, 0, 1310752, 196611, 0, 1376288, 196611, 0, 1441824, 196611, 0, 1507360, 196611, 0, 1572896, 196611, 0, 1638432, 196611, 0, 1703968, 196611, 0, 917537, 196611, 0, 983073, 196611, 0, 1048609, 196611, 0, 1114145, 196611, 0, 1179681, 196611, 0, 1245217, 196611, 0, 1310753, 196611, 0, 1376289, 196611, 0, 1441825, 196611, 0, 1507361, 196611, 0, 1572897, 196611, 0, 1638433, 196611, 0, 1703969, 196611, 0, 917538, 196611, 0, 983074, 196611, 0, 1048610, 196611, 0, 1114146, 196611, 0, 1179682, 196611, 0, 1245218, 196611, 0, 1310754, 196611, 0, 1376290, 196611, 0, 1441826, 196611, 0, 1507362, 196611, 0, 1572898, 196611, 0, 1638434, 196611, 0, 1703970, 196611, 0, 917539, 196611, 0, 983075, 196611, 0, 1048611, 196611, 0, 1114147, 196611, 0, 1179683, 196611, 0, 1245219, 196611, 0, 1310755, 196611, 0, 1376291, 196611, 0, 1441827, 196611, 0, 1507363, 196611, 0, 1572899, 196611, 0, 1638435, 196611, 0, 1703971, 196611, 0, 917540, 196611, 0, 983076, 196611, 0, 1048612, 196611, 0, 1114148, 196611, 0, 1179684, 196611, 0, 1245220, 196611, 0, 1310756, 196611, 0, 1376292, 196611, 0, 1441828, 196611, 0, 1507364, 196611, 0, 1572900, 196611, 0, 1638436, 196611, 0, 1703972, 196611, 0, 917541, 196611, 0, 983077, 196611, 0, 1048613, 196611, 0, 1114149, 196611, 0, 1179685, 196611, 0, 1245221, 196611, 0, 1310757, 196611, 0, 1376293, 196611, 0, 1441829, 196611, 0, 1507365, 196611, 0, 1572901, 196611, 0, 1638437, 196611, 0, 1703973, 196611, 0, 917542, 196611, 0, 983078, 196611, 0, 1048614, 196611, 0, 1114150, 196611, 0, 1179686, 196611, 0, 1245222, 196611, 0, 1310758, 196611, 0, 1376294, 196611, 0, 1441830, 196611, 0, 1507366, 196611, 0, 1572902, 196611, 0, 1638438, 196611, 0, 1703974, 196611, 0, -917480, 196611, 0, -851944, 196611, 0, -786408, 196611, 0, -720872, 196611, 0, -655336, 196611, 0, -917479, 196611, 0, -851943, 196611, 0, -786407, 196611, 0, -720871, 196611, 0, -655335, 196611, 0, -917478, 196611, 0, -851942, 196611, 0, -786406, 196611, 0, -720870, 196611, 0, -655334, 196611, 0, -917477, 196611, 0, -851941, 196611, 0, -786405, 196611, 0, -720869, 196611, 0, -655333, 196611, 0, -917476, 196611, 0, -851940, 196611, 0, -786404, 196611, 0, -720868, 196611, 0, -655332, 196611, 0, -917475, 196611, 0, -851939, 196611, 0, -786403, 196611, 0, -720867, 196611, 0, -655331, 196611, 0, -917474, 196611, 0, -851938, 196611, 0, -786402, 196611, 0, -720866, 196611, 0, -655330, 196611, 0, -917473, 196611, 0, -851937, 196611, 0, -786401, 196611, 0, -720865, 196611, 0, -655329, 196611, 0, -917472, 196611, 0, -851936, 196611, 0, -786400, 196611, 0, -720864, 196611, 0, -655328, 196611, 0, -917471, 196611, 0, -851935, 196611, 0, -786399, 196611, 0, -720863, 196611, 0, -655327, 196611, 0, -917470, 196611, 0, -851934, 196611, 0, -786398, 196611, 0, -720862, 196611, 0, -655326, 196611, 0, -1507304, 196611, 0, -1441768, 196611, 0, -1376232, 196611, 0, -1310696, 196611, 0, -1245160, 196611, 0, -1179624, 196611, 0, -1114088, 196611, 0, -1048552, 196611, 0, -983016, 196611, 0, -1507303, 196611, 0, -1441767, 196611, 0, -1376231, 196611, 0, -1310695, 196611, 0, -1245159, 196611, 0, -1179623, 196611, 0, -1114087, 196611, 0, -1048551, 196611, 0, -983015, 196611, 0, -1507302, 196611, 0, -1441766, 196611, 0, -1376230, 196611, 0, -1310694, 196611, 0, -1245158, 196611, 0, -1179622, 196611, 0, -1114086, 196611, 0, -1048550, 196611, 0, -983014, 196611, 0, -1507301, 196611, 0, -1441765, 196611, 0, -1376229, 196611, 0, -1310693, 196611, 0, -1245157, 196611, 0, -1179621, 196611, 0, -1114085, 196611, 0, -1048549, 196611, 0, -983013, 196611, 0, -1507300, 196611, 0, -1441764, 196611, 0, -1376228, 196611, 0, -1310692, 196611, 0, -1245156, 196611, 0, -1179620, 196611, 0, -1114084, 196611, 0, -1048548, 196611, 0, -983012, 196611, 0, -1507299, 196611, 0, -1441763, 196611, 0, -1376227, 196611, 0, -1310691, 196611, 0, -1245155, 196611, 0, -1179619, 196611, 0, -1114083, 196611, 0, -1048547, 196611, 0, -983011, 196611, 0, -1507298, 196611, 0, -1441762, 196611, 0, -1376226, 196611, 0, -1310690, 196611, 0, -1245154, 196611, 0, -1179618, 196611, 0, -1114082, 196611, 0, -1048546, 196611, 0, -983010, 196611, 0, -1507297, 196611, 0, -1441761, 196611, 0, -1376225, 196611, 0, -1310689, 196611, 0, -1245153, 196611, 0, -1179617, 196611, 0, -1114081, 196611, 0, -1048545, 196611, 0, -983009, 196611, 0, -1507296, 196611, 0, -1441760, 196611, 0, -1376224, 196611, 0, -1310688, 196611, 0, -1245152, 196611, 0, -1179616, 196611, 0, -1114080, 196611, 0, -1048544, 196611, 0, -983008, 196611, 0, -1507295, 196611, 0, -1441759, 196611, 0, -1376223, 196611, 0, -1310687, 196611, 0, -1245151, 196611, 0, -1179615, 196611, 0, -1114079, 196611, 0, -1048543, 196611, 0, -983007, 196611, 0, -1507294, 196611, 0, -1441758, 196611, 0, -1376222, 196611, 0, -1310686, 196611, 0, -1245150, 196611, 0, -1179614, 196611, 0, -1114078, 196611, 0, -1048542, 196611, 0, -983006, 196611, 0, -1507293, 196611, 0, -1441757, 196611, 0, -1376221, 196611, 0, -1310685, 196611, 0, -1245149, 196611, 0, -1179613, 196611, 0, -1114077, 196611, 0, -1048541, 196611, 0, -983005, 196611, 0, -917469, 196611, 0, -851933, 196611, 0, -786397, 196611, 0, -720861, 196611, 0, -655325, 196611, 0, -1507292, 196611, 0, -1441756, 196611, 0, -1376220, 196611, 0, -1310684, 196611, 0, -1245148, 196611, 0, -1179612, 196611, 0, -1114076, 196611, 0, -1048540, 196611, 0, -983004, 196611, 0, -917468, 196611, 0, -851932, 196611, 0, -786396, 196611, 0, -720860, 196611, 0, -655324, 196611, 0, -1507291, 196611, 0, -1441755, 196611, 0, -1376219, 196611, 0, -1310683, 196611, 0, -1245147, 196611, 0, -1179611, 196611, 0, -1114075, 196611, 0, -1048539, 196611, 0, -983003, 196611, 0, -917467, 196611, 0, -851931, 196611, 0, -786395, 196611, 0, -720859, 196611, 0, -655323, 196611, 0, -1507290, 196611, 0, -1441754, 196611, 0, -1376218, 196611, 0, -1310682, 196611, 0, -1245146, 196611, 0, -1179610, 196611, 0, -1114074, 196611, 0, -1048538, 196611, 0, -983002, 196611, 0, -917466, 196611, 0, -851930, 196611, 0, -786394, 196611, 0, -720858, 196611, 0, -655322, 196611, 0, -1507289, 196611, 0, -1441753, 196611, 0, -1376217, 196611, 0, -1310681, 196611, 0, -1245145, 196611, 0, -1179609, 196611, 0, -1114073, 196611, 0, -1048537, 196611, 0, -983001, 196611, 0, -917465, 196611, 0, -851929, 196611, 0, -786393, 196611, 0, -720857, 196611, 0, -655321, 196611, 0, -1507288, 196611, 0, -1441752, 196611, 0, -1376216, 196611, 0, -1310680, 196611, 0, -1245144, 196611, 0, -1179608, 196611, 0, -1114072, 196611, 0, -1048536, 196611, 0, -983000, 196611, 0, -917464, 196611, 0, -851928, 196611, 0, -786392, 196611, 0, -720856, 196611, 0, -655320, 196611, 0, -1507287, 196611, 0, -1441751, 196611, 0, -1376215, 196611, 0, -1310679, 196611, 0, -1245143, 196611, 0, -1179607, 196611, 0, -1114071, 196611, 0, -1048535, 196611, 0, -982999, 196611, 0, -917463, 196611, 0, -851927, 196611, 0, -786391, 196611, 0, -720855, 196611, 0, -655319, 196611, 0, -1507286, 196611, 0, -1441750, 196611, 0, -1376214, 196611, 0, -1310678, 196611, 0, -1245142, 196611, 0, -1179606, 196611, 0, -1114070, 196611, 0, -1048534, 196611, 0, -982998, 196611, 0, -917462, 196611, 0, -851926, 196611, 0, -786390, 196611, 0, -720854, 196611, 0, -655318, 196611, 0, -1507285, 196611, 0, -1441749, 196611, 0, -1376213, 196611, 0, -1310677, 196611, 0, -1245141, 196611, 0, -1179605, 196611, 0, -1114069, 196611, 0, -1048533, 196611, 0, -982997, 196611, 0, -917461, 196611, 0, -851925, 196611, 0, -786389, 196611, 0, -720853, 196611, 0, -655317, 196611, 0, -1507284, 196611, 0, -1441748, 196611, 0, -1376212, 196611, 0, -1310676, 196611, 0, -1245140, 196611, 0, -1179604, 196611, 0, -1114068, 196611, 0, -1048532, 196611, 0, -982996, 196611, 0, -917460, 196611, 0, -851924, 196611, 0, -786388, 196611, 0, -720852, 196611, 0, -655316, 196611, 0, -1507283, 196611, 0, -1441747, 196611, 0, -1376211, 196611, 0, -1310675, 196611, 0, -1245139, 196611, 0, -1179603, 196611, 0, -1114067, 196611, 0, -1048531, 196611, 0, -982995, 196611, 0, -917459, 196611, 0, -851923, 196611, 0, -786387, 196611, 0, -720851, 196611, 0, -655315, 196611, 0, -1507282, 196611, 0, -1441746, 196611, 0, -1376210, 196611, 0, -1310674, 196611, 0, -1245138, 196611, 0, -1179602, 196611, 0, -1114066, 196611, 0, -1048530, 196611, 0, -982994, 196611, 0, -917458, 196611, 0, -851922, 196611, 0, -786386, 196611, 0, -720850, 196611, 0, -655314, 196611, 0, -1507281, 196611, 0, -1441745, 196611, 0, -1376209, 196611, 0, -1310673, 196611, 0, -1245137, 196611, 0, -1179601, 196611, 0, -1114065, 196611, 0, -1048529, 196611, 0, -982993, 196611, 0, -917457, 196611, 0, -851921, 196611, 0, -786385, 196611, 0, -720849, 196611, 0, -655313, 196611, 0, -1507280, 196611, 0, -1441744, 196611, 0, -1376208, 196611, 0, -1310672, 196611, 0, -1245136, 196611, 0, -1179600, 196611, 0, -1114064, 196611, 0, -1048528, 196611, 0, -982992, 196611, 0, -917456, 196611, 0, -851920, 196611, 0, -786384, 196611, 0, -720848, 196611, 0, -655312, 196611, 0, -1507279, 196611, 0, -1441743, 196611, 0, -1376207, 196611, 0, -1310671, 196611, 0, -1245135, 196611, 0, -1179599, 196611, 0, -1114063, 196611, 0, -1048527, 196611, 0, -982991, 196611, 0, -917455, 196611, 0, -851919, 196611, 0, -786383, 196611, 0, -720847, 196611, 0, -655311, 196611, 0, -1507278, 196611, 0, -1441742, 196611, 0, -1376206, 196611, 0, -1310670, 196611, 0, -1245134, 196611, 0, -1179598, 196611, 0, -1114062, 196611, 0, -1048526, 196611, 0, -982990, 196611, 0, -917454, 196611, 0, -851918, 196611, 0, -786382, 196611, 0, -720846, 196611, 0, -655310, 196611, 0, -1507277, 196611, 0, -1441741, 196611, 0, -1376205, 196611, 0, -1310669, 196611, 0, -1245133, 196611, 0, -1179597, 196611, 0, -1114061, 196611, 0, -1048525, 196611, 0, -982989, 196611, 0, -917453, 196611, 0, -851917, 196611, 0, -786381, 196611, 0, -720845, 196611, 0, -655309, 196611, 0, -1507276, 196611, 0, -1441740, 196611, 0, -1376204, 196611, 0, -1310668, 196611, 0, -1245132, 196611, 0, -1179596, 196611, 0, -1114060, 196611, 0, -1048524, 196611, 0, -982988, 196611, 0, -917452, 196611, 0, -851916, 196611, 0, -786380, 196611, 0, -720844, 196611, 0, -655308, 196611, 0, -1507275, 196611, 0, -1441739, 196611, 0, -1376203, 196611, 0, -1310667, 196611, 0, -1245131, 196611, 0, -1179595, 196611, 0, -1114059, 196611, 0, -1048523, 196611, 0, -982987, 196611, 0, -917451, 196611, 0, -851915, 196611, 0, -786379, 196611, 0, -720843, 196611, 0, -655307, 196611, 0, -1507274, 196611, 0, -1441738, 196611, 0, -1376202, 196611, 0, -1310666, 196611, 0, -1245130, 196611, 0, -1179594, 196611, 0, -1114058, 196611, 0, -1048522, 196611, 0, -982986, 196611, 0, -917450, 196611, 0, -851914, 196611, 0, -786378, 196611, 0, -720842, 196611, 0, -655306, 196611, 0, -1507273, 196611, 0, -1441737, 196611, 0, -1376201, 196611, 0, -1310665, 196611, 0, -1245129, 196611, 0, -1179593, 196611, 0, -1114057, 196611, 0, -1048521, 196611, 0, -982985, 196611, 0, -917449, 196611, 0, -851913, 196611, 0, -786377, 196611, 0, -720841, 196611, 0, -655305, 196611, 0, -1507272, 196611, 0, -1441736, 196611, 0, -1376200, 196611, 0, -1310664, 196611, 0, -1245128, 196611, 0, -1179592, 196611, 0, -1114056, 196611, 0, -1048520, 196611, 0, -982984, 196611, 0, -917448, 196611, 0, -851912, 196611, 0, -786376, 196611, 0, -720840, 196611, 0, -655304, 196611, 0, -1507271, 196611, 0, -1441735, 196611, 0, -1376199, 196611, 0, -1310663, 196611, 0, -1245127, 196611, 0, -1179591, 196611, 0, -1114055, 196611, 0, -1048519, 196611, 0, -982983, 196611, 0, -917447, 196611, 0, -851911, 196611, 0, -786375, 196611, 0, -720839, 196611, 0, -655303, 196611, 0, -1507270, 196611, 0, -1441734, 196611, 0, -1376198, 196611, 0, -1310662, 196611, 0, -1245126, 196611, 0, -1179590, 196611, 0, -1114054, 196611, 0, -1048518, 196611, 0, -982982, 196611, 0, -917446, 196611, 0, -851910, 196611, 0, -786374, 196611, 0, -720838, 196611, 0, -655302, 196611, 0, -1507269, 196611, 0, -1441733, 196611, 0, -1376197, 196611, 0, -1310661, 196611, 0, -1245125, 196611, 0, -1179589, 196611, 0, -1114053, 196611, 0, -1048517, 196611, 0, -982981, 196611, 0, -917445, 196611, 0, -851909, 196611, 0, -786373, 196611, 0, -720837, 196611, 0, -655301, 196611, 0, -1507268, 196611, 0, -1441732, 196611, 0, -1376196, 196611, 0, -1310660, 196611, 0, -1245124, 196611, 0, -1179588, 196611, 0, -1114052, 196611, 0, -1048516, 196611, 0, -982980, 196611, 0, -917444, 196611, 0, -851908, 196611, 0, -786372, 196611, 0, -720836, 196611, 0, -655300, 196611, 0, -1507267, 196611, 0, -1441731, 196611, 0, -1376195, 196611, 0, -1310659, 196611, 0, -1245123, 196611, 0, -1179587, 196611, 0, -1114051, 196611, 0, -1048515, 196611, 0, -982979, 196611, 0, -917443, 196611, 0, -851907, 196611, 0, -786371, 196611, 0, -720835, 196611, 0, -655299, 196611, 0, -1507266, 196611, 0, -1441730, 196611, 0, -1376194, 196611, 0, -1310658, 196611, 0, -1245122, 196611, 0, -1179586, 196611, 0, -1114050, 196611, 0, -1048514, 196611, 0, -982978, 196611, 0, -917442, 196611, 0, -851906, 196611, 0, -786370, 196611, 0, -720834, 196611, 0, -655298, 196611, 0, -1507265, 196611, 0, -1441729, 196611, 0, -1376193, 196611, 0, -1310657, 196611, 0, -1245121, 196611, 0, -1179585, 196611, 0, -1114049, 196611, 0, -1048513, 196611, 0, -982977, 196611, 0, -917441, 196611, 0, -851905, 196611, 0, -786369, 196611, 0, -720833, 196611, 0, -655297, 196611, 0, -1507264, 196611, 0, -1441728, 196611, 0, -1376192, 196611, 0, -1310656, 196611, 0, -1245120, 196611, 0, -1179584, 196611, 0, -1114048, 196611, 0, -1048512, 196611, 0, -982976, 196611, 0, -917440, 196611, 0, -851904, 196611, 0, -786368, 196611, 0, -720832, 196611, 0, -655296, 196611, 0, -1507263, 196611, 0, -1441727, 196611, 0, -1376191, 196611, 0, -1310655, 196611, 0, -1245119, 196611, 0, -1179583, 196611, 0, -1114047, 196611, 0, -1048511, 196611, 0, -982975, 196611, 0, -917439, 196611, 0, -851903, 196611, 0, -786367, 196611, 0, -720831, 196611, 0, -655295, 196611, 0, -1507262, 196611, 0, -1441726, 196611, 0, -1376190, 196611, 0, -1310654, 196611, 0, -1245118, 196611, 0, -1179582, 196611, 0, -1114046, 196611, 0, -1048510, 196611, 0, -982974, 196611, 0, -917438, 196611, 0, -851902, 196611, 0, -786366, 196611, 0, -720830, 196611, 0, -655294, 196611, 0, -1507261, 196611, 0, -1441725, 196611, 0, -1376189, 196611, 0, -1310653, 196611, 0, -1245117, 196611, 0, -1179581, 196611, 0, -1114045, 196611, 0, -1048509, 196611, 0, -982973, 196611, 0, -917437, 196611, 0, -851901, 196611, 0, -786365, 196611, 0, -720829, 196611, 0, -655293, 196611, 0, -1507260, 196611, 0, -1441724, 196611, 0, -1376188, 196611, 0, -1310652, 196611, 0, -1245116, 196611, 0, -1179580, 196611, 0, -1114044, 196611, 0, -1048508, 196611, 0, -982972, 196611, 0, -917436, 196611, 0, -851900, 196611, 0, -786364, 196611, 0, -720828, 196611, 0, -655292, 196611, 0, -1507259, 196611, 0, -1441723, 196611, 0, -1376187, 196611, 0, -1310651, 196611, 0, -1245115, 196611, 0, -1179579, 196611, 0, -1114043, 196611, 0, -1048507, 196611, 0, -982971, 196611, 0, -917435, 196611, 0, -851899, 196611, 0, -786363, 196611, 0, -720827, 196611, 0, -655291, 196611, 0, -1507258, 196611, 0, -1441722, 196611, 0, -1376186, 196611, 0, -1310650, 196611, 0, -1245114, 196611, 0, -1179578, 196611, 0, -1114042, 196611, 0, -1048506, 196611, 0, -982970, 196611, 0, -917434, 196611, 0, -851898, 196611, 0, -786362, 196611, 0, -720826, 196611, 0, -655290, 196611, 0, -2293736, 196611, 0, -2228200, 196611, 0, -2162664, 196611, 0, -2097128, 196611, 0, -2031592, 196611, 0, -1966056, 196611, 0, -1900520, 196611, 0, -1834984, 196611, 0, -1769448, 196611, 0, -1703912, 196611, 0, -1638376, 196611, 0, -1572840, 196611, 0, -2293735, 196611, 0, -2228199, 196611, 0, -2162663, 196611, 0, -2097127, 196611, 0, -2031591, 196611, 0, -1966055, 196611, 0, -1900519, 196611, 0, -1834983, 196611, 0, -1769447, 196611, 0, -1703911, 196611, 0, -1638375, 196611, 0, -1572839, 196611, 0, -2293734, 196611, 0, -2228198, 196611, 0, -2162662, 196611, 0, -2097126, 196611, 0, -2031590, 196611, 0, -1966054, 196611, 0, -1900518, 196611, 0, -1834982, 196611, 0, -1769446, 196611, 0, -1703910, 196611, 0, -1638374, 196611, 0, -1572838, 196611, 0, -2293733, 196611, 0, -2228197, 196611, 0, -2162661, 196611, 0, -2097125, 196611, 0, -2031589, 196611, 0, -1966053, 196611, 0, -1900517, 196611, 0, -1834981, 196611, 0, -1769445, 196611, 0, -1703909, 196611, 0, -1638373, 196611, 0, -1572837, 196611, 0, -2293732, 196611, 0, -2228196, 196611, 0, -2162660, 196611, 0, -2097124, 196611, 0, -2031588, 196611, 0, -1966052, 196611, 0, -1900516, 196611, 0, -1834980, 196611, 0, -1769444, 196611, 0, -1703908, 196611, 0, -1638372, 196611, 0, -1572836, 196611, 0, -2293731, 196611, 0, -2228195, 196611, 0, -2162659, 196611, 0, -2097123, 196611, 0, -2031587, 196611, 0, -1966051, 196611, 0, -1900515, 196611, 0, -1834979, 196611, 0, -1769443, 196611, 0, -1703907, 196611, 0, -1638371, 196611, 0, -1572835, 196611, 0, -2293730, 196611, 0, -2228194, 196611, 0, -2162658, 196611, 0, -2097122, 196611, 0, -2031586, 196611, 0, -1966050, 196611, 0, -1900514, 196611, 0, -1834978, 196611, 0, -1769442, 196611, 0, -1703906, 196611, 0, -1638370, 196611, 0, -1572834, 196611, 0, -2293729, 196611, 0, -2228193, 196611, 0, -2162657, 196611, 0, -2097121, 196611, 0, -2031585, 196611, 0, -1966049, 196611, 0, -1900513, 196611, 0, -1834977, 196611, 0, -1769441, 196611, 0, -1703905, 196611, 0, -1638369, 196611, 0, -1572833, 196611, 0, -2293728, 196611, 0, -2228192, 196611, 0, -2162656, 196611, 0, -2097120, 196611, 0, -2031584, 196611, 0, -1966048, 196611, 0, -1900512, 196611, 0, -1834976, 196611, 0, -1769440, 196611, 0, -1703904, 196611, 0, -1638368, 196611, 0, -1572832, 196611, 0, -2293727, 196611, 0, -2228191, 196611, 0, -2162655, 196611, 0, -2097119, 196611, 0, -2031583, 196611, 0, -1966047, 196611, 0, -1900511, 196611, 0, -1834975, 196611, 0, -1769439, 196611, 0, -1703903, 196611, 0, -1638367, 196611, 0, -1572831, 196611, 0, -2293726, 196611, 0, -2228190, 196611, 0, -2162654, 196611, 0, -2097118, 196611, 0, -2031582, 196611, 0, -1966046, 196611, 0, -1900510, 196611, 0, -1834974, 196611, 0, -1769438, 196611, 0, -1703902, 196611, 0, -1638366, 196611, 0, -1572830, 196611, 0, -2293725, 196611, 0, -2228189, 196611, 0, -2162653, 196611, 0, -2097117, 196611, 0, -2031581, 196611, 0, -1966045, 196611, 0, -1900509, 196611, 0, -1834973, 196611, 0, -1769437, 196611, 0, -1703901, 196611, 0, -1638365, 196611, 0, -1572829, 196611, 0, -2293724, 196611, 0, -2228188, 196611, 0, -2162652, 196611, 0, -2097116, 196611, 0, -2031580, 196611, 0, -1966044, 196611, 0, -1900508, 196611, 0, -1834972, 196611, 0, -1769436, 196611, 0, -1703900, 196611, 0, -1638364, 196611, 0, -1572828, 196611, 0, -2293723, 196611, 0, -2228187, 196611, 0, -2162651, 196611, 0, -2097115, 196611, 0, -2031579, 196611, 0, -1966043, 196611, 0, -1900507, 196611, 0, -1834971, 196611, 0, -1769435, 196611, 0, -1703899, 196611, 0, -1638363, 196611, 0, -1572827, 196611, 0, -2293722, 196611, 0, -2228186, 196611, 0, -2162650, 196611, 0, -2097114, 196611, 0, -2031578, 196611, 0, -1966042, 196611, 0, -1900506, 196611, 0, -1834970, 196611, 0, -1769434, 196611, 0, -1703898, 196611, 0, -1638362, 196611, 0, -1572826, 196611, 0, -2293721, 196611, 0, -2228185, 196611, 0, -2162649, 196611, 0, -2097113, 196611, 0, -2031577, 196611, 0, -1966041, 196611, 0, -1900505, 196611, 0, -1834969, 196611, 0, -1769433, 196611, 0, -1703897, 196611, 0, -1638361, 196611, 0, -1572825, 196611, 0, -2293720, 196611, 0, -2228184, 196611, 0, -2162648, 196611, 0, -2097112, 196611, 0, -2031576, 196611, 0, -1966040, 196611, 0, -1900504, 196611, 0, -1834968, 196611, 0, -1769432, 196611, 0, -1703896, 196611, 0, -1638360, 196611, 0, -1572824, 196611, 0, -2293719, 196611, 0, -2228183, 196611, 0, -2162647, 196611, 0, -2097111, 196611, 0, -2031575, 196611, 0, -1966039, 196611, 0, -1900503, 196611, 0, -1834967, 196611, 0, -1769431, 196611, 0, -1703895, 196611, 0, -1638359, 196611, 0, -1572823, 196611, 0, -2293718, 196611, 0, -2228182, 196611, 0, -2162646, 196611, 0, -2097110, 196611, 0, -2031574, 196611, 0, -1966038, 196611, 0, -1900502, 196611, 0, -1834966, 196611, 0, -1769430, 196611, 0, -1703894, 196611, 0, -1638358, 196611, 0, -1572822, 196611, 0, -2293717, 196611, 0, -2228181, 196611, 0, -2162645, 196611, 0, -2097109, 196611, 0, -2031573, 196611, 0, -1966037, 196611, 0, -1900501, 196611, 0, -1834965, 196611, 0, -1769429, 196611, 0, -1703893, 196611, 0, -1638357, 196611, 0, -1572821, 196611, 0, -2293716, 196611, 0, -2228180, 196611, 0, -2162644, 196611, 0, -2097108, 196611, 0, -2031572, 196611, 0, -1966036, 196611, 0, -1900500, 196611, 0, -1834964, 196611, 0, -1769428, 196611, 0, -1703892, 196611, 0, -1638356, 196611, 0, -1572820, 196611, 0, -2293715, 196611, 0, -2228179, 196611, 0, -2162643, 196611, 0, -2097107, 196611, 0, -2031571, 196611, 0, -1966035, 196611, 0, -1900499, 196611, 0, -1834963, 196611, 0, -1769427, 196611, 0, -1703891, 196611, 0, -1638355, 196611, 0, -1572819, 196611, 0, -2293714, 196611, 0, -2228178, 196611, 0, -2162642, 196611, 0, -2097106, 196611, 0, -2031570, 196611, 0, -1966034, 196611, 0, -1900498, 196611, 0, -1834962, 196611, 0, -1769426, 196611, 0, -1703890, 196611, 0, -1638354, 196611, 0, -1572818, 196611, 0, -2293713, 196611, 0, -2228177, 196611, 0, -2162641, 196611, 0, -2097105, 196611, 0, -2031569, 196611, 0, -1966033, 196611, 0, -1900497, 196611, 0, -1834961, 196611, 0, -1769425, 196611, 0, -1703889, 196611, 0, -1638353, 196611, 0, -1572817, 196611, 0, -2293712, 196611, 0, -2228176, 196611, 0, -2162640, 196611, 0, -2097104, 196611, 0, -2031568, 196611, 0, -1966032, 196611, 0, -1900496, 196611, 0, -1834960, 196611, 0, -1769424, 196611, 0, -1703888, 196611, 0, -1638352, 196611, 0, -1572816, 196611, 0, -2293711, 196611, 0, -2228175, 196611, 0, -2162639, 196611, 0, -2097103, 196611, 0, -2031567, 196611, 0, -1966031, 196611, 0, -1900495, 196611, 0, -1834959, 196611, 0, -1769423, 196611, 0, -1703887, 196611, 0, -1638351, 196611, 0, -1572815, 196611, 0, -2293710, 196611, 0, -2228174, 196611, 0, -2162638, 196611, 0, -2097102, 196611, 0, -2031566, 196611, 0, -1966030, 196611, 0, -1900494, 196611, 0, -1834958, 196611, 0, -1769422, 196611, 0, -1703886, 196611, 0, -1638350, 196611, 0, -1572814, 196611, 0, -2293709, 196611, 0, -2228173, 196611, 0, -2162637, 196611, 0, -2097101, 196611, 0, -2031565, 196611, 0, -1966029, 196611, 0, -1900493, 196611, 0, -1834957, 196611, 0, -1769421, 196611, 0, -1703885, 196611, 0, -1638349, 196611, 0, -1572813, 196611, 0, -2293708, 196611, 0, -2228172, 196611, 0, -2162636, 196611, 0, -2097100, 196611, 0, -2031564, 196611, 0, -1966028, 196611, 0, -1900492, 196611, 0, -1834956, 196611, 0, -1769420, 196611, 0, -1703884, 196611, 0, -1638348, 196611, 0, -1572812, 196611, 0, -2293707, 196611, 0, -2228171, 196611, 0, -2162635, 196611, 0, -2097099, 196611, 0, -2031563, 196611, 0, -1966027, 196611, 0, -1900491, 196611, 0, -1834955, 196611, 0, -1769419, 196611, 0, -1703883, 196611, 0, -1638347, 196611, 0, -1572811, 196611, 0, -2293706, 196611, 0, -2228170, 196611, 0, -2162634, 196611, 0, -2097098, 196611, 0, -2031562, 196611, 0, -1966026, 196611, 0, -1900490, 196611, 0, -1834954, 196611, 0, -1769418, 196611, 0, -1703882, 196611, 0, -1638346, 196611, 0, -1572810, 196611, 0, -2293705, 196611, 0, -2228169, 196611, 0, -2162633, 196611, 0, -2097097, 196611, 0, -2031561, 196611, 0, -1966025, 196611, 0, -1900489, 196611, 0, -1834953, 196611, 0, -1769417, 196611, 0, -1703881, 196611, 0, -1638345, 196611, 0, -1572809, 196611, 0, -2293704, 196611, 0, -2228168, 196611, 0, -2162632, 196611, 0, -2097096, 196611, 0, -2031560, 196611, 0, -1966024, 196611, 0, -1900488, 196611, 0, -1834952, 196611, 0, -1769416, 196611, 0, -1703880, 196611, 0, -1638344, 196611, 0, -1572808, 196611, 0, -2293703, 196611, 0, -2228167, 196611, 0, -2162631, 196611, 0, -2097095, 196611, 0, -2031559, 196611, 0, -1966023, 196611, 0, -1900487, 196611, 0, -1834951, 196611, 0, -1769415, 196611, 0, -1703879, 196611, 0, -1638343, 196611, 0, -1572807, 196611, 0, -2293702, 196611, 0, -2228166, 196611, 0, -2162630, 196611, 0, -2097094, 196611, 0, -2031558, 196611, 0, -1966022, 196611, 0, -1900486, 196611, 0, -1834950, 196611, 0, -1769414, 196611, 0, -1703878, 196611, 0, -1638342, 196611, 0, -1572806, 196611, 0, -2293701, 196611, 0, -2228165, 196611, 0, -2162629, 196611, 0, -2097093, 196611, 0, -2031557, 196611, 0, -1966021, 196611, 0, -1900485, 196611, 0, -1834949, 196611, 0, -1769413, 196611, 0, -1703877, 196611, 0, -1638341, 196611, 0, -1572805, 196611, 0, -2293700, 196611, 0, -2228164, 196611, 0, -2162628, 196611, 0, -2097092, 196611, 0, -2031556, 196611, 0, -1966020, 196611, 0, -1900484, 196611, 0, -1834948, 196611, 0, -1769412, 196611, 0, -1703876, 196611, 0, -1638340, 196611, 0, -1572804, 196611, 0, -2293699, 196611, 0, -2228163, 196611, 0, -2162627, 196611, 0, -2097091, 196611, 0, -2031555, 196611, 0, -1966019, 196611, 0, -1900483, 196611, 0, -1834947, 196611, 0, -1769411, 196611, 0, -1703875, 196611, 0, -1638339, 196611, 0, -1572803, 196611, 0, -2293698, 196611, 0, -2228162, 196611, 0, -2162626, 196611, 0, -2097090, 196611, 0, -2031554, 196611, 0, -1966018, 196611, 0, -1900482, 196611, 0, -1834946, 196611, 0, -1769410, 196611, 0, -1703874, 196611, 0, -1638338, 196611, 0, -1572802, 196611, 0, -2293697, 196611, 0, -2228161, 196611, 0, -2162625, 196611, 0, -2097089, 196611, 0, -2031553, 196611, 0, -1966017, 196611, 0, -1900481, 196611, 0, -1834945, 196611, 0, -1769409, 196611, 0, -1703873, 196611, 0, -1638337, 196611, 0, -1572801, 196611, 0, -2293696, 196611, 0, -2228160, 196611, 0, -2162624, 196611, 0, -2097088, 196611, 0, -2031552, 196611, 0, -1966016, 196611, 0, -1900480, 196611, 0, -1834944, 196611, 0, -1769408, 196611, 0, -1703872, 196611, 0, -1638336, 196611, 0, -1572800, 196611, 0, -2293695, 196611, 0, -2228159, 196611, 0, -2162623, 196611, 0, -2097087, 196611, 0, -2031551, 196611, 0, -1966015, 196611, 0, -1900479, 196611, 0, -1834943, 196611, 0, -1769407, 196611, 0, -1703871, 196611, 0, -1638335, 196611, 0, -1572799, 196611, 0, -2293694, 196611, 0, -2228158, 196611, 0, -2162622, 196611, 0, -2097086, 196611, 0, -2031550, 196611, 0, -1966014, 196611, 0, -1900478, 196611, 0, -1834942, 196611, 0, -1769406, 196611, 0, -1703870, 196611, 0, -1638334, 196611, 0, -1572798, 196611, 0, -2293693, 196611, 0, -2228157, 196611, 0, -2162621, 196611, 0, -2097085, 196611, 0, -2031549, 196611, 0, -1966013, 196611, 0, -1900477, 196611, 0, -1834941, 196611, 0, -1769405, 196611, 0, -1703869, 196611, 0, -1638333, 196611, 0, -1572797, 196611, 0, -2293692, 196611, 0, -2228156, 196611, 0, -2162620, 196611, 0, -2097084, 196611, 0, -2031548, 196611, 0, -1966012, 196611, 0, -1900476, 196611, 0, -1834940, 196611, 0, -1769404, 196611, 0, -1703868, 196611, 0, -1638332, 196611, 0, -1572796, 196611, 0, -2293691, 196611, 0, -2228155, 196611, 0, -2162619, 196611, 0, -2097083, 196611, 0, -2031547, 196611, 0, -1966011, 196611, 0, -1900475, 196611, 0, -1834939, 196611, 0, -1769403, 196611, 0, -1703867, 196611, 0, -1638331, 196611, 0, -1572795, 196611, 0, -2293690, 196611, 0, -2228154, 196611, 0, -2162618, 196611, 0, -2097082, 196611, 0, -2031546, 196611, 0, -1966010, 196611, 0, -1900474, 196611, 0, -1834938, 196611, 0, -1769402, 196611, 0, -1703866, 196611, 0, -1638330, 196611, 0, -1572794, 196611, 0, -262127, 458755, 1, -196591, 196611, 0, -131055, 196611, 0, -65519, 196611, 0, -65513, 65536, 0, 23, 65536, 0, -65512, 65536, 0, 24, 65536, 0, -65511, 65536, 0, 25, 65536, 0, -196582, 65536, 0, -131046, 65536, 0, -65510, 65536, 0, 26, 65536, 0, -196581, 65536, 0, -131045, 65536, 0, -65509, 65536, 0, 27, 65536, 0, -65508, 65536, 0, 28, 65536, 0, -65507, 65536, 0, 29, 65536, 0, -65506, 65536, 0, 30, 65536, 0, -196590, 65536, 0, -196589, 65536, 0, -196588, 65536, 0, -196587, 65536, 0, -196586, 65536, 0, -196585, 65536, 0, 65559, 65536, 0, -196584, 65536, 0, 65560, 65536, 0, -196583, 65536, 0, 65561, 65536, 0, -196580, 65536, 0, 65564, 65536, 0, -196579, 65536, 0, 65565, 65536, 0, 65566, 65536, 0, -262126, 65536, 0, -262125, 65536, 0, -262124, 65536, 0, -262123, 65536, 0, -262122, 65536, 0, -262121, 65536, 0, -262120, 65536, 0, -262119, 65536, 0, -262118, 65536, 0, -262117, 65536, 0, -262116, 65536, 0, -262115, 65536, 0, 917543, 196611, 0, 983079, 196611, 0, 1048615, 196611, 0, 1114151, 196611, 0, 1179687, 196611, 0, 1245223, 196611, 0, 917544, 196611, 0, 983080, 196611, 0, 1048616, 196611, 0, 1114152, 196611, 0, 1179688, 196611, 0, 1245224, 196611, 0, 655401, 196611, 0, 720937, 196611, 0, 786473, 196611, 0, 852009, 196611, 0, 917545, 196611, 0, 983081, 196611, 0, 1048617, 196611, 0, 1114153, 196611, 0, 1179689, 196611, 0, 1245225, 196611, 0, 655402, 196611, 0, 720938, 196611, 0, 786474, 196611, 0, 852010, 196611, 0, 917546, 196611, 0, 983082, 196611, 0, 1048618, 196611, 0, 1114154, 196611, 0, 1179690, 196611, 0, 1245226, 196611, 0, 655403, 196611, 0, 720939, 196611, 0, 786475, 196611, 0, 852011, 196611, 0, 917547, 196611, 0, 983083, 196611, 0, 1048619, 196611, 0, 1114155, 196611, 0, 1179691, 196611, 0, 1245227, 196611, 0, 655404, 196611, 0, 720940, 196611, 0, 786476, 196611, 0, 852012, 196611, 0, 917548, 196611, 0, 983084, 196611, 0, 1048620, 196611, 0, 1114156, 196611, 0, 1179692, 196611, 0, 1245228, 196611, 0, 655405, 196611, 0, 720941, 196611, 0, 786477, 196611, 0, 852013, 196611, 0, 917549, 196611, 0, 983085, 196611, 0, 1048621, 196611, 0, 1114157, 196611, 0, 1179693, 196611, 0, 1245229, 196611, 0, 655406, 196611, 0, 720942, 196611, 0, 786478, 196611, 0, 852014, 196611, 0, 917550, 196611, 0, 983086, 196611, 0, 1048622, 196611, 0, 1114158, 196611, 0, 1179694, 196611, 0, 1245230, 196611, 0, 655407, 196611, 0, 720943, 196611, 0, 786479, 196611, 0, 852015, 196611, 0, 917551, 196611, 0, 983087, 196611, 0, 1048623, 196611, 0, 1114159, 196611, 0, 1179695, 196611, 0, 1245231, 196611, 0, 655408, 196611, 0, 720944, 196611, 0, 786480, 196611, 0, 852016, 196611, 0, 917552, 196611, 0, 983088, 196611, 0, 1048624, 196611, 0, 1114160, 196611, 0, 1179696, 196611, 0, 1245232, 196611, 0, 655409, 196611, 0, 720945, 196611, 0, 786481, 196611, 0, 852017, 196611, 0, 917553, 196611, 0, 983089, 196611, 0, 1048625, 196611, 0, 1114161, 196611, 0, 1179697, 196611, 0, 1245233, 196611, 0, 655410, 196611, 0, 720946, 196611, 0, 786482, 196611, 0, 852018, 196611, 0, 917554, 196611, 0, 983090, 196611, 0, 1048626, 196611, 0, 1114162, 196611, 0, 1179698, 196611, 0, 1245234, 196611, 0, 655411, 196611, 0, 720947, 196611, 0, 786483, 196611, 0, 852019, 196611, 0, 917555, 196611, 0, 983091, 196611, 0, 1048627, 196611, 0, 1114163, 196611, 0, 1179699, 196611, 0, 1245235, 196611, 0, 655412, 196611, 0, 720948, 196611, 0, 786484, 196611, 0, 852020, 196611, 0, 917556, 196611, 0, 983092, 196611, 0, 1048628, 196611, 0, 1114164, 196611, 0, 1179700, 196611, 0, 1245236, 196611, 0, 655413, 196611, 0, 720949, 196611, 0, 786485, 196611, 0, 852021, 196611, 0, 917557, 196611, 0, 983093, 196611, 0, 1048629, 196611, 0, 1114165, 196611, 0, 1179701, 196611, 0, 1245237, 196611, 0, 655414, 196611, 0, 720950, 196611, 0, 786486, 196611, 0, 852022, 196611, 0, 917558, 196611, 0, 983094, 196611, 0, 1048630, 196611, 0, 1114166, 196611, 0, 1179702, 196611, 0, 1245238, 196611, 0, 655415, 196611, 0, 720951, 196611, 0, 786487, 196611, 0, 852023, 196611, 0, 917559, 196611, 0, 983095, 196611, 0, 1048631, 196611, 0, 1114167, 196611, 0, 1179703, 196611, 0, 1245239, 458755, 1342177281, 655416, 196611, 0, 720952, 196611, 0, 786488, 196611, 0, 852024, 196611, 0, 917560, 196611, 0, 983096, 196611, 0, 1048632, 196611, 0, 1114168, 196611, 0, 1179704, 196611, 0, 1245240, 458755, 1342177280, 655417, 196611, 0, 720953, 196611, 0, 786489, 196611, 0, 852025, 196611, 0, 917561, 196611, 0, 983097, 196611, 0, 1048633, 196611, 0, 1114169, 196611, 0, 1179705, 196611, 0, 1245241, 196611, 0, 655418, 196611, 0, 720954, 262147, 0, 786490, 196611, 0, 852026, 196611, 0, 917562, 196611, 0, 983098, 196611, 0, 1048634, 196611, 0, 1114170, 196611, 0, 1179706, 196611, 0, 1245242, 196611, 0, 655419, 196611, 0, 720955, 196611, 0, 786491, 196611, 0, 852027, 196611, 0, 917563, 196611, 0, 983099, 196611, 0, 1048635, 196611, 0, 1114171, 196611, 0, 1179707, 196611, 0, 1245243, 196611, 0, 655420, 196611, 0, 720956, 196611, 0, 786492, 196611, 0, 852028, 196611, 0, 917564, 196611, 0, 983100, 196611, 0, 1048636, 196611, 0, 1114172, 196611, 0, 1179708, 196611, 0, 1245244, 196611, 0, 655421, 196611, 0, 720957, 196611, 0, 786493, 196611, 0, 852029, 196611, 0, 917565, 196611, 0, 983101, 196611, 0, 1048637, 196611, 0, 1114173, 196611, 0, 1179709, 196611, 0, 1245245, 196611, 0, 655422, 196611, 0, 720958, 196611, 0, 786494, 196611, 0, 852030, 196611, 0, 917566, 196611, 0, 983102, 196611, 0, 1048638, 196611, 0, 1114174, 196611, 0, 1179710, 196611, 0, 1245246, 196611, 0, 655423, 196611, 0, 720959, 196611, 0, 786495, 196611, 0, 852031, 196611, 0, 917567, 196611, 0, 983103, 196611, 0, 1048639, 196611, 0, 1114175, 196611, 0, 1179711, 196611, 0, 1245247, 196611, 0, 655424, 196611, 0, 720960, 196611, 0, 786496, 196611, 0, 852032, 196611, 0, 917568, 196611, 0, 983104, 196611, 0, 1048640, 196611, 0, 1114176, 196611, 0, 1179712, 196611, 0, 1245248, 196611, 0, 655425, 196611, 0, 720961, 196611, 0, 786497, 196611, 0, 852033, 196611, 0, 917569, 196611, 0, 983105, 196611, 0, 1048641, 196611, 0, 1114177, 196611, 0, 1179713, 196611, 0, 1245249, 196611, 0, 655426, 196611, 0, 720962, 196611, 0, 786498, 196611, 0, 852034, 196611, 0, 917570, 196611, 0, 983106, 196611, 0, 1048642, 196611, 0, 1114178, 196611, 0, 1179714, 196611, 0, 1245250, 196611, 0, 655427, 196611, 0, 720963, 196611, 0, 786499, 196611, 0, 852035, 196611, 0, 917571, 196611, 0, 983107, 196611, 0, 1048643, 196611, 0, 1114179, 196611, 0, 1179715, 196611, 0, 1245251, 196611, 0, 655428, 196611, 0, 720964, 196611, 0, 786500, 196611, 0, 852036, 196611, 0, 917572, 196611, 0, 983108, 196611, 0, 1048644, 196611, 0, 1114180, 196611, 0, 1179716, 196611, 0, 1245252, 196611, 0, 655429, 196611, 0, 720965, 196611, 0, 786501, 196611, 0, 852037, 196611, 0, 917573, 196611, 0, 983109, 196611, 0, 1048645, 196611, 0, 1114181, 196611, 0, 1179717, 196611, 0, 1245253, 196611, 0, 655430, 196611, 0, 720966, 196611, 0, 786502, 196611, 0, 852038, 196611, 0, 917574, 196611, 0, 983110, 196611, 0, 1048646, 196611, 0, 1114182, 196611, 0, 1179718, 196611, 0, 1245254, 196611, 0, 1310784, 196611, 0, 1376320, 196611, 0, 1441856, 196611, 0, 1507392, 196611, 0, 1572928, 196611, 0, 1638464, 196611, 0, 1704000, 196611, 0, 1769536, 196611, 0, 1835072, 196611, 0, 1900608, 196611, 0, 1966144, 393219, 1879048193, 2031680, 327683, 1879048193, 1310785, 196611, 0, 1376321, 196611, 0, 1441857, 196611, 0, 1507393, 196611, 0, 1572929, 196611, 0, 1638465, 196611, 0, 1704001, 196611, 0, 1769537, 196611, 0, 1835073, 196611, 0, 1900609, 196611, 0, 1966145, 393219, 1879048192, 2031681, 327683, 1879048192, 1310786, 196611, 0, 1376322, 196611, 0, 1441858, 196611, 0, 1507394, 196611, 0, 1572930, 196611, 0, 1638466, 196611, 0, 1704002, 196611, 0, 1769538, 196611, 0, 1835074, 196611, 0, 1900610, 196611, 0, 1966146, 196611, 0, 2031682, 196611, 0, 1310787, 196611, 0, 1376323, 196611, 0, 1441859, 196611, 0, 1507395, 196611, 0, 1572931, 196611, 0, 1638467, 196611, 0, 1704003, 196611, 0, 1769539, 196611, 0, 1835075, 196611, 0, 1900611, 196611, 0, 1966147, 196611, 0, 2031683, 196611, 0, 1310788, 196611, 0, 1376324, 196611, 0, 1441860, 196611, 0, 1507396, 196611, 0, 1572932, 196611, 0, 1638468, 196611, 0, 1704004, 196611, 0, 1769540, 196611, 0, 1835076, 196611, 0, 1900612, 196611, 0, 1966148, 196611, 0, 2031684, 196611, 0, 1310789, 196611, 0, 1376325, 196611, 0, 1441861, 196611, 0, 1507397, 196611, 0, 1572933, 196611, 0, 1638469, 196611, 0, 1704005, 196611, 0, 1769541, 196611, 0, 1835077, 196611, 0, 1900613, 196611, 0, 1966149, 196611, 0, 2031685, 196611, 0, 1310790, 196611, 0, 1376326, 196611, 0, 1441862, 196611, 0, 1507398, 196611, 0, 1572934, 196611, 0, 1638470, 196611, 0, 1704006, 196611, 0, 1769542, 196611, 0, 1835078, 196611, 0, 1900614, 196611, 0, 1966150, 196611, 0, 2031686, 196611, 0, 1310791, 196611, 0, 1376327, 196611, 0, 1441863, 196611, 0, 1507399, 196611, 0, 1572935, 196611, 0, 1638471, 196611, 0, 1704007, 196611, 0, 1769543, 196611, 0, 1835079, 196611, 0, 1900615, 196611, 0, 1966151, 196611, 0, 2031687, 196611, 0, 1310792, 196611, 0, 1376328, 196611, 0, 1441864, 196611, 0, 1507400, 196611, 0, 1572936, 196611, 0, 1638472, 196611, 0, 1704008, 196611, 0, 1769544, 196611, 0, 1835080, 196611, 0, 1900616, 196611, 0, 1966152, 196611, 0, 2031688, 196611, 0, 1310793, 196611, 0, 1376329, 196611, 0, 1441865, 196611, 0, 1507401, 196611, 0, 1572937, 196611, 0, 1638473, 196611, 0, 1704009, 196611, 0, 1769545, 196611, 0, 1835081, 196611, 0, 1900617, 196611, 0, 1966153, 196611, 0, 2031689, 196611, 0, 1310794, 196611, 0, 1376330, 196611, 0, 1441866, 196611, 0, 1507402, 196611, 0, 1572938, 196611, 0, 1638474, 196611, 0, 1704010, 196611, 0, 1769546, 196611, 0, 1835082, 196611, 0, 1900618, 196611, 0, 1966154, 196611, 0, 2031690, 196611, 0, 1310795, 196611, 0, 1376331, 196611, 0, 1441867, 196611, 0, 1507403, 196611, 0, 1572939, 196611, 0, 1638475, 196611, 0, 1704011, 196611, 0, 1769547, 196611, 0, 1835083, 196611, 0, 1900619, 196611, 0, 1966155, 196611, 0, 2031691, 196611, 0, 1310796, 196611, 0, 1376332, 196611, 0, 1441868, 196611, 0, 1507404, 196611, 0, 1572940, 196611, 0, 1638476, 196611, 0, 1704012, 196611, 0, 1769548, 196611, 0, 1835084, 196611, 0, 1900620, 196611, 0, 1966156, 196611, 0, 2031692, 196611, 0, 1310797, 196611, 0, 1376333, 196611, 0, 1441869, 196611, 0, 1507405, 196611, 0, 1572941, 196611, 0, 1638477, 196611, 0, 1704013, 196611, 0, 1769549, 196611, 0, 1835085, 196611, 0, 1900621, 196611, 0, 1966157, 196611, 0, 2031693, 196611, 0, 1310798, 196611, 0, 1376334, 196611, 0, 1441870, 196611, 0, 1507406, 196611, 0, 1572942, 196611, 0, 1638478, 196611, 0, 1704014, 196611, 0, 1769550, 196611, 0, 1835086, 196611, 0, 1900622, 196611, 0, 1966158, 196611, 0, 2031694, 196611, 0, 1310799, 196611, 0, 1376335, 196611, 0, 1441871, 196611, 0, 1507407, 196611, 0, 1572943, 196611, 0, 1638479, 196611, 0, 1704015, 196611, 0, 1769551, 196611, 0, 1835087, 196611, 0, 1900623, 196611, 0, 1966159, 196611, 0, 2031695, 196611, 0, 1310800, 196611, 0, 1376336, 196611, 0, 1441872, 196611, 0, 1507408, 196611, 0, 1572944, 196611, 0, 1638480, 196611, 0, 1704016, 196611, 0, 1769552, 196611, 0, 1835088, 196611, 0, 1900624, 196611, 0, 1966160, 196611, 0, 2031696, 196611, 0, 1310801, 196611, 0, 1376337, 196611, 0, 1441873, 196611, 0, 1507409, 196611, 0, 1572945, 196611, 0, 1638481, 196611, 0, 1704017, 196611, 0, 1769553, 196611, 0, 1835089, 196611, 0, 1900625, 196611, 0, 1966161, 196611, 0, 2031697, 196611, 0, 1310802, 196611, 0, 1376338, 196611, 0, 1441874, 196611, 0, 1507410, 196611, 0, 1572946, 196611, 0, 1638482, 196611, 0, 1704018, 196611, 0, 1769554, 196611, 0, 1835090, 196611, 0, 1900626, 196611, 0, 1966162, 196611, 0, 2031698, 196611, 0, 1310803, 196611, 0, 1376339, 196611, 0, 1441875, 196611, 0, 1507411, 196611, 0, 1572947, 196611, 0, 1638483, 196611, 0, 1704019, 196611, 0, 1769555, 196611, 0, 1835091, 196611, 0, 1900627, 196611, 0, 1966163, 196611, 0, 2031699, 196611, 0, 1310804, 196611, 0, 1376340, 196611, 0, 1441876, 196611, 0, 1507412, 196611, 0, 1572948, 196611, 0, 1638484, 196611, 0, 1704020, 196611, 0, 1769556, 196611, 0, 1835092, 196611, 0, 1900628, 196611, 0, 1966164, 196611, 0, 2031700, 196611, 0, 1310805, 196611, 0, 1376341, 196611, 0, 1441877, 196611, 0, 1507413, 196611, 0, 1572949, 196611, 0, 1638485, 196611, 0, 1704021, 196611, 0, 1769557, 196611, 0, 1835093, 196611, 0, 1900629, 196611, 0, 1966165, 196611, 0, 2031701, 196611, 0, 1310806, 196611, 0, 1376342, 196611, 0, 1441878, 196611, 0, 1507414, 196611, 0, 1572950, 196611, 0, 1638486, 196611, 0, 1704022, 196611, 0, 1769558, 196611, 0, 1835094, 196611, 0, 1900630, 196611, 0, 1966166, 196611, 1073741824, 2031702, 262147, 1073741824, 1310807, 196611, 0, 1376343, 196611, 0, 1441879, 196611, 0, 1507415, 196611, 0, 1572951, 196611, 0, 1638487, 196611, 0, 1704023, 196611, 0, 1769559, 196611, 0, 1835095, 196611, 0, 1900631, 196611, 0, 1966167, 196611, 1073741825, 2031703, 262147, 1073741825, 1310808, 196611, 0, 1376344, 196611, 0, 1441880, 196611, 0, 1507416, 196611, 0, 1572952, 196611, 0, 1638488, 196611, 0, 1704024, 196611, 0, 1769560, 196611, 0, 1835096, 196611, 0, 1900632, 196611, 0, 1966168, 196611, 1073741826, 2031704, 262147, 1073741826, -65545, 196611, 0, -65546, 196611, 0, -131082, 196611, 0, -196618, 196611, 0, -262154, 196611, 0, -262153, 196611, 0, -196616, 196611, 0, -131080, 196611, 0, -65544, 196611, 0, -196617, 196611, 0, -131081, 196611, 0, -131079, 196611, 0, -131078, 196611, 0, -196614, 196611, 0, -262150, 196611, 0, -262151, 196611, 0, -196615, 196611, 0, -65543, 196611, 0, -65542, 196611, 0, -131077, 196611, 0, -65541, 196611, 0, -589833, 196611, 0, -524297, 196611, 0, -458761, 196611, 0, -393225, 196611, 0, -327689, 196611, 0, -589832, 196611, 0, -524296, 196611, 0, -458760, 196611, 0, -393224, 196611, 0, -327688, 196611, 0, -262152, 196611, 0, -589831, 196611, 0, -524295, 196611, 0, -458759, 196611, 0, -393223, 196611, 0, -327687, 196611, 0, -589830, 196611, 0, -524294, 196611, 0, -458758, 196611, 0, -393222, 196611, 0, -327686, 196611, 0, -589829, 196611, 0, -524293, 196611, 0, -458757, 196611, 0, -393221, 196611, 0, -327685, 196611, 0, -262149, 196611, 0, -196613, 196611, 0, -589828, 196611, 0, -524292, 196611, 0, -458756, 196611, 0, -393220, 196611, 0, -327684, 196611, 0, -262148, 196611, 0, -196612, 196611, 0, -589827, 196611, 0, -524291, 196611, 0, -458755, 196611, 0, -393219, 196611, 0, -327683, 196611, 0, -262147, 196611, 0, -196611, 196611, 0, -589826, 196611, 0, -524290, 196611, 0, -458754, 196611, 0, -393218, 196611, 0, -327682, 196611, 0, -262146, 196611, 0, -196610, 196611, 0, -589825, 196611, 0, -524289, 196611, 0, -458753, 196611, 0, -393217, 196611, 0, -327681, 196611, 0, -262145, 196611, 0, -196609, 196611, 0, -655360, 196611, 0, -589824, 196611, 0, -524288, 196611, 0, -458752, 196611, 0, -393216, 196611, 0, -327680, 196611, 0, -262144, 196611, 0, -655359, 196611, 0, -589823, 196611, 0, -524287, 196611, 0, -458751, 196611, 0, -393215, 196611, 0, -327679, 196611, 0, -262143, 196611, 0, -655358, 196611, 0, -589822, 196611, 0, -524286, 196611, 0, -458750, 196611, 0, -393214, 196611, 0, -327678, 196611, 0, -262142, 196611, 0, -655357, 196611, 0, -589821, 196611, 0, -524285, 196611, 0, -458749, 196611, 0, -393213, 196611, 0, -327677, 196611, 0, -262141, 196611, 0, -655356, 196611, 0, -589820, 196611, 0, -524284, 196611, 0, -458748, 196611, 0, -393212, 196611, 0, -327676, 196611, 0, -262140, 196611, 0, -655355, 196611, 0, -589819, 196611, 0, -524283, 196611, 0, -458747, 196611, 0, -393211, 196611, 0, -327675, 196611, 0, -262139, 196611, 0, -655354, 196611, 0, -589818, 196611, 0, -524282, 196611, 0, -458746, 196611, 0, -393210, 196611, 0, -327674, 196611, 0, -262138, 196611, 0, -655353, 196611, 0, -589817, 196611, 0, -524281, 196611, 0, -458745, 196611, 0, -393209, 196611, 0, -327673, 196611, 0, -262137, 196611, 0, -655352, 196611, 0, -589816, 196611, 0, -524280, 196611, 0, -458744, 196611, 0, -393208, 196611, 0, -327672, 196611, 0, -262136, 196611, 0, -655351, 196611, 0, -589815, 196611, 0, -524279, 196611, 0, -458743, 196611, 0, -393207, 196611, 0, -327671, 196611, 0, -262135, 196611, 0, -655350, 196611, 0, -589814, 196611, 0, -524278, 196611, 0, -458742, 196611, 0, -393206, 196611, 0, -327670, 196611, 0, -262134, 196611, 0, -655349, 196611, 0, -589813, 196611, 0, -524277, 196611, 0, -458741, 196611, 0, -393205, 196611, 0, -327669, 196611, 0, -262133, 196611, 0, -655348, 196611, 0, -589812, 196611, 0, -524276, 196611, 0, -458740, 196611, 0, -393204, 196611, 0, -327668, 196611, 0, -262132, 196611, 0) layer_6/tile_data = PackedInt32Array(131094, 0, 5, 131095, 65536, 5, 131096, 65536, 5, 131097, 65536, 5, 131100, 65536, 5, 131101, 65536, 5, 131102, 65536, 5, 131103, 131072, 5, -131055, 0, 5, -131054, 65536, 5, -131053, 65536, 5, -131052, 65536, 5, -131051, 65536, 5, -131050, 65536, 5, -131049, 65536, 5, -131048, 65536, 5, -131047, 65536, 5, -131044, 65536, 5, -131043, 65536, 5, -131042, 131072, 5) +AreaName = "Forest" +MapName = "Forest" [node name="StaticBody2D" type="StaticBody2D" parent="Props" index="0"] +y_sort_enabled = true position = Vector2(0, -96) [node name="CollisionShape2D" type="CollisionShape2D" parent="Props/StaticBody2D" index="0"] -position = Vector2(72, -8) +position = Vector2(72, -13) shape = SubResource("RectangleShape2D_0ifx7") [node name="CollisionShape2D2" type="CollisionShape2D" parent="Props/StaticBody2D" index="1"] +visible = false position = Vector2(-112, 8) shape = SubResource("RectangleShape2D_x6mjw") [node name="CollisionShape2D3" type="CollisionShape2D" parent="Props/StaticBody2D" index="2"] +visible = false position = Vector2(-232, -104) shape = SubResource("RectangleShape2D_3kgpu") [node name="CollisionShape2D4" type="CollisionShape2D" parent="Props/StaticBody2D" index="3"] +visible = false position = Vector2(-392, -104) shape = SubResource("RectangleShape2D_cpqby") @@ -496,121 +503,168 @@ y_sort_enabled = true [node name="Sprite2D" type="Sprite2D" parent="Props/StaticBody2D/Node2D" index="0"] y_sort_enabled = true -position = Vector2(-54, 34) +position = Vector2(-54, 41) texture = ExtResource("5_88q03") +offset = Vector2(0, -14) [node name="Sprite2D6" type="Sprite2D" parent="Props/StaticBody2D/Node2D" index="1"] y_sort_enabled = true -position = Vector2(-19, 33) +position = Vector2(-19, 40) texture = ExtResource("6_fb6dk") +offset = Vector2(0, -14) [node name="Sprite2D7" type="Sprite2D" parent="Props/StaticBody2D/Node2D" index="2"] y_sort_enabled = true -position = Vector2(44, 34) +position = Vector2(44, 41) texture = ExtResource("6_fb6dk") +offset = Vector2(0, -14) [node name="Sprite2D8" type="Sprite2D" parent="Props/StaticBody2D/Node2D" index="3"] y_sort_enabled = true -position = Vector2(91, 32) +position = Vector2(91, 39) texture = ExtResource("6_fb6dk") +offset = Vector2(0, -14) [node name="Sprite2D9" type="Sprite2D" parent="Props/StaticBody2D/Node2D" index="4"] y_sort_enabled = true -position = Vector2(146, 34) +position = Vector2(146, 41) texture = ExtResource("6_fb6dk") +offset = Vector2(0, -14) [node name="Sprite2D2" type="Sprite2D" parent="Props/StaticBody2D/Node2D" index="5"] y_sort_enabled = true -position = Vector2(18, 33) +position = Vector2(18, 40) texture = ExtResource("5_88q03") +offset = Vector2(0, -14) [node name="Sprite2D3" type="Sprite2D" parent="Props/StaticBody2D/Node2D" index="6"] y_sort_enabled = true -position = Vector2(67, 30) +position = Vector2(67, 37) texture = ExtResource("5_88q03") +offset = Vector2(0, -14) [node name="Sprite2D4" type="Sprite2D" parent="Props/StaticBody2D/Node2D" index="7"] y_sort_enabled = true -position = Vector2(115, 33) +position = Vector2(115, 40) texture = ExtResource("5_88q03") +offset = Vector2(0, -14) [node name="Sprite2D10" type="Sprite2D" parent="Props/StaticBody2D/Node2D" index="8"] y_sort_enabled = true -position = Vector2(195, 33) +position = Vector2(195, 40) texture = ExtResource("5_88q03") +offset = Vector2(0, -14) [node name="Sprite2D5" type="Sprite2D" parent="Props/StaticBody2D/Node2D" index="9"] y_sort_enabled = true -position = Vector2(170, 30) +position = Vector2(170, 37) texture = ExtResource("5_88q03") +offset = Vector2(0, -14) [node name="Node2D2" type="Node2D" parent="Props/StaticBody2D" index="5"] y_sort_enabled = true -[node name="Sprite2D" type="Sprite2D" parent="Props/StaticBody2D/Node2D2" index="0"] +[node name="Leaves0" type="Node2D" parent="Props/StaticBody2D/Node2D2" index="0"] y_sort_enabled = true -position = Vector2(-56, 16) + +[node name="Sprite2D" type="Sprite2D" parent="Props/StaticBody2D/Node2D2/Leaves0" index="0"] +y_sort_enabled = true +position = Vector2(193, 37) texture = ExtResource("7_7yyym") +offset = Vector2(0, -41.5) -[node name="Sprite2D2" type="Sprite2D" parent="Props/StaticBody2D/Node2D2" index="1"] +[node name="Sprite2D2" type="Sprite2D" parent="Props/StaticBody2D/Node2D2/Leaves0" index="1"] y_sort_enabled = true -position = Vector2(194, 18) +position = Vector2(89, 21) +texture = ExtResource("7_7yyym") +offset = Vector2(0, -41.5) + +[node name="Sprite2D3" type="Sprite2D" parent="Props/StaticBody2D/Node2D2/Leaves0" index="2"] +y_sort_enabled = true +position = Vector2(-127, 37) +texture = ExtResource("7_7yyym") +offset = Vector2(0, -41.5) + +[node name="Leaves1" type="Node2D" parent="Props/StaticBody2D/Node2D2" index="1"] +y_sort_enabled = true + +[node name="Sprite2D2" type="Sprite2D" parent="Props/StaticBody2D/Node2D2/Leaves1" index="0"] +y_sort_enabled = true +position = Vector2(-59, 37) +texture = ExtResource("8_hyhpu") +offset = Vector2(3, -43.5) + +[node name="Sprite2D3" type="Sprite2D" parent="Props/StaticBody2D/Node2D2/Leaves1" index="1"] +y_sort_enabled = true +position = Vector2(45, -3) +texture = ExtResource("8_hyhpu") +offset = Vector2(3, -43.5) + +[node name="Leaves2" type="Node2D" parent="Props/StaticBody2D/Node2D2" index="2"] +y_sort_enabled = true + +[node name="Sprite2D3" type="Sprite2D" parent="Props/StaticBody2D/Node2D2/Leaves2" index="0"] +y_sort_enabled = true +position = Vector2(145, 41) texture = ExtResource("8_4laic") +offset = Vector2(0, -39.5) -[node name="Sprite2D3" type="Sprite2D" parent="Props/StaticBody2D/Node2D2" index="2"] +[node name="Sprite2D4" type="Sprite2D" parent="Props/StaticBody2D/Node2D2/Leaves2" index="1"] y_sort_enabled = true -position = Vector2(66, 10) +position = Vector2(137, -8) texture = ExtResource("8_4laic") +offset = Vector2(0, -39.5) -[node name="Sprite2D4" type="Sprite2D" parent="Props/StaticBody2D/Node2D2" index="3"] +[node name="Sprite2D5" type="Sprite2D" parent="Props/StaticBody2D/Node2D2/Leaves2" index="2"] y_sort_enabled = true -position = Vector2(114, 18) +position = Vector2(1, -16) +texture = ExtResource("8_4laic") +offset = Vector2(0, -39.5) + +[node name="Sprite2D6" type="Sprite2D" parent="Props/StaticBody2D/Node2D2/Leaves2" index="3"] +y_sort_enabled = true +position = Vector2(-136, -20) +texture = ExtResource("8_4laic") +offset = Vector2(0, -39.5) + +[node name="Leaves3" type="Node2D" parent="Props/StaticBody2D/Node2D2" index="3"] +y_sort_enabled = true + +[node name="Sprite2D4" type="Sprite2D" parent="Props/StaticBody2D/Node2D2/Leaves3" index="0"] +y_sort_enabled = true +position = Vector2(-17, 40) texture = ExtResource("9_exvkw") +offset = Vector2(0, -40) -[node name="Sprite2D7" type="Sprite2D" parent="Props/StaticBody2D/Node2D2" index="4"] +[node name="Sprite2D5" type="Sprite2D" parent="Props/StaticBody2D/Node2D2/Leaves3" index="1"] y_sort_enabled = true -position = Vector2(49, -46) +position = Vector2(87, 39) texture = ExtResource("9_exvkw") +offset = Vector2(0, -40) -[node name="Sprite2D8" type="Sprite2D" parent="Props/StaticBody2D/Node2D2" index="5"] +[node name="Sprite2D9" type="Sprite2D" parent="Props/StaticBody2D/Node2D2/Leaves3" index="2"] y_sort_enabled = true -position = Vector2(101, -51) +position = Vector2(47, 41) texture = ExtResource("9_exvkw") +offset = Vector2(0, -40) -[node name="Sprite2D9" type="Sprite2D" parent="Props/StaticBody2D/Node2D2" index="6"] +[node name="Sprite2D6" type="Sprite2D" parent="Props/StaticBody2D/Node2D2/Leaves3" index="3"] y_sort_enabled = true -position = Vector2(185, -46) +position = Vector2(87, -18) texture = ExtResource("9_exvkw") +offset = Vector2(0, -40) -[node name="Sprite2D5" type="Sprite2D" parent="Props/StaticBody2D/Node2D2" index="7"] +[node name="Sprite2D7" type="Sprite2D" parent="Props/StaticBody2D/Node2D2/Leaves3" index="4"] y_sort_enabled = true -position = Vector2(146, 10) -texture = ExtResource("8_4laic") +position = Vector2(183, -18) +texture = ExtResource("9_exvkw") +offset = Vector2(0, -40) -[node name="Sprite2D10" type="Sprite2D" parent="Props/StaticBody2D/Node2D2" index="8"] +[node name="Sprite2D8" type="Sprite2D" parent="Props/StaticBody2D/Node2D2/Leaves3" index="5"] y_sort_enabled = true -position = Vector2(148, -54) -texture = ExtResource("8_4laic") - -[node name="Sprite2D6" type="Sprite2D" parent="Props/StaticBody2D/Node2D2" index="9"] -y_sort_enabled = true -position = Vector2(18, 14) -texture = ExtResource("8_4laic") - -[node name="Sprite2D11" type="Sprite2D" parent="Props/StaticBody2D/Node2D2" index="10"] -y_sort_enabled = true -position = Vector2(-4, -52) -texture = ExtResource("8_4laic") - -[node name="Sprite2D12" type="Sprite2D" parent="Props/StaticBody2D/Node2D2" index="11"] -y_sort_enabled = true -position = Vector2(-107, -52) -texture = ExtResource("8_4laic") - -[node name="Sprite2D13" type="Sprite2D" parent="Props/StaticBody2D/Node2D2" index="12"] -y_sort_enabled = true -position = Vector2(-19, 12) -texture = ExtResource("8_4laic") +position = Vector2(-81, -18) +texture = ExtResource("9_exvkw") +offset = Vector2(0, -40) [node name="Campfire" parent="Entities" index="0" instance=ExtResource("3_ve4i2")] position = Vector2(-24, -8) diff --git a/UI/Base.tscn b/UI/Base.tscn index 799c250..b257a87 100644 --- a/UI/Base.tscn +++ b/UI/Base.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=11 format=3 uid="uid://c271rdjhd1gfo"] +[gd_scene load_steps=12 format=3 uid="uid://c271rdjhd1gfo"] [ext_resource type="PackedScene" uid="uid://73jm5qjy52vq" path="res://Dialogue/balloon.tscn" id="1_atjb1"] [ext_resource type="Script" path="res://UI/UIController.cs" id="2_b4b6l"] @@ -6,6 +6,7 @@ [ext_resource type="PackedScene" uid="uid://01d24ij5av1y" path="res://UI/BossBar.tscn" id="4_igi28"] [ext_resource type="PackedScene" uid="uid://cr7tkxctmyags" path="res://UI/LevelBar.tscn" id="4_rcekd"] [ext_resource type="PackedScene" uid="uid://c77754nvmckn" path="res://UI/LocationDisplay.tscn" id="5_cr6vo"] +[ext_resource type="PackedScene" uid="uid://sfs8dpfitpdu" path="res://UI/Hotbar.tscn" id="5_mmp18"] [ext_resource type="PackedScene" uid="uid://d3q1yu3n7cqfj" path="res://UI/SceneTransition.tscn" id="6_j0nhv"] [ext_resource type="Shader" path="res://Shaders/Vignette.gdshader" id="8_k080s"] [ext_resource type="Texture2D" uid="uid://dxtpp41y85tv5" path="res://Assets/Sprites/Misc/white.png" id="9_2hlfh"] @@ -61,27 +62,36 @@ anchor_right = 1.0 offset_bottom = 64.0 grow_horizontal = 2 -[node name="Margin" type="MarginContainer" parent="SubViewportContainer/UIViewport/MainUILayer/Main/Top"] +[node name="Left" type="MarginContainer" parent="SubViewportContainer/UIViewport/MainUILayer/Main/Top"] layout_mode = 2 +size_flags_horizontal = 3 theme_override_constants/margin_left = 16 theme_override_constants/margin_top = 16 -[node name="VBoxContainer" type="VBoxContainer" parent="SubViewportContainer/UIViewport/MainUILayer/Main/Top/Margin"] +[node name="VBoxContainer" type="VBoxContainer" parent="SubViewportContainer/UIViewport/MainUILayer/Main/Top/Left"] layout_mode = 2 theme_override_constants/separation = 12 -[node name="HealthBar" parent="SubViewportContainer/UIViewport/MainUILayer/Main/Top/Margin/VBoxContainer" instance=ExtResource("3_j1j6h")] +[node name="HealthBar" parent="SubViewportContainer/UIViewport/MainUILayer/Main/Top/Left/VBoxContainer" instance=ExtResource("3_j1j6h")] layout_mode = 2 -[node name="LevelBar" parent="SubViewportContainer/UIViewport/MainUILayer/Main/Top/Margin/VBoxContainer" instance=ExtResource("4_rcekd")] +[node name="LevelBar" parent="SubViewportContainer/UIViewport/MainUILayer/Main/Top/Left/VBoxContainer" instance=ExtResource("4_rcekd")] layout_mode = 2 -[node name="Margin2" type="MarginContainer" parent="SubViewportContainer/UIViewport/MainUILayer/Main/Top/Margin/VBoxContainer"] +[node name="Margin2" type="MarginContainer" parent="SubViewportContainer/UIViewport/MainUILayer/Main/Top/Left/VBoxContainer"] visible = false layout_mode = 2 theme_override_constants/margin_left = 16 theme_override_constants/margin_top = 16 +[node name="Right" type="MarginContainer" parent="SubViewportContainer/UIViewport/MainUILayer/Main/Top"] +layout_mode = 2 +theme_override_constants/margin_top = 16 +theme_override_constants/margin_right = 16 + +[node name="GridContainer" parent="SubViewportContainer/UIViewport/MainUILayer/Main/Top/Right" instance=ExtResource("5_mmp18")] +layout_mode = 2 + [node name="Bottom" type="HBoxContainer" parent="SubViewportContainer/UIViewport/MainUILayer/Main"] layout_mode = 1 anchors_preset = 12 diff --git a/UI/Hotbar.cs b/UI/Hotbar.cs new file mode 100644 index 0000000..b29711f --- /dev/null +++ b/UI/Hotbar.cs @@ -0,0 +1,26 @@ +using Godot; +using SupaLidlGame.Items; + +namespace SupaLidlGame.UI; + +public partial class Hotbar : GridContainer +{ + [Export] + private Godot.Collections.Array _slots; + + public override void _Ready() + { + Events.EventBus.Instance.PlayerInventoryUpdate += OnInventoryUpdate; + } + + public void OnInventoryUpdate(Inventory inventory) + { + for (int i = 0; i < 3; i++) + { + var slot = _slots[i]; + slot.Item = inventory.Hotbar[i].Metadata; + slot.IsSelected = inventory.SelectedItem == inventory.Hotbar[i]; + GD.Print(inventory.Hotbar[i].Metadata.Name); + } + } +} diff --git a/UI/Hotbar.tscn b/UI/Hotbar.tscn new file mode 100644 index 0000000..744f7bc --- /dev/null +++ b/UI/Hotbar.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=3 format=3 uid="uid://sfs8dpfitpdu"] + +[ext_resource type="Script" path="res://UI/Hotbar.cs" id="1_2sak2"] +[ext_resource type="PackedScene" uid="uid://ctad0dkoyw8ad" path="res://UI/InventorySlot.tscn" id="1_ct3cn"] + +[node name="GridContainer" type="GridContainer" node_paths=PackedStringArray("_slots")] +anchors_preset = 1 +anchor_left = 1.0 +anchor_right = 1.0 +offset_left = -112.0 +offset_bottom = 32.0 +grow_horizontal = 0 +theme_override_constants/h_separation = 8 +columns = 3 +script = ExtResource("1_2sak2") +_slots = [NodePath("InventorySlot"), NodePath("InventorySlot2"), NodePath("InventorySlot3")] + +[node name="InventorySlot" parent="." instance=ExtResource("1_ct3cn")] +layout_mode = 2 + +[node name="InventorySlot2" parent="." instance=ExtResource("1_ct3cn")] +layout_mode = 2 + +[node name="InventorySlot3" parent="." instance=ExtResource("1_ct3cn")] +layout_mode = 2 diff --git a/UI/InventorySlot.cs b/UI/InventorySlot.cs new file mode 100644 index 0000000..6ca977c --- /dev/null +++ b/UI/InventorySlot.cs @@ -0,0 +1,73 @@ +using Godot; +using GodotUtilities; +using GodotUtilities.SourceGenerators; + +namespace SupaLidlGame.UI; + +[Scene] +public partial class InventorySlot : ColorRect +{ + [Node("TextureRect")] + private TextureRect _textureRect; + + [Node("Selected")] + private NinePatchRect _selected; + + [Node("Unselected")] + private NinePatchRect _unselected; + + private static Texture2D _placeholderTexture; + + private Items.ItemMetadata _item; + + public Items.ItemMetadata Item + { + get => _item; + set + { + _item = value; + + if (_item is null) + { + _textureRect.Texture = _placeholderTexture; + } + else + { + _textureRect.Texture = _item.Icon; + } + } + } + + private bool _isSelected = false; + + public bool IsSelected + { + get => _isSelected; + set + { + _isSelected = value; + _selected.Visible = _isSelected; + _unselected.Visible = !_isSelected; + } + } + + static InventorySlot() + { + _placeholderTexture = ResourceLoader.Load( + "res://Assets/Sprites/UI/hotbar-inactive.png"); + } + + public override void _Notification(int what) + { + if (what == NotificationSceneInstantiated) + { + WireNodes(); + } + base._Notification(what); + } + + public override void _Ready() + { + + } +} diff --git a/UI/InventorySlot.tscn b/UI/InventorySlot.tscn new file mode 100644 index 0000000..2179e07 --- /dev/null +++ b/UI/InventorySlot.tscn @@ -0,0 +1,39 @@ +[gd_scene load_steps=4 format=3 uid="uid://ctad0dkoyw8ad"] + +[ext_resource type="Script" path="res://UI/InventorySlot.cs" id="1_llonk"] +[ext_resource type="Texture2D" uid="uid://bd81g8aivb2ql" path="res://Assets/Sprites/UI/menu-rect-no-bg-32.png" id="2_vvog5"] +[ext_resource type="Texture2D" uid="uid://b16461tjso0j7" path="res://Assets/Sprites/UI/hotbar-inactive.png" id="3_jr23q"] + +[node name="InventorySlot" type="ColorRect"] +custom_minimum_size = Vector2(32, 32) +color = Color(1, 1, 1, 0) +script = ExtResource("1_llonk") + +[node name="TextureRect" type="TextureRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +stretch_mode = 3 + +[node name="Selected" type="NinePatchRect" parent="."] +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("2_vvog5") + +[node name="Unselected" type="NinePatchRect" parent="."] +self_modulate = Color(1, 1, 1, 0.5) +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("3_jr23q") diff --git a/addons/GodotAnnotate/.gitignore b/addons/GodotAnnotate/.gitignore new file mode 100644 index 0000000..36697da --- /dev/null +++ b/addons/GodotAnnotate/.gitignore @@ -0,0 +1,19 @@ +# Godot 4+ specific ignores +.godot/ + +# Godot-specific ignores +.import/ +export.cfg +export_presets.cfg + + +# Imported translations (automatically generated from CSV files) +*.translation + +# Mono-specific ignores +.mono/ +data_*/ +mono_crash.*.json + +# Only used for asset library, so no .import file is needed. +annotate_layer.png.import diff --git a/addons/GodotAnnotate/LICENSE.md b/addons/GodotAnnotate/LICENSE.md new file mode 100644 index 0000000..9e4fd29 --- /dev/null +++ b/addons/GodotAnnotate/LICENSE.md @@ -0,0 +1,19 @@ +Copyright (c) 2023 Zarstensen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/addons/GodotAnnotate/README.md b/addons/GodotAnnotate/README.md new file mode 100644 index 0000000..b76ddd7 --- /dev/null +++ b/addons/GodotAnnotate/README.md @@ -0,0 +1,90 @@ +
+

Godot Annotate

+ Icon +
+ +[![Godot Assets](https://img.shields.io/badge/Godot_Asset_Library-blue)](https://godotengine.org/asset-library/asset/2432) + +This is a [Godot](https://godotengine.org/) plugin which allows one to make planning annotations and sketches directly in the 2D editor, without affecting runtime visuals, using a custom 'AnnotateCanvas' node. + +- [Features](#features) + - [Annotate](#annotate) + - [Polygon Mode](#polygon-mode) + - [Erase](#erase) + - [Control Annotation Visibility](#control-annotation-visibility) + - [Save Canvas As Image](#save-canvas-as-image) +- [Usage](#usage) + - [Controls](#controls) + - [Locking](#locking) +- [Installing](#installing) +- [Links](#links) +- [License](#license) + +## Features + +### Annotate + +Annotate with variable brush size and color directly in the 2D editor using the 'AnnotateCanvas' node. + +![Annotate Example](examples/Annotate.gif) + +### Polygon Mode + +Use polygon mode to draw straight lines between clicks. + +![Polygon Mode Example](examples/AnnotatePoly.gif) + +### Erase + +Erase any previously drawn annotate strokes. + +![Erase Example](examples/Erase.gif) + +### Control Annotation Visibility + +Only show annotations in the 2D editor (optionally show in run mode). + +![Visibility Example](examples/Visibility.gif) + +### Save Canvas As Image + +Save the canvas to disk as an image file. + +![Save To Disk Example](examples/SaveToDisk.gif) + +## Usage + +To start annotating, add the 'AnnotateCanvas' node to a godot scene. + +### Controls + +**Left Mouse Button** +: Annotate on the currenty selected 'AnnotateCanvas' node. + +**Alt + Left Mouse Button** +: Annotate on the currently selected 'AnnotateCanvas' node using the polygon mode. + +**Right Mouse Button** +: Erase annotate strokes on the currently selected 'AnnotateCanvas' node. + +**Shift + Mouse Scroll** +: Change brush size. + +**Shift + Alt + S** +: Save the selected 'AnnotateCanvas' to disk as an image. + +### Locking + +Locking an 'AnnotateCanvas' node does not prevent it from being drawn on, instead toggle the 'Advanced > Lock Canvas' property to prevent this. + +## Installing + +See [Installing Plugins](https://docs.godotengine.org/en/stable/tutorials/plugins/editor/installing_plugins.html), for how to add this plugin to your Godot project. + +## Links + +[Godot Assets](https://godotengine.org/asset-library/asset/2432) + +## License + +See [LICENSE](LICENSE) diff --git a/addons/GodotAnnotate/annotate_layer.png b/addons/GodotAnnotate/annotate_layer.png new file mode 100644 index 0000000..233cb10 Binary files /dev/null and b/addons/GodotAnnotate/annotate_layer.png differ diff --git a/addons/GodotAnnotate/annotate_layer.svg b/addons/GodotAnnotate/annotate_layer.svg new file mode 100644 index 0000000..996f0b4 --- /dev/null +++ b/addons/GodotAnnotate/annotate_layer.svg @@ -0,0 +1,49 @@ + + + + + + + diff --git a/addons/GodotAnnotate/annotate_layer.svg.import b/addons/GodotAnnotate/annotate_layer.svg.import new file mode 100644 index 0000000..5f3fabc --- /dev/null +++ b/addons/GodotAnnotate/annotate_layer.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0c04klyd6mgf" +path="res://.godot/imported/annotate_layer.svg-6785b3ede543715b4d920be19a30a9b4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/GodotAnnotate/annotate_layer.svg" +dest_files=["res://.godot/imported/annotate_layer.svg-6785b3ede543715b4d920be19a30a9b4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/GodotAnnotate/examples/Annotate.gif b/addons/GodotAnnotate/examples/Annotate.gif new file mode 100644 index 0000000..b372c6f Binary files /dev/null and b/addons/GodotAnnotate/examples/Annotate.gif differ diff --git a/addons/GodotAnnotate/examples/AnnotatePoly.gif b/addons/GodotAnnotate/examples/AnnotatePoly.gif new file mode 100644 index 0000000..b6c3741 Binary files /dev/null and b/addons/GodotAnnotate/examples/AnnotatePoly.gif differ diff --git a/addons/GodotAnnotate/examples/Erase.gif b/addons/GodotAnnotate/examples/Erase.gif new file mode 100644 index 0000000..2df245d Binary files /dev/null and b/addons/GodotAnnotate/examples/Erase.gif differ diff --git a/addons/GodotAnnotate/examples/SaveToDisk.gif b/addons/GodotAnnotate/examples/SaveToDisk.gif new file mode 100644 index 0000000..28a5800 Binary files /dev/null and b/addons/GodotAnnotate/examples/SaveToDisk.gif differ diff --git a/addons/GodotAnnotate/examples/Visibility.gif b/addons/GodotAnnotate/examples/Visibility.gif new file mode 100644 index 0000000..e73a415 Binary files /dev/null and b/addons/GodotAnnotate/examples/Visibility.gif differ diff --git a/addons/GodotAnnotate/plugin.cfg b/addons/GodotAnnotate/plugin.cfg new file mode 100644 index 0000000..37b336a --- /dev/null +++ b/addons/GodotAnnotate/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="Godot Annotate" +description="Adds annotation to the 2D editor, allowing one to sketch directly inside the editor, without affecting runtime visuals." +author="Zarstensen" +version="0.3.0" +script="src/godot_annotate.gd" diff --git a/addons/GodotAnnotate/res/CanvasImageDialog.tscn b/addons/GodotAnnotate/res/CanvasImageDialog.tscn new file mode 100644 index 0000000..0b9b24c --- /dev/null +++ b/addons/GodotAnnotate/res/CanvasImageDialog.tscn @@ -0,0 +1,5 @@ +[gd_scene format=3 uid="uid://bueej38g03yw2"] + +[node name="CanvasImageDialog" type="FileDialog"] +title = "Select Where To Save Canvas Image" +filters = PackedStringArray("*.png, *.jpg, *.jpeg ; Images") diff --git a/addons/GodotAnnotate/res/UpscaleFactorDialog.tscn b/addons/GodotAnnotate/res/UpscaleFactorDialog.tscn new file mode 100644 index 0000000..dc79af3 --- /dev/null +++ b/addons/GodotAnnotate/res/UpscaleFactorDialog.tscn @@ -0,0 +1,20 @@ +[gd_scene format=3 uid="uid://bkubc0dybo25h"] + +[node name="UpscaleFactorDialog" type="ConfirmationDialog"] +title = "Canvas Upscale Factor" +size = Vector2i(200, 88) +visible = true +min_size = Vector2i(100, 70) + +[node name="UpscaleFactorInput" type="SpinBox" parent="."] +anchors_preset = 4 +anchor_top = 0.5 +anchor_bottom = 0.5 +offset_left = 8.0 +offset_top = 8.0 +offset_right = 192.0 +offset_bottom = 39.0 +grow_vertical = 2 +step = 0.1 +value = 1.0 +alignment = 1 diff --git a/addons/GodotAnnotate/src/annotate_canvas.gd b/addons/GodotAnnotate/src/annotate_canvas.gd new file mode 100644 index 0000000..b4c773d --- /dev/null +++ b/addons/GodotAnnotate/src/annotate_canvas.gd @@ -0,0 +1,147 @@ +@tool +class_name AnnotateCanvas +extends Node2D +## +## Node allowing user to paint and view [AnnotateStroke]s on a [AnnotateLayer] in the 2D editor. +## + +## Percentage size increase to stroke size caused by shift + scroll. +const SIZE_SCROLL_PERC: float = 0.1 + +@export_group("Brush") + +## How large the brush size will be when [member brush_size] = 100. +@export_range(0, 9999, 1.0, "or_greater") +var max_brush_size: float = 50 + +## Current size of the brush used to paint strokes. +## Represents a percentage of [member max_brush_size], which is used for constructing [AnnotateStroke]s. +## [br] +## [br] +## Shortcut: shift + scroll +@export_range(1, 100, 0.1) +var brush_size: float = 50 + + +@export +var brush_color: Color = Color(141 / 255.0, 165 / 255.0, 243 / 255.0) + +@export_group("Advanced") + +## Do not remove [AnnotateCanvas] node from scene when running outside editor. +## User will not be able to paint on the canvas, even if this is set to [code] true [/code] +@export +var show_when_running := false + +## Lock [AnnotateCanvas] node from being drawn on. +@export +var lock_canvas := false + +## Percentage of brush radius must be between a new point inserted with [method insert_point], +## for it to be added to the [member points] array. +@export_range(0, 2, 0.05) +var min_point_distance = 0.25 + +## Current [AnnotateLayer] resource which is painted on when user annotates. +@export +var layer_resource: AnnotateLayer = AnnotateLayer.new() + +## Stroke currently being painted by the user. +var _active_stroke: AnnotateStrokeLine +## [code] true [/code] if user is currently trying to erase strokes. +var _erasing := false + +## Array of [AnnotateStrokeLine]s, which all visually represents all of the [AnnotateStroke] resources +## in the layer_resource array. +var _stroke_lines: Array[AnnotateStrokeLine] = [ ] + +func get_canvas_area() -> Rect2: + + if layer_resource.strokes.size() <= 0: + return Rect2() + + var canvas_area := layer_resource.strokes[0].boundary + + for stroke in layer_resource.strokes.slice(1): + canvas_area = canvas_area.merge(stroke.boundary) + + return canvas_area + +func _ready(): + if not Engine.is_editor_hint() and not show_when_running: + queue_free() + + # restore lines from previously saved state. + + for stroke in layer_resource.strokes: + var line := AnnotateStrokeLine.from_stroke(stroke) + add_child(line) + _stroke_lines.append(line) + +func _on_begin_stroke(): + _active_stroke = AnnotateStrokeLine.new(brush_size / 100 * max_brush_size, brush_color) + add_child(_active_stroke) + _stroke_lines.append(_active_stroke) + # instantly insert a point, to avoid the user having to drag the cursor, + # in order to insert a point. + _active_stroke.try_annotate_point(get_local_mouse_position(), min_point_distance, true) + +func _on_end_stroke(): + if !GodotAnnotate.poly_in_progress: + # force insert final point, as the stroke should end where the user stopped the stroke, + # even if the final point is within AnnotateStroke.MIN_POINT_DISTANCE. + _active_stroke.try_annotate_point(get_local_mouse_position(), min_point_distance, true) + + layer_resource.strokes.append(_active_stroke.to_stroke()) + _active_stroke = null + +func _on_begin_erase(): + _erasing = true + +func _on_end_erase(): + _erasing = false + +func _on_draw_poly_stroke(): + _active_stroke.try_annotate_point(get_local_mouse_position(), min_point_distance, false) + +func _on_stroke_resize(direction: float): + brush_size *= 1 + direction * SIZE_SCROLL_PERC + brush_size = min(100, max(brush_size, 1)) + +func _on_capture_canvas(file: String, scale: float): + add_child(AnnotateCanvasCaptureViewport.new(self, file, scale)) + +func _process(delta): + if _active_stroke && !GodotAnnotate.poly_in_progress: + _active_stroke.try_annotate_point(get_local_mouse_position(), min_point_distance, false) + + if _erasing: + var erase_stroke_indexes: Array[int] = [] + + for i in range(_stroke_lines.size()): + if _stroke_lines[i].collides_with(get_local_mouse_position(), brush_size / 100 * max_brush_size): + erase_stroke_indexes.append(i) + + for erase_count in range(erase_stroke_indexes.size()): + # subtract the target index by the amount of strokes deleted, + # since these strokes no longer exist in the array. + + var remove_index := erase_stroke_indexes[erase_count] - erase_count + + layer_resource.strokes.remove_at(remove_index) + _stroke_lines[remove_index].queue_free() + _stroke_lines.remove_at(remove_index) + + queue_redraw() + +func _draw(): + if lock_canvas: + return + + if GodotAnnotate.poly_in_progress: + draw_dashed_line(_active_stroke.points[-1], get_local_mouse_position(), brush_color, brush_size * 0.125, brush_size * 0.25) + + if _erasing: + draw_arc(get_local_mouse_position(), brush_size / 100 * max_brush_size / 2, 0, TAU, 32, Color.INDIAN_RED, 3, true) + elif GodotAnnotate.selected_canvas == self: + draw_circle(get_local_mouse_position(), brush_size / 100 * max_brush_size / 2, brush_color) diff --git a/addons/GodotAnnotate/src/annotate_canvas_capture_viewport.gd b/addons/GodotAnnotate/src/annotate_canvas_capture_viewport.gd new file mode 100644 index 0000000..8219308 --- /dev/null +++ b/addons/GodotAnnotate/src/annotate_canvas_capture_viewport.gd @@ -0,0 +1,43 @@ +class_name AnnotateCanvasCaptureViewport +extends SubViewport +## +## Class responsible for saving an image version of a AnnotateCanvas node to disk. +## + +var _first_process := true +var _file_location: String + +## Construct a AnnotateCanvasCaptureViewport node. [br] +## [param AnnotateCanvas]: AnnotateCanvas which should be saved as an image to disk. +## [param file]: Filename the image will be stored under. +## [param scale]: What the resolution of the image should be scaled by. +func _init(canvas: AnnotateCanvas, file: String, scale: float = 1.0): + canvas = canvas.duplicate() + _file_location = file + + var canvas_area := canvas.get_canvas_area() + + # viewports render anything from (0, 0) to (width, height), + # so we want to offset the canvas contents to make sure they fit inside this area. + canvas.position = -canvas_area.position * scale + canvas.scale *= scale + canvas_area.position = Vector2.ZERO + + add_child(canvas) + size = canvas_area.size * scale + + render_target_update_mode = SubViewport.UPDATE_ALWAYS + transparent_bg = true + +func _process(_delta): + if _first_process: + # allow viewport to update itself before capturing + _first_process = false + return + + get_texture().get_image().save_png(_file_location) + + # make sure new image file is visible in the editor filesystem + GodotAnnotate.editor_interface.get_resource_filesystem().scan() + + queue_free() diff --git a/addons/GodotAnnotate/src/annotate_layer.gd b/addons/GodotAnnotate/src/annotate_layer.gd new file mode 100644 index 0000000..52705e2 --- /dev/null +++ b/addons/GodotAnnotate/src/annotate_layer.gd @@ -0,0 +1,8 @@ +class_name AnnotateLayer +extends Resource +## +## Resource containing a series of [AnnotateStroke]s. +## + +@export +var strokes: Array[AnnotateStroke] = [] diff --git a/addons/GodotAnnotate/src/annotate_stroke.gd b/addons/GodotAnnotate/src/annotate_stroke.gd new file mode 100644 index 0000000..8e4a166 --- /dev/null +++ b/addons/GodotAnnotate/src/annotate_stroke.gd @@ -0,0 +1,30 @@ +class_name AnnotateStroke +extends Resource +## +## Resource representing a single stroke in a AnnotateCanvas node. +## + +## Diameter of the brush used to paint the stroke. +@export +var size: float + +@export +var color: Color + +## Represents the smallest possible rectangle with no rotation which contains the entire stroke. +@export +var boundary: Rect2 + +## List of points representing the shape of the brush, +## with the stroke starting at the first element and ending at the last. +# points is not typed for compatility for v0.1.x, should be typed in future versions. +@export +var points = PackedVector2Array() + +## Construct a stroke with the given brush information. +## use [method insert_point] to modify stroke. +func _init(_size: float = 1, _color: Color = Color.DODGER_BLUE, _points: PackedVector2Array = PackedVector2Array(), _boundary: Rect2 = Rect2()): + size = _size + color = _color + points = _points + boundary = _boundary diff --git a/addons/GodotAnnotate/src/annotate_stroke_line.gd b/addons/GodotAnnotate/src/annotate_stroke_line.gd new file mode 100644 index 0000000..31430de --- /dev/null +++ b/addons/GodotAnnotate/src/annotate_stroke_line.gd @@ -0,0 +1,96 @@ +class_name AnnotateStrokeLine +extends Line2D +## +## Node responsible for a visual representation of a AnnotateStroke resource. +## + +## Percentage of point position to increment point position by, if overlapping with another point. +const OVERLAP_INCR_PERC = 0.0001 +## Minimum increment of point, if point overlaps with another point. +const MIN_FLOAT_TRES_VAL = 0.001 + +## same as [AnnotateStroke.boundary] +var boundary: Rect2 = Rect2() + +## Construct a stroke line with the given stroke size and color. +## Its capping and joint mode are all set to round. +func _init(size: float, color: Color): + width = size + default_color = color + # TODO: should probably make this customisable in some way. + # not sure if this should be custom for each stroke, or just the canvas in general. + round_precision = 32 + + begin_cap_mode = Line2D.LINE_CAP_ROUND + end_cap_mode = Line2D.LINE_CAP_ROUND + joint_mode = Line2D.LINE_JOINT_ROUND + +## Construct a stroke line which visually represents the given [AnnotateStroke] resource. +static func from_stroke(stroke: AnnotateStroke) -> AnnotateStrokeLine: + var stroke_line = AnnotateStrokeLine.new(stroke.size, stroke.color) + stroke_line.boundary = stroke.boundary + + # v0.1.x uses Array[Vector2] instead of PackedVector2Array in the AnnotateStroke resource. + if stroke.points is Array[Vector2]: + stroke.points = PackedVector2Array(stroke.points) + + stroke_line.points = stroke.points + + return stroke_line + +## Convert the stroke line back to a [AnnotateStroke] resource, +## which will construct this exact stroke line when passed to [method from_stroke] +func to_stroke() -> AnnotateStroke: + return AnnotateStroke.new(width, default_color, points, boundary) + +## Attempts to insert the given point at the end of the stroke line. +## If the point is less than [param perc_min_point_dist], it will not be added, +## unless [param force] is set to true. +func try_annotate_point(point: Vector2, perc_min_point_dist: float, force: bool): + var size_vec = Vector2(width, width) + + if points.size() <= 0: + boundary = Rect2(point - size_vec, size_vec) + elif points[points.size() - 1].distance_to(point) < perc_min_point_dist * width: + + if force: + # if two points overlap exactly, then their end caps are not drawn. + # therefore we offset the point by a very small value to make sure this does not happen. + # also, for some reason, tres files does not allow tools to store floats with more than + # 3 decimals precission, so we cannot increment by less than 0.001, since this will not + # be stored in the AnnotateStroke resource saved to disk. + + var increment := point * OVERLAP_INCR_PERC + + increment.x = min(increment.x, MIN_FLOAT_TRES_VAL) + increment.y = min(increment.y, MIN_FLOAT_TRES_VAL) + + point += increment + else: + # ignore points which are too close to each other, to reduce memory usage. + return + + for dir in [Vector2.UP, Vector2.DOWN, Vector2.LEFT, Vector2.RIGHT]: + boundary = boundary.expand(point + size_vec * dir / 2) + + add_point(point) + return point + +## Checks if the given stroke line collides with a circle centered at [param brush center] +## which has a diamater of [param brush_width] +func collides_with(brush_center: Vector2, brush_width: float) -> bool: + var nearest_x := max(boundary.position.x, min(brush_center.x, boundary.end.x)) + var nearest_y := max(boundary.position.y, min(brush_center.y, boundary.end.y)) + # check if erase circle overlaps with stroke boundary + var nearest_boundary_point := Vector2(nearest_x, nearest_y) + + if nearest_boundary_point.distance_squared_to(brush_center) > (brush_width / 2) ** 2: + return false + + # check if erase circle overlaps with any points in stroke line, + # only if above is true to reduce number of distance checks. + for stroke_points in points: + if stroke_points.distance_squared_to(brush_center) < (width / 2 + brush_width / 2) ** 2: + return true + + return false diff --git a/addons/GodotAnnotate/src/godot_annotate.gd b/addons/GodotAnnotate/src/godot_annotate.gd new file mode 100644 index 0000000..5f1ffb1 --- /dev/null +++ b/addons/GodotAnnotate/src/godot_annotate.gd @@ -0,0 +1,106 @@ +@tool +class_name GodotAnnotate +extends EditorPlugin +## +## Handles initialization, deinitialization and event forwarding to [AnnotateCanvas] nodes. +## + +static var selected_canvas: AnnotateCanvas + +static var poly_in_progress := false + +static var canvas_image_dialog_scene := preload("res://addons/GodotAnnotate/res/CanvasImageDialog.tscn") +static var upscale_factor_dialog_scene := preload("res://addons/GodotAnnotate/res/UpscaleFactorDialog.tscn") + +static var editor_interface: EditorInterface + +func _enter_tree(): + add_custom_type("AnnotateCanvas", "Node2D", preload("res://addons/GodotAnnotate/src/annotate_canvas.gd"), preload("res://addons/GodotAnnotate/annotate_layer.svg")) + editor_interface = get_editor_interface() + +func _exit_tree(): + remove_custom_type("AnnotateCanvas") + +## Forwards relevant 2d editor user inputs to an [AnnotateCanvas] node. +## TODO: clean this up a bit. +func _forward_canvas_gui_input(event): + if not selected_canvas or selected_canvas.lock_canvas: + return false + + if event is InputEventKey: + + # canvas capture (shortcut: shift + alt + s) + if event.keycode == KEY_S && event.pressed && event.alt_pressed && event.shift_pressed: + var upscale_factor_dialog := upscale_factor_dialog_scene.instantiate() + upscale_factor_dialog.confirmed.connect(func(): + + var canvas_image_dialog := canvas_image_dialog_scene.instantiate() + canvas_image_dialog.file_selected.connect(func(file): + + # upscale factor is present in the spinbox child of the upscale factor dialog. + selected_canvas._on_capture_canvas(file, upscale_factor_dialog.get_child(0).value) + + ) + + get_editor_interface().popup_dialog_centered(canvas_image_dialog) + + ) + + get_editor_interface().popup_dialog_centered(upscale_factor_dialog) + + # polygon drawing + if poly_in_progress: + if event.keycode == KEY_ALT && !event.pressed: + selected_canvas._on_end_stroke() + poly_in_progress = false + return true + + if event is InputEventMouseButton: + # drawing + if event.button_index == MOUSE_BUTTON_LEFT && event.pressed: + if event.alt_pressed && not poly_in_progress: + selected_canvas._on_begin_stroke() + poly_in_progress = true + if poly_in_progress: + selected_canvas._on_draw_poly_stroke() + else: + selected_canvas._on_begin_stroke() + return true + elif event.button_index == MOUSE_BUTTON_LEFT && not event.pressed && not poly_in_progress: + if !poly_in_progress: + selected_canvas._on_end_stroke() + return true + + # erasing + elif event.button_index == MOUSE_BUTTON_RIGHT && event.pressed: + selected_canvas._on_begin_erase() + return true + elif event.button_index == MOUSE_BUTTON_RIGHT && not event.pressed: + selected_canvas._on_end_erase() + return true + + # stroke size (shift + scroll) + # cannot use ctrl or alt, since they control view position and zoom, + # and cannot be prevented from being forwarded by returning true. + elif event.button_index == MOUSE_BUTTON_WHEEL_DOWN && Input.is_key_pressed(KEY_SHIFT): + if event.pressed: + selected_canvas._on_stroke_resize(-1) + + return true + elif event.button_index == MOUSE_BUTTON_WHEEL_UP && Input.is_key_pressed(KEY_SHIFT): + if event.pressed: + selected_canvas._on_stroke_resize(1) + + return true + + return false + +## Keeps track of currently selected node, as special action is required when an [AnnotateCanvas] node is selected. +func _handles(object): + if object is AnnotateCanvas: + selected_canvas = object + return true + + selected_canvas = null + + return false