diff --git a/.gitignore b/.gitignore index f859cc1..3b4b65d 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,6 @@ export_presets.cfg data_*/ mono_crash.*.json +# Asset source files we do not want to track +assets/3rdparty/KayKit_Adventurers_1.0_EXTRA/Assets/fbx/ +*.blend1 diff --git a/assets/custom/hammer.blend b/assets/custom/hammer.blend new file mode 100644 index 0000000..c1ba5d9 Binary files /dev/null and b/assets/custom/hammer.blend differ diff --git a/assets/custom/hammer.blend.import b/assets/custom/hammer.blend.import new file mode 100644 index 0000000..6827b69 --- /dev/null +++ b/assets/custom/hammer.blend.import @@ -0,0 +1,51 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://b1i0pvq201284" +path="res://.godot/imported/hammer.blend-dbf41d21661b912cf8b897dbcb727c34.scn" + +[deps] + +source_file="res://assets/custom/hammer.blend" +dest_files=["res://.godot/imported/hammer.blend-dbf41d21661b912cf8b897dbcb727c34.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +_subresources={} +blender/nodes/visible=0 +blender/nodes/active_collection_only=false +blender/nodes/punctual_lights=true +blender/nodes/cameras=true +blender/nodes/custom_properties=true +blender/nodes/modifiers=1 +blender/meshes/colors=false +blender/meshes/uvs=true +blender/meshes/normals=true +blender/meshes/tangents=true +blender/meshes/skins=2 +blender/meshes/export_bones_deforming_mesh_only=false +blender/materials/unpack_enabled=true +blender/materials/export_materials=1 +blender/animation/limit_playback=true +blender/animation/always_sample=true +blender/animation/group_tracks=true diff --git a/assets/custom/hammer.glb b/assets/custom/hammer.glb new file mode 100644 index 0000000..103193a Binary files /dev/null and b/assets/custom/hammer.glb differ diff --git a/assets/custom/hammer.glb.import b/assets/custom/hammer.glb.import new file mode 100644 index 0000000..643e4b7 --- /dev/null +++ b/assets/custom/hammer.glb.import @@ -0,0 +1,36 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://csiiypw22be7f" +path="res://.godot/imported/hammer.glb-39cd9e44482fc8938b57eefaacd33ae1.scn" + +[deps] + +source_file="res://assets/custom/hammer.glb" +dest_files=["res://.godot/imported/hammer.glb-39cd9e44482fc8938b57eefaacd33ae1.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +_subresources={} +gltf/naming_version=1 +gltf/embedded_image_handling=1 diff --git a/assets/custom/hammer_barbarian_texture.png b/assets/custom/hammer_barbarian_texture.png new file mode 100644 index 0000000..6c6adde Binary files /dev/null and b/assets/custom/hammer_barbarian_texture.png differ diff --git a/assets/custom/hammer_barbarian_texture.png.import b/assets/custom/hammer_barbarian_texture.png.import new file mode 100644 index 0000000..c55a43d --- /dev/null +++ b/assets/custom/hammer_barbarian_texture.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdx2xxn1u1evw" +path.s3tc="res://.godot/imported/hammer_barbarian_texture.png-9dff92c0428466fdc34beac1d0a9c6a8.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "267533c91145eeae53d251a78b53814c" +} + +[deps] + +source_file="res://assets/custom/hammer_barbarian_texture.png" +dest_files=["res://.godot/imported/hammer_barbarian_texture.png-9dff92c0428466fdc34beac1d0a9c6a8.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +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=0 diff --git a/assets/textures/water.kra b/assets/textures/water.kra new file mode 100644 index 0000000..3651b42 Binary files /dev/null and b/assets/textures/water.kra differ diff --git a/assets/textures/water_a.png b/assets/textures/water_a.png new file mode 100644 index 0000000..b4d8fc5 Binary files /dev/null and b/assets/textures/water_a.png differ diff --git a/assets/textures/water_a.png.import b/assets/textures/water_a.png.import new file mode 100644 index 0000000..223cfb2 --- /dev/null +++ b/assets/textures/water_a.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://csgkhpgbctysg" +path="res://.godot/imported/water_a.png-b91dfb272ad73776d2f9eb4a54649cbe.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/textures/water_a.png" +dest_files=["res://.godot/imported/water_a.png-b91dfb272ad73776d2f9eb4a54649cbe.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/textures/water_b.png b/assets/textures/water_b.png new file mode 100644 index 0000000..13b23ac Binary files /dev/null and b/assets/textures/water_b.png differ diff --git a/assets/textures/water_b.png.import b/assets/textures/water_b.png.import new file mode 100644 index 0000000..ac83114 --- /dev/null +++ b/assets/textures/water_b.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dps0i8d3xcw4j" +path="res://.godot/imported/water_b.png-391100e70de1935dde53c53744c1de27.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/textures/water_b.png" +dest_files=["res://.godot/imported/water_b.png-391100e70de1935dde53c53744c1de27.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/textures/water_c.png b/assets/textures/water_c.png new file mode 100644 index 0000000..1c54e3e Binary files /dev/null and b/assets/textures/water_c.png differ diff --git a/assets/textures/water_c.png.import b/assets/textures/water_c.png.import new file mode 100644 index 0000000..fb11d15 --- /dev/null +++ b/assets/textures/water_c.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://psahbr51jdj6" +path.s3tc="res://.godot/imported/water_c.png-760938cb03cabb489069f0b65800029b.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://assets/textures/water_c.png" +dest_files=["res://.godot/imported/water_c.png-760938cb03cabb489069f0b65800029b.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +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=0 diff --git a/assets/tools/Hammer.png b/assets/tools/Hammer.png new file mode 100644 index 0000000..b82bfbc Binary files /dev/null and b/assets/tools/Hammer.png differ diff --git a/assets/tools/Hammer.png.import b/assets/tools/Hammer.png.import new file mode 100644 index 0000000..cbdba41 --- /dev/null +++ b/assets/tools/Hammer.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dscbd8iuo4jhs" +path="res://.godot/imported/Hammer.png-6e8ad0ed2bf01911efef060f5517d999.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/tools/Hammer.png" +dest_files=["res://.godot/imported/Hammer.png-6e8ad0ed2bf01911efef060f5517d999.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/tools/Hammer.tscn b/assets/tools/Hammer.tscn new file mode 100644 index 0000000..0ed8344 --- /dev/null +++ b/assets/tools/Hammer.tscn @@ -0,0 +1,5 @@ +[gd_scene load_steps=2 format=3 uid="uid://bimt3mc3d7th2"] + +[ext_resource type="PackedScene" uid="uid://csiiypw22be7f" path="res://assets/custom/hammer.glb" id="1_j5krs"] + +[node name="hammer" instance=ExtResource("1_j5krs")] diff --git a/data/items/hammer.tres b/data/items/hammer.tres new file mode 100644 index 0000000..3b98939 --- /dev/null +++ b/data/items/hammer.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="Item" load_steps=4 format=3 uid="uid://cwerasgcfgx2p"] + +[ext_resource type="Script" path="res://model/item.gd" id="1_l1bb7"] +[ext_resource type="Texture2D" uid="uid://dscbd8iuo4jhs" path="res://assets/tools/Hammer.png" id="1_qwgnj"] +[ext_resource type="PackedScene" uid="uid://bimt3mc3d7th2" path="res://assets/tools/Hammer.tscn" id="2_pwblf"] + +[resource] +script = ExtResource("1_l1bb7") +name = "Hammer" +scene = ExtResource("2_pwblf") +icon = ExtResource("1_qwgnj") +max_stack_size = 1 +is_tool = true +is_buildable = false +tool_action = 1 diff --git a/dialogue/bridge_builder_missing_tool.dialogue b/dialogue/bridge_builder_missing_tool.dialogue index 3c54147..bf50425 100644 --- a/dialogue/bridge_builder_missing_tool.dialogue +++ b/dialogue/bridge_builder_missing_tool.dialogue @@ -4,12 +4,12 @@ Chloe: Mist! Ohne meinen Hammer kann ich die Brücke nicht fertig bauen! Chloe: Hast Du meinen Hammer gesehen? - Ja! - if is_wrench_found == false: + if is_hammer_found == false: Chloe: Du scheinst keinen Hammer zu haben. Oder weißt nicht was ein Hammer ist. else:av Chloe: Danke! - set is_wrench_delivered = true + set is_hammer_delivered = true - Lieber nicht. Chloe: Schade! - Wo kann er denn sein? diff --git a/objects/player.gd b/objects/player.gd index 2de9a61..33fd4f1 100644 --- a/objects/player.gd +++ b/objects/player.gd @@ -92,7 +92,7 @@ func set_right_hand_item(item:Item) -> void: animation_tree.set("parameters/Interact/conditions/tool_action_slice", true) func has_build_tool_active() -> bool: - if current_tool and current_tool.name == "Pickaxe": + if current_tool and current_tool.resource_path == "res://data/items/hammer.tres": return true return false diff --git a/objects/player.tscn b/objects/player.tscn index 761e09a..3b2d3e0 100644 --- a/objects/player.tscn +++ b/objects/player.tscn @@ -32,7 +32,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.470516, 0) shape = SubResource("CapsuleShape3D_7kfad") [node name="RightHandBone" type="BoneAttachment3D" parent="."] -transform = Transform3D(-0.00015721, -0.0606496, 0.395375, 0.399999, -0.000666146, 5.67707e-05, 0.000649959, 0.395375, 0.0606499, -0.196425, 0.255346, 0.0425267) +transform = Transform3D(-9.0716e-05, -0.060357, 0.39542, 0.399999, -0.000384705, 3.28702e-05, 0.000375464, 0.39542, 0.0603571, -0.196424, 0.255935, 0.0425928) bone_name = "Knife" bone_idx = 17 use_external_skeleton = true diff --git a/quests/builder_missing_tool_quest.gd b/quests/builder_missing_tool_quest.gd index 2c30d15..b7db531 100644 --- a/quests/builder_missing_tool_quest.gd +++ b/quests/builder_missing_tool_quest.gd @@ -1,8 +1,8 @@ class_name QuestBuilderMissingTool extends Node -@export var is_wrench_found:bool = false -@export var is_wrench_delivered:bool = false +@export var is_hammer_found:bool = false +@export var is_hammer_delivered:bool = false @export var is_bridge_built:bool = false @export var is_completed:bool = false @@ -24,22 +24,22 @@ func on_dialogue_ended(_dialog_resource: DialogueResource) -> void: if is_completed: return - if is_wrench_delivered and not is_bridge_built: + if is_hammer_delivered and not is_bridge_built: print ("Will build bridge!") emit_signal("wrench_delivered") func _process(_delta): - if is_wrench_delivered: + if is_hammer_delivered: is_bridge_built = true bridge.global_transform = _bridge_transform if is_completed: return - var wrench_item:Item = load("res://data/items/wrench.tres") - if _player.inventory.has_all([wrench_item]): - is_wrench_found = true + var hammer_item:Item = load("res://data/items/hammer.tres") + if _player.inventory.has_all([hammer_item]): + is_hammer_found = true if is_bridge_built: is_completed = true diff --git a/world/level.tscn b/world/level.tscn index 9d56465..d25795e 100644 --- a/world/level.tscn +++ b/world/level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=21 format=3 uid="uid://dmagdl5pi6jdj"] +[gd_scene load_steps=25 format=3 uid="uid://dmagdl5pi6jdj"] [ext_resource type="MeshLibrary" uid="uid://dcpuitbu16j1a" path="res://assets/mesh_library.tres" id="1_q0eym"] [ext_resource type="PackedScene" uid="uid://da5r82nvypfk4" path="res://objects/pickup_item.tscn" id="2_ccr0r"] @@ -9,6 +9,7 @@ [ext_resource type="Resource" uid="uid://bob26ycbled6r" path="res://data/items/dagger.tres" id="7_pt3bs"] [ext_resource type="Resource" uid="uid://cbitlk81jxwfa" path="res://data/items/sword.tres" id="8_45auf"] [ext_resource type="Resource" uid="uid://cktn5p1wetkve" path="res://data/items/axe.tres" id="9_xhfx0"] +[ext_resource type="Resource" uid="uid://cwerasgcfgx2p" path="res://data/items/hammer.tres" id="10_wch4q"] [ext_resource type="PackedScene" uid="uid://ccjcjputsddrd" path="res://assets/scene_props/tree_pine.tscn" id="11_5olon"] [ext_resource type="Texture2D" uid="uid://bq3b1hxl5ojh6" path="res://assets/icons/npc_emotes/attention.tres" id="12_3vn8y"] [ext_resource type="PackedScene" uid="uid://2q8dhf61a7os" path="res://assets/characters/engineer.tscn" id="13_t16lh"] @@ -18,6 +19,7 @@ [ext_resource type="Script" path="res://quests/builder_missing_tool_quest.gd" id="16_dr1ca"] [ext_resource type="Resource" uid="uid://bx2wi6c0f554" path="res://dialogue/default_dialogue.dialogue" id="18_4qvld"] [ext_resource type="PackedScene" uid="uid://kpyvcyklt68g" path="res://assets/scene_props/bridge.tscn" id="18_yqn1p"] +[ext_resource type="Texture2D" uid="uid://psahbr51jdj6" path="res://assets/textures/water_c.png" id="19_n8o41"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_0soe6"] height = 0.6 @@ -25,6 +27,14 @@ radius = 0.158352 [sub_resource type="SphereShape3D" id="SphereShape3D_ugkqa"] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_c4uk7"] +albedo_texture = ExtResource("19_n8o41") +uv1_triplanar = true + +[sub_resource type="PlaneMesh" id="PlaneMesh_6aebw"] +material = SubResource("StandardMaterial3D_c4uk7") +size = Vector2(200, 200) + [node name="Level" type="Node3D"] [node name="GridMap" type="GridMap" parent="."] @@ -36,9 +46,9 @@ cell_center_x = false cell_center_y = false cell_center_z = false data = { -"cells": PackedInt32Array(1, 65534, 655374, 1, 65531, 655374, 4, 65534, 655374, 4, 65531, 655374, 65534, 1, 655374, 1, 1, 655374, 4, 1, 655374, 7, 1, 655374, 7, 65534, 655374, 7, 65531, 655374, 7, 65528, 655374, 4, 65528, 13, 13, 1, 13, 13, 65534, 13, 13, 65531, 13, 13, 65528, 13, 65531, 65528, 1048590, 65531, 65531, 1048590, 65531, 65534, 1048590, 65531, 1, 1048590, 65531, 65525, 1048590, 65534, 65525, 1048590, 1, 65525, 1048590, 4, 65525, 1048590, 7, 65525, 1048590, 13, 65525, 13, 7, 65522, 1048590, 4, 65522, 1048590, 1, 65522, 1048590, 65534, 65522, 1048590, 65531, 65522, 1048590, 65531, 4, 1048590, 65534, 4, 1048590, 1, 4, 1048590, 4, 4, 1048590, 7, 4, 1048590, 65543, 65527, 9, 65541, 65527, 9, 131067, 65527, 9, 131066, 65529, 1441801, 131066, 4, 1441801, 131068, 5, 655369, 131071, 5, 655369, 65538, 5, 655369, 65541, 5, 655369, 65543, 5, 9, 65544, 4, 1441801, 65544, 1, 1441801, 15, 65521, 13, 15, 65522, 13, 15, 65523, 13, 15, 65524, 13, 15, 65525, 13, 15, 65526, 13, 16, 65527, 13, 16, 65528, 13, 15, 65528, 13, 15, 65529, 13, 15, 65530, 13, 65534, 65528, 13, 65534, 65529, 13, 65534, 65530, 13, 65534, 65531, 13, 65534, 65532, 13, 65534, 65533, 13, 65534, 65534, 13, 65534, 65535, 13, 65535, 65535, 13, 65535, 65534, 13, 65535, 65533, 13, 65535, 65532, 13, 65535, 65531, 13, 65535, 65530, 13, 65535, 65529, 13, 65535, 65528, 13, 65535, 65527, 13, 65534, 65527, 13, 65533, 65527, 13, 65533, 65526, 13, 65532, 65528, 13, 65533, 65528, 13, 0, 65528, 13, 0, 65527, 13, 1, 65527, 13, 1, 65528, 13, 2, 65528, 13, 3, 65528, 13, 5, 65528, 13, 12, 65521, 13, 12, 65522, 13, 12, 65523, 13, 12, 65524, 13, 12, 65525, 13, 12, 65526, 13, 12, 65527, 13, 12, 65528, 13, 12, 65529, 13, 12, 65530, 13, 12, 65531, 13, 12, 65532, 13, 12, 65533, 13, 12, 65534, 13, 12, 65535, 13, 12, 0, 13, 12, 1, 13, 12, 2, 13, 13, 65521, 13, 13, 65522, 13, 13, 65523, 13, 13, 65524, 13, 13, 65526, 13, 13, 65527, 13, 13, 65529, 13, 13, 65530, 13, 13, 65532, 13, 13, 65533, 13, 13, 65535, 13, 13, 0, 13, 13, 2, 13, 14, 65521, 13, 14, 65522, 13, 14, 65523, 13, 14, 65524, 13, 14, 65525, 13, 14, 65526, 13, 14, 65527, 13, 14, 65528, 13, 14, 65529, 13, 14, 65530, 13, 14, 65531, 13, 14, 65532, 13, 14, 65533, 13, 14, 65534, 13, 14, 65535, 13, 14, 0, 13, 14, 1, 13, 14, 2, 13, 15, 65527, 13, 15, 65531, 13, 15, 65532, 13, 15, 65533, 13, 15, 65534, 13, 15, 65535, 13, 15, 0, 13, 15, 1, 13, 15, 2, 13, 16, 65521, 13, 16, 65522, 13, 16, 65523, 13, 16, 65524, 13, 16, 65525, 13, 16, 65526, 13, 16, 65529, 13, 16, 65530, 13, 16, 65531, 13, 16, 65532, 13, 16, 65533, 13, 16, 65534, 13, 16, 65535, 13, 16, 0, 13, 16, 1, 13, 16, 2, 13, 17, 65521, 13, 17, 65522, 13, 17, 65523, 13, 17, 65524, 13, 17, 65525, 13, 17, 65526, 13, 17, 65527, 13, 17, 65528, 13, 17, 65529, 13, 17, 65530, 13, 17, 65531, 13, 17, 65532, 13, 17, 65533, 13, 17, 65534, 13, 17, 65535, 13, 17, 0, 13, 17, 1, 13, 17, 2, 13, 18, 65521, 13, 18, 65522, 13, 18, 65523, 13, 18, 65524, 13, 18, 65525, 13, 18, 65526, 13, 18, 65527, 13, 18, 65528, 13, 18, 65529, 13, 18, 65530, 13, 18, 65531, 13, 18, 65532, 13, 18, 65533, 13, 18, 65534, 13, 18, 65535, 13, 18, 0, 13, 18, 1, 13, 18, 2, 13, 19, 65521, 13, 19, 65522, 13, 19, 65523, 13, 19, 65524, 13, 19, 65525, 13, 19, 65526, 13, 19, 65527, 13, 19, 65528, 13, 19, 65529, 13, 19, 65530, 13, 19, 65531, 13, 19, 65532, 13, 19, 65533, 13, 19, 65534, 13, 19, 65535, 13, 19, 0, 13, 19, 1, 13, 19, 2, 13, 20, 65521, 13, 20, 65522, 13, 20, 65523, 13, 20, 65524, 13, 20, 65525, 13, 20, 65526, 13, 20, 65527, 13, 20, 65528, 13, 20, 65529, 13, 20, 65530, 13, 20, 65531, 13, 20, 65532, 13, 20, 65533, 13, 20, 65534, 13, 20, 65535, 13, 20, 0, 13, 20, 1, 13, 20, 2, 13, 21, 65521, 13, 21, 65522, 13, 21, 65523, 13, 21, 65524, 13, 21, 65525, 13, 21, 65526, 13, 21, 65527, 13, 21, 65528, 13, 21, 65529, 13, 21, 65530, 13, 21, 65531, 13, 21, 65532, 13, 21, 65533, 13, 21, 65534, 13, 21, 65535, 13, 21, 0, 13, 21, 1, 13, 21, 2, 13, 22, 65521, 13, 22, 65522, 13, 22, 65523, 13, 22, 65524, 13, 22, 65525, 13, 22, 65526, 13, 22, 65527, 13, 22, 65528, 13, 22, 65529, 13, 22, 65530, 13, 22, 65531, 13, 22, 65532, 13, 22, 65533, 13, 22, 65534, 13, 22, 65535, 13, 22, 0, 13, 22, 1, 13, 22, 2, 13, 23, 65521, 13, 23, 65522, 13, 23, 65523, 13, 23, 65524, 13, 23, 65525, 13, 23, 65526, 13, 23, 65527, 13, 23, 65528, 13, 23, 65529, 13, 23, 65530, 13, 23, 65531, 13, 23, 65532, 13, 23, 65533, 13, 23, 65534, 13, 23, 65535, 13, 23, 0, 13, 23, 1, 13, 23, 2, 13, 24, 65521, 13, 24, 65522, 13, 24, 65523, 13, 24, 65524, 13, 24, 65525, 13, 24, 65526, 13, 24, 65527, 13, 24, 65528, 13, 24, 65529, 13, 24, 65530, 13, 24, 65531, 13, 24, 65532, 13, 24, 65533, 13, 24, 65534, 13, 24, 65535, 13, 24, 0, 13, 24, 1, 13, 24, 2, 13, 25, 65521, 13, 25, 65522, 13, 25, 65523, 13, 25, 65524, 13, 25, 65525, 13, 25, 65526, 13, 25, 65527, 13, 25, 65528, 13, 25, 65529, 13, 25, 65530, 13, 25, 65531, 13, 25, 65532, 13, 25, 65533, 13, 25, 65534, 13, 25, 65535, 13, 25, 0, 13, 25, 1, 13, 25, 2, 13, 26, 65521, 13, 26, 65522, 13, 26, 65523, 13, 26, 65524, 13, 26, 65525, 13, 26, 65526, 13, 26, 65527, 13, 26, 65528, 13, 26, 65529, 13, 26, 65530, 13, 26, 65531, 13, 26, 65532, 13, 26, 65533, 13, 26, 65534, 13, 26, 65535, 13, 26, 0, 13, 26, 1, 13, 26, 2, 13, 27, 65521, 13, 27, 65522, 13, 27, 65523, 13, 27, 65524, 13, 27, 65525, 13, 27, 65526, 13, 27, 65527, 13, 27, 65528, 13, 27, 65529, 13, 27, 65530, 13, 27, 65531, 13, 27, 65532, 13, 27, 65533, 13, 27, 65534, 13, 27, 65535, 13, 27, 0, 13, 27, 1, 13, 27, 2, 13, 28, 65521, 13, 28, 65522, 13, 28, 65523, 13, 28, 65524, 13, 28, 65525, 13, 28, 65526, 13, 28, 65527, 13, 28, 65528, 13, 28, 65529, 13, 28, 65530, 13, 28, 65531, 13, 28, 65532, 13, 28, 65533, 13, 28, 65534, 13, 28, 65535, 13, 28, 0, 13, 28, 1, 13, 28, 2, 13, 29, 65521, 13, 29, 65522, 13, 29, 65523, 13, 29, 65524, 13, 29, 65525, 13, 29, 65526, 13, 29, 65527, 13, 29, 65528, 13, 29, 65529, 13, 29, 65530, 13, 29, 65531, 13, 29, 65532, 13, 29, 65533, 13, 29, 65534, 13, 29, 65535, 13, 29, 0, 13, 29, 1, 13, 29, 2, 13, 30, 65521, 13, 30, 65522, 13, 30, 65523, 13, 30, 65524, 13, 30, 65525, 13, 30, 65526, 13, 30, 65527, 13, 30, 65528, 13, 30, 65529, 13, 30, 65530, 13, 30, 65531, 13, 30, 65532, 13, 30, 65533, 13, 30, 65534, 13, 30, 65535, 13, 30, 0, 13, 30, 1, 13, 30, 2, 13, 31, 65521, 13, 31, 65522, 13, 31, 65523, 13, 31, 65524, 13, 31, 65525, 13, 31, 65526, 13, 31, 65527, 13, 31, 65528, 13, 31, 65529, 13, 31, 65530, 13, 31, 65531, 13, 31, 65532, 13, 31, 65533, 13, 31, 65534, 13, 31, 65535, 13, 31, 0, 13, 31, 1, 13, 31, 2, 13, 32, 65521, 13, 32, 65522, 13, 32, 65523, 13, 32, 65524, 13, 32, 65525, 13, 32, 65526, 13, 32, 65527, 13, 32, 65528, 13, 32, 65529, 13, 32, 65530, 13, 32, 65531, 13, 32, 65532, 13, 32, 65533, 13, 32, 65534, 13, 32, 65535, 13, 32, 0, 13, 32, 1, 13, 32, 2, 13, 3, 65517, 13, 0, 65517, 13, 65535, 65517, 13, 131067, 65532, 655377, 131066, 65532, 27, 131066, 65533, 27, 131067, 65533, 655377, 131066, 65534, 27, 131067, 65535, 655377, 131066, 0, 655377, 131067, 1, 655377, 131064, 65525, 27, 131063, 65525, 655377, 131063, 65526, 655377, 131064, 65526, 27, 131062, 65524, 655377, 65539, 65528, 655377, 65552, 65516, 27, 65550, 65517, 27, 65549, 65517, 27, 65547, 65517, 27, 65546, 65518, 27, 65545, 65518, 27, 65544, 65518, 27, 65543, 65517, 27, 65543, 65516, 27, 65544, 65516, 27, 65545, 65516, 27, 65547, 65516, 27, 65548, 65515, 27, 65548, 65516, 27, 65549, 65516, 27, 65550, 65516, 27, 65551, 65515, 27, 65552, 65515, 27, 65552, 65517, 27, 65551, 65517, 27, 65548, 65517, 27, 65546, 65517, 27, 65546, 65516, 27, 65545, 65515, 27, 65544, 65515, 27, 65543, 65515, 27, 65542, 65517, 27, 65542, 65518, 27, 65542, 65519, 27, 65543, 65519, 27, 65544, 65519, 27, 65545, 65520, 27, 65544, 65520, 27, 65543, 65520, 27, 65542, 65520, 27, 65541, 65520, 27, 65540, 65520, 27, 65539, 65519, 27, 65537, 65519, 27, 131070, 65519, 27, 131067, 65519, 27, 131066, 65519, 27, 131064, 65519, 27, 131065, 65519, 27, 131068, 65519, 27, 131069, 65519, 27, 65536, 65520, 27, 65538, 65520, 27, 65539, 65520, 27, 65537, 65520, 27, 131071, 65520, 27, 131070, 65520, 27, 131068, 65520, 27, 131067, 65520, 27, 131066, 65520, 27, 131065, 65520, 27, 131065, 65521, 27, 131064, 65521, 27, 131064, 65522, 27, 131064, 65523, 27, 131064, 65524, 27, 131065, 65526, 27, 65545, 65521, 27, 65546, 65522, 27, 65546, 65523, 27, 65546, 65524, 27, 65545, 65525, 27, 65545, 65526, 27, 65546, 65525, 27, 65546, 65526, 27, 65546, 65520, 27, 65546, 65521, 27, 65547, 65520, 27, 65547, 65519, 27, 65548, 65519, 27, 65550, 65519, 27, 65551, 65519, 27, 65552, 65519, 27, 65553, 65519, 27, 65554, 65519, 27, 65555, 65519, 27, 65553, 65520, 27, 65552, 65520, 27, 65549, 65519, 27, 65551, 65520, 27, 65550, 65520, 27, 65549, 65520, 27, 65548, 65520, 27, 65554, 65525, 27, 65554, 65526, 27, 65554, 65527, 27, 65554, 65528, 27, 65554, 65529, 27, 65555, 65529, 27, 65556, 65529, 27, 65556, 65528, 27, 65555, 65528, 27, 65553, 65527, 27, 131066, 65531, 27, 131066, 65530, 27, 131066, 65535, 27, 65536, 65529, 17, 65537, 65531, 18) +"cells": PackedInt32Array(1, 65534, 655374, 1, 65531, 655374, 4, 65534, 655374, 4, 65531, 655374, 65534, 1, 655374, 1, 1, 655374, 4, 1, 655374, 7, 1, 655374, 7, 65534, 655374, 7, 65531, 655374, 7, 65528, 655374, 4, 65528, 13, 13, 1, 13, 13, 65534, 13, 13, 65531, 13, 13, 65528, 13, 65531, 65528, 1048590, 65531, 65531, 1048590, 65531, 65534, 1048590, 65531, 1, 1048590, 13, 65525, 13, 65531, 4, 1048590, 65534, 4, 1048590, 1, 4, 1048590, 4, 4, 1048590, 7, 4, 1048590, 65541, 65527, 9, 131066, 65529, 1441801, 131066, 4, 1441801, 131068, 5, 655369, 131071, 5, 655369, 65538, 5, 655369, 65541, 5, 655369, 65543, 5, 9, 65544, 4, 1441801, 65544, 1, 1441801, 15, 65521, 13, 15, 65522, 13, 15, 65523, 13, 15, 65524, 13, 15, 65525, 13, 15, 65526, 13, 16, 65527, 13, 16, 65528, 13, 15, 65528, 13, 15, 65529, 13, 15, 65530, 13, 65534, 65528, 13, 65534, 65529, 13, 65534, 65530, 13, 65534, 65531, 13, 65534, 65532, 13, 65534, 65533, 13, 65534, 65534, 13, 65534, 65535, 13, 65535, 65535, 13, 65535, 65534, 13, 65535, 65533, 13, 65535, 65532, 13, 65535, 65531, 13, 65535, 65530, 13, 65535, 65529, 13, 65535, 65528, 13, 65535, 65527, 13, 65534, 65527, 13, 65533, 65527, 13, 65533, 65526, 13, 65532, 65528, 13, 65533, 65528, 13, 0, 65528, 13, 0, 65527, 13, 1, 65527, 13, 1, 65528, 13, 2, 65528, 13, 3, 65528, 13, 5, 65528, 13, 12, 65521, 13, 12, 65522, 13, 12, 65523, 13, 12, 65524, 13, 12, 65525, 13, 12, 65526, 13, 12, 65527, 13, 12, 65528, 13, 12, 65529, 13, 12, 65530, 13, 12, 65531, 13, 12, 65532, 13, 12, 65533, 13, 12, 65534, 13, 12, 65535, 13, 12, 0, 13, 12, 1, 13, 12, 2, 13, 13, 65521, 13, 13, 65522, 13, 13, 65523, 13, 13, 65524, 13, 13, 65526, 13, 13, 65527, 13, 13, 65529, 13, 13, 65530, 13, 13, 65532, 13, 13, 65533, 13, 13, 65535, 13, 13, 0, 13, 13, 2, 13, 14, 65521, 13, 14, 65522, 13, 14, 65523, 13, 14, 65524, 13, 14, 65525, 13, 14, 65526, 13, 14, 65527, 13, 14, 65528, 13, 14, 65529, 13, 14, 65530, 13, 14, 65531, 13, 14, 65532, 13, 14, 65533, 13, 14, 65534, 13, 14, 65535, 13, 14, 0, 13, 14, 1, 13, 14, 2, 13, 15, 65527, 13, 15, 65531, 13, 15, 65532, 13, 15, 65533, 13, 15, 65534, 13, 15, 65535, 13, 15, 0, 13, 15, 1, 13, 15, 2, 13, 16, 65521, 13, 16, 65522, 13, 16, 65523, 13, 16, 65524, 13, 16, 65525, 13, 16, 65526, 13, 16, 65529, 13, 16, 65530, 13, 16, 65531, 13, 16, 65532, 13, 16, 65533, 13, 16, 65534, 13, 16, 65535, 13, 16, 0, 13, 16, 1, 13, 16, 2, 13, 17, 65521, 13, 17, 65522, 13, 17, 65523, 13, 17, 65524, 13, 17, 65525, 13, 17, 65526, 13, 17, 65527, 13, 17, 65528, 13, 17, 65529, 13, 17, 65530, 13, 17, 65531, 13, 17, 65532, 13, 17, 65533, 13, 17, 65534, 13, 17, 65535, 13, 17, 0, 13, 17, 1, 13, 17, 2, 13, 18, 65521, 13, 18, 65522, 13, 18, 65523, 13, 18, 65524, 13, 18, 65525, 13, 18, 65526, 13, 18, 65527, 13, 18, 65528, 13, 18, 65529, 13, 18, 65530, 13, 18, 65531, 13, 18, 65532, 13, 18, 65533, 13, 18, 65534, 13, 18, 65535, 13, 18, 0, 13, 18, 1, 13, 18, 2, 13, 19, 65521, 13, 19, 65522, 13, 19, 65523, 13, 19, 65524, 13, 19, 65525, 13, 19, 65526, 13, 19, 65527, 13, 19, 65528, 13, 19, 65529, 13, 19, 65530, 13, 19, 65531, 13, 19, 65532, 13, 19, 65533, 13, 19, 65534, 13, 19, 65535, 13, 19, 0, 13, 19, 1, 13, 19, 2, 13, 20, 65521, 13, 20, 65522, 13, 20, 65523, 13, 20, 65524, 13, 20, 65525, 13, 20, 65526, 13, 20, 65527, 13, 20, 65528, 13, 20, 65529, 13, 20, 65530, 13, 20, 65531, 13, 20, 65532, 13, 20, 65533, 13, 20, 65534, 13, 20, 65535, 13, 20, 0, 13, 20, 1, 13, 20, 2, 13, 21, 65521, 13, 21, 65522, 13, 21, 65523, 13, 21, 65524, 13, 21, 65525, 13, 21, 65526, 13, 21, 65527, 13, 21, 65528, 13, 21, 65529, 13, 21, 65530, 13, 21, 65531, 13, 21, 65532, 13, 21, 65533, 13, 21, 65534, 13, 21, 65535, 13, 21, 0, 13, 21, 1, 13, 21, 2, 13, 22, 65521, 13, 22, 65522, 13, 22, 65523, 13, 22, 65524, 13, 22, 65525, 13, 22, 65526, 13, 22, 65527, 13, 22, 65528, 13, 22, 65529, 13, 22, 65530, 13, 22, 65531, 13, 22, 65532, 13, 22, 65533, 13, 22, 65534, 13, 22, 65535, 13, 22, 0, 13, 22, 1, 13, 22, 2, 13, 23, 65521, 13, 23, 65522, 13, 23, 65523, 13, 23, 65524, 13, 23, 65525, 13, 23, 65526, 13, 23, 65527, 13, 23, 65528, 13, 23, 65529, 13, 23, 65530, 13, 23, 65531, 13, 23, 65532, 13, 23, 65533, 13, 23, 65534, 13, 23, 65535, 13, 23, 0, 13, 23, 1, 13, 23, 2, 13, 24, 65521, 13, 24, 65522, 13, 24, 65523, 13, 24, 65524, 13, 24, 65525, 13, 24, 65526, 13, 24, 65527, 13, 24, 65528, 13, 24, 65529, 13, 24, 65530, 13, 24, 65531, 13, 24, 65532, 13, 24, 65533, 13, 24, 65534, 13, 24, 65535, 13, 24, 0, 13, 24, 1, 13, 24, 2, 13, 25, 65521, 13, 25, 65522, 13, 25, 65523, 13, 25, 65524, 13, 25, 65525, 13, 25, 65526, 13, 25, 65527, 13, 25, 65528, 13, 25, 65529, 13, 25, 65530, 13, 25, 65531, 13, 25, 65532, 13, 25, 65533, 13, 25, 65534, 13, 25, 65535, 13, 25, 0, 13, 25, 1, 13, 25, 2, 13, 26, 65521, 13, 26, 65522, 13, 26, 65523, 13, 26, 65524, 13, 26, 65525, 13, 26, 65526, 13, 26, 65527, 13, 26, 65528, 13, 26, 65529, 13, 26, 65530, 13, 26, 65531, 13, 26, 65532, 13, 26, 65533, 13, 26, 65534, 13, 26, 65535, 13, 26, 0, 13, 26, 1, 13, 26, 2, 13, 27, 65521, 13, 27, 65522, 13, 27, 65523, 13, 27, 65524, 13, 27, 65525, 13, 27, 65526, 13, 27, 65527, 13, 27, 65528, 13, 27, 65529, 13, 27, 65530, 13, 27, 65531, 13, 27, 65532, 13, 27, 65533, 13, 27, 65534, 13, 27, 65535, 13, 27, 0, 13, 27, 1, 13, 27, 2, 13, 28, 65521, 13, 28, 65522, 13, 28, 65523, 13, 28, 65524, 13, 28, 65525, 13, 28, 65526, 13, 28, 65527, 13, 28, 65528, 13, 28, 65529, 13, 28, 65530, 13, 28, 65531, 13, 28, 65532, 13, 28, 65533, 13, 28, 65534, 13, 28, 65535, 13, 28, 0, 13, 28, 1, 13, 28, 2, 13, 29, 65521, 13, 29, 65522, 13, 29, 65523, 13, 29, 65524, 13, 29, 65525, 13, 29, 65526, 13, 29, 65527, 13, 29, 65528, 13, 29, 65529, 13, 29, 65530, 13, 29, 65531, 13, 29, 65532, 13, 29, 65533, 13, 29, 65534, 13, 29, 65535, 13, 29, 0, 13, 29, 1, 13, 29, 2, 13, 30, 65521, 13, 30, 65522, 13, 30, 65523, 13, 30, 65524, 13, 30, 65525, 13, 30, 65526, 13, 30, 65527, 13, 30, 65528, 13, 30, 65529, 13, 30, 65530, 13, 30, 65531, 13, 30, 65532, 13, 30, 65533, 13, 30, 65534, 13, 30, 65535, 13, 30, 0, 13, 30, 1, 13, 30, 2, 13, 31, 65521, 13, 31, 65522, 13, 31, 65523, 13, 31, 65524, 13, 31, 65525, 13, 31, 65526, 13, 31, 65527, 13, 31, 65528, 13, 31, 65529, 13, 31, 65530, 13, 31, 65531, 13, 31, 65532, 13, 31, 65533, 13, 31, 65534, 13, 31, 65535, 13, 31, 0, 13, 31, 1, 13, 31, 2, 13, 32, 65521, 13, 32, 65522, 13, 32, 65523, 13, 32, 65524, 13, 32, 65525, 13, 32, 65526, 13, 32, 65527, 13, 32, 65528, 13, 32, 65529, 13, 32, 65530, 13, 32, 65531, 13, 32, 65532, 13, 32, 65533, 13, 32, 65534, 13, 32, 65535, 13, 32, 0, 13, 32, 1, 13, 32, 2, 13, 0, 65517, 13, 65535, 65517, 13, 131067, 65532, 655377, 131066, 65532, 27, 131066, 65533, 27, 131067, 65533, 655377, 131066, 65534, 27, 131067, 65535, 655377, 131066, 0, 27, 131067, 1, 655377, 65539, 65528, 655377, 65553, 65519, 27, 65554, 65519, 27, 65555, 65519, 27, 65553, 65520, 27, 65554, 65525, 27, 65554, 65526, 27, 65554, 65527, 27, 65554, 65528, 27, 65554, 65529, 27, 65555, 65529, 27, 65556, 65529, 27, 65556, 65528, 27, 65555, 65528, 27, 65553, 65527, 27, 131066, 65531, 27, 131066, 65530, 27, 131066, 65535, 27, 11, 65520, 13, 10, 65520, 13, 9, 65520, 13, 9, 65519, 13, 9, 65518, 13, 9, 65517, 13, 10, 65518, 13, 11, 65518, 13, 11, 65519, 13, 12, 65519, 13, 12, 65518, 13, 13, 65518, 13, 14, 65518, 13, 13, 65519, 13, 14, 65519, 13, 8, 65517, 13, 7, 65517, 13, 7, 65516, 13, 6, 65517, 13, 5, 65517, 13, 5, 65516, 13, 4, 65516, 13, 4, 65515, 13, 4, 65514, 13, 4, 65517, 13, 0, 65518, 13, 0, 65516, 13, 0, 65515, 13, 4, 65513, 13, 5, 65513, 13, 6, 65513, 13, 7, 65513, 13, 8, 65513, 13, 8, 65514, 13, 9, 65514, 13, 7, 65514, 13, 6, 65514, 13, 5, 65514, 13, 5, 65515, 13, 6, 65515, 13, 7, 65515, 13, 8, 65515, 13, 9, 65515, 13, 10, 65515, 13, 11, 65515, 13, 11, 65516, 13, 9, 65516, 13, 10, 65516, 13, 11, 65517, 13, 12, 65517, 13, 13, 65517, 13, 13, 65516, 13, 14, 65516, 13, 14, 65517, 13, 15, 65519, 13, 15, 65520, 13, 16, 65519, 13, 16, 65518, 13, 16, 65517, 13, 16, 65516, 13, 16, 65515, 13, 15, 65515, 13, 15, 65514, 13, 14, 65515, 13, 15, 65517, 13, 15, 65516, 13, 14, 65514, 13, 13, 65513, 13, 12, 65513, 13, 12, 65514, 13, 11, 65514, 13, 10, 65513, 13, 9, 65512, 13, 9, 65511, 13, 8, 65511, 13, 7, 65512, 13, 9, 65513, 13, 11, 65513, 13, 13, 65514, 13, 13, 65515, 13, 12, 65515, 13, 12, 65512, 13, 11, 65512, 13, 11, 65511, 13, 10, 65511, 13, 7, 65511, 13, 6, 65511, 13, 5, 65510, 13, 4, 65511, 13, 3, 65511, 13, 3, 65512, 13, 4, 65512, 13, 5, 65512, 13, 6, 65512, 13, 65535, 65518, 13, 65535, 65519, 13, 65534, 65519, 13, 65534, 65518, 13, 65534, 65517, 13, 65531, 65519, 13, 65532, 65519, 13, 65532, 65518, 13, 65533, 65518, 13, 65534, 65516, 13, 65534, 65515, 13, 65535, 65515, 13, 65535, 65514, 13, 65534, 65514, 13, 65532, 65515, 13, 65532, 65516, 13, 65531, 65516, 13, 65531, 65517, 13, 65530, 65517, 13, 65529, 65518, 13, 65528, 65518, 13, 65528, 65519, 13, 65529, 65519, 13, 65530, 65518, 13, 65532, 65517, 13, 65530, 65516, 13, 65530, 65515, 13, 65530, 65514, 13, 65531, 65514, 13, 65533, 65513, 13, 65529, 65514, 13, 65528, 65515, 13, 65528, 65516, 13, 65528, 65517, 13, 65527, 65518, 13, 65527, 65517, 13, 65528, 65514, 13, 65527, 65513, 13, 65526, 65513, 13, 65526, 65514, 13, 65525, 65514, 13, 65525, 65515, 13, 65525, 65516, 13, 65525, 65517, 13, 65525, 65518, 13, 65526, 65519, 13, 65526, 65520, 13, 65526, 65521, 13, 65526, 65522, 13, 65526, 65524, 13, 65526, 65525, 13, 65526, 65518, 13, 65526, 65517, 13, 65526, 65516, 13, 65526, 65515, 13, 65525, 65513, 13, 65525, 65519, 13, 65525, 65520, 13, 65525, 65521, 13, 65525, 65522, 13, 65525, 65523, 13, 65524, 65523, 13, 65524, 65524, 13, 65525, 65524, 13, 65525, 65525, 13, 65525, 65526, 13, 65526, 65526, 13, 65524, 65526, 13, 65524, 65525, 13, 65523, 65524, 27, 65523, 65523, 13, 65523, 65522, 13, 65522, 65521, 13, 65522, 65520, 13, 65522, 65519, 13, 65522, 65518, 13, 65523, 65518, 27, 65523, 65517, 13, 65523, 65516, 13, 65523, 65515, 13, 65524, 65515, 13, 65524, 65514, 13, 65524, 65513, 13, 65523, 65514, 13, 65522, 65514, 13, 65522, 65515, 13, 65522, 65516, 13, 65522, 65517, 13, 65523, 65519, 27, 65523, 65520, 13, 65523, 65521, 13, 65522, 65513, 13, 65522, 65512, 13, 65521, 65512, 13, 65523, 65512, 13, 65523, 65511, 13, 65524, 65511, 13, 65525, 65511, 13, 65526, 65511, 13, 65527, 65511, 13, 65529, 65512, 13, 65532, 65512, 13, 65533, 65512, 13, 65534, 65512, 13, 65535, 65512, 13, 0, 65513, 13, 1, 65513, 13, 1, 65514, 13, 0, 65514, 13, 65535, 65513, 13, 65528, 65512, 13, 65527, 65512, 13, 65527, 65510, 13, 65528, 65510, 13, 65532, 65511, 13, 65533, 65511, 13, 0, 65512, 13, 1, 65512, 13, 2, 65514, 13, 3, 65513, 13, 3, 65514, 13, 65531, 65511, 13, 65530, 65511, 13, 65530, 65512, 13, 65530, 65513, 13, 65531, 65513, 13, 65531, 65512, 13, 65532, 65513, 13, 65533, 65514, 13, 65536, 65514, 27, 65537, 65514, 27, 65538, 65514, 27, 65538, 65515, 27, 65539, 65515, 27, 65537, 65515, 27, 65536, 65513, 27, 131071, 65512, 27, 131071, 65513, 27, 65536, 65512, 27, 65537, 65511, 27, 65537, 65512, 27, 65538, 65512, 27, 65537, 65513, 27, 65538, 65513, 27, 65539, 65513, 27, 65539, 65512, 27, 65539, 65511, 27, 65539, 65510, 27, 65538, 65510, 27, 65537, 65510, 27, 65536, 65510, 27, 131071, 65510, 27, 131070, 65510, 27, 131070, 65511, 27, 131071, 65511, 27, 65536, 65511, 27, 196608, 65512, 27, 196609, 65513, 27, 196610, 65514, 27, 196609, 65512, 27, 196610, 65512, 27, 196610, 65513, 27, 196608, 65511, 27, 196608, 65510, 27, 196608, 65509, 27, 262142, 65509, 27, 262143, 65509, 27, 196609, 65509, 27, 196609, 65510, 27, 196610, 65510, 27, 196610, 65511, 27, 196609, 65511, 27, 196610, 65509, 27, 196610, 65508, 27, 196609, 65508, 27, 196608, 65508, 27, 262143, 65508, 27, 262142, 65507, 27, 262142, 65508, 27, 65540, 65516, 27, 65540, 65517, 27, 65541, 65517, 27, 65539, 65514, 27, 65539, 65527, 27, 65538, 65527, 27, 0, 65519, 13, 4, 65520, 13, 5, 65520, 13, 6, 65520, 13, 7, 65520, 13, 8, 65520, 13, 8, 65519, 13, 7, 65519, 13, 6, 65519, 13, 5, 65519, 13, 4, 65518, 13, 3, 65518, 13, 2, 65518, 13, 2, 65517, 13, 2, 65516, 13, 2, 65515, 13, 3, 65515, 13, 3, 65516, 13, 1, 65517, 13, 1, 65518, 13, 4, 65519, 13, 3, 65519, 13, 2, 65519, 13, 1, 65519, 13, 3, 65520, 13, 65533, 65519, 13, 1, 65525, 13, 2, 65525, 13, 4, 65525, 13, 3, 65525, 13, 5, 65525, 13, 6, 65525, 13, 7, 65525, 13, 7, 65526, 13, 8, 65526, 13, 8, 65525, 13, 0, 65525, 13, 0, 65526, 13, 65535, 65525, 13, 65534, 65525, 13, 65533, 65524, 13, 65533, 65525, 13, 65532, 65525, 13, 65532, 65526, 13, 65531, 65526, 13, 65530, 65526, 13, 65530, 65527, 13, 65531, 65527, 13, 11, 65521, 13, 10, 65521, 13, 9, 65521, 13, 8, 65521, 13, 7, 65521, 13, 65534, 65523, 13, 65533, 65523, 13, 65532, 65523, 13, 65532, 65524, 13, 65531, 65524, 13, 65535, 65524, 13, 0, 65524, 13, 0, 65523, 13, 65535, 65523, 13, 65531, 65523, 13, 65531, 65525, 13, 65530, 65525, 13, 65530, 65524, 13, 65530, 65523, 13, 65531, 65518, 13, 65530, 65519, 13, 65527, 65519, 13, 65526, 65523, 13, 65527, 65509, 13, 65526, 65509, 13, 65525, 65509, 13, 65524, 65509, 13, 65526, 65510, 13, 65525, 65510, 13, 65524, 65510, 13, 65523, 65510, 13, 65523, 65509, 13, 65522, 65509, 13, 65521, 65509, 13, 65521, 65510, 13, 65520, 65510, 13, 65520, 65511, 13, 65521, 65511, 13, 65519, 65512, 13, 65519, 65513, 13, 65519, 65514, 13, 65519, 65515, 13, 65519, 65516, 13, 65520, 65516, 13, 65520, 65515, 13, 65520, 65514, 13, 65520, 65513, 13, 65520, 65512, 13, 65519, 65517, 13, 65520, 65517, 13, 65520, 65518, 13, 65520, 65519, 13, 65520, 65520, 13, 65520, 65521, 13, 65520, 65522, 13, 65520, 65523, 13, 65521, 65523, 13, 65521, 65524, 13, 65522, 65522, 13, 65521, 65521, 13, 65521, 65520, 13, 65521, 65522, 13, 65522, 65524, 13, 65523, 65526, 13, 65522, 65526, 13, 65521, 65526, 13, 65521, 65525, 13, 65520, 65525, 13, 65520, 65524, 13, 65519, 65525, 13, 65519, 65526, 13, 65520, 65526, 13, 65520, 65527, 13, 65522, 65527, 13, 65523, 65527, 13, 65524, 65527, 13, 65525, 65527, 13, 65526, 65527, 13, 65525, 65528, 13, 65524, 65528, 13, 65523, 65528, 13, 65522, 65528, 13, 65521, 65528, 13, 65520, 65528, 13, 65519, 65528, 13, 65519, 65527, 13, 65521, 65527, 13, 65526, 65528, 13, 65519, 65524, 13, 65519, 65523, 13, 65519, 65522, 13, 65519, 65521, 13, 65519, 65520, 13, 65519, 65519, 13, 65519, 65518, 13, 65519, 65511, 13, 65519, 65510, 13, 65519, 65509, 13, 65520, 65509, 13, 65532, 65510, 13, 65518, 65509, 13, 65517, 65510, 13, 65517, 65511, 13, 65517, 65512, 13, 65517, 65513, 13, 65517, 65514, 13, 65516, 65515, 13, 65516, 65516, 13, 65516, 65517, 13, 65516, 65518, 13, 65516, 65519, 13, 65516, 65520, 13, 65516, 65521, 13, 65516, 65522, 13, 65517, 65523, 13, 65517, 65524, 13, 65518, 65525, 13, 65518, 65526, 13, 65517, 65526, 13, 65517, 65527, 13, 65517, 65515, 13, 65517, 65516, 13, 65517, 65517, 13, 65517, 65518, 13, 65517, 65519, 13, 65517, 65520, 13, 65517, 65521, 13, 65517, 65522, 27, 65518, 65523, 13, 65518, 65524, 13, 65514, 65511, 13, 65514, 65512, 13, 65515, 65513, 13, 65515, 65514, 13, 65515, 65515, 13, 65517, 65525, 13, 65518, 65508, 13, 65518, 65511, 13, 65518, 65514, 13, 65518, 65516, 13, 65518, 65517, 13, 65518, 65519, 13, 65518, 65520, 13, 65518, 65521, 13, 65518, 65522, 13, 65516, 65525, 13, 65516, 65524, 13, 65516, 65523, 13, 65515, 65523, 27, 65515, 65522, 13, 65514, 65520, 13, 65514, 65519, 13, 65514, 65518, 13, 65514, 65517, 13, 65513, 65517, 13, 65513, 65518, 13, 65513, 65519, 13, 65513, 65520, 13, 65513, 65521, 13, 65514, 65507, 13, 65514, 65508, 13, 65514, 65509, 13, 65514, 65510, 13, 65514, 65513, 13, 65516, 65512, 13, 65515, 65507, 13, 65515, 65508, 13, 65515, 65509, 13, 65515, 65510, 13, 65514, 65514, 27, 65514, 65515, 13, 65515, 65519, 13, 65515, 65520, 13, 65515, 65521, 13, 65510, 65507, 13, 65512, 65509, 13, 65512, 65515, 13, 65513, 65514, 13, 65515, 65512, 13, 65515, 65516, 13, 65515, 65517, 13, 65515, 65518, 13, 65513, 65515, 13, 65513, 65516, 13, 65513, 65522, 13, 65513, 65523, 13, 65513, 65524, 13, 65513, 65525, 13, 65513, 65526, 13, 65513, 65527, 13, 65513, 65528, 13, 65514, 65516, 13, 65514, 65521, 13, 65514, 65522, 13, 65514, 65523, 27, 65514, 65524, 13, 65514, 65525, 13, 65514, 65526, 13, 65514, 65527, 13, 65514, 65528, 13, 65515, 65524, 13, 65515, 65525, 13, 65515, 65526, 13, 65515, 65527, 13, 65515, 65528, 13, 65516, 65514, 13, 65516, 65526, 13, 65516, 65527, 13, 65516, 65528, 13, 65517, 65528, 13, 65518, 65515, 13, 65518, 65518, 13, 65518, 65527, 13, 65518, 65528, 13, 65509, 65506, 13, 65509, 65507, 13, 65509, 65508, 13, 65509, 65509, 13, 65509, 65510, 13, 65509, 65511, 13, 65509, 65512, 13, 65509, 65513, 13, 65509, 65514, 13, 65509, 65515, 13, 65509, 65516, 13, 65509, 65517, 13, 65509, 65518, 13, 65509, 65519, 13, 65509, 65520, 13, 65509, 65521, 13, 65509, 65522, 13, 65509, 65523, 13, 65509, 65524, 13, 65509, 65525, 13, 65509, 65526, 13, 65509, 65527, 13, 65509, 65528, 13, 65510, 65506, 13, 65510, 65508, 13, 65510, 65509, 13, 65510, 65510, 13, 65510, 65511, 13, 65510, 65512, 13, 65510, 65513, 13, 65510, 65514, 13, 65510, 65515, 13, 65510, 65516, 13, 65510, 65517, 13, 65510, 65518, 13, 65510, 65519, 13, 65510, 65520, 13, 65510, 65521, 13, 65510, 65522, 13, 65510, 65523, 13, 65510, 65524, 13, 65510, 65525, 13, 65510, 65526, 13, 65510, 65527, 13, 65510, 65528, 13, 65511, 65506, 13, 65511, 65507, 13, 65511, 65508, 13, 65511, 65509, 13, 65511, 65510, 13, 65511, 65511, 13, 65511, 65512, 13, 65511, 65514, 13, 65511, 65515, 13, 65511, 65516, 13, 65511, 65517, 13, 65511, 65518, 13, 65511, 65519, 13, 65511, 65520, 13, 65511, 65521, 13, 65511, 65522, 13, 65511, 65523, 13, 65511, 65524, 13, 65511, 65525, 13, 65511, 65526, 13, 65511, 65527, 13, 65511, 65528, 13, 65512, 65506, 13, 65512, 65507, 13, 65512, 65508, 13, 65512, 65510, 13, 65512, 65511, 13, 65512, 65512, 13, 65512, 65513, 13, 65512, 65514, 13, 65512, 65516, 13, 65512, 65517, 13, 65512, 65518, 13, 65512, 65519, 13, 65512, 65520, 13, 65512, 65521, 13, 65512, 65522, 13, 65512, 65523, 13, 65512, 65524, 13, 65512, 65525, 13, 65512, 65526, 13, 65512, 65527, 13, 65512, 65528, 13, 65513, 65506, 13, 65513, 65507, 13, 65513, 65508, 13, 65513, 65509, 13, 65513, 65510, 13, 65513, 65511, 13, 65513, 65512, 13, 65513, 65513, 13, 65514, 65506, 13, 65515, 65506, 13, 65515, 65511, 13, 65516, 65506, 13, 65516, 65507, 13, 65516, 65508, 13, 65516, 65509, 13, 65516, 65510, 13, 65516, 65511, 13, 65516, 65513, 13, 65517, 65506, 13, 65517, 65507, 13, 65517, 65508, 13, 65517, 65509, 13, 65518, 65506, 13, 65518, 65507, 13, 65518, 65510, 13, 65518, 65512, 13, 65518, 65513, 13, 65519, 65506, 13, 65519, 65507, 13, 65519, 65508, 13, 65520, 65506, 13, 65520, 65507, 13, 65520, 65508, 13, 65521, 65506, 13, 65521, 65507, 13, 65521, 65508, 13, 65521, 65513, 13, 65521, 65514, 13, 65521, 65515, 13, 65521, 65516, 13, 65521, 65517, 13, 65521, 65518, 13, 65521, 65519, 13, 65522, 65506, 13, 65522, 65507, 13, 65522, 65508, 13, 65522, 65510, 13, 65522, 65511, 13, 65522, 65523, 13, 65522, 65525, 13, 65523, 65506, 13, 65523, 65507, 13, 65523, 65508, 13, 65523, 65513, 13, 65523, 65525, 13, 65524, 65506, 13, 65524, 65507, 13, 65524, 65508, 13, 65524, 65512, 13, 65524, 65516, 13, 65524, 65517, 13, 65524, 65518, 13, 65524, 65519, 13, 65524, 65520, 13, 65524, 65521, 13, 65524, 65522, 13, 65525, 65506, 13, 65525, 65507, 13, 65525, 65508, 13, 65525, 65512, 13, 65526, 65506, 13, 65526, 65507, 27, 65526, 65508, 13, 65526, 65512, 13, 131060, 65517, 27, 131059, 65517, 27, 131058, 65517, 27, 131057, 65517, 27, 131056, 65517, 27, 131052, 65513, 27, 131051, 65513, 27, 131050, 65513, 27, 131049, 65513, 27, 131049, 65514, 27, 131049, 65515, 27, 131049, 65516, 27, 131049, 65517, 27, 131052, 65521, 27, 131052, 65522, 27, 131052, 65523, 27, 131056, 65527, 27, 131056, 65528, 27, 65519, 65529, 27, 65520, 65529, 27, 65521, 65529, 27, 131060, 65525, 27, 131047, 65527, 27, 131047, 65528, 27, 131046, 65528, 27, 65512, 65529, 27, 65513, 65529, 27, 65514, 65529, 27, 65515, 65529, 27, 65516, 65529, 27, 65517, 65529, 27, 65518, 65529, 27, 131066, 1, 27, 131066, 2, 27, 131069, 65509, 27, 131068, 65509, 27, 131067, 65509, 27, 131066, 65509, 27, 131066, 65508, 27, 131066, 65507, 27, 131066, 65506, 27, 131065, 65506, 27, 131067, 65506, 27, 131067, 65507, 27, 131068, 65507, 27, 131069, 65507, 27, 131067, 65508, 27, 131068, 65506, 27, 131068, 65505, 27, 131068, 65504, 27, 131069, 65504, 27, 131069, 65505, 27, 131070, 65505, 27, 131067, 65505, 27, 131067, 65504, 27, 131066, 65503, 27, 131065, 65503, 27, 131065, 65504, 27, 131065, 65505, 27, 131064, 65505, 27, 131064, 65506, 27, 131064, 65507, 27, 131064, 65508, 27, 131065, 65508, 27, 131063, 65508, 27, 131063, 65507, 27, 131063, 65506, 27, 131063, 65505, 27, 131063, 65504, 27, 131064, 65504, 27, 131064, 65503, 27, 131064, 65502, 27, 131063, 65503, 27, 262141, 65506, 27, 262140, 65506, 27, 262139, 65506, 27, 262139, 65505, 27, 262138, 65505, 27, 262137, 65505, 27, 262137, 65504, 27, 262137, 65503, 27, 262138, 65503, 27, 262139, 65503, 27, 262139, 65504, 27, 262140, 65504, 27, 262141, 65504, 27, 262142, 65504, 27, 262142, 65505, 27, 262143, 65505, 27, 262143, 65506, 27, 262142, 65506, 27, 262141, 65505, 27, 262140, 65505, 27, 65534, 65513, 27, 131062, 65504, 27, 131061, 65504, 27, 131061, 65505, 27, 131060, 65505, 27, 131060, 65504, 27, 131059, 65504, 27, 131058, 65504, 27, 131057, 65504, 27, 131056, 65504, 27, 131055, 65504, 27, 131054, 65504, 27, 131053, 65503, 27, 131052, 65503, 27, 131051, 65503, 27, 131051, 65504, 27, 131050, 65504, 27, 131052, 65504, 27, 131053, 65504, 27, 131049, 65504, 27, 131048, 65504, 27, 131047, 65504, 27, 131047, 65503, 27, 131046, 65504, 27, 131045, 65504, 27, 131045, 65505, 27, 131044, 65505, 27, 131043, 65505, 27, 131044, 65506, 27, 131045, 65506, 27, 131046, 65505, 27, 131047, 65505, 27, 131048, 65505, 27, 131046, 65506, 27, 131047, 65506, 27, 131042, 65505, 27, 131042, 65506, 27, 131043, 65506, 27, 131044, 65503, 27, 131043, 65503, 27, 131043, 65504, 27, 131044, 65504, 27, 131045, 65503, 27, 131045, 65502, 27, 131046, 65502, 27, 131046, 65503, 27, 131048, 65503, 27, 131049, 65503, 27, 131050, 65503, 27, 131054, 65503, 27, 131054, 65502, 27, 131055, 65502, 27, 131056, 65502, 27, 131057, 65502, 27, 131058, 65502, 27, 131059, 65502, 27, 131060, 65502, 27, 131060, 65503, 27, 131061, 65503, 27, 131062, 65503, 27, 131063, 65501, 27, 131062, 65501, 27, 131061, 65502, 27, 131053, 65502, 27, 131052, 65502, 27, 131051, 65501, 27, 131050, 65501, 27, 131049, 65501, 27, 131048, 65500, 27, 131047, 65500, 27, 131046, 65500, 27, 131046, 65501, 27, 131047, 65501, 27, 131048, 65501, 27, 131052, 65501, 27, 131055, 65503, 27, 131058, 65503, 27, 131059, 65503, 27, 131062, 65502, 27, 131063, 65502, 27, 131064, 65501, 27, 131064, 65500, 27, 131063, 65500, 27, 131062, 65500, 27, 131061, 65501, 27, 131060, 65501, 27, 131059, 65501, 27, 131058, 65501, 27, 131056, 65501, 27, 131055, 65501, 27, 131054, 65501, 27, 131053, 65501, 27, 131053, 65500, 27, 131052, 65500, 27, 131051, 65500, 27, 131050, 65500, 27, 131049, 65500, 27, 131045, 65501, 27, 131044, 65501, 27, 262116, 65502, 27, 262116, 65503, 27, 262116, 65504, 27, 262117, 65504, 27, 262118, 65504, 27, 262118, 65503, 27, 262119, 65502, 27, 262120, 65502, 27, 262120, 65503, 27, 262121, 65503, 27, 262122, 65503, 27, 262123, 65503, 27, 262124, 65503, 27, 262124, 65502, 27, 262125, 65503, 27, 262125, 65502, 27, 262126, 65502, 27, 262127, 65502, 27, 262128, 65502, 27, 262128, 65501, 27, 262129, 65502, 27, 262129, 65501, 27, 262130, 65502, 27, 262130, 65503, 27, 262131, 65503, 27, 262132, 65503, 27, 262132, 65502, 27, 262133, 65502, 27, 262134, 65502, 27, 262135, 65502, 27, 262136, 65502, 27, 262135, 65503, 27, 262136, 65503, 27, 262128, 65500, 27, 262127, 65501, 27, 262126, 65501, 27, 262125, 65501, 27, 262124, 65501, 27, 262123, 65501, 27, 262122, 65501, 27, 262121, 65502, 27, 262118, 65502, 27, 262117, 65501, 27, 262116, 65501, 27, 262117, 65502, 27, 65508, 65507, 27, 65508, 65508, 27, 65508, 65509, 27, 65508, 65510, 27, 131058, 65510, 27, 131057, 65510, 27, 65528, 65507, 13, 65528, 65508, 13, 65528, 65509, 13, 65529, 65510, 13, 65529, 65509, 13, 65529, 65508, 13, 65528, 65511, 13, 65529, 65511, 13, 65528, 65513, 13, 65508, 65524, 13, 65508, 65523, 13, 65507, 65524, 13, 65506, 65524, 13, 65505, 65524, 13, 65504, 65524, 13, 65508, 65525, 27, 65503, 65524, 13, 65507, 65507, 27, 65506, 65507, 27, 65505, 65507, 27, 65504, 65507, 13, 65501, 65504, 27, 65500, 65504, 27, 65499, 65504, 27, 65499, 65503, 27, 65498, 65503, 27, 65497, 65503, 27, 65501, 65526, 27, 65500, 65526, 27, 65499, 65526, 27, 65499, 65527, 27, 65498, 65527, 27, 65497, 65527, 27, 65496, 65527, 27, 65496, 65528, 27, 65495, 65528, 27, 65502, 65507, 27, 65503, 65507, 13, 65502, 65506, 27, 65502, 65505, 27, 65502, 65504, 27, 65499, 65502, 27, 65500, 65502, 27, 65500, 65503, 27, 65505, 65505, 27, 65505, 65506, 27, 65504, 65506, 27, 65503, 65506, 27, 65504, 65505, 27, 65504, 65504, 27, 65504, 65503, 27, 65503, 65504, 27, 65503, 65505, 27, 65502, 65503, 27, 65502, 65502, 27, 65503, 65502, 27, 65504, 65502, 27, 65505, 65502, 27, 65506, 65502, 27, 65506, 65503, 27, 65506, 65504, 27, 65505, 65504, 27, 65503, 65501, 27, 65502, 65501, 27, 65501, 65501, 27, 65500, 65501, 27, 65499, 65501, 27, 65498, 65501, 27, 65497, 65501, 27, 65496, 65501, 27, 131036, 65527, 27, 131035, 65528, 27, 131034, 65528, 27, 131033, 65528, 27, 131032, 65528, 27, 65508, 65511, 13, 65508, 65512, 13, 65508, 65513, 13, 65508, 65514, 13, 65507, 65511, 13, 65507, 65510, 13, 65507, 65509, 13, 65506, 65509, 13, 65506, 65508, 13, 65505, 65508, 13, 65504, 65508, 13, 65503, 65508, 13, 65505, 65509, 13, 65508, 65521, 13, 65508, 65522, 13, 65507, 65522, 13, 65507, 65523, 13, 65506, 65523, 13, 65505, 65523, 13, 65506, 65522, 13, 65507, 65521, 13, 65506, 65521, 13, 65522, 65529, 27, 65523, 65529, 27, 65524, 65529, 27, 65525, 65529, 27, 65526, 65529, 27, 196579, 65501, 27, 196579, 65502, 27, 196578, 65502, 27, 196578, 65503, 27, 196577, 65503, 27, 196576, 65503, 27, 196575, 65503, 27, 196574, 65503, 27, 196574, 65502, 27, 196573, 65501, 27, 196572, 65501, 27, 196571, 65501, 27, 196570, 65501, 27, 196569, 65501, 27, 196568, 65501, 27, 196572, 65502, 27, 196575, 65501, 27, 196576, 65501, 27, 196577, 65501, 27, 196577, 65500, 27, 196576, 65500, 27, 196575, 65502, 27, 196576, 65502, 27, 196573, 65502, 27, 196579, 65500, 27, 196578, 65500, 27, 196575, 65500, 27, 196574, 65500, 27, 196574, 65499, 27, 196573, 65499, 27, 196573, 65500, 27, 196572, 65500, 27, 196571, 65500, 27, 196570, 65500, 27, 196569, 65500, 27, 196568, 65500, 27, 196568, 65499, 27, 196569, 65499, 27, 196577, 65499, 27, 196576, 65499, 27, 196575, 65499, 27, 196572, 65499, 27, 196571, 65499, 27, 196570, 65499, 27, 196578, 65499, 27, 196579, 65499, 27, 196579, 65498, 27, 196580, 65498, 27, 196580, 65499, 27, 196581, 65499, 27, 196582, 65499, 27, 196583, 65499, 27, 196584, 65499, 27, 65502, 65526, 27, 65503, 65526, 27, 65504, 65526, 27, 65505, 65526, 27, 65508, 65526, 27, 65506, 65526, 27, 65508, 65527, 27, 65508, 65528, 27, 65507, 65528, 27, 65506, 65528, 27, 65505, 65528, 27, 65504, 65528, 27, 65503, 65528, 27, 65502, 65528, 27, 65501, 65528, 27, 65501, 65527, 27, 65502, 65527, 27, 65503, 65527, 27, 65504, 65527, 27, 65505, 65527, 27, 65506, 65527, 27, 131037, 65528, 27, 131038, 65528, 27, 131039, 65528, 27, 131040, 65528, 27, 131041, 65528, 27, 131042, 65528, 27, 131043, 65528, 27, 131044, 65528, 27, 131045, 65528, 27, 131045, 65527, 27, 131046, 65527, 27, 65501, 65525, 27, 65501, 65524, 27, 6, 65506, 13, 7, 65506, 13, 8, 65506, 13, 9, 65506, 13, 10, 65506, 13, 11, 65508, 13, 15, 65513, 13, 15, 65512, 13, 15, 65511, 13, 14, 65511, 13, 6, 65502, 13, 6, 65503, 13, 6, 65504, 13, 6, 65505, 13, 6, 65507, 13, 6, 65508, 13, 6, 65509, 13, 6, 65510, 13, 6, 65516, 13, 6, 65518, 13, 7, 65502, 13, 7, 65503, 13, 7, 65504, 13, 7, 65505, 13, 7, 65507, 13, 7, 65508, 13, 7, 65509, 13, 7, 65510, 13, 7, 65518, 13, 8, 65502, 13, 8, 65503, 13, 8, 65504, 13, 8, 65505, 13, 8, 65507, 13, 8, 65508, 13, 8, 65509, 13, 8, 65510, 13, 8, 65512, 13, 8, 65516, 13, 8, 65518, 13, 9, 65502, 13, 9, 65503, 13, 9, 65504, 13, 9, 65505, 13, 9, 65507, 13, 9, 65508, 13, 9, 65509, 13, 9, 65510, 13, 10, 65502, 13, 10, 65503, 13, 10, 65504, 13, 10, 65505, 13, 10, 65507, 13, 10, 65508, 13, 10, 65509, 13, 10, 65510, 13, 10, 65512, 13, 10, 65514, 13, 10, 65517, 13, 10, 65519, 13, 11, 65502, 13, 11, 65503, 13, 11, 65504, 13, 11, 65505, 13, 11, 65506, 13, 11, 65507, 13, 11, 65509, 13, 11, 65510, 13, 12, 65502, 13, 12, 65503, 13, 12, 65504, 13, 12, 65505, 13, 12, 65506, 13, 12, 65507, 13, 12, 65508, 13, 12, 65509, 13, 12, 65510, 13, 12, 65511, 13, 12, 65516, 13, 13, 65502, 13, 13, 65503, 13, 13, 65504, 13, 13, 65505, 13, 13, 65506, 13, 13, 65507, 13, 13, 65508, 13, 13, 65509, 13, 13, 65510, 13, 13, 65511, 13, 13, 65512, 13, 14, 65502, 13, 14, 65503, 13, 14, 65504, 13, 14, 65505, 13, 14, 65506, 13, 14, 65507, 13, 14, 65508, 13, 14, 65509, 13, 14, 65510, 13, 14, 65512, 13, 14, 65513, 13, 15, 65502, 13, 15, 65503, 13, 15, 65504, 13, 15, 65505, 13, 15, 65506, 13, 15, 65507, 13, 15, 65508, 13, 15, 65509, 13, 15, 65510, 13, 15, 65518, 13, 16, 65502, 13, 16, 65503, 13, 16, 65504, 13, 16, 65505, 13, 16, 65506, 13, 16, 65507, 13, 16, 65508, 13, 16, 65509, 13, 16, 65510, 13, 16, 65511, 13, 16, 65512, 13, 16, 65513, 13, 16, 65514, 13, 17, 65502, 13, 17, 65503, 13, 17, 65504, 13, 17, 65505, 13, 17, 65506, 13, 17, 65507, 13, 17, 65508, 13, 17, 65509, 13, 17, 65510, 13, 17, 65511, 13, 17, 65512, 13, 17, 65513, 13, 17, 65514, 13, 17, 65515, 13, 17, 65516, 13, 17, 65517, 13, 17, 65518, 13, 17, 65519, 13, 18, 65502, 13, 18, 65503, 13, 18, 65504, 13, 18, 65505, 13, 18, 65506, 13, 18, 65507, 13, 18, 65508, 13, 18, 65509, 13, 18, 65510, 13, 18, 65511, 13, 18, 65512, 13, 18, 65513, 13, 18, 65514, 13, 18, 65515, 13, 18, 65516, 13, 18, 65517, 13, 18, 65518, 13, 18, 65519, 13, 19, 65502, 13, 19, 65503, 13, 19, 65504, 13, 19, 65505, 13, 19, 65506, 13, 19, 65507, 13, 19, 65508, 13, 19, 65509, 13, 19, 65510, 13, 19, 65511, 13, 19, 65512, 13, 19, 65513, 13, 19, 65514, 13, 19, 65515, 13, 19, 65516, 13, 19, 65517, 13, 19, 65518, 13, 19, 65519, 13, 20, 65502, 13, 20, 65503, 13, 20, 65504, 13, 20, 65505, 13, 20, 65506, 13, 20, 65507, 13, 20, 65508, 13, 20, 65509, 13, 20, 65510, 13, 20, 65511, 13, 20, 65512, 13, 20, 65513, 13, 20, 65514, 13, 20, 65515, 13, 20, 65516, 13, 20, 65517, 13, 20, 65518, 13, 20, 65519, 13, 21, 65502, 13, 21, 65503, 13, 21, 65504, 13, 21, 65505, 13, 21, 65506, 13, 21, 65507, 13, 21, 65508, 13, 21, 65509, 13, 21, 65510, 13, 21, 65511, 13, 21, 65512, 13, 21, 65513, 13, 21, 65514, 13, 21, 65515, 13, 21, 65516, 13, 21, 65517, 13, 21, 65518, 13, 21, 65519, 13, 22, 65502, 13, 22, 65503, 13, 22, 65504, 13, 22, 65505, 13, 22, 65506, 13, 22, 65507, 13, 22, 65508, 13, 22, 65509, 13, 22, 65510, 13, 22, 65511, 13, 22, 65512, 13, 22, 65513, 13, 22, 65514, 13, 22, 65515, 13, 22, 65516, 13, 22, 65517, 13, 22, 65518, 13, 22, 65519, 13, 23, 65502, 13, 23, 65503, 13, 23, 65504, 13, 23, 65505, 13, 23, 65506, 13, 23, 65507, 13, 23, 65508, 13, 23, 65509, 13, 23, 65510, 13, 23, 65511, 13, 23, 65512, 13, 23, 65513, 13, 23, 65514, 13, 23, 65515, 13, 23, 65516, 13, 23, 65517, 13, 23, 65518, 13, 23, 65519, 13, 24, 65502, 13, 24, 65503, 13, 24, 65504, 13, 24, 65505, 13, 24, 65506, 13, 24, 65507, 13, 24, 65508, 13, 24, 65509, 13, 24, 65510, 13, 24, 65511, 13, 24, 65512, 13, 24, 65513, 13, 24, 65514, 13, 24, 65515, 13, 24, 65516, 13, 24, 65517, 13, 24, 65518, 13, 24, 65519, 13, 25, 65502, 13, 25, 65503, 13, 25, 65504, 13, 25, 65505, 13, 25, 65506, 13, 25, 65507, 13, 25, 65508, 13, 25, 65509, 13, 25, 65510, 13, 25, 65511, 13, 25, 65512, 13, 25, 65513, 13, 25, 65514, 13, 25, 65515, 13, 25, 65516, 13, 25, 65517, 13, 25, 65518, 13, 25, 65519, 13, 26, 65502, 13, 26, 65503, 13, 26, 65504, 13, 26, 65505, 13, 26, 65506, 13, 26, 65507, 13, 26, 65508, 13, 26, 65509, 13, 26, 65510, 13, 26, 65511, 13, 26, 65512, 13, 26, 65513, 13, 26, 65514, 13, 26, 65515, 13, 26, 65516, 13, 26, 65517, 13, 26, 65518, 13, 26, 65519, 13, 27, 65502, 13, 27, 65503, 13, 27, 65504, 13, 27, 65505, 13, 27, 65506, 13, 27, 65507, 13, 27, 65508, 13, 27, 65509, 13, 27, 65510, 13, 27, 65511, 13, 27, 65512, 13, 27, 65513, 13, 27, 65514, 13, 27, 65515, 13, 27, 65516, 13, 27, 65517, 13, 27, 65518, 13, 27, 65519, 13, 28, 65502, 13, 28, 65503, 13, 28, 65504, 13, 28, 65505, 13, 28, 65506, 13, 28, 65507, 13, 28, 65508, 13, 28, 65509, 13, 28, 65510, 13, 28, 65511, 13, 28, 65512, 13, 28, 65513, 13, 28, 65514, 13, 28, 65515, 13, 28, 65516, 13, 28, 65517, 13, 28, 65518, 13, 28, 65519, 13, 29, 65502, 13, 29, 65503, 13, 29, 65504, 13, 29, 65505, 13, 29, 65506, 13, 29, 65507, 13, 29, 65508, 13, 29, 65509, 13, 29, 65510, 13, 29, 65511, 13, 29, 65512, 13, 29, 65513, 13, 29, 65514, 13, 29, 65515, 13, 29, 65516, 13, 29, 65517, 13, 29, 65518, 13, 29, 65519, 13, 30, 65502, 13, 30, 65503, 13, 30, 65504, 13, 30, 65505, 13, 30, 65506, 13, 30, 65507, 13, 30, 65508, 13, 30, 65509, 13, 30, 65510, 13, 30, 65511, 13, 30, 65512, 13, 30, 65513, 13, 30, 65514, 13, 30, 65515, 13, 30, 65516, 13, 30, 65517, 13, 30, 65518, 13, 30, 65519, 13, 31, 65502, 13, 31, 65503, 13, 31, 65504, 13, 31, 65505, 13, 31, 65506, 13, 31, 65507, 13, 31, 65508, 13, 31, 65509, 13, 31, 65510, 13, 31, 65511, 13, 31, 65512, 13, 31, 65513, 13, 31, 65514, 13, 31, 65515, 13, 31, 65516, 13, 31, 65517, 13, 31, 65518, 13, 31, 65519, 13, 32, 65502, 13, 32, 65503, 13, 32, 65504, 13, 32, 65505, 13, 32, 65506, 13, 32, 65507, 13, 32, 65508, 13, 32, 65509, 13, 32, 65510, 13, 32, 65511, 13, 32, 65512, 13, 32, 65513, 13, 32, 65514, 13, 32, 65515, 13, 32, 65516, 13, 32, 65517, 13, 32, 65518, 13, 32, 65519, 13, 33, 65502, 13, 33, 65503, 13, 33, 65504, 13, 33, 65505, 13, 33, 65506, 13, 33, 65507, 13, 33, 65508, 13, 33, 65509, 13, 33, 65510, 13, 33, 65511, 13, 33, 65512, 13, 33, 65513, 13, 33, 65514, 13, 33, 65515, 13, 33, 65516, 13, 33, 65517, 13, 33, 65518, 13, 33, 65519, 13, 4, 65501, 13, 4, 65502, 13, 4, 65503, 13, 4, 65504, 13, 5, 65505, 13, 5, 65506, 13, 5, 65507, 13, 5, 65508, 13, 5, 65509, 13, 5, 65511, 13, 4, 65507, 13, 4, 65506, 13, 4, 65505, 13, 4, 65508, 13, 4, 65509, 13, 4, 65510, 13, 3, 65499, 13, 3, 65500, 13, 3, 65501, 13, 3, 65502, 13, 3, 65503, 13, 3, 65504, 13, 3, 65505, 13, 3, 65506, 13, 3, 65507, 13, 3, 65508, 13, 3, 65509, 13, 3, 65510, 13, 3, 65517, 13, 4, 65499, 13, 4, 65500, 13, 5, 65499, 13, 5, 65500, 13, 5, 65501, 13, 5, 65502, 13, 5, 65503, 13, 5, 65504, 13, 5, 65518, 13, 6, 65499, 13, 6, 65500, 13, 6, 65501, 13, 7, 65499, 13, 7, 65500, 13, 7, 65501, 13, 8, 65499, 13, 8, 65500, 13, 8, 65501, 13, 9, 65499, 13, 9, 65500, 13, 9, 65501, 13, 10, 65499, 13, 10, 65500, 13, 10, 65501, 13, 11, 65499, 13, 11, 65500, 13, 11, 65501, 13, 12, 65499, 13, 12, 65500, 13, 12, 65501, 13, 12, 65520, 13, 13, 65499, 13, 13, 65500, 13, 13, 65501, 13, 13, 65520, 13, 14, 65499, 13, 14, 65500, 13, 14, 65501, 13, 14, 65520, 13, 15, 65499, 13, 15, 65500, 13, 15, 65501, 13, 16, 65499, 13, 16, 65500, 13, 16, 65501, 13, 16, 65520, 13, 17, 65499, 13, 17, 65500, 13, 17, 65501, 13, 17, 65520, 13, 18, 65499, 13, 18, 65500, 13, 18, 65501, 13, 18, 65520, 13, 19, 65499, 13, 19, 65500, 13, 19, 65501, 13, 19, 65520, 13, 20, 65499, 13, 20, 65500, 13, 20, 65501, 13, 20, 65520, 13, 21, 65499, 13, 21, 65500, 13, 21, 65501, 13, 21, 65520, 13, 22, 65499, 13, 22, 65500, 13, 22, 65501, 13, 22, 65520, 13, 23, 65499, 13, 23, 65500, 13, 23, 65501, 13, 23, 65520, 13, 24, 65499, 13, 24, 65500, 13, 24, 65501, 13, 24, 65520, 13, 25, 65499, 13, 25, 65500, 13, 25, 65501, 13, 25, 65520, 13, 26, 65499, 13, 26, 65500, 13, 26, 65501, 13, 26, 65520, 13, 27, 65499, 13, 27, 65500, 13, 27, 65501, 13, 27, 65520, 13, 28, 65499, 13, 28, 65500, 13, 28, 65501, 13, 28, 65520, 13, 29, 65499, 13, 29, 65500, 13, 29, 65501, 13, 29, 65520, 13, 30, 65499, 13, 30, 65500, 13, 30, 65501, 13, 30, 65520, 13, 31, 65499, 13, 31, 65500, 13, 31, 65501, 13, 31, 65520, 13, 32, 65499, 13, 32, 65500, 13, 32, 65501, 13, 32, 65520, 13, 33, 65499, 13, 33, 65500, 13, 33, 65501, 13, 33, 65520, 13, 65541, 65516, 27, 65541, 65515, 27, 65540, 65515, 27, 65540, 65514, 27, 65540, 65513, 27, 65540, 65512, 27, 65541, 65511, 27, 65541, 65510, 27, 65542, 65510, 27, 65542, 65511, 27, 65541, 65512, 27, 65541, 65513, 27, 65541, 65514, 27, 65542, 65515, 27, 65542, 65514, 27, 65542, 65513, 27, 65542, 65512, 27, 65543, 65511, 27, 65543, 65510, 27, 65543, 65509, 27, 65542, 65509, 27, 65541, 65509, 27, 65540, 65509, 27, 65540, 65508, 27, 65539, 65508, 27, 65539, 65507, 27, 65540, 65507, 27, 65541, 65507, 27, 65542, 65507, 27, 65542, 65508, 27, 65543, 65508, 27, 65543, 65512, 27, 65543, 65507, 27, 65543, 65506, 27, 65542, 65506, 27, 65541, 65506, 27, 65540, 65506, 27, 65539, 65506, 27, 196611, 65514, 27, 196612, 65514, 27, 196613, 65515, 27, 196613, 65514, 27, 196613, 65513, 27, 196613, 65512, 27, 196612, 65512, 27, 196612, 65513, 27, 196611, 65512, 27, 196611, 65513, 27, 196614, 65514, 27, 196614, 65515, 27, 65542, 65517, 27, 65542, 65516, 27, 65540, 65518, 27, 65540, 65519, 27, 65540, 65520, 27, 65541, 65519, 27, 65541, 65520, 27, 65542, 65520, 27, 65542, 65519, 27, 65542, 65518, 27, 4, 65521, 27, 5, 65521, 27, 6, 65521, 27, 196614, 65516, 13, 196614, 65517, 13, 196614, 65518, 13, 196614, 65519, 13, 196613, 65516, 13, 196613, 65517, 13, 65538, 65516, 13, 65539, 65516, 13, 131053, 65505, 13, 131053, 65506, 13, 65503, 65509, 13, 65504, 65509, 13, 65506, 65510, 13, 65505, 65510, 13, 65506, 65511, 13, 65505, 65511, 13, 65504, 65511, 13, 65504, 65510, 13, 65506, 65512, 13, 65507, 65512, 13) } -metadata/_editor_floor_ = Vector3(0, 1, 0) +metadata/_editor_floor_ = Vector3(0, 0, 0) [node name="Objects" type="Node3D" parent="."] @@ -76,6 +86,21 @@ item = ExtResource("8_45auf") transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.309352, -5.00679e-06, -1.02607) item = ExtResource("9_xhfx0") +[node name="Item10" parent="Objects" instance=ExtResource("2_ccr0r")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.24405, -4.76837e-06, -10.5962) +item = ExtResource("10_wch4q") + +[node name="Structures" type="Node3D" parent="."] + +[node name="BridgeNorth" type="Node3D" parent="Structures"] +transform = Transform3D(0.999978, 0, 0.00670201, 0, 1, 0, -0.00670201, 0, 0.999978, -2.3647, 0.325371, -7.42179) + +[node name="poles2" parent="Structures/BridgeNorth" instance=ExtResource("18_yqn1p")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.400034, 0) + +[node name="poles3" parent="Structures/BridgeNorth" instance=ExtResource("18_yqn1p")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.398493, 0.670723) + [node name="Decorations" type="Node3D" parent="."] [node name="TreePine" parent="Decorations" instance=ExtResource("11_5olon")] @@ -130,3 +155,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.85673, -4.76837e-06, -3.38 [node name="Tree" parent="." instance=ExtResource("16_8m1m6")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.99916, -4.76837e-06, -3.04329) + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.239327, 0) +mesh = SubResource("PlaneMesh_6aebw") diff --git a/world/stylized_water_material.gdshader b/world/stylized_water_material.gdshader new file mode 100644 index 0000000..f1c5e9c --- /dev/null +++ b/world/stylized_water_material.gdshader @@ -0,0 +1,106 @@ +shader_type spatial; +//render_mode specular_phong, cull_disabled; + +uniform sampler2D DEPTH_TEXTURE : hint_depth_texture, filter_linear_mipmap; +uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, filter_linear_mipmap; + +uniform float speed: hint_range(-1, 1) = 0.0; + +uniform sampler2D noise1; +uniform sampler2D noise2; +uniform sampler2D normalmap: hint_normal; + +uniform vec4 color = vec4(0.0352941, 0.658824, 0.929412, 0.635294); +uniform vec4 deep_water = vec4(0.14902, 0.329412, 0.501961, 1); + +//depth-fade var +uniform float beer_law_factor = 2.0; +uniform float _distance = 0.0; + +//foam var +uniform vec4 edge_color = vec4(1); +uniform float edge_scale = 0.25; +uniform float near = 0.1; +uniform float far = 100.f; + +// wave var +uniform vec2 wave_strength = vec2(0.5, 0.25); +uniform vec2 wave_frequ = vec2(12.0, 12.0); +uniform vec2 time_factor = vec2(1.0, 2.0); + +float waves(vec2 pos, float time) { + return (wave_strength.y * sin(pos.y * wave_frequ.y + time * time_factor.y)) + (wave_strength.x * sin(pos.x * wave_frequ.x + time * time_factor.x)); +} + +void vertex() { + VERTEX.y += waves(VERTEX.xy, TIME); +} + +float rim(float depth) { + depth = 2.0f * depth - 1.0f; + return near * far / (far + depth * (near - far)); +} + +float calc_depth_fade(float depth, mat4 projection_matrix, + vec4 fragcoord, float beer_factor, float __distance, vec3 vertex) { + + float scene_depth = depth; + + scene_depth = scene_depth * 2.0 - 1.0; + scene_depth = projection_matrix[3][2] / (scene_depth + projection_matrix[2][2]); + scene_depth = scene_depth + vertex.z; // z is negative + + // application of beers law + scene_depth = exp(-scene_depth * beer_factor); + + float screen_depth = fragcoord.z; + + float depth_fade = (scene_depth - screen_depth) / __distance; + + depth_fade = clamp(depth_fade, 0.0, 1.0); + + return depth_fade; +} + +void fragment() { + float time = TIME * speed; + + vec3 n1 = texture(noise1, UV + time).rgb; + vec3 n2 = texture(noise2, UV - time * 0.2).rgb; + + vec2 uv_movement = UV * 4.0f; + uv_movement += TIME * speed * 4.0f; + + float sum = (n1.r + n2.r) - 1.0f; + + float z_depth = rim(texture(DEPTH_TEXTURE, SCREEN_UV).x); + float z_pos = rim(FRAGCOORD.z); + float diff = z_depth - z_pos; + + // depth-fade + float z_depth_fade = calc_depth_fade(texture(DEPTH_TEXTURE, SCREEN_UV).x, PROJECTION_MATRIX, FRAGCOORD, beer_law_factor, _distance, VERTEX); + float z_fade = rim(FRAGCOORD.z); + float fade_diff = z_depth_fade - z_fade; + + vec4 gradientcolor = mix(color, deep_water, z_depth_fade); + + vec2 displacement = vec2(sum * 0.1); + diff += displacement.x * 70.0f; + + vec4 col = mix(edge_color, gradientcolor, step(edge_scale, diff)); + + vec4 alpha = texture(SCREEN_TEXTURE, SCREEN_UV + displacement); + + + float fin = 0.0; + if (sum > 0.0 && sum < 0.4) fin = 0.1; + if (sum > 0.4 && sum < 0.8) fin = 0.0; + if (sum > 0.8) fin = 1.0f; + + // konvertier fin in vec3 um + ALBEDO = vec3(fin) + mix(alpha.rgb, col.rgb, gradientcolor.a); + + //NORMALMAP = texture(normalmap, uv_movement).rgb; + + ROUGHNESS = 0.1; +}