From 575609a4a5935d2656c7a31a2e8f38ce1565a53f Mon Sep 17 00:00:00 2001 From: jusax23 Date: Sun, 30 Jul 2023 14:17:54 +0200 Subject: [PATCH] android tests --- Cargo.lock | 444 +++++- Cargo.toml | 31 +- assets/models/Kirche.mtl | 10 + assets/models/Kirche.obj | 2547 +++++++++++++++----------------- assets/shader/default.fsh.glsl | 10 +- assets/shader/default.vsh.glsl | 9 +- jassets/javaState.jar | Bin 0 -> 2874 bytes src/game.rs | 49 +- src/game/bots.rs | 8 +- src/main.rs | 31 +- src/render_tools/graphics.rs | 37 +- src/stage.rs | 168 ++- 12 files changed, 1918 insertions(+), 1426 deletions(-) create mode 100644 assets/models/Kirche.mtl create mode 100644 jassets/javaState.jar diff --git a/Cargo.lock b/Cargo.lock index 2008c32..2192da5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,6 +8,57 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "aho-corasick" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +dependencies = [ + "memchr", +] + +[[package]] +name = "android-activity" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40bc1575e653f158cbdc6ebcd917b9564e66321c5325c232c3591269c257be69" +dependencies = [ + "android-properties", + "bitflags 1.3.2", + "cc", + "jni-sys", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys 0.4.1+23.1.7779620", + "num_enum 0.6.1", +] + +[[package]] +name = "android-properties" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" + +[[package]] +name = "android_log-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85965b6739a430150bdd138e2374a98af0c3ee0d030b3bb7fc3bddff58d0102e" + +[[package]] +name = "android_logger" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8619b80c242aa7bd638b5c7ddd952addeecb71f69c75e33f1d47b2804f8f883a" +dependencies = [ + "android_log-sys", + "env_logger", + "log", + "once_cell", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -20,6 +71,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" + [[package]] name = "block-buffer" version = "0.10.4" @@ -29,6 +86,21 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytes" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" + +[[package]] +name = "cc" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +dependencies = [ + "jobserver", +] + [[package]] name = "cesu8" version = "1.1.0" @@ -41,6 +113,16 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "combine" +version = "4.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "cpufeatures" version = "0.2.9" @@ -106,6 +188,46 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" +[[package]] +name = "env_logger" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +dependencies = [ + "errno-dragonfly", + "libc", + "windows-sys", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "fdeflate" version = "0.3.0" @@ -187,7 +309,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.27", ] [[package]] @@ -267,6 +389,45 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + +[[package]] +name = "hermit-abi" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "is-terminal" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +dependencies = [ + "hermit-abi", + "rustix", + "windows-sys", +] + [[package]] name = "itoa" version = "1.0.9" @@ -296,13 +457,33 @@ dependencies = [ "sha2", ] +[[package]] +name = "j4rs_derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3c5dc2ed9c8da7de8d9e3b7eac1d6eeaf8bc7a0521de8c1ff2a4fd1f7b0a78d" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "j_game" version = "0.1.0" dependencies = [ + "android-activity", + "android_logger", + "env_logger", "gl_matrix", "j4rs", + "j4rs_derive", + "jni", + "libc", + "log", "miniquad", + "ndk", + "ndk-context", "png", "serde", ] @@ -317,12 +498,35 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "jni" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + [[package]] name = "jni-sys" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +[[package]] +name = "jobserver" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +dependencies = [ + "libc", +] + [[package]] name = "lazy_static" version = "1.4.0" @@ -345,6 +549,12 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "linux-raw-sys" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" + [[package]] name = "log" version = "0.4.19" @@ -368,10 +578,11 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "miniquad" -version = "0.3.15" +version = "0.4.0-alpha.6" +source = "git+https://github.com/jusax23/miniquad?branch=jni#269c55a512e242c39e9598026bf0123b7e3dd813" dependencies = [ "libc", - "ndk-sys", + "ndk-sys 0.2.2", "objc", "winapi", ] @@ -386,12 +597,83 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "ndk" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" +dependencies = [ + "bitflags 1.3.2", + "jni-sys", + "ndk-sys 0.4.1+23.1.7779620", + "num_enum 0.5.11", + "raw-window-handle", + "thiserror", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + [[package]] name = "ndk-sys" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1bcdd74c20ad5d95aacd60ef9ba40fdf77f767051040541df557b7a9b2a2121" +[[package]] +name = "ndk-sys" +version = "0.4.1+23.1.7779620" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "num_enum" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive 0.5.11", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive 0.6.1", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.27", +] + [[package]] name = "objc" version = "0.2.7" @@ -401,6 +683,12 @@ dependencies = [ "malloc_buf", ] +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" + [[package]] name = "option-ext" version = "0.2.0" @@ -425,7 +713,7 @@ version = "0.17.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59871cc5b6cce7eaccca5a802b4173377a1c2ba90654246789a8fa2334426d11" dependencies = [ - "bitflags", + "bitflags 1.3.2", "crc32fast", "fdeflate", "flate2", @@ -438,6 +726,16 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + [[package]] name = "proc-macro2" version = "1.0.66" @@ -497,13 +795,19 @@ dependencies = [ "rand_core", ] +[[package]] +name = "raw-window-handle" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" + [[package]] name = "redox_syscall" version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -517,6 +821,48 @@ dependencies = [ "thiserror", ] +[[package]] +name = "regex" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7b6d6190b7594385f61bd3911cd1be99dfddcfc365a4160cc2ab5bff4aed294" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" + +[[package]] +name = "rustix" +version = "0.38.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" +dependencies = [ + "bitflags 2.3.3", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + [[package]] name = "ryu" version = "1.0.15" @@ -524,23 +870,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] -name = "serde" -version = "1.0.177" +name = "same-file" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63ba2516aa6bf82e0b19ca8b50019d52df58455d3cf9bdaf6315225fdd0c560a" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "serde" +version = "1.0.178" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60363bdd39a7be0266a520dab25fdc9241d2f987b08a01e01f0ec6d06a981348" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.177" +version = "1.0.178" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401797fe7833d72109fedec6bfcbe67c0eed9b99772f26eb8afd261f0abc6fd3" +checksum = "f28482318d6641454cb273da158647922d1be6b5a2fcc6165cd89ebdd7ed576b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.27", ] [[package]] @@ -580,6 +935,17 @@ dependencies = [ "autocfg", ] +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "syn" version = "2.0.27" @@ -591,6 +957,15 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "termcolor" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +dependencies = [ + "winapi-util", +] + [[package]] name = "thiserror" version = "1.0.44" @@ -608,7 +983,24 @@ checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.27", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.19.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", ] [[package]] @@ -629,6 +1021,16 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "walkdir" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +dependencies = [ + "same-file", + "winapi-util", +] + [[package]] name = "wasi" version = "0.9.0+wasi-snapshot-preview1" @@ -657,6 +1059,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -728,3 +1139,12 @@ name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" + +[[package]] +name = "winnow" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25b5872fa2e10bd067ae946f927e726d7d603eaeb6e02fa6a350e0722d2b8c11" +dependencies = [ + "memchr", +] diff --git a/Cargo.toml b/Cargo.toml index c6587ef..eabc5fd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,13 +2,40 @@ name = "j_game" version = "0.1.0" edition = "2021" -crate-type = ["cdylib"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[profile.dev] +debug = true + +[profile.release] +debug = true + [dependencies] gl_matrix = "0.0.2" j4rs = "0.17.0" -miniquad = { path = '../jucraft/miniquad' } +j4rs_derive = "0.1.0" +miniquad = { git = "https://github.com/jusax23/miniquad", branch = "jni" } +#miniquad = { path = '../jucraft/miniquad' } png = "0.17.9" serde = "1.0.177" +log = "0.4.14" +env_logger = "0.10.0" + + +[target.'cfg(target_os = "android")'.dependencies] +jni = "0.20" +libc = "0.2" +ndk = { version = "0.7", features = ["api-level-23"] } +ndk-context = "0.1.1" +android_logger = "0.11.0" +android-activity = { version = "0.4", features = ["native-activity"] } + +[[package.metadata.android.permission]] +name = "android.permission.READ_EXTERNAL_STORAGE" +max_sdk_version = 18 + +[[package.metadata.android.permission]] +name = "android.permission.WRITE_EXTERNAL_STORAGE" +max_sdk_version = 18 + diff --git a/assets/models/Kirche.mtl b/assets/models/Kirche.mtl new file mode 100644 index 0000000..4f62e9c --- /dev/null +++ b/assets/models/Kirche.mtl @@ -0,0 +1,10 @@ +# Blender MTL File: 'Kirche.blend' +# Material Count: 1 + +newmtl None +Ns 500 +Ka 0.8 0.8 0.8 +Kd 0.8 0.8 0.8 +Ks 0.8 0.8 0.8 +d 1 +illum 2 diff --git a/assets/models/Kirche.obj b/assets/models/Kirche.obj index ad04f71..7fdf946 100644 --- a/assets/models/Kirche.obj +++ b/assets/models/Kirche.obj @@ -1670,50 +1670,6 @@ vn 0.9997 0.0000 -0.0242 vn 0.0104 0.0000 0.9999 vn -0.0051 0.7174 -0.6967 vn -0.0036 0.7190 -0.6950 -vn 0.0184 0.6293 -0.7769 -vn 0.5621 0.6294 -0.5366 -vn 0.4156 0.7987 0.4352 -vn 0.7769 0.6294 0.0182 -vn 0.7770 0.6293 0.0183 -vn 0.5622 0.6293 -0.5366 -vn -0.5366 0.6293 -0.5621 -vn -0.5366 0.6293 -0.5622 -vn -0.0183 0.6293 0.7769 -vn -0.6235 0.4299 -0.6530 -vn -0.6235 0.4297 -0.6531 -vn -0.5620 0.6293 0.5367 -vn -0.7769 0.6293 -0.0184 -vn 0.9022 0.4307 0.0209 -vn 0.5367 0.6293 0.5620 -vn 0.6533 0.4300 -0.6232 -vn 0.6528 0.4308 -0.6231 -vn 0.0214 0.4299 -0.9026 -vn -0.6529 0.4299 0.6236 -vn 0.6233 0.4300 0.6532 -vn 0.6233 0.4308 0.6526 -vn -0.9027 0.4297 -0.0215 -vn 0.0211 0.4308 -0.9022 -vn 0.9026 0.4299 0.0212 -vn -0.9026 0.4299 -0.0214 -vn 0.9768 0.2130 0.0231 -vn -0.0213 0.4297 0.9027 -vn 0.9765 0.2143 0.0226 -vn -0.6530 0.4297 0.6236 -vn -0.0212 0.4300 0.9026 -vn -0.7063 0.2142 0.6747 -vn 0.0232 0.2130 -0.9768 -vn -0.9766 0.2137 -0.0232 -vn 0.6746 0.2129 0.7068 -vn 0.7070 0.2129 -0.6744 -vn 0.7065 0.2142 -0.6746 -vn -0.6746 0.2142 -0.7065 -vn -0.9765 0.2142 -0.0231 -vn 0.0228 0.2142 -0.9765 -vn 0.6746 0.2137 0.7066 -vn -0.0231 0.2130 0.9768 -vn -0.7068 0.2130 0.6746 -vn -0.6745 0.2142 -0.7065 -vn -0.0227 0.2142 0.9765 vn 0.9997 0.0000 0.0236 vn 0.6906 0.0000 0.7233 vn -0.9997 0.0000 -0.0236 @@ -1899,57 +1855,7 @@ vn 0.0080 0.6962 0.7178 vn -0.7058 -0.0000 -0.7084 vn 0.0073 0.6960 0.7181 vn 0.6632 0.0000 0.7484 -vn 0.6024 0.7980 0.0143 -vn 0.6014 0.7988 0.0138 -vn -0.7770 0.6293 -0.0180 -vn 0.0183 0.6285 -0.7776 -vn 0.7770 0.6292 0.0179 -vn 0.0180 0.6291 -0.7771 -vn 0.0139 0.7989 -0.6013 vn -0.0233 0.0000 0.9997 -vn -0.7776 0.6285 -0.0185 -vn 0.4152 0.7989 0.4352 -vn -0.5623 0.6290 0.5368 -vn -0.6015 0.7987 -0.0140 -vn -0.6021 0.7983 -0.0143 -vn -0.4358 0.7982 0.4158 -vn 0.4354 0.7988 -0.4151 -vn 0.7769 0.6294 0.0178 -vn -0.4152 0.7988 -0.4354 -vn 0.5621 0.6293 -0.5366 -vn -0.4159 0.7983 -0.4357 -vn 0.4164 0.7980 0.4357 -vn -0.5367 0.6286 -0.5628 -vn 0.5630 0.6284 -0.5368 -vn 0.0140 0.7987 -0.6015 -vn 0.4356 0.7985 -0.4156 -vn -0.4352 0.7987 0.4156 -vn 0.9026 0.4300 0.0208 -vn 0.0209 0.4307 -0.9022 -vn 0.0212 0.4299 -0.9026 -vn 0.5364 0.6292 0.5624 -vn 0.6233 0.4300 0.6531 -vn 0.9765 0.2141 0.0227 -vn -0.6530 0.4299 0.6235 -vn 0.6233 0.4297 0.6533 -vn -0.0212 0.4299 0.9026 -vn -0.6232 0.4296 -0.6535 -vn 0.9028 0.4297 0.0209 -vn -0.9027 0.4297 -0.0211 -vn -0.9026 0.4300 -0.0210 -vn -0.6532 0.4297 0.6235 -vn 0.5364 0.6294 0.5623 -vn -0.6232 0.4300 -0.6533 -vn -0.6742 0.2142 -0.7068 -vn -0.9765 0.2142 -0.0227 -vn 0.6743 0.2137 0.7068 -vn -0.9766 0.2137 -0.0228 -vn 0.0226 0.2143 -0.9765 -vn -0.7069 0.2130 0.6744 -vn 0.0231 0.2130 -0.9768 -vn -0.6743 0.2143 -0.7067 -vn 0.6744 0.2142 0.7067 -vn -0.7065 0.2142 0.6745 vn 0.9998 0.0000 0.0215 vn 0.6903 0.0000 0.7235 vn -0.0053 0.0000 -1.0000 @@ -1981,90 +1887,10 @@ vn 0.9934 0.1124 0.0243 vn 0.0244 0.1124 -0.9934 vn -0.9934 0.1124 -0.0243 vn -0.7203 0.1126 0.6845 -vn 0.2835 0.9198 -0.2712 -vn -0.2847 0.9196 0.2706 -vn -0.2834 0.9200 0.2705 -vn -0.3919 0.9200 -0.0096 vn 0.6868 0.1124 0.7181 -vn 0.2845 0.9195 -0.2712 -vn 0.3925 0.9197 0.0089 -vn -0.2706 0.9199 -0.2838 -vn 0.6163 0.7874 0.0140 -vn 0.3932 0.9194 0.0096 -vn 0.4468 0.7868 -0.4259 -vn 0.0096 0.9195 -0.3929 -vn -0.0083 0.9200 0.3918 -vn -0.2705 0.9202 -0.2829 -vn -0.3915 0.9202 -0.0092 -vn 0.2712 0.9198 0.2835 -vn 0.6170 0.7868 0.0145 -vn 0.4460 0.7873 -0.4258 -vn 0.0092 0.9197 -0.3924 -vn 0.2712 0.9196 0.2841 -vn -0.0089 0.9197 0.3925 -vn 0.0145 0.7869 -0.6170 -vn -0.4268 0.7858 -0.4477 -vn -0.4266 0.7863 -0.4469 -vn 0.0145 0.7869 -0.6169 -vn -0.5745 0.6081 0.5478 -vn 0.4261 0.7868 0.4464 -vn -0.0187 0.6080 0.7937 -vn 0.9157 0.4013 0.0210 -vn 0.5478 0.6081 0.5745 -vn -0.5477 0.6090 -0.5737 -vn -0.7937 0.6080 -0.0187 -vn 0.0190 0.6075 -0.7941 -vn -0.6182 0.7859 -0.0145 -vn 0.0187 0.6080 -0.7937 -vn -0.5737 0.6090 0.5477 -vn -0.0182 0.6089 0.7930 -vn -0.5478 0.6081 -0.5745 -vn -0.0141 0.7864 0.6176 -vn 0.7930 0.6090 0.0182 -vn 0.4261 0.7869 0.4464 -vn -0.4473 0.7859 0.4270 -vn -0.0145 0.7859 0.6182 -vn 0.5746 0.6074 -0.5485 -vn 0.5477 0.6090 0.5737 -vn 0.9159 0.4008 0.0212 -vn 0.5741 0.6080 -0.5484 -vn -0.7930 0.6089 -0.0182 -vn 0.7937 0.6081 0.0187 -vn -0.4474 0.7858 0.4270 -vn 0.9840 0.1767 0.0228 -vn -0.7121 0.1774 0.6793 -vn 0.0219 0.4012 -0.9157 -vn -0.6322 0.4013 -0.6628 -vn 0.6322 0.4008 0.6631 -vn 0.0229 0.1750 -0.9843 -vn -0.9159 0.4008 -0.0212 -vn -0.6792 0.1768 -0.7123 -vn 0.6628 0.4013 -0.6322 -vn -0.6793 0.1773 -0.7121 -vn 0.6322 0.4013 0.6627 -vn -0.6631 0.4008 0.6322 -vn 0.9843 0.1751 0.0234 -vn -0.6322 0.4008 -0.6630 -vn -0.0212 0.4008 0.9159 -vn -0.9157 0.4013 -0.0210 -vn -0.0210 0.4014 0.9157 -vn 0.7124 0.1750 -0.6796 -vn -0.9838 0.1777 -0.0228 -vn 0.6617 0.4030 -0.6322 -vn 0.7123 0.1753 -0.6796 -vn -0.9839 0.1774 -0.0229 -vn 0.0228 0.1753 -0.9842 -vn -0.7120 0.1777 0.6793 -vn 0.0212 0.4029 -0.9150 -vn -0.6628 0.4013 0.6322 -vn 0.6799 0.1777 0.7114 vn 0.9997 0.0000 0.0237 vn 0.6909 0.0000 0.7229 -vn -0.0140 0.7985 0.6019 -vn 0.6796 0.1750 0.7124 -vn -0.0228 0.1777 0.9838 vn -0.6901 0.0000 -0.7237 -vn -0.0229 0.1774 0.9839 vn 0.0224 0.2965 -0.9548 vn 0.7235 -0.0001 -0.6904 vn 0.0006 0.4100 -0.9121 @@ -2099,73 +1925,7 @@ vn 1.0000 0.0000 -0.0042 vn 0.9994 0.0000 0.0360 vn 0.7202 0.1126 -0.6845 vn 0.6869 0.1124 0.7180 -vn 0.3919 0.9200 0.0096 -vn 0.2834 0.9200 -0.2706 -vn 0.3914 0.9202 0.0092 -vn 0.2847 0.9196 -0.2706 vn 0.0211 0.1126 -0.9934 -vn 0.0090 0.9197 -0.3925 -vn -0.0145 0.7869 0.6170 -vn 0.4473 0.7859 -0.4270 -vn -0.2712 0.9198 -0.2835 -vn -0.2845 0.9195 0.2712 -vn -0.0096 0.9196 0.3928 -vn 0.0083 0.9200 -0.3919 -vn -0.0092 0.9198 0.3924 -vn -0.6170 0.7869 -0.0145 -vn 0.6182 0.7859 0.0145 -vn -0.3925 0.9197 -0.0090 -vn 0.2706 0.9199 0.2838 -vn -0.2712 0.9196 -0.2841 -vn -0.6163 0.7874 -0.0140 -vn -0.3932 0.9194 -0.0097 -vn -0.2835 0.9198 0.2712 -vn 0.2706 0.9202 0.2828 -vn 0.0145 0.7859 -0.6182 -vn -0.4261 0.7869 -0.4464 -vn -0.4460 0.7873 0.4258 -vn -0.4468 0.7868 0.4259 -vn 0.0141 0.7864 -0.6176 -vn -0.0145 0.7868 0.6170 -vn 0.0182 0.6089 -0.7930 -vn 0.6627 0.4013 -0.6322 -vn 0.5478 0.6082 0.5745 -vn 0.5737 0.6090 -0.5477 -vn 0.0212 0.4008 -0.9159 -vn 0.5745 0.6082 -0.5478 -vn 0.7930 0.6089 0.0182 -vn -0.5741 0.6080 0.5485 -vn 0.4266 0.7863 0.4469 -vn -0.5746 0.6074 0.5485 -vn -0.0190 0.6075 0.7941 -vn 0.9157 0.4014 0.0210 -vn 0.4268 0.7858 0.4477 -vn -0.6322 0.4013 -0.6627 -vn 0.0210 0.4014 -0.9157 -vn -0.6322 0.4008 -0.6631 -vn 0.6631 0.4008 -0.6322 -vn -0.0229 0.1750 0.9843 -vn -0.7124 0.1750 0.6796 -vn 0.6792 0.1767 0.7123 -vn -0.7123 0.1753 0.6796 -vn -0.0212 0.4029 0.9150 -vn 0.7121 0.1774 -0.6793 -vn -0.6796 0.1750 -0.7124 -vn -0.6618 0.4030 0.6322 -vn 0.0229 0.1774 -0.9839 -vn -0.6627 0.4013 0.6322 -vn -0.0219 0.4012 0.9157 -vn -0.6799 0.1776 -0.7114 -vn -0.9157 0.4014 -0.0210 -vn 0.9838 0.1777 0.0228 -vn 0.6323 0.4007 0.6631 -vn 0.7120 0.1777 -0.6794 -vn -0.9843 0.1750 -0.0234 -vn 0.0228 0.1777 -0.9838 -vn -0.9840 0.1767 -0.0228 -vn -0.0228 0.1753 0.9842 -vn 0.9839 0.1774 0.0229 -vn 0.6793 0.1774 0.7121 vn 0.6901 0.0000 0.7237 vn -0.9997 0.0000 -0.0238 vn -0.6909 0.0000 -0.7229 @@ -2196,21 +1956,6 @@ vn 0.7174 0.6955 0.0402 vn 0.9983 0.0001 0.0574 vn -0.0325 0.0000 0.9995 vn 0.9998 -0.0001 0.0221 -vn 0.4159 0.7979 0.4362 -vn 0.6018 0.7986 0.0141 -vn 0.6015 0.7987 0.0140 -vn 0.4353 0.7987 -0.4155 -vn 0.4355 0.7985 -0.4156 -vn 0.0143 0.7980 -0.6024 -vn -0.6025 0.7980 -0.0143 -vn -0.4161 0.7981 -0.4359 -vn -0.4158 0.7986 -0.4351 -vn -0.6024 0.7980 -0.0143 -vn 0.0140 0.7985 -0.6019 -vn -0.4360 0.7980 0.4161 -vn -0.4354 0.7984 0.4159 -vn -0.0141 0.7985 0.6018 -vn -0.0140 0.7987 0.6015 vn 0.0391 -0.0003 -0.9992 vn 0.0074 0.6943 0.7197 vn 0.0079 0.6937 0.7202 @@ -2276,7 +2021,6 @@ vn 0.0110 0.0002 0.9999 vn 0.0110 0.0001 0.9999 vn -0.7061 -0.0000 0.7081 vn 0.7169 0.6947 0.0587 -vn -0.0141 0.7983 0.6021 vn 0.7688 0.6389 0.0273 vn 0.7509 0.6582 0.0542 vn 0.7168 0.6946 0.0609 @@ -2306,6 +2050,178 @@ vn -0.0352 0.0000 0.9994 vn 0.7184 0.6951 0.0263 vn -0.0063 0.5159 -0.8566 vn -0.0065 0.5165 -0.8563 +vn -0.3016 0.5494 -0.7792 +vn 0.2761 0.7306 -0.6244 +vn 0.3376 0.5497 -0.7641 +vn 0.6365 0.7308 -0.2464 +vn 0.7792 0.5494 -0.3016 +vn 0.2465 0.7308 0.6365 +vn 0.6245 0.7306 0.2758 +vn 0.3091 0.5165 0.7985 +vn 0.7641 0.5497 0.3374 +vn -0.2463 0.7306 -0.6368 +vn -0.7643 0.5492 -0.3378 +vn -0.6245 0.7306 -0.2761 +vn -0.2758 0.7306 0.6246 +vn 0.3016 0.5494 0.7792 +vn -0.3398 0.3379 -0.8777 +vn -0.8609 0.3377 -0.3804 +vn -0.3377 0.5492 0.7644 +vn -0.6367 0.7306 0.2465 +vn -0.7792 0.5494 0.3016 +vn 0.8610 0.3376 0.3804 +vn 0.8777 0.3378 -0.3398 +vn 0.3805 0.3375 -0.8609 +vn -0.3803 0.3376 0.8610 +vn -0.8778 0.3374 0.3399 +vn 0.3396 0.3373 0.8780 +vn 0.9088 0.1125 0.4016 +vn 0.9265 0.1131 -0.3587 +vn -0.4014 0.1130 0.9089 +vn -0.3587 0.1131 -0.9266 +vn 0.4017 0.1125 -0.9088 +vn -0.9267 0.1127 0.3584 +vn -0.9088 0.1131 -0.4016 +vn 0.3589 0.1127 0.9265 +vn 0.7833 0.5165 0.3459 +vn 0.6366 0.7307 -0.2466 +vn 0.7988 0.5163 -0.3088 +vn 0.6243 0.7309 0.2758 +vn -0.6246 0.7306 -0.2759 +vn -0.7644 0.5492 -0.3378 +vn -0.7793 0.5492 0.3018 +vn -0.3015 0.5491 -0.7795 +vn 0.2762 0.7305 -0.6246 +vn 0.3377 0.5494 -0.7642 +vn 0.7644 0.5492 0.3377 +vn 0.7791 0.5494 -0.3018 +vn -0.2466 0.7306 -0.6367 +vn 0.3460 0.5168 -0.7830 +vn -0.6369 0.7305 0.2463 +vn 0.2463 0.7307 0.6367 +vn -0.7985 0.5166 0.3092 +vn -0.7832 0.5164 -0.3462 +vn -0.2759 0.7306 0.6245 +vn -0.3461 0.5163 0.7833 +vn -0.3089 0.5166 -0.7985 +vn 0.3096 0.5163 0.7984 +vn 0.8777 0.3378 -0.3399 +vn 0.3805 0.3376 -0.8610 +vn -0.3397 0.3379 -0.8777 +vn 0.3395 0.3374 0.8780 +vn 0.8610 0.3377 0.3804 +vn 0.3015 0.5494 0.7793 +vn 0.9088 0.1131 0.4015 +vn 0.9265 0.1131 -0.3589 +vn -0.8778 0.3374 0.3400 +vn -0.8609 0.3377 -0.3805 +vn 0.3587 0.1127 0.9266 +vn -0.9267 0.1127 0.3586 +vn -0.3586 0.1131 -0.9266 +vn -0.4015 0.1130 0.9088 +vn 0.2962 0.6801 -0.6706 +vn 0.6834 0.6804 -0.2644 +vn 0.2038 0.8637 -0.4608 +vn -0.2039 0.8634 0.4615 +vn -0.2961 0.6810 0.6697 +vn -0.6836 0.6806 0.2635 +vn -0.4703 0.8635 0.1820 +vn -0.6702 0.6806 -0.2960 +vn 0.4697 0.8639 -0.1819 +vn 0.6706 0.6801 0.2961 +vn 0.4609 0.8638 0.2035 +vn -0.4613 0.8635 -0.2040 +vn -0.2640 0.6808 -0.6832 +vn -0.1821 0.8637 -0.4700 +vn 0.6522 0.7147 -0.2526 +vn 0.2829 0.7143 -0.6400 +vn 0.1819 0.8636 0.4701 +vn 0.2658 0.6804 0.6829 +vn 0.6395 0.7150 0.2824 +vn -0.2523 0.7145 -0.6525 +vn -0.6399 0.7146 -0.2826 +vn -0.3441 0.5243 0.7789 +vn -0.6527 0.7142 0.2525 +vn -0.7942 0.5242 0.3074 +vn 0.2525 0.7145 0.6524 +vn -0.2826 0.7146 0.6399 +vn 0.3074 0.5242 0.7942 +vn 0.7789 0.5243 0.3441 +vn 0.8886 0.3029 -0.3443 +vn 0.7940 0.5243 -0.3076 +vn -0.7789 0.5243 -0.3441 +vn -0.3071 0.5240 -0.7944 +vn 0.3439 0.5246 -0.7787 +vn 0.8718 0.3023 0.3854 +vn 0.9286 0.0932 -0.3591 +vn -0.3851 0.3035 0.8715 +vn -0.8884 0.3038 0.3440 +vn -0.4024 0.0940 0.9106 +vn -0.3436 0.3031 -0.8888 +vn -0.8715 0.3035 -0.3851 +vn -0.3595 0.0933 -0.9285 +vn 0.3851 0.3032 -0.8717 +vn 0.4024 0.0928 -0.9107 +vn -0.9106 0.0940 -0.4025 +vn 0.3442 0.3037 0.8884 +vn 0.9107 0.0929 0.4024 +vn -0.9284 0.0941 0.3594 +vn 0.3598 0.0941 0.9283 +vn 0.6702 0.6806 0.2960 +vn 0.4703 0.8635 -0.1820 +vn 0.6836 0.6806 -0.2635 +vn 0.2039 0.8634 -0.4615 +vn 0.4613 0.8635 0.2040 +vn 0.2961 0.6810 -0.6697 +vn -0.1819 0.8636 -0.4701 +vn -0.2038 0.8637 0.4608 +vn 0.2523 0.7145 0.6525 +vn 0.1821 0.8636 0.4700 +vn 0.2826 0.7146 -0.6399 +vn -0.6706 0.6801 -0.2961 +vn -0.2658 0.6804 -0.6829 +vn -0.4609 0.8638 -0.2035 +vn -0.4696 0.8639 0.1819 +vn -0.6834 0.6804 0.2643 +vn -0.2962 0.6802 0.6706 +vn 0.2641 0.6808 0.6832 +vn -0.6522 0.7147 0.2526 +vn -0.6395 0.7150 -0.2824 +vn 0.6399 0.7146 0.2826 +vn 0.6527 0.7142 -0.2525 +vn -0.2525 0.7145 -0.6524 +vn -0.2829 0.7143 0.6400 +vn -0.3074 0.5242 -0.7942 +vn 0.3441 0.5243 -0.7789 +vn -0.7789 0.5243 -0.3442 +vn 0.3851 0.3035 -0.8715 +vn 0.7942 0.5242 -0.3074 +vn 0.8885 0.3038 -0.3440 +vn 0.3071 0.5241 0.7943 +vn 0.7789 0.5242 0.3442 +vn -0.7940 0.5242 0.3076 +vn -0.3442 0.3037 -0.8884 +vn -0.3439 0.5246 0.7787 +vn 0.8715 0.3035 0.3851 +vn -0.8718 0.3023 -0.3854 +vn 0.3595 0.0933 0.9285 +vn -0.3851 0.3032 0.8716 +vn -0.4024 0.0928 0.9107 +vn -0.8886 0.3029 0.3443 +vn 0.9106 0.0940 0.4025 +vn 0.3436 0.3031 0.8888 +vn -0.9286 0.0932 0.3591 +vn 0.4024 0.0940 -0.9106 +vn -0.9107 0.0929 -0.4024 +vn -0.3598 0.0941 -0.9283 +vn 0.9284 0.0941 -0.3594 +vn 0.7831 0.5163 0.3465 +vn 0.7985 0.5166 -0.3091 +vn 0.3460 0.5163 -0.7834 +vn -0.7836 0.5162 -0.3458 +vn -0.7988 0.5162 0.3089 +vn -0.3095 0.5163 -0.7985 +vn -0.3464 0.5163 0.7832 usemtl None s off f 135/1/1 2/2/1 4/3/1 @@ -2629,1137 +2545,1138 @@ f 313/327/208 310/328/208 312/329/208 f 312/329/209 311/330/209 313/327/209 f 312/329/5 314/331/5 311/330/5 f 309/332/5 311/330/5 314/331/5 -f 315/333/210 316/334/210 317/335/210 -f 317/335/211 319/336/211 320/337/211 -f 322/338/212 318/339/212 715/340/212 -f 318/339/213 320/337/213 319/336/213 -f 325/341/214 320/337/214 318/339/214 -f 316/334/215 319/336/215 317/335/215 -f 324/342/210 316/334/210 315/333/210 -f 324/342/216 315/333/216 326/343/216 -f 323/344/217 324/342/217 326/343/217 -f 322/338/218 321/345/218 328/346/218 -f 315/333/219 329/347/219 330/348/219 -f 326/343/220 315/333/220 330/348/220 -f 331/349/221 327/350/221 332/351/221 -f 321/345/221 327/350/221 331/349/221 -f 328/346/218 321/345/218 331/349/218 -f 323/344/222 326/343/222 332/351/222 -f 333/352/223 334/353/223 325/341/223 -f 328/346/224 325/341/224 322/338/224 -f 335/354/225 320/337/225 334/353/225 -f 317/335/226 320/337/226 335/354/226 -f 315/333/227 317/335/227 329/347/227 -f 336/355/228 332/351/228 337/356/228 -f 338/357/229 333/352/229 328/346/229 -f 333/352/230 325/341/230 328/346/230 -f 337/356/231 326/343/231 330/348/231 -f 329/347/232 317/335/232 335/354/232 -f 327/350/222 323/344/222 332/351/222 -f 325/341/233 334/353/233 320/337/233 -f 332/351/234 326/343/234 337/356/234 -f 339/358/235 340/359/235 333/352/235 -f 338/357/236 331/349/236 336/355/236 -f 333/352/237 340/359/237 334/353/237 -f 325/341/224 318/339/224 322/338/224 -f 331/349/238 332/351/238 336/355/238 -f 328/346/239 331/349/239 338/357/239 -f 336/355/240 337/356/240 341/360/240 -f 342/361/241 335/354/241 343/362/241 -f 337/356/242 330/348/242 344/363/242 -f 341/360/13 344/363/13 345/364/13 -f 339/358/243 333/352/243 338/357/243 -f 335/354/244 334/353/244 343/362/244 -f 343/362/245 334/353/245 340/359/245 -f 330/348/246 329/347/246 348/365/246 -f 344/363/247 330/348/247 348/365/247 -f 329/347/248 335/354/248 342/361/248 -f 349/366/249 339/358/249 338/357/249 -f 338/357/250 336/355/250 349/366/250 -f 341/360/251 337/356/251 344/363/251 -f 329/347/252 342/361/252 348/365/252 -f 349/366/253 336/355/253 341/360/253 -f 349/366/41 341/360/41 346/367/41 -f 351/368/21 468/369/21 350/370/21 -f 353/371/254 340/359/254 339/358/254 -f 352/372/255 353/371/255 339/358/255 -f 347/373/254 340/359/254 353/371/254 -f 348/365/256 350/370/256 344/363/256 -f 364/374/257 213/222/257 212/375/257 -f 352/372/255 339/358/255 349/366/255 -f 357/376/258 209/377/258 358/378/258 -f 342/361/259 343/362/259 354/379/259 -f 209/377/260 196/217/260 358/378/260 -f 361/201/261 358/378/261 360/173/261 -f 384/380/262 148/153/262 166/381/262 -f 348/365/263 351/368/263 350/370/263 -f 342/361/263 351/368/263 348/365/263 -f 364/374/264 75/75/264 34/81/264 -f 343/362/265 340/359/265 347/373/265 -f 365/382/266 364/374/266 209/377/266 -f 209/377/267 373/383/267 365/382/267 -f 209/377/268 721/384/268 373/383/268 -f 373/383/269 721/384/269 370/385/269 -f 370/385/270 721/384/270 356/386/270 -f 356/386/271 721/384/271 120/387/271 -f 359/388/272 721/384/272 209/377/272 -f 365/382/264 371/389/264 372/390/264 -f 356/386/273 363/391/273 370/385/273 -f 375/392/274 363/391/274 362/393/274 -f 373/383/275 370/385/275 378/310/275 -f 379/394/275 373/383/275 378/310/275 -f 375/392/276 305/322/276 370/385/276 -f 301/325/276 370/385/276 305/322/276 -f 369/395/277 364/374/277 368/396/277 -f 369/395/278 215/229/278 214/221/278 -f 216/220/279 369/395/279 214/221/279 -f 367/397/280 368/396/280 365/382/280 -f 382/398/280 367/397/280 365/382/280 -f 372/390/280 382/398/280 365/382/280 -f 373/383/281 379/394/281 371/389/281 -f 364/374/278 369/395/278 216/220/278 -f 379/394/281 262/270/281 371/389/281 -f 378/310/276 370/385/276 301/325/276 -f 362/393/140 380/399/140 375/392/140 -f 364/374/277 365/382/277 368/396/277 -f 357/376/282 358/378/282 374/400/282 -f 355/401/283 356/386/283 376/402/283 -f 376/402/284 356/386/284 118/403/284 -f 355/401/283 376/402/283 377/404/283 -f 140/145/285 358/378/285 133/138/285 -f 361/201/285 133/138/285 358/378/285 -f 366/405/282 357/376/282 374/400/282 -f 374/400/285 358/378/285 140/145/285 -f 172/174/286 40/39/286 173/115/286 -f 377/404/287 363/391/287 355/401/287 -f 120/387/284 118/403/284 356/386/284 +f 341/333/13 344/334/13 345/335/13 +f 349/336/41 341/333/41 346/337/41 +f 351/338/21 468/339/21 350/340/21 +f 353/341/210 340/342/210 339/343/210 +f 352/344/211 353/341/211 339/343/211 +f 347/345/210 340/342/210 353/341/210 +f 348/346/212 350/340/212 344/334/212 +f 364/347/213 213/222/213 212/348/213 +f 352/344/211 339/343/211 349/336/211 +f 357/349/214 209/350/214 358/351/214 +f 342/352/215 343/353/215 354/354/215 +f 209/350/216 196/217/216 358/351/216 +f 361/201/217 358/351/217 360/173/217 +f 384/355/218 148/153/218 166/356/218 +f 348/346/219 351/338/219 350/340/219 +f 342/352/219 351/338/219 348/346/219 +f 364/347/220 75/75/220 34/81/220 +f 343/353/221 340/342/221 347/345/221 +f 365/357/222 364/347/222 209/350/222 +f 209/350/223 373/358/223 365/357/223 +f 209/350/224 721/359/224 373/358/224 +f 373/358/225 721/359/225 370/360/225 +f 370/360/226 721/359/226 356/361/226 +f 356/361/227 721/359/227 120/362/227 +f 359/363/228 721/359/228 209/350/228 +f 365/357/220 371/364/220 372/365/220 +f 356/361/229 363/366/229 370/360/229 +f 375/367/230 363/366/230 362/368/230 +f 373/358/231 370/360/231 378/310/231 +f 379/369/231 373/358/231 378/310/231 +f 375/367/232 305/322/232 370/360/232 +f 301/325/232 370/360/232 305/322/232 +f 369/370/233 364/347/233 368/371/233 +f 369/370/234 215/229/234 214/221/234 +f 216/220/235 369/370/235 214/221/235 +f 367/372/236 368/371/236 365/357/236 +f 382/373/236 367/372/236 365/357/236 +f 372/365/236 382/373/236 365/357/236 +f 373/358/237 379/369/237 371/364/237 +f 364/347/234 369/370/234 216/220/234 +f 379/369/237 262/270/237 371/364/237 +f 378/310/232 370/360/232 301/325/232 +f 362/368/140 380/374/140 375/367/140 +f 364/347/233 365/357/233 368/371/233 +f 357/349/238 358/351/238 374/375/238 +f 355/376/239 356/361/239 376/377/239 +f 376/377/240 356/361/240 118/378/240 +f 355/376/239 376/377/239 377/379/239 +f 140/145/241 358/351/241 133/138/241 +f 361/201/241 133/138/241 358/351/241 +f 366/380/238 357/349/238 374/375/238 +f 374/375/241 358/351/241 140/145/241 +f 172/174/242 40/39/242 173/115/242 +f 377/379/243 363/366/243 355/376/243 +f 120/362/240 118/378/240 356/361/240 f 45/32/125 46/44/125 181/189/125 -f 386/406/288 470/407/288 231/238/288 -f 299/312/289 297/311/289 390/408/289 -f 391/317/289 390/408/289 297/311/289 -f 392/409/289 390/408/289 391/317/289 -f 393/410/289 392/409/289 391/317/289 -f 389/318/290 385/411/290 393/410/290 -f 387/412/291 470/407/291 386/406/291 -f 381/413/196 377/404/196 376/402/196 -f 389/318/292 393/410/292 391/317/292 -f 297/311/293 202/319/293 298/323/293 -f 396/191/294 397/40/294 40/39/294 -f 69/67/295 397/40/295 396/191/295 -f 398/414/296 399/415/296 400/416/296 -f 398/414/297 400/416/297 401/417/297 -f 402/418/298 403/419/298 663/420/298 -f 405/421/299 406/422/299 402/418/299 -f 407/423/300 308/326/300 300/424/300 +f 386/381/244 470/382/244 231/238/244 +f 299/312/245 297/311/245 390/383/245 +f 391/317/245 390/383/245 297/311/245 +f 392/384/245 390/383/245 391/317/245 +f 393/385/245 392/384/245 391/317/245 +f 389/318/246 385/386/246 393/385/246 +f 387/387/247 470/382/247 386/381/247 +f 381/388/196 377/379/196 376/377/196 +f 389/318/248 393/385/248 391/317/248 +f 297/311/249 202/319/249 298/323/249 +f 396/191/250 397/40/250 40/39/250 +f 69/67/251 397/40/251 396/191/251 +f 398/389/252 399/390/252 400/391/252 +f 398/389/253 400/391/253 401/392/253 +f 402/393/254 403/394/254 663/395/254 +f 405/396/255 406/397/255 402/393/255 +f 407/398/256 308/326/256 300/399/256 f 47/45/68 74/74/68 46/44/68 -f 405/421/301 408/425/301 406/422/301 -f 412/426/302 413/427/302 411/428/302 -f 401/417/302 411/428/302 413/427/302 -f 408/425/303 403/419/303 406/422/303 -f 408/425/301 405/421/301 409/429/301 -f 402/418/299 406/422/299 403/419/299 -f 414/430/302 411/428/302 401/417/302 -f 400/416/302 414/430/302 401/417/302 -f 404/15/304 403/419/304 408/425/304 -f 308/326/305 407/423/305 417/309/305 -f 308/326/275 417/309/275 307/308/275 -f 224/431/306 517/432/306 512/433/306 +f 405/396/257 408/400/257 406/397/257 +f 412/401/258 413/402/258 411/403/258 +f 401/392/258 411/403/258 413/402/258 +f 408/400/259 403/394/259 406/397/259 +f 408/400/257 405/396/257 409/404/257 +f 402/393/255 406/397/255 403/394/255 +f 414/405/258 411/403/258 401/392/258 +f 400/391/258 414/405/258 401/392/258 +f 404/15/260 403/394/260 408/400/260 +f 308/326/261 407/398/261 417/309/261 +f 308/326/231 417/309/231 307/308/231 +f 224/406/262 517/407/262 512/408/262 f 266/275/170 149/165/170 263/233/170 -f 265/273/307 257/434/307 266/275/307 -f 411/428/308 414/430/308 203/211/308 -f 410/435/309 201/436/309 204/212/309 -f 204/212/308 203/211/308 414/430/308 -f 266/275/310 257/434/310 154/164/310 -f 410/435/311 204/212/311 414/430/311 -f 400/416/312 410/435/312 414/430/312 +f 265/273/263 257/409/263 266/275/263 +f 411/403/264 414/405/264 203/211/264 +f 410/410/265 201/411/265 204/212/265 +f 204/212/264 203/211/264 414/405/264 +f 266/275/266 257/409/266 154/164/266 +f 410/410/267 204/212/267 414/405/267 +f 400/391/268 410/410/268 414/405/268 f 266/275/170 154/164/170 149/165/170 -f 418/437/313 286/300/313 289/299/313 -f 399/415/314 201/436/314 410/435/314 -f 419/438/315 55/48/315 290/301/315 -f 204/212/316 201/436/316 206/214/316 -f 206/214/316 201/436/316 198/208/316 -f 290/301/317 292/316/317 419/438/317 -f 418/437/317 419/438/317 292/316/317 -f 65/439/318 420/440/318 421/441/318 -f 289/299/318 421/441/318 420/440/318 -f 418/437/313 289/299/313 419/438/313 -f 419/438/319 289/299/319 420/440/319 -f 123/190/320 423/33/320 181/189/320 -f 45/32/320 181/189/320 423/33/320 -f 421/441/321 282/295/321 65/439/321 -f 42/65/322 65/439/322 282/295/322 -f 289/299/322 282/295/322 421/441/322 -f 212/375/99 210/219/99 422/442/99 -f 291/302/323 210/219/323 211/315/323 -f 233/443/324 502/444/324 360/173/324 -f 291/302/323 211/315/323 296/313/323 -f 724/180/325 423/33/325 210/219/325 -f 210/219/326 423/33/326 422/442/326 -f 123/190/326 422/442/326 423/33/326 -f 106/112/104 212/375/104 213/222/104 -f 424/445/170 425/446/170 426/447/170 -f 427/448/170 426/447/170 425/446/170 -f 427/448/327 430/283/327 429/449/327 -f 512/433/328 228/450/328 224/431/328 -f 150/451/329 264/274/329 152/154/329 -f 127/452/330 151/155/330 261/269/330 -f 407/423/331 424/445/331 417/309/331 -f 407/423/91 425/446/91 424/445/91 -f 436/453/332 472/454/332 474/455/332 -f 432/456/5 433/457/5 189/196/5 -f 190/197/5 189/196/5 433/457/5 -f 314/331/88 312/329/88 431/458/88 -f 435/459/88 431/458/88 312/329/88 -f 312/329/333 310/328/333 435/459/333 -f 311/330/334 523/460/334 313/327/334 -f 437/461/88 431/458/88 435/459/88 -f 159/158/88 437/461/88 435/459/88 -f 157/156/335 159/158/335 435/459/335 -f 310/328/333 157/156/333 435/459/333 -f 186/462/336 436/453/336 432/456/336 -f 187/198/337 186/462/337 184/195/337 -f 438/463/207 439/464/207 440/228/207 -f 441/226/207 440/228/207 439/464/207 -f 441/226/338 439/464/338 442/465/338 -f 446/466/207 447/467/207 438/463/207 -f 448/468/207 438/463/207 447/467/207 -f 439/464/207 438/463/207 448/468/207 -f 183/194/339 2/2/339 134/139/339 -f 441/226/340 442/465/340 444/227/340 -f 246/251/91 448/468/91 447/467/91 -f 98/99/341 96/469/341 95/470/341 -f 246/251/91 447/467/91 243/249/91 -f 394/471/342 230/237/342 191/206/342 -f 395/472/343 449/473/343 191/206/343 -f 394/471/343 191/206/343 449/473/343 -f 439/464/344 448/468/344 442/465/344 -f 395/472/345 387/412/345 449/473/345 -f 426/447/170 451/474/170 424/445/170 -f 426/447/170 452/475/170 451/474/170 -f 394/471/346 449/473/346 386/406/346 -f 387/412/346 386/406/346 449/473/346 -f 388/476/347 395/472/347 130/205/347 -f 191/206/347 130/205/347 395/472/347 -f 453/14/348 454/16/348 455/477/348 -f 457/478/349 458/479/349 459/314/349 -f 455/477/350 461/480/350 456/481/350 -f 458/479/351 457/478/351 461/480/351 -f 456/481/350 461/480/350 457/478/350 -f 455/477/348 454/16/348 461/480/348 -f 347/373/265 354/379/265 343/362/265 -f 454/16/352 463/482/352 461/480/352 -f 458/479/352 461/480/352 463/482/352 -f 456/481/349 457/478/349 459/314/349 -f 221/225/176 445/483/176 444/227/176 -f 443/484/176 244/254/176 442/465/176 -f 12/19/353 229/236/353 24/105/353 -f 467/485/354 24/105/354 466/486/354 -f 466/486/21 351/368/21 354/379/21 -f 466/486/355 230/237/355 468/369/355 -f 230/237/356 386/406/356 468/369/356 -f 469/487/21 460/488/21 350/370/21 -f 469/487/21 350/370/21 468/369/21 -f 472/454/357 473/489/357 474/455/357 -f 101/102/358 23/490/358 471/491/358 -f 467/485/21 347/373/21 462/492/21 -f 23/490/358 467/485/358 471/491/358 -f 24/105/358 467/485/358 23/490/358 -f 351/368/259 342/361/259 354/379/259 -f 460/488/68 469/487/68 232/239/68 -f 231/238/68 232/239/68 469/487/68 -f 464/493/21 353/371/21 352/372/21 -f 466/486/21 468/369/21 351/368/21 -f 462/492/359 471/491/359 467/485/359 -f 460/488/43 232/239/43 197/218/43 -f 464/493/21 462/492/21 353/371/21 -f 354/379/21 467/485/21 466/486/21 -f 472/454/360 476/494/360 473/489/360 -f 474/455/332 432/456/332 436/453/332 -f 433/457/88 432/456/88 475/495/88 -f 474/455/88 475/495/88 432/456/88 -f 477/496/88 475/495/88 474/455/88 -f 473/489/88 477/496/88 474/455/88 -f 478/497/308 479/498/308 480/499/308 -f 481/500/308 478/497/308 480/499/308 -f 482/501/361 483/200/361 481/500/361 -f 482/501/362 481/500/362 480/499/362 -f 189/196/337 184/195/337 186/462/337 -f 432/456/363 189/196/363 186/462/363 -f 484/502/308 485/503/308 479/498/308 -f 480/499/308 479/498/308 485/503/308 -f 237/504/364 489/505/364 490/506/364 -f 491/507/21 489/505/21 492/508/21 +f 418/412/269 286/300/269 289/299/269 +f 399/390/270 201/411/270 410/410/270 +f 419/413/271 55/48/271 290/301/271 +f 204/212/272 201/411/272 206/214/272 +f 206/214/272 201/411/272 198/208/272 +f 290/301/273 292/316/273 419/413/273 +f 418/412/273 419/413/273 292/316/273 +f 65/414/274 420/415/274 421/416/274 +f 289/299/274 421/416/274 420/415/274 +f 418/412/269 289/299/269 419/413/269 +f 419/413/275 289/299/275 420/415/275 +f 123/190/276 423/33/276 181/189/276 +f 45/32/276 181/189/276 423/33/276 +f 421/416/277 282/295/277 65/414/277 +f 42/65/278 65/414/278 282/295/278 +f 289/299/278 282/295/278 421/416/278 +f 212/348/99 210/219/99 422/417/99 +f 291/302/279 210/219/279 211/315/279 +f 233/418/280 502/419/280 360/173/280 +f 291/302/279 211/315/279 296/313/279 +f 724/180/281 423/33/281 210/219/281 +f 210/219/282 423/33/282 422/417/282 +f 123/190/282 422/417/282 423/33/282 +f 106/112/104 212/348/104 213/222/104 +f 424/420/170 425/421/170 426/422/170 +f 427/423/170 426/422/170 425/421/170 +f 427/423/283 430/283/283 429/424/283 +f 512/408/284 228/425/284 224/406/284 +f 150/426/285 264/274/285 152/154/285 +f 127/427/286 151/155/286 261/269/286 +f 407/398/287 424/420/287 417/309/287 +f 407/398/91 425/421/91 424/420/91 +f 436/428/288 472/429/288 474/430/288 +f 432/431/5 433/432/5 189/196/5 +f 190/197/5 189/196/5 433/432/5 +f 314/331/88 312/329/88 431/433/88 +f 435/434/88 431/433/88 312/329/88 +f 312/329/289 310/328/289 435/434/289 +f 311/330/290 523/435/290 313/327/290 +f 437/436/88 431/433/88 435/434/88 +f 159/158/88 437/436/88 435/434/88 +f 157/156/291 159/158/291 435/434/291 +f 310/328/289 157/156/289 435/434/289 +f 186/437/292 436/428/292 432/431/292 +f 187/198/293 186/437/293 184/195/293 +f 438/438/207 439/439/207 440/228/207 +f 441/226/207 440/228/207 439/439/207 +f 441/226/294 439/439/294 442/440/294 +f 446/441/207 447/442/207 438/438/207 +f 448/443/207 438/438/207 447/442/207 +f 439/439/207 438/438/207 448/443/207 +f 183/194/295 2/2/295 134/139/295 +f 441/226/296 442/440/296 444/227/296 +f 246/251/91 448/443/91 447/442/91 +f 98/99/297 96/444/297 95/445/297 +f 246/251/91 447/442/91 243/249/91 +f 394/446/298 230/237/298 191/206/298 +f 395/447/299 449/448/299 191/206/299 +f 394/446/299 191/206/299 449/448/299 +f 439/439/300 448/443/300 442/440/300 +f 395/447/301 387/387/301 449/448/301 +f 426/422/170 451/449/170 424/420/170 +f 426/422/170 452/450/170 451/449/170 +f 394/446/302 449/448/302 386/381/302 +f 387/387/302 386/381/302 449/448/302 +f 388/451/303 395/447/303 130/205/303 +f 191/206/303 130/205/303 395/447/303 +f 453/14/304 454/16/304 455/452/304 +f 457/453/305 458/454/305 459/314/305 +f 455/452/306 461/455/306 456/456/306 +f 458/454/307 457/453/307 461/455/307 +f 456/456/306 461/455/306 457/453/306 +f 455/452/304 454/16/304 461/455/304 +f 347/345/221 354/354/221 343/353/221 +f 454/16/308 463/457/308 461/455/308 +f 458/454/308 461/455/308 463/457/308 +f 456/456/305 457/453/305 459/314/305 +f 221/225/176 445/458/176 444/227/176 +f 443/459/176 244/254/176 442/440/176 +f 12/19/309 229/236/309 24/105/309 +f 467/460/310 24/105/310 466/461/310 +f 466/461/21 351/338/21 354/354/21 +f 466/461/311 230/237/311 468/339/311 +f 230/237/312 386/381/312 468/339/312 +f 469/462/21 460/463/21 350/340/21 +f 469/462/21 350/340/21 468/339/21 +f 472/429/313 473/464/313 474/430/313 +f 101/102/314 23/465/314 471/466/314 +f 467/460/21 347/345/21 462/467/21 +f 23/465/314 467/460/314 471/466/314 +f 24/105/314 467/460/314 23/465/314 +f 351/338/215 342/352/215 354/354/215 +f 460/463/68 469/462/68 232/239/68 +f 231/238/68 232/239/68 469/462/68 +f 464/468/21 353/341/21 352/344/21 +f 466/461/21 468/339/21 351/338/21 +f 462/467/315 471/466/315 467/460/315 +f 460/463/43 232/239/43 197/218/43 +f 464/468/21 462/467/21 353/341/21 +f 354/354/21 467/460/21 466/461/21 +f 472/429/316 476/469/316 473/464/316 +f 474/430/288 432/431/288 436/428/288 +f 433/432/88 432/431/88 475/470/88 +f 474/430/88 475/470/88 432/431/88 +f 477/471/88 475/470/88 474/430/88 +f 473/464/88 477/471/88 474/430/88 +f 478/472/264 479/473/264 480/474/264 +f 481/475/264 478/472/264 480/474/264 +f 482/476/317 483/200/317 481/475/317 +f 482/476/318 481/475/318 480/474/318 +f 189/196/293 184/195/293 186/437/293 +f 432/431/319 189/196/319 186/437/319 +f 484/477/264 485/478/264 479/473/264 +f 480/474/264 479/473/264 485/478/264 +f 237/479/320 489/480/320 490/481/320 +f 491/482/21 489/480/21 492/483/21 f 178/186/21 240/248/21 179/187/21 -f 493/509/21 73/88/21 494/510/21 -f 80/89/21 494/510/21 73/88/21 -f 240/248/21 494/510/21 80/89/21 +f 493/484/21 73/88/21 494/485/21 +f 80/89/21 494/485/21 73/88/21 +f 240/248/21 494/485/21 80/89/21 f 179/187/21 240/248/21 80/89/21 f 177/183/21 727/184/21 495/181/21 f 240/248/21 177/183/21 495/181/21 f 180/185/21 177/183/21 240/248/21 f 178/186/21 180/185/21 240/248/21 -f 490/506/365 496/511/365 497/512/365 -f 492/508/21 489/505/21 498/26/21 -f 233/443/366 470/407/366 387/412/366 -f 118/403/196 16/272/196 14/291/196 -f 492/508/367 500/513/367 491/507/367 -f 496/511/368 500/513/368 501/514/368 -f 502/444/369 233/443/369 387/412/369 -f 237/504/370 497/512/370 236/515/370 -f 237/504/370 490/506/370 497/512/370 -f 274/127/371 237/504/371 238/285/371 -f 489/505/372 491/507/372 490/506/372 -f 491/507/373 500/513/373 490/506/373 -f 492/508/374 498/26/374 503/516/374 -f 500/513/368 503/516/368 501/514/368 -f 387/412/375 395/472/375 502/444/375 -f 490/506/365 500/513/365 496/511/365 -f 500/513/376 492/508/376 503/516/376 -f 233/443/377 723/244/377 499/517/377 -f 169/170/378 502/444/378 37/132/378 -f 504/518/379 506/245/379 366/405/379 -f 507/182/379 366/405/379 506/245/379 -f 357/376/379 366/405/379 507/182/379 -f 494/510/379 357/376/379 507/182/379 -f 494/510/380 722/247/380 357/376/380 -f 240/248/381 495/181/381 235/24/381 -f 478/497/382 487/519/382 509/520/382 -f 481/500/383 487/519/383 478/497/383 -f 479/498/5 478/497/5 510/521/5 -f 486/522/384 576/523/384 482/501/384 -f 157/156/385 313/327/385 525/524/385 -f 509/520/5 510/521/5 478/497/5 -f 494/510/21 507/182/21 117/188/21 -f 493/509/21 494/510/21 117/188/21 -f 483/200/383 487/519/383 481/500/383 -f 487/519/386 511/525/386 509/520/386 -f 508/526/387 501/514/387 503/516/387 -f 372/390/140 371/389/140 512/433/140 -f 450/527/140 429/449/140 513/528/140 -f 524/529/388 509/520/388 511/525/388 -f 514/530/389 381/413/389 515/531/389 -f 452/475/170 515/531/170 451/474/170 -f 452/475/170 516/532/170 515/531/170 -f 517/432/390 518/533/390 382/398/390 -f 516/532/170 514/530/170 515/531/170 -f 512/433/391 517/432/391 382/398/391 -f 382/398/140 372/390/140 512/433/140 -f 514/530/392 516/532/392 513/528/392 -f 514/530/393 513/528/393 380/399/393 -f 516/532/394 452/475/394 513/528/394 -f 519/534/395 382/398/395 518/533/395 -f 72/58/396 520/57/396 521/117/396 -f 413/427/397 412/426/397 437/461/397 +f 490/481/321 496/486/321 497/487/321 +f 492/483/21 489/480/21 498/26/21 +f 233/418/322 470/382/322 387/387/322 +f 118/378/196 16/272/196 14/291/196 +f 492/483/323 500/488/323 491/482/323 +f 496/486/324 500/488/324 501/489/324 +f 502/419/325 233/418/325 387/387/325 +f 237/479/326 497/487/326 236/490/326 +f 237/479/326 490/481/326 497/487/326 +f 274/127/327 237/479/327 238/285/327 +f 489/480/328 491/482/328 490/481/328 +f 491/482/329 500/488/329 490/481/329 +f 492/483/330 498/26/330 503/491/330 +f 500/488/324 503/491/324 501/489/324 +f 387/387/331 395/447/331 502/419/331 +f 490/481/321 500/488/321 496/486/321 +f 500/488/332 492/483/332 503/491/332 +f 233/418/333 723/244/333 499/492/333 +f 169/170/334 502/419/334 37/132/334 +f 504/493/335 506/245/335 366/380/335 +f 507/182/335 366/380/335 506/245/335 +f 357/349/335 366/380/335 507/182/335 +f 494/485/335 357/349/335 507/182/335 +f 494/485/336 722/247/336 357/349/336 +f 240/248/337 495/181/337 235/24/337 +f 478/472/338 487/494/338 509/495/338 +f 481/475/339 487/494/339 478/472/339 +f 479/473/5 478/472/5 510/496/5 +f 486/497/340 576/498/340 482/476/340 +f 157/156/341 313/327/341 525/499/341 +f 509/495/5 510/496/5 478/472/5 +f 494/485/21 507/182/21 117/188/21 +f 493/484/21 494/485/21 117/188/21 +f 483/200/339 487/494/339 481/475/339 +f 487/494/342 511/500/342 509/495/342 +f 508/501/343 501/489/343 503/491/343 +f 372/365/140 371/364/140 512/408/140 +f 450/502/140 429/424/140 513/503/140 +f 524/504/344 509/495/344 511/500/344 +f 514/505/345 381/388/345 515/506/345 +f 452/450/170 515/506/170 451/449/170 +f 452/450/170 516/507/170 515/506/170 +f 517/407/346 518/508/346 382/373/346 +f 516/507/170 514/505/170 515/506/170 +f 512/408/347 517/407/347 382/373/347 +f 382/373/140 372/365/140 512/408/140 +f 514/505/348 516/507/348 513/503/348 +f 514/505/349 513/503/349 380/374/349 +f 516/507/350 452/450/350 513/503/350 +f 519/509/351 382/373/351 518/508/351 +f 72/58/352 520/57/352 521/117/352 +f 413/402/353 412/401/353 437/436/353 f 100/104/127 66/59/127 72/58/127 -f 519/534/42 518/533/42 227/234/42 -f 227/234/42 518/533/42 226/271/42 -f 517/432/42 226/271/42 518/533/42 -f 437/461/398 434/535/398 413/427/398 -f 434/535/399 437/461/399 159/158/399 -f 367/397/395 382/398/395 519/534/395 -f 522/199/400 523/460/400 524/529/400 -f 522/199/401 525/524/401 523/460/401 -f 434/535/399 159/158/399 158/157/399 -f 401/417/402 413/427/402 398/414/402 -f 415/536/402 398/414/402 413/427/402 -f 311/330/5 309/332/5 524/529/5 -f 523/460/5 311/330/5 524/529/5 -f 158/157/385 415/536/385 434/535/385 -f 434/535/403 415/536/403 413/427/403 -f 431/458/397 437/461/397 412/426/397 -f 510/521/5 509/520/5 309/332/5 -f 524/529/5 309/332/5 509/520/5 -f 525/524/334 313/327/334 523/460/334 -f 522/199/384 487/519/384 483/200/384 -f 511/525/388 522/199/388 524/529/388 -f 488/537/404 526/538/404 527/539/404 -f 476/494/206 488/537/206 473/489/206 -f 527/539/405 526/538/405 579/540/405 -f 427/448/406 425/446/406 430/283/406 -f 527/539/308 528/541/308 477/496/308 -f 475/495/308 477/496/308 528/541/308 -f 578/542/405 579/540/405 526/538/405 -f 488/537/206 477/496/206 473/489/206 -f 527/539/407 477/496/407 488/537/407 -f 188/126/408 195/241/408 119/240/408 -f 182/193/21 121/543/21 167/73/21 +f 519/509/42 518/508/42 227/234/42 +f 227/234/42 518/508/42 226/271/42 +f 517/407/42 226/271/42 518/508/42 +f 437/436/354 434/510/354 413/402/354 +f 434/510/355 437/436/355 159/158/355 +f 367/372/351 382/373/351 519/509/351 +f 522/199/356 523/435/356 524/504/356 +f 522/199/357 525/499/357 523/435/357 +f 434/510/355 159/158/355 158/157/355 +f 401/392/358 413/402/358 398/389/358 +f 415/511/358 398/389/358 413/402/358 +f 311/330/5 309/332/5 524/504/5 +f 523/435/5 311/330/5 524/504/5 +f 158/157/341 415/511/341 434/510/341 +f 434/510/359 415/511/359 413/402/359 +f 431/433/353 437/436/353 412/401/353 +f 510/496/5 509/495/5 309/332/5 +f 524/504/5 309/332/5 509/495/5 +f 525/499/290 313/327/290 523/435/290 +f 522/199/340 487/494/340 483/200/340 +f 511/500/344 522/199/344 524/504/344 +f 488/512/360 526/513/360 527/514/360 +f 476/469/206 488/512/206 473/464/206 +f 527/514/361 526/513/361 579/515/361 +f 427/423/362 425/421/362 430/283/362 +f 527/514/264 528/516/264 477/471/264 +f 475/470/264 477/471/264 528/516/264 +f 578/517/361 579/515/361 526/513/361 +f 488/512/206 477/471/206 473/464/206 +f 527/514/363 477/471/363 488/512/363 +f 188/126/364 195/241/364 119/240/364 +f 182/193/21 121/518/21 167/73/21 f 125/70/21 119/240/21 61/107/21 -f 121/543/21 119/240/21 125/70/21 -f 167/73/21 121/543/21 125/70/21 -f 250/259/409 234/258/409 121/543/409 -f 383/242/409 250/259/409 121/543/409 +f 121/518/21 119/240/21 125/70/21 +f 167/73/21 121/518/21 125/70/21 +f 250/259/365 234/258/365 121/518/365 +f 383/242/365 250/259/365 121/518/365 f 16/272/196 251/260/196 255/265/196 -f 498/26/410 508/526/410 503/516/410 -f 15/257/411 271/128/411 25/287/411 -f 118/403/409 120/387/409 234/258/409 -f 121/543/409 234/258/409 120/387/409 -f 15/257/412 14/291/412 16/272/412 +f 498/26/366 508/501/366 503/491/366 +f 15/257/367 271/128/367 25/287/367 +f 118/378/365 120/362/365 234/258/365 +f 121/518/365 234/258/365 120/362/365 +f 15/257/368 14/291/368 16/272/368 f 90/100/21 64/192/21 195/241/21 -f 39/38/413 107/61/413 173/115/413 +f 39/38/369 107/61/369 173/115/369 f 89/91/21 728/93/21 383/242/21 -f 121/543/21 89/91/21 383/242/21 -f 100/104/21 89/91/21 121/543/21 -f 182/193/21 100/104/21 121/543/21 +f 121/518/21 89/91/21 383/242/21 +f 100/104/21 89/91/21 121/518/21 +f 182/193/21 100/104/21 121/518/21 f 239/290/196 277/289/196 276/288/196 -f 117/188/414 122/131/414 493/509/414 -f 73/88/414 493/509/414 122/131/414 -f 530/544/415 531/545/415 471/491/415 -f 531/545/416 409/429/416 5/7/416 -f 6/8/416 5/7/416 409/429/416 -f 409/429/416 531/545/416 408/425/416 -f 408/425/416 531/545/416 530/544/416 -f 101/102/417 471/491/417 102/103/417 +f 117/188/370 122/131/370 493/484/370 +f 73/88/370 493/484/370 122/131/370 +f 530/519/371 531/520/371 471/466/371 +f 531/520/372 409/404/372 5/7/372 +f 6/8/372 5/7/372 409/404/372 +f 409/404/372 531/520/372 408/400/372 +f 408/400/372 531/520/372 530/519/372 +f 101/102/373 471/466/373 102/103/373 f 108/114/176 106/112/176 213/222/176 -f 19/21/418 28/43/418 170/27/418 -f 5/7/417 102/103/417 531/545/417 -f 471/491/417 531/545/417 102/103/417 -f 28/43/419 141/146/419 170/27/419 -f 392/409/420 532/546/420 156/167/420 -f 384/380/420 156/167/420 532/546/420 -f 179/187/421 80/89/421 77/90/421 -f 384/380/422 532/546/422 385/411/422 -f 393/410/422 385/411/422 532/546/422 -f 384/380/423 166/381/423 156/167/423 -f 156/167/5 155/166/5 392/409/5 -f 390/408/5 392/409/5 155/166/5 -f 166/381/424 146/151/424 156/167/424 -f 395/472/425 68/66/425 37/132/425 -f 196/217/426 533/547/426 197/218/426 -f 725/548/427 533/547/427 196/217/427 -f 388/476/345 29/56/345 68/66/345 -f 395/472/345 388/476/345 68/66/345 -f 532/546/422 392/409/422 393/410/422 -f 448/468/428 246/251/428 242/549/428 -f 247/252/365 242/549/365 246/251/365 -f 440/228/91 217/231/91 438/463/91 -f 113/129/429 535/30/429 534/130/429 +f 19/21/374 28/43/374 170/27/374 +f 5/7/373 102/103/373 531/520/373 +f 471/466/373 531/520/373 102/103/373 +f 28/43/375 141/146/375 170/27/375 +f 392/384/376 532/521/376 156/167/376 +f 384/355/376 156/167/376 532/521/376 +f 179/187/377 80/89/377 77/90/377 +f 384/355/378 532/521/378 385/386/378 +f 393/385/378 385/386/378 532/521/378 +f 384/355/379 166/356/379 156/167/379 +f 156/167/5 155/166/5 392/384/5 +f 390/383/5 392/384/5 155/166/5 +f 166/356/380 146/151/380 156/167/380 +f 395/447/381 68/66/381 37/132/381 +f 196/217/382 533/522/382 197/218/382 +f 725/523/383 533/522/383 196/217/383 +f 388/451/301 29/56/301 68/66/301 +f 395/447/301 388/451/301 68/66/301 +f 532/521/378 392/384/378 393/385/378 +f 448/443/384 246/251/384 242/524/384 +f 247/252/321 242/524/321 246/251/321 +f 440/228/91 217/231/91 438/438/91 +f 113/129/385 535/30/385 534/130/385 f 222/232/91 217/231/91 440/228/91 -f 43/46/430 420/440/430 42/65/430 -f 122/131/431 534/130/431 535/30/431 -f 197/218/432 533/547/432 460/488/432 -f 465/550/432 460/488/432 533/547/432 -f 445/483/433 223/551/433 222/232/433 -f 444/227/142 445/483/142 440/228/142 -f 222/232/434 223/551/434 221/225/434 -f 448/468/344 443/484/344 442/465/344 -f 443/484/435 448/468/435 242/549/435 -f 52/51/436 50/53/436 536/552/436 -f 537/553/436 536/552/436 50/53/436 -f 244/254/365 242/549/365 247/252/365 -f 35/76/264 536/552/264 137/144/264 -f 42/65/430 420/440/430 65/439/430 -f 220/224/434 222/232/434 221/225/434 -f 98/99/155 95/470/155 241/253/155 -f 445/483/437 222/232/437 440/228/437 -f 502/444/99 169/170/99 360/173/99 +f 43/46/386 420/415/386 42/65/386 +f 122/131/387 534/130/387 535/30/387 +f 197/218/388 533/522/388 460/463/388 +f 465/525/388 460/463/388 533/522/388 +f 445/458/389 223/526/389 222/232/389 +f 444/227/142 445/458/142 440/228/142 +f 222/232/390 223/526/390 221/225/390 +f 448/443/300 443/459/300 442/440/300 +f 443/459/391 448/443/391 242/524/391 +f 52/51/392 50/53/392 536/527/392 +f 537/528/392 536/527/392 50/53/392 +f 244/254/321 242/524/321 247/252/321 +f 35/76/220 536/527/220 137/144/220 +f 42/65/386 420/415/386 65/414/386 +f 220/224/390 222/232/390 221/225/390 +f 98/99/155 95/445/155 241/253/155 +f 445/458/393 222/232/393 440/228/393 +f 502/419/99 169/170/99 360/173/99 f 165/169/99 144/149/99 169/170/99 -f 55/48/438 420/440/438 43/46/438 -f 52/51/436 536/552/436 35/76/436 -f 648/554/439 538/555/439 644/556/439 -f 539/557/440 538/555/440 648/554/440 -f 540/558/441 541/559/441 542/560/441 -f 543/561/442 544/562/442 545/563/442 -f 546/564/443 547/565/443 539/557/443 -f 548/566/444 544/562/444 543/561/444 -f 646/567/43 647/568/43 641/569/43 -f 643/570/445 544/562/445 548/566/445 -f 650/571/446 642/572/446 649/573/446 -f 550/574/447 540/558/447 542/560/447 -f 539/557/448 648/554/448 549/575/448 -f 551/576/449 550/574/449 542/560/449 -f 550/574/450 647/568/450 646/567/450 -f 550/574/451 646/567/451 540/558/451 -f 552/577/452 649/573/452 647/568/452 -f 544/562/453 643/570/453 538/555/453 -f 539/557/454 547/565/454 538/555/454 -f 646/567/455 645/578/455 548/566/455 -f 545/563/456 538/555/456 547/565/456 -f 548/566/457 540/558/457 646/567/457 -f 648/554/458 650/571/458 549/575/458 -f 548/566/459 543/561/459 541/559/459 -f 540/558/217 548/566/217 541/559/217 -f 544/562/460 538/555/460 545/563/460 -f 643/570/461 548/566/461 645/578/461 -f 643/570/462 644/556/462 538/555/462 -f 647/568/19 649/573/19 632/579/19 -f 647/568/463 550/574/463 552/577/463 -f 546/564/464 553/580/464 547/565/464 -f 554/581/225 547/565/225 553/580/225 -f 555/582/465 545/563/465 554/581/465 -f 552/577/221 550/574/221 551/576/221 -f 554/581/244 553/580/244 556/583/244 -f 543/561/466 545/563/466 555/582/466 -f 546/564/467 539/557/467 549/575/467 -f 545/563/226 547/565/226 554/581/226 -f 557/584/468 558/585/468 559/586/468 -f 560/587/469 561/588/469 558/585/469 -f 562/589/470 542/560/470 563/590/470 -f 558/585/471 546/564/471 559/586/471 -f 559/586/472 551/576/472 557/584/472 -f 541/559/473 543/561/473 564/591/473 -f 558/585/237 561/588/237 553/580/237 -f 558/585/474 553/580/474 546/564/474 -f 563/590/475 541/559/475 564/591/475 -f 542/560/476 541/559/476 563/590/476 -f 549/575/218 552/577/218 559/586/218 -f 551/576/477 542/560/477 562/589/477 -f 557/584/236 551/576/236 562/589/236 -f 559/586/218 552/577/218 551/576/218 -f 559/586/478 546/564/478 549/575/478 -f 543/561/479 555/582/479 564/591/479 -f 556/583/245 553/580/245 561/588/245 -f 557/584/250 562/589/250 566/592/250 -f 564/591/480 555/582/480 567/593/480 -f 565/594/481 564/591/481 567/593/481 -f 567/593/68 53/52/68 565/594/68 -f 570/595/112 51/596/112 567/593/112 -f 566/592/482 560/587/482 557/584/482 -f 563/590/483 564/591/483 565/594/483 -f 555/582/484 554/581/484 570/595/484 -f 571/597/19 565/594/19 58/598/19 -f 567/593/112 51/596/112 53/52/112 -f 561/588/29 49/50/29 569/599/29 -f 571/597/485 563/590/485 565/594/485 -f 570/595/486 554/581/486 556/583/486 -f 566/592/253 562/589/253 571/597/253 -f 555/582/487 570/595/487 567/593/487 -f 560/587/488 558/585/488 557/584/488 -f 566/592/41 571/597/41 54/600/41 -f 562/589/489 563/590/489 571/597/489 -f 42/65/490 57/64/490 43/46/490 -f 570/595/355 556/583/355 568/601/355 -f 556/583/265 561/588/265 569/599/265 -f 568/601/265 556/583/265 569/599/265 -f 572/602/491 560/587/491 566/592/491 -f 49/50/29 561/588/29 560/587/29 -f 573/603/492 574/604/492 484/502/492 -f 575/605/493 486/522/493 485/503/493 -f 485/503/494 486/522/494 480/499/494 -f 482/501/494 480/499/494 486/522/494 -f 574/604/495 575/605/495 485/503/495 -f 575/605/496 574/604/496 581/606/496 -f 485/503/492 484/502/492 574/604/492 -f 70/68/497 69/67/497 72/58/497 -f 436/453/262 187/198/262 472/454/262 -f 580/133/498 577/60/498 60/71/498 -f 580/133/499 59/108/499 577/60/499 -f 578/542/500 576/523/500 581/606/500 -f 654/607/29 66/59/29 124/72/29 -f 578/542/501 581/606/501 579/540/501 -f 574/604/502 573/603/502 579/540/502 -f 581/606/502 574/604/502 579/540/502 -f 528/541/502 527/539/502 573/603/502 -f 579/540/502 573/603/502 527/539/502 -f 582/608/265 583/609/265 584/610/265 -f 537/553/503 50/53/503 582/608/503 -f 584/610/504 585/49/504 57/64/504 -f 581/606/496 576/523/496 575/605/496 -f 50/53/503 583/609/503 582/608/503 -f 508/526/505 586/25/505 587/611/505 -f 588/612/506 589/613/506 587/611/506 -f 476/494/314 526/538/314 488/537/314 -f 583/609/265 585/49/265 584/610/265 -f 586/25/507 588/612/507 587/611/507 -f 590/614/508 589/613/508 588/612/508 -f 569/599/21 583/609/21 568/601/21 -f 589/613/509 590/614/509 506/245/509 -f 590/614/510 591/246/510 506/245/510 -f 588/612/21 586/25/21 590/614/21 -f 590/614/21 586/25/21 591/246/21 -f 508/526/511 592/615/511 505/616/511 -f 587/611/512 593/617/512 592/615/512 -f 236/515/371 238/285/371 237/504/371 -f 594/618/513 595/619/513 596/620/513 -f 508/526/511 587/611/511 592/615/511 -f 506/245/514 504/518/514 589/613/514 -f 597/621/515 595/619/515 598/622/515 -f 595/619/516 599/623/516 600/624/516 -f 601/625/517 598/622/517 595/619/517 -f 587/611/512 589/613/512 593/617/512 -f 599/623/518 595/619/518 597/621/518 -f 593/617/514 589/613/514 504/518/514 -f 595/619/519 600/624/519 602/626/519 -f 596/620/520 595/619/520 602/626/520 -f 597/621/521 598/622/521 603/627/521 -f 604/628/522 596/620/522 602/626/522 -f 605/629/523 604/628/523 602/626/523 -f 605/629/524 602/626/524 600/624/524 -f 601/625/525 595/619/525 594/618/525 -f 598/622/526 606/630/526 603/627/526 -f 601/625/527 607/631/527 606/630/527 -f 608/632/528 599/623/528 609/633/528 -f 607/631/529 610/634/529 606/630/529 -f 601/625/530 606/630/530 598/622/530 -f 603/627/531 606/630/531 611/635/531 -f 599/623/532 597/621/532 609/633/532 -f 596/620/533 612/636/533 594/618/533 -f 600/624/534 599/623/534 608/632/534 -f 605/629/535 600/624/535 608/632/535 -f 594/618/536 607/631/536 601/625/536 -f 607/631/537 613/637/537 610/634/537 -f 606/630/538 610/634/538 611/635/538 -f 597/621/539 603/627/539 609/633/539 -f 612/636/540 607/631/540 594/618/540 -f 604/628/541 612/636/541 596/620/541 -f 603/627/542 611/635/542 614/638/542 -f 608/632/543 609/633/543 615/639/543 -f 615/639/544 609/633/544 614/638/544 -f 609/633/545 603/627/545 614/638/545 -f 616/640/546 617/641/546 618/642/546 -f 612/636/547 613/637/547 607/631/547 -f 619/643/548 620/644/548 621/645/548 -f 622/646/549 623/647/549 624/648/549 -f 621/645/550 622/646/550 619/643/550 -f 615/639/551 614/638/551 625/649/551 -f 617/641/552 615/639/552 618/642/552 -f 626/650/553 611/635/553 627/651/553 -f 617/641/554 605/629/554 608/632/554 -f 614/638/555 611/635/555 626/650/555 -f 620/644/556 617/641/556 616/640/556 -f 621/645/557 620/644/557 616/640/557 -f 614/638/558 626/650/558 625/649/558 -f 604/628/559 619/643/559 612/636/559 -f 622/646/560 624/648/560 613/637/560 -f 619/643/561 613/637/561 612/636/561 -f 617/641/562 620/644/562 605/629/562 -f 620/644/563 619/643/563 604/628/563 -f 611/635/564 610/634/564 627/651/564 -f 622/646/565 613/637/565 619/643/565 -f 628/652/566 623/647/566 622/646/566 -f 627/651/567 610/634/567 624/648/567 -f 618/642/568 615/639/568 625/649/568 -f 613/637/569 624/648/569 610/634/569 -f 617/641/554 608/632/554 615/639/554 -f 605/629/570 620/644/570 604/628/570 -f 628/652/571 629/653/571 623/647/571 -f 630/654/572 631/655/572 632/579/572 -f 626/650/573 627/651/573 633/656/573 -f 626/650/574 633/656/574 634/657/574 -f 628/652/575 622/646/575 621/645/575 -f 635/658/576 636/659/576 637/660/576 -f 631/655/577 625/649/577 634/657/577 -f 633/656/578 635/658/578 638/661/578 -f 636/659/579 624/648/579 623/647/579 -f 634/657/580 633/656/580 638/661/580 -f 639/662/581 628/652/581 621/645/581 -f 616/640/582 618/642/582 630/654/582 -f 640/663/583 629/653/583 628/652/583 -f 625/649/584 626/650/584 634/657/584 -f 639/662/585 616/640/585 630/654/585 -f 618/642/586 625/649/586 631/655/586 -f 621/645/587 616/640/587 639/662/587 -f 636/659/588 623/647/588 637/660/588 -f 631/655/589 634/657/589 641/569/589 -f 627/651/590 624/648/590 636/659/590 -f 637/660/591 623/647/591 629/653/591 -f 641/569/592 634/657/592 638/661/592 -f 633/656/593 636/659/593 635/658/593 -f 632/579/594 631/655/594 641/569/594 -f 633/656/595 627/651/595 636/659/595 -f 630/654/596 618/642/596 631/655/596 -f 642/572/597 640/663/597 639/662/597 -f 637/660/414 643/570/414 635/658/414 -f 637/660/36 629/653/36 644/556/36 -f 645/578/414 635/658/414 643/570/414 -f 644/556/598 629/653/598 648/554/598 -f 650/571/599 640/663/599 642/572/599 -f 649/573/600 549/575/600 650/571/600 -f 637/660/36 644/556/36 643/570/36 -f 640/663/601 628/652/601 639/662/601 -f 638/661/43 646/567/43 641/569/43 -f 639/662/602 630/654/602 642/572/602 -f 638/661/603 635/658/603 645/578/603 -f 638/661/603 645/578/603 646/567/603 -f 642/572/604 630/654/604 632/579/604 -f 642/572/446 632/579/446 649/573/446 -f 640/663/599 650/571/599 648/554/599 -f 632/579/19 641/569/19 647/568/19 -f 640/663/598 648/554/598 629/653/598 -f 76/86/605 36/35/605 26/36/605 -f 651/664/606 124/72/606 60/71/606 +f 55/48/394 420/415/394 43/46/394 +f 52/51/392 536/527/392 35/76/392 +f 646/529/43 647/530/43 641/531/43 +f 650/532/395 642/533/395 649/534/395 +f 647/530/19 649/534/19 632/535/19 +f 567/536/68 53/52/68 565/537/68 +f 570/538/112 51/539/112 567/536/112 +f 571/540/19 565/537/19 58/541/19 +f 567/536/112 51/539/112 53/52/112 +f 561/542/29 49/50/29 569/543/29 +f 566/544/41 571/540/41 54/545/41 +f 42/65/396 57/64/396 43/46/396 +f 570/538/311 556/546/311 568/547/311 +f 556/546/221 561/542/221 569/543/221 +f 568/547/221 556/546/221 569/543/221 +f 572/548/397 560/549/397 566/544/397 +f 49/50/29 561/542/29 560/549/29 +f 573/550/398 574/551/398 484/477/398 +f 575/552/399 486/497/399 485/478/399 +f 485/478/400 486/497/400 480/474/400 +f 482/476/400 480/474/400 486/497/400 +f 574/551/401 575/552/401 485/478/401 +f 575/552/402 574/551/402 581/553/402 +f 485/478/398 484/477/398 574/551/398 +f 70/68/403 69/67/403 72/58/403 +f 436/428/218 187/198/218 472/429/218 +f 580/133/404 577/60/404 60/71/404 +f 580/133/405 59/108/405 577/60/405 +f 578/517/406 576/498/406 581/553/406 +f 654/554/29 66/59/29 124/72/29 +f 578/517/407 581/553/407 579/515/407 +f 574/551/408 573/550/408 579/515/408 +f 581/553/408 574/551/408 579/515/408 +f 528/516/408 527/514/408 573/550/408 +f 579/515/408 573/550/408 527/514/408 +f 582/555/221 583/556/221 584/557/221 +f 537/528/409 50/53/409 582/555/409 +f 584/557/410 585/49/410 57/64/410 +f 581/553/402 576/498/402 575/552/402 +f 50/53/409 583/556/409 582/555/409 +f 508/501/411 586/25/411 587/558/411 +f 588/559/412 589/560/412 587/558/412 +f 476/469/270 526/513/270 488/512/270 +f 583/556/221 585/49/221 584/557/221 +f 586/25/413 588/559/413 587/558/413 +f 590/561/414 589/560/414 588/559/414 +f 569/543/21 583/556/21 568/547/21 +f 589/560/415 590/561/415 506/245/415 +f 590/561/416 591/246/416 506/245/416 +f 588/559/21 586/25/21 590/561/21 +f 590/561/21 586/25/21 591/246/21 +f 508/501/417 592/562/417 505/563/417 +f 587/558/418 593/564/418 592/562/418 +f 236/490/327 238/285/327 237/479/327 +f 594/565/419 595/566/419 596/567/419 +f 508/501/417 587/558/417 592/562/417 +f 506/245/420 504/493/420 589/560/420 +f 597/568/421 595/566/421 598/569/421 +f 595/566/422 599/570/422 600/571/422 +f 601/572/423 598/569/423 595/566/423 +f 587/558/418 589/560/418 593/564/418 +f 599/570/424 595/566/424 597/568/424 +f 593/564/420 589/560/420 504/493/420 +f 595/566/425 600/571/425 602/573/425 +f 596/567/426 595/566/426 602/573/426 +f 601/572/427 595/566/427 594/565/427 +f 637/574/370 643/575/370 635/576/370 +f 637/574/36 629/577/36 644/578/36 +f 645/579/370 635/576/370 643/575/370 +f 644/578/428 629/577/428 648/580/428 +f 650/532/429 640/581/429 642/533/429 +f 637/574/36 644/578/36 643/575/36 +f 638/582/43 646/529/43 641/531/43 +f 638/582/430 635/576/430 645/579/430 +f 638/582/430 645/579/430 646/529/430 +f 642/533/395 632/535/395 649/534/395 +f 640/581/429 650/532/429 648/580/429 +f 632/535/19 641/531/19 647/530/19 +f 640/581/428 648/580/428 629/577/428 +f 76/86/431 36/35/431 26/36/431 +f 651/583/432 124/72/432 60/71/432 f 64/192/112 81/171/112 59/108/112 -f 124/72/607 653/119/607 654/607/607 -f 655/178/608 36/35/608 76/86/608 -f 69/67/609 40/39/609 88/92/609 -f 124/72/610 651/664/610 652/122/610 -f 32/31/611 36/35/611 122/131/611 -f 655/178/612 122/131/612 36/35/612 -f 651/664/613 60/71/613 652/122/613 -f 57/64/614 657/665/614 658/666/614 -f 196/217/615 209/377/615 137/144/615 -f 78/79/616 79/80/616 462/492/616 -f 659/667/617 196/217/617 656/668/617 -f 462/492/616 464/493/616 78/79/616 +f 124/72/433 653/119/433 654/554/433 +f 655/178/434 36/35/434 76/86/434 +f 69/67/435 40/39/435 88/92/435 +f 124/72/436 651/583/436 652/122/436 +f 32/31/437 36/35/437 122/131/437 +f 655/178/438 122/131/438 36/35/438 +f 651/583/439 60/71/439 652/122/439 +f 57/64/440 657/584/440 658/585/440 +f 196/217/441 209/350/441 137/144/441 +f 78/79/442 79/80/442 462/467/442 +f 659/586/443 196/217/443 656/587/443 +f 462/467/442 464/468/442 78/79/442 f 77/90/36 76/86/36 86/85/36 -f 94/97/618 21/22/618 660/669/618 -f 142/147/619 83/82/619 141/146/619 -f 658/666/620 661/670/620 662/671/620 -f 662/671/621 656/668/621 658/666/621 -f 660/669/622 21/22/622 115/123/622 -f 241/253/140 96/469/140 108/114/140 -f 662/671/623 281/303/623 458/479/623 -f 459/314/623 458/479/623 281/303/623 -f 656/668/624 454/16/624 659/667/624 -f 466/486/625 24/105/625 229/236/625 -f 294/294/626 662/671/626 661/670/626 -f 287/63/627 657/665/627 57/64/627 -f 664/672/628 665/673/628 666/674/628 -f 667/675/629 668/676/629 665/673/629 -f 665/673/630 669/677/630 666/674/630 -f 353/371/21 462/492/21 347/373/21 -f 466/486/631 229/236/631 230/237/631 -f 661/670/632 278/297/632 294/294/632 -f 658/666/632 278/297/632 661/670/632 -f 670/678/633 665/673/633 664/672/633 -f 665/673/634 671/679/634 669/677/634 -f 458/479/635 463/482/635 662/671/635 -f 656/668/635 662/671/635 463/482/635 -f 279/292/636 283/296/636 657/665/636 -f 658/666/636 657/665/636 283/296/636 -f 672/680/637 665/673/637 668/676/637 -f 667/675/638 665/673/638 670/678/638 -f 278/297/636 658/666/636 283/296/636 -f 667/675/639 673/681/639 668/676/639 -f 294/294/626 281/303/626 662/671/626 -f 668/676/640 673/681/640 674/682/640 -f 667/675/641 675/683/641 673/681/641 -f 672/680/642 668/676/642 674/682/642 -f 671/679/643 665/673/643 672/680/643 -f 672/680/644 674/682/644 676/684/644 -f 454/16/635 656/668/635 463/482/635 -f 677/685/645 678/686/645 679/687/645 -f 674/682/646 673/681/646 680/688/646 -f 669/677/647 671/679/647 681/689/647 -f 682/690/648 677/685/648 666/674/648 -f 664/672/649 679/687/649 670/678/649 -f 671/679/650 672/680/650 676/684/650 -f 677/685/651 679/687/651 664/672/651 -f 683/691/652 681/689/652 684/692/652 -f 675/683/653 685/693/653 686/694/653 -f 682/690/654 669/677/654 681/689/654 -f 679/687/655 675/683/655 670/678/655 -f 681/689/656 671/679/656 676/684/656 -f 675/683/653 686/694/653 673/681/653 -f 683/691/657 682/690/657 681/689/657 -f 682/690/658 666/674/658 669/677/658 -f 677/685/659 664/672/659 666/674/659 -f 670/678/660 675/683/660 667/675/660 -f 687/695/661 674/682/661 680/688/661 -f 681/689/662 676/684/662 684/692/662 -f 683/691/663 688/696/663 682/690/663 -f 688/696/664 677/685/664 682/690/664 -f 673/681/646 686/694/646 680/688/646 -f 676/684/665 674/682/665 687/695/665 -f 684/692/662 676/684/662 687/695/662 -f 688/696/666 678/686/666 677/685/666 -f 689/697/667 680/688/667 690/698/667 -f 687/695/558 689/697/558 691/699/558 -f 692/700/668 693/701/668 694/702/668 -f 685/693/569 693/701/569 686/694/569 -f 695/703/669 696/704/669 678/686/669 -f 684/692/551 687/695/551 691/699/551 -f 696/704/565 685/693/565 678/686/565 -f 680/688/670 686/694/670 690/698/670 -f 684/692/568 691/699/568 697/705/568 -f 698/706/671 690/698/671 692/700/671 -f 690/698/672 686/694/672 693/701/672 -f 696/704/673 693/701/673 685/693/673 -f 699/707/674 683/691/674 697/705/674 -f 678/686/675 685/693/675 679/687/675 -f 688/696/676 683/691/676 699/707/676 -f 678/686/548 688/696/548 695/703/548 -f 700/708/566 694/702/566 696/704/566 -f 695/703/677 688/696/677 699/707/677 -f 696/704/678 694/702/678 693/701/678 -f 683/691/552 684/692/552 697/705/552 -f 679/687/679 685/693/679 675/683/679 -f 687/695/555 680/688/555 689/697/555 -f 689/697/680 698/706/680 701/709/680 -f 689/697/681 690/698/681 698/706/681 -f 691/699/682 689/697/682 701/709/682 -f 690/698/683 693/701/683 692/700/683 -f 702/710/684 703/711/684 704/712/684 -f 705/713/577 691/699/577 701/709/577 -f 703/711/685 705/713/685 704/712/685 -f 702/710/686 706/714/686 707/715/686 -f 704/712/687 705/713/687 708/716/687 -f 707/715/688 699/707/688 703/711/688 -f 692/700/689 694/702/689 709/717/689 -f 701/709/690 698/706/690 710/718/690 -f 699/707/691 697/705/691 703/711/691 -f 707/715/581 700/708/581 695/703/581 -f 711/719/692 692/700/692 709/717/692 -f 703/711/693 697/705/693 705/713/693 -f 695/703/694 699/707/694 707/715/694 -f 698/706/695 711/719/695 710/718/695 -f 697/705/696 691/699/696 705/713/696 -f 700/708/697 712/720/697 694/702/697 -f 700/708/698 696/704/698 695/703/698 -f 709/717/699 694/702/699 712/720/699 -f 708/716/700 701/709/700 710/718/700 -f 698/706/701 692/700/701 711/719/701 -f 705/713/702 701/709/702 708/716/702 -f 707/715/703 703/711/703 702/710/703 -f 706/714/704 712/720/704 700/708/704 -f 706/714/705 700/708/705 707/715/705 -f 716/721/414 711/719/414 717/722/414 -f 714/723/706 706/714/706 715/340/706 -f 712/720/36 713/724/36 709/717/36 -f 702/710/446 718/725/446 715/340/446 -f 708/716/707 719/726/707 720/727/707 -f 711/719/414 709/717/414 717/722/414 -f 704/712/19 708/716/19 720/727/19 -f 710/718/708 711/719/708 716/721/708 -f 702/710/706 715/340/706 706/714/706 -f 718/725/19 704/712/19 720/727/19 -f 702/710/446 704/712/446 718/725/446 -f 710/718/707 719/726/707 708/716/707 -f 710/718/708 716/721/708 719/726/708 -f 714/723/709 712/720/709 706/714/709 -f 717/722/36 709/717/36 713/724/36 -f 447/467/91 446/466/91 243/249/91 -f 713/724/709 712/720/709 714/723/709 -f 656/668/710 582/608/710 584/610/710 -f 582/608/711 137/144/711 537/553/711 -f 582/608/712 196/217/712 137/144/712 -f 536/552/713 537/553/713 137/144/713 +f 94/97/444 21/22/444 660/588/444 +f 142/147/445 83/82/445 141/146/445 +f 658/585/446 661/589/446 662/590/446 +f 662/590/447 656/587/447 658/585/447 +f 660/588/448 21/22/448 115/123/448 +f 241/253/140 96/444/140 108/114/140 +f 662/590/449 281/303/449 458/454/449 +f 459/314/449 458/454/449 281/303/449 +f 656/587/450 454/16/450 659/586/450 +f 466/461/451 24/105/451 229/236/451 +f 294/294/452 662/590/452 661/589/452 +f 287/63/453 657/584/453 57/64/453 +f 664/591/454 665/592/454 666/593/454 +f 667/594/455 668/595/455 665/592/455 +f 665/592/456 669/596/456 666/593/456 +f 353/341/21 462/467/21 347/345/21 +f 466/461/457 229/236/457 230/237/457 +f 661/589/458 278/297/458 294/294/458 +f 658/585/458 278/297/458 661/589/458 +f 670/597/459 665/592/459 664/591/459 +f 665/592/460 671/598/460 669/596/460 +f 458/454/461 463/457/461 662/590/461 +f 656/587/461 662/590/461 463/457/461 +f 279/292/462 283/296/462 657/584/462 +f 658/585/462 657/584/462 283/296/462 +f 672/599/463 665/592/463 668/595/463 +f 667/594/464 665/592/464 670/597/464 +f 278/297/462 658/585/462 283/296/462 +f 294/294/452 281/303/452 662/590/452 +f 671/598/465 665/592/465 672/599/465 +f 454/16/461 656/587/461 463/457/461 +f 716/600/370 711/601/370 717/602/370 +f 714/603/466 706/604/466 715/605/466 +f 712/606/36 713/607/36 709/608/36 +f 702/609/395 718/610/395 715/605/395 +f 708/611/467 719/612/467 720/613/467 +f 711/601/370 709/608/370 717/602/370 +f 704/614/19 708/611/19 720/613/19 +f 710/615/468 711/601/468 716/600/468 +f 702/609/466 715/605/466 706/604/466 +f 718/610/19 704/614/19 720/613/19 +f 702/609/395 704/614/395 718/610/395 +f 710/615/467 719/612/467 708/611/467 +f 710/615/468 716/600/468 719/612/468 +f 714/603/469 712/606/469 706/604/469 +f 717/602/36 709/608/36 713/607/36 +f 447/442/91 446/441/91 243/249/91 +f 713/607/469 712/606/469 714/603/469 +f 656/587/470 582/555/470 584/557/470 +f 582/555/471 137/144/471 537/528/471 +f 582/555/472 196/217/472 137/144/472 +f 536/527/473 537/528/473 137/144/473 f 19/21/70 87/87/70 26/36/70 -f 19/21/714 27/28/714 87/87/714 -f 76/86/715 26/36/715 87/87/715 -f 27/28/716 77/90/716 87/87/716 -f 77/90/717 27/28/717 170/27/717 -f 20/20/718 84/83/718 19/21/718 -f 18/41/719 19/21/719 84/83/719 +f 19/21/474 27/28/474 87/87/474 +f 76/86/475 26/36/475 87/87/475 +f 27/28/476 77/90/476 87/87/476 +f 77/90/477 27/28/477 170/27/477 +f 20/20/478 84/83/478 19/21/478 +f 18/41/479 19/21/479 84/83/479 f 61/107/48 64/192/48 59/108/48 f 119/240/21 64/192/21 61/107/21 f 383/242/21 90/100/21 195/241/21 -f 40/39/720 39/38/720 173/115/720 -f 82/116/721 81/171/721 173/115/721 -f 577/60/722 63/62/722 60/71/722 -f 109/120/723 652/122/723 107/61/723 -f 67/118/724 521/117/724 66/59/724 -f 520/57/725 66/59/725 521/117/725 -f 521/117/726 103/106/726 72/58/726 -f 654/607/727 653/119/727 66/59/727 -f 67/118/728 66/59/728 653/119/728 -f 107/61/729 397/40/729 38/109/729 -f 722/247/730 721/384/730 359/388/730 -f 721/384/380 121/543/380 120/387/380 -f 79/80/731 530/544/731 471/491/731 -f 659/667/732 530/544/732 529/78/732 -f 404/15/733 530/544/733 659/667/733 -f 404/15/734 663/420/734 403/419/734 -f 346/367/21 345/364/21 465/550/21 -f 345/364/21 460/488/21 465/550/21 -f 460/488/21 345/364/21 350/370/21 -f 345/364/256 344/363/256 350/370/256 -f 345/364/13 346/367/13 341/360/13 -f 346/367/21 464/493/21 352/372/21 -f 346/367/21 465/550/21 464/493/21 -f 349/366/41 346/367/41 352/372/41 -f 57/64/735 585/49/735 43/46/735 -f 560/587/491 572/602/491 49/50/491 -f 566/592/41 54/600/41 572/602/41 -f 572/602/21 43/46/21 49/50/21 -f 572/602/21 44/34/21 48/47/21 -f 583/609/21 569/599/21 585/49/21 -f 571/597/19 58/598/19 54/600/19 -f 47/45/21 44/34/21 54/600/21 -f 58/598/21 47/45/21 54/600/21 -f 570/595/355 568/601/355 51/596/355 -f 583/609/21 51/596/21 568/601/21 -f 583/609/21 50/53/21 51/596/21 -f 51/596/21 50/53/21 53/52/21 +f 40/39/480 39/38/480 173/115/480 +f 82/116/481 81/171/481 173/115/481 +f 577/60/482 63/62/482 60/71/482 +f 109/120/483 652/122/483 107/61/483 +f 67/118/484 521/117/484 66/59/484 +f 520/57/485 66/59/485 521/117/485 +f 521/117/486 103/106/486 72/58/486 +f 654/554/487 653/119/487 66/59/487 +f 67/118/488 66/59/488 653/119/488 +f 107/61/489 397/40/489 38/109/489 +f 722/247/490 721/359/490 359/363/490 +f 721/359/336 121/518/336 120/362/336 +f 79/80/491 530/519/491 471/466/491 +f 659/586/492 530/519/492 529/78/492 +f 404/15/493 530/519/493 659/586/493 +f 404/15/494 663/395/494 403/394/494 +f 346/337/21 345/335/21 465/525/21 +f 345/335/21 460/463/21 465/525/21 +f 460/463/21 345/335/21 350/340/21 +f 345/335/212 344/334/212 350/340/212 +f 345/335/13 346/337/13 341/333/13 +f 346/337/21 464/468/21 352/344/21 +f 346/337/21 465/525/21 464/468/21 +f 349/336/41 346/337/41 352/344/41 +f 57/64/495 585/49/495 43/46/495 +f 560/549/397 572/548/397 49/50/397 +f 566/544/41 54/545/41 572/548/41 +f 572/548/21 43/46/21 49/50/21 +f 572/548/21 44/34/21 48/47/21 +f 583/556/21 569/543/21 585/49/21 +f 571/540/19 58/541/19 54/545/19 +f 47/45/21 44/34/21 54/545/21 +f 58/541/21 47/45/21 54/545/21 +f 570/538/311 568/547/311 51/539/311 +f 583/556/21 51/539/21 568/547/21 +f 583/556/21 50/53/21 51/539/21 +f 51/539/21 50/53/21 53/52/21 f 52/51/21 47/45/21 53/52/21 -f 58/598/21 53/52/21 47/45/21 -f 565/594/68 53/52/68 58/598/68 -f 715/340/736 318/339/736 714/723/736 -f 318/339/737 319/336/737 714/723/737 -f 319/336/738 713/724/738 714/723/738 -f 319/336/739 316/334/739 713/724/739 -f 713/724/740 316/334/740 717/722/740 -f 316/334/741 324/342/741 717/722/741 -f 719/726/742 327/350/742 720/727/742 -f 324/342/743 323/344/743 716/721/743 -f 716/721/744 323/344/744 719/726/744 -f 323/344/745 327/350/745 719/726/745 -f 717/722/746 324/342/746 716/721/746 -f 720/727/747 321/345/747 718/725/747 -f 327/350/748 321/345/748 720/727/748 -f 321/345/749 322/338/749 718/725/749 -f 322/338/750 715/340/750 718/725/750 -f 395/472/751 37/132/751 502/444/751 -f 224/431/752 225/235/752 226/271/752 -f 224/431/753 228/450/753 225/235/753 -f 228/450/168 259/267/168 225/235/168 -f 257/434/754 150/451/754 154/164/754 -f 152/154/344 154/164/344 150/451/344 -f 164/163/344 154/164/344 152/154/344 +f 58/541/21 53/52/21 47/45/21 +f 565/537/68 53/52/68 58/541/68 +f 395/447/496 37/132/496 502/419/496 +f 224/406/497 225/235/497 226/271/497 +f 224/406/498 228/425/498 225/235/498 +f 228/425/168 259/267/168 225/235/168 +f 257/409/499 150/426/499 154/164/499 +f 152/154/300 154/164/300 150/426/300 +f 164/163/300 154/164/300 152/154/300 f 151/155/74 126/136/74 153/142/74 -f 127/452/755 131/134/755 126/136/755 -f 261/269/756 131/134/756 127/452/756 -f 267/276/756 131/134/756 261/269/756 -f 427/448/365 429/449/365 426/447/365 -f 429/449/365 428/728/365 426/447/365 -f 426/447/757 428/728/757 452/475/757 -f 428/728/758 450/527/758 452/475/758 -f 450/527/394 513/528/394 452/475/394 -f 303/320/759 302/282/759 308/326/759 -f 308/326/759 302/282/759 300/424/759 -f 407/423/760 300/424/760 416/281/760 -f 416/281/761 430/283/761 407/423/761 -f 425/446/761 407/423/761 430/283/761 -f 371/389/762 261/269/762 151/155/762 -f 98/99/763 97/98/763 96/469/763 -f 108/114/764 96/469/764 97/98/764 -f 104/110/764 108/114/764 97/98/764 -f 377/404/140 380/399/140 362/393/140 -f 514/530/389 380/399/389 381/413/389 -f 496/511/196 236/515/196 497/512/196 -f 724/180/765 423/33/765 56/307/765 -f 375/392/766 513/528/766 429/449/766 -f 592/615/196 504/518/196 505/616/196 -f 455/477/196 459/314/196 453/14/196 +f 127/427/500 131/134/500 126/136/500 +f 261/269/501 131/134/501 127/427/501 +f 267/276/501 131/134/501 261/269/501 +f 427/423/321 429/424/321 426/422/321 +f 429/424/321 428/616/321 426/422/321 +f 426/422/502 428/616/502 452/450/502 +f 428/616/503 450/502/503 452/450/503 +f 450/502/350 513/503/350 452/450/350 +f 303/320/504 302/282/504 308/326/504 +f 308/326/504 302/282/504 300/399/504 +f 407/398/505 300/399/505 416/281/505 +f 416/281/506 430/283/506 407/398/506 +f 425/421/506 407/398/506 430/283/506 +f 371/364/507 261/269/507 151/155/507 +f 98/99/508 97/98/508 96/444/508 +f 108/114/509 96/444/509 97/98/509 +f 104/110/509 108/114/509 97/98/509 +f 377/379/140 380/374/140 362/368/140 +f 514/505/345 380/374/345 381/388/345 +f 496/486/196 236/490/196 497/487/196 +f 724/180/510 423/33/510 56/307/510 +f 375/367/511 513/503/511 429/424/511 +f 592/562/196 504/493/196 505/563/196 +f 455/452/196 459/314/196 453/14/196 f 285/305/196 281/303/196 284/304/196 -f 409/429/196 402/418/196 663/420/196 +f 409/404/196 402/393/196 663/395/196 f 17/17/196 6/8/196 11/18/196 -f 479/498/196 510/521/196 140/145/196 -f 367/397/196 519/534/196 227/234/196 -f 438/463/196 217/231/196 369/395/196 -f 379/394/196 378/310/196 140/145/196 -f 175/177/767 113/129/767 115/123/767 -f 660/669/768 115/123/768 94/97/768 +f 479/473/196 510/496/196 140/145/196 +f 367/372/196 519/509/196 227/234/196 +f 438/438/196 217/231/196 369/370/196 +f 379/369/196 378/310/196 140/145/196 +f 175/177/512 113/129/512 115/123/512 +f 660/588/513 115/123/513 94/97/513 f 117/188/121 113/129/121 122/131/121 -f 76/86/769 73/88/769 122/131/769 +f 76/86/514 73/88/514 122/131/514 f 77/90/36 80/89/36 76/86/36 -f 141/146/421 179/187/421 77/90/421 +f 141/146/377 179/187/377 77/90/377 f 180/185/120 141/146/120 83/82/120 f 177/183/41 83/82/41 94/97/41 f 94/97/13 115/123/13 114/125/13 f 116/124/43 115/123/43 113/129/43 -f 453/14/770 663/420/770 404/15/770 -f 101/102/771 24/105/771 23/490/771 -f 235/24/772 591/246/772 586/25/772 -f 498/26/773 489/505/773 235/24/773 -f 585/49/21 569/599/21 49/50/21 -f 271/128/774 249/256/774 188/126/774 +f 453/14/515 663/395/515 404/15/515 +f 101/102/516 24/105/516 23/465/516 +f 235/24/517 591/246/517 586/25/517 +f 498/26/518 489/480/518 235/24/518 +f 585/49/21 569/543/21 49/50/21 +f 271/128/519 249/256/519 188/126/519 f 249/256/149 252/261/149 188/126/149 f 495/181/196 114/125/196 727/184/196 -f 507/182/775 591/246/775 235/24/775 -f 187/198/776 183/194/776 361/201/776 -f 183/194/777 134/139/777 361/201/777 -f 134/139/385 133/138/385 361/201/385 -f 361/201/778 360/173/778 525/524/778 -f 360/173/385 144/149/385 148/153/385 -f 148/153/779 385/411/779 360/173/779 -f 385/411/780 389/318/780 360/173/780 -f 360/173/781 389/318/781 199/209/781 -f 578/542/782 476/494/782 361/201/782 -f 476/494/783 472/454/783 361/201/783 -f 472/454/784 187/198/784 361/201/784 -f 199/209/785 198/208/785 360/173/785 -f 198/208/786 399/415/786 360/173/786 -f 360/173/787 399/415/787 398/414/787 -f 483/200/788 482/501/788 361/201/788 -f 482/501/789 576/523/789 361/201/789 -f 576/523/132 578/542/132 361/201/132 -f 398/414/790 158/157/790 360/173/790 -f 158/157/791 157/156/791 360/173/791 -f 360/173/792 157/156/792 525/524/792 -f 525/524/789 522/199/789 361/201/789 +f 507/182/520 591/246/520 235/24/520 +f 187/198/521 183/194/521 361/201/521 +f 183/194/522 134/139/522 361/201/522 +f 134/139/341 133/138/341 361/201/341 +f 361/201/523 360/173/523 525/499/523 +f 360/173/341 144/149/341 148/153/341 +f 148/153/524 385/386/524 360/173/524 +f 385/386/525 389/318/525 360/173/525 +f 360/173/526 389/318/526 199/209/526 +f 578/517/527 476/469/527 361/201/527 +f 476/469/528 472/429/528 361/201/528 +f 472/429/529 187/198/529 361/201/529 +f 199/209/530 198/208/530 360/173/530 +f 198/208/531 399/390/531 360/173/531 +f 360/173/532 399/390/532 398/389/532 +f 483/200/533 482/476/533 361/201/533 +f 482/476/534 576/498/534 361/201/534 +f 576/498/132 578/517/132 361/201/132 +f 398/389/535 158/157/535 360/173/535 +f 158/157/536 157/156/536 360/173/536 +f 360/173/537 157/156/537 525/499/537 +f 525/499/534 522/199/534 361/201/534 f 110/176/104 211/315/104 210/219/104 f 188/126/149 252/261/149 383/242/149 -f 235/24/153 119/240/153 721/384/153 -f 721/384/153 722/247/153 235/24/153 -f 235/24/62 489/505/62 274/127/62 -f 416/281/176 300/424/176 302/282/176 -f 291/302/793 55/48/793 293/306/793 -f 424/445/794 451/474/794 381/413/794 -f 451/474/795 515/531/795 381/413/795 -f 381/413/196 378/310/196 424/445/196 -f 424/445/196 378/310/196 417/309/196 +f 235/24/153 119/240/153 721/359/153 +f 721/359/153 722/247/153 235/24/153 +f 235/24/62 489/480/62 274/127/62 +f 416/281/176 300/399/176 302/282/176 +f 291/302/538 55/48/538 293/306/538 +f 424/420/539 451/449/539 381/388/539 +f 451/449/540 515/506/540 381/388/540 +f 381/388/196 378/310/196 424/420/196 +f 424/420/196 378/310/196 417/309/196 f 378/310/196 301/325/196 307/308/196 f 301/325/196 306/324/196 307/308/196 f 293/306/41 48/47/41 724/180/41 f 48/47/41 44/34/41 724/180/41 -f 30/54/196 29/56/196 388/476/196 -f 388/476/196 130/205/196 6/8/196 +f 30/54/196 29/56/196 388/451/196 +f 388/451/196 130/205/196 6/8/196 f 130/205/196 139/207/196 11/18/196 f 139/207/196 194/204/196 11/18/196 f 11/18/196 6/8/196 130/205/196 -f 6/8/196 409/429/196 388/476/196 -f 409/429/196 663/420/196 388/476/196 -f 162/161/196 30/54/196 388/476/196 -f 211/315/196 160/159/196 388/476/196 -f 160/159/196 162/161/196 388/476/196 -f 418/437/196 292/316/196 286/300/196 +f 6/8/196 409/404/196 388/451/196 +f 409/404/196 663/395/196 388/451/196 +f 162/161/196 30/54/196 388/451/196 +f 211/315/196 160/159/196 388/451/196 +f 160/159/196 162/161/196 388/451/196 +f 418/412/196 292/316/196 286/300/196 f 292/316/196 296/313/196 281/303/196 f 286/300/196 292/316/196 281/303/196 f 296/313/196 211/315/196 459/314/196 -f 211/315/196 388/476/196 663/420/196 -f 453/14/196 211/315/196 663/420/196 +f 211/315/196 388/451/196 663/395/196 +f 453/14/196 211/315/196 663/395/196 f 459/314/196 281/303/196 296/313/196 f 200/210/202 199/209/202 202/319/202 f 202/319/204 199/209/204 389/318/204 -f 364/374/267 216/220/267 213/222/267 -f 384/380/262 385/411/262 148/153/262 -f 359/388/796 357/376/796 722/247/796 -f 365/382/797 373/383/797 371/389/797 -f 356/386/798 355/401/798 363/391/798 -f 375/392/267 370/385/267 363/391/267 -f 379/394/281 268/277/281 262/270/281 -f 231/238/799 469/487/799 468/369/799 -f 468/369/800 386/406/800 231/238/800 -f 374/400/196 140/145/196 376/402/196 -f 140/145/196 381/413/196 376/402/196 -f 224/431/306 226/271/306 517/432/306 -f 265/273/307 264/274/307 257/434/307 -f 400/416/312 399/415/312 410/435/312 -f 399/415/314 198/208/314 201/436/314 -f 419/438/315 420/440/315 55/48/315 -f 422/442/99 123/190/99 212/375/99 -f 123/190/99 75/75/99 212/375/99 -f 723/244/801 233/443/801 360/173/801 -f 210/219/802 291/302/802 724/180/802 -f 106/112/104 210/219/104 212/375/104 -f 512/433/328 259/267/328 228/450/328 -f 150/451/329 257/434/329 264/274/329 -f 127/452/330 126/136/330 151/155/330 -f 183/194/339 3/6/339 2/2/339 -f 221/225/176 223/551/176 445/483/176 -f 443/484/176 242/549/176 244/254/176 -f 464/493/803 465/550/803 725/548/803 -f 230/237/259 394/471/259 386/406/259 -f 462/492/804 79/80/804 471/491/804 -f 354/379/21 347/373/21 467/485/21 -f 366/405/196 374/400/196 236/515/196 -f 374/400/196 376/402/196 239/290/196 -f 236/515/196 374/400/196 239/290/196 -f 118/403/196 234/258/196 16/272/196 -f 376/402/196 118/403/196 239/290/196 -f 505/616/196 504/518/196 366/405/196 -f 236/515/196 501/514/196 366/405/196 -f 501/514/196 505/616/196 366/405/196 -f 14/291/196 239/290/196 118/403/196 -f 274/127/805 489/505/805 237/504/805 -f 470/407/806 499/517/806 723/244/806 -f 231/238/806 470/407/806 723/244/806 -f 486/522/384 575/605/384 576/523/384 -f 157/156/385 310/328/385 313/327/385 -f 508/526/387 505/616/387 501/514/387 -f 450/527/140 428/728/140 429/449/140 -f 158/157/385 398/414/385 415/536/385 -f 522/199/384 511/525/384 487/519/384 +f 364/347/223 216/220/223 213/222/223 +f 384/355/218 385/386/218 148/153/218 +f 359/363/541 357/349/541 722/247/541 +f 365/357/542 373/358/542 371/364/542 +f 356/361/543 355/376/543 363/366/543 +f 375/367/223 370/360/223 363/366/223 +f 379/369/237 268/277/237 262/270/237 +f 231/238/544 469/462/544 468/339/544 +f 468/339/545 386/381/545 231/238/545 +f 374/375/196 140/145/196 376/377/196 +f 140/145/196 381/388/196 376/377/196 +f 224/406/262 226/271/262 517/407/262 +f 265/273/263 264/274/263 257/409/263 +f 400/391/268 399/390/268 410/410/268 +f 399/390/270 198/208/270 201/411/270 +f 419/413/271 420/415/271 55/48/271 +f 422/417/99 123/190/99 212/348/99 +f 123/190/99 75/75/99 212/348/99 +f 723/244/546 233/418/546 360/173/546 +f 210/219/547 291/302/547 724/180/547 +f 106/112/104 210/219/104 212/348/104 +f 512/408/284 259/267/284 228/425/284 +f 150/426/285 257/409/285 264/274/285 +f 127/427/286 126/136/286 151/155/286 +f 183/194/295 3/6/295 2/2/295 +f 221/225/176 223/526/176 445/458/176 +f 443/459/176 242/524/176 244/254/176 +f 464/468/548 465/525/548 725/523/548 +f 230/237/215 394/446/215 386/381/215 +f 462/467/549 79/80/549 471/466/549 +f 354/354/21 347/345/21 467/460/21 +f 366/380/196 374/375/196 236/490/196 +f 374/375/196 376/377/196 239/290/196 +f 236/490/196 374/375/196 239/290/196 +f 118/378/196 234/258/196 16/272/196 +f 376/377/196 118/378/196 239/290/196 +f 505/563/196 504/493/196 366/380/196 +f 236/490/196 501/489/196 366/380/196 +f 501/489/196 505/563/196 366/380/196 +f 14/291/196 239/290/196 118/378/196 +f 274/127/550 489/480/550 237/479/550 +f 470/382/551 499/492/551 723/244/551 +f 231/238/551 470/382/551 723/244/551 +f 486/497/340 575/552/340 576/498/340 +f 157/156/341 310/328/341 313/327/341 +f 508/501/343 505/563/343 501/489/343 +f 450/502/140 428/616/140 429/424/140 +f 158/157/341 398/389/341 415/511/341 +f 522/199/340 511/500/340 487/494/340 f 16/272/196 234/258/196 251/260/196 -f 498/26/807 586/25/807 508/526/807 -f 15/257/808 249/256/808 271/128/808 -f 15/257/412 25/287/412 14/291/412 +f 498/26/552 586/25/552 508/501/552 +f 15/257/553 249/256/553 271/128/553 +f 15/257/368 25/287/368 14/291/368 f 239/290/196 14/291/196 277/289/196 -f 214/221/809 221/225/809 213/222/809 -f 221/225/810 444/227/810 213/222/810 -f 442/465/810 244/254/810 213/222/810 -f 244/254/811 241/253/811 213/222/811 -f 241/253/812 108/114/812 213/222/812 -f 213/222/813 444/227/813 442/465/813 -f 166/381/424 148/153/424 146/151/424 -f 725/548/814 465/550/814 533/547/814 -f 436/453/262 186/462/262 187/198/262 -f 726/77/815 725/548/815 730/729/815 -f 476/494/314 578/542/314 526/538/314 -f 236/515/371 239/290/371 238/285/371 -f 649/573/816 552/577/816 549/575/816 -f 656/668/817 584/610/817 658/666/817 -f 584/610/818 57/64/818 658/666/818 -f 78/79/616 464/493/616 726/77/616 -f 196/217/819 730/729/819 725/548/819 -f 659/667/820 529/78/820 726/77/820 -f 241/253/140 95/470/140 96/469/140 -f 287/63/821 279/292/821 657/665/821 -f 582/608/822 656/668/822 196/217/822 +f 214/221/554 221/225/554 213/222/554 +f 221/225/555 444/227/555 213/222/555 +f 442/440/555 244/254/555 213/222/555 +f 244/254/556 241/253/556 213/222/556 +f 241/253/557 108/114/557 213/222/557 +f 213/222/558 444/227/558 442/440/558 +f 166/356/380 148/153/380 146/151/380 +f 725/523/559 465/525/559 533/522/559 +f 436/428/218 186/437/218 187/198/218 +f 726/77/560 725/523/560 730/617/560 +f 476/469/270 578/517/270 526/513/270 +f 236/490/327 239/290/327 238/285/327 +f 656/587/561 584/557/561 658/585/561 +f 584/557/562 57/64/562 658/585/562 +f 78/79/442 464/468/442 726/77/442 +f 196/217/563 730/617/563 725/523/563 +f 659/586/564 529/78/564 726/77/564 +f 241/253/140 95/445/140 96/444/140 +f 287/63/565 279/292/565 657/584/565 +f 582/555/566 656/587/566 196/217/566 f 383/242/196 88/92/196 728/93/196 -f 79/80/823 529/78/823 530/544/823 -f 659/667/824 454/16/824 404/15/824 -f 404/15/825 408/425/825 530/544/825 -f 572/602/21 48/47/21 43/46/21 -f 572/602/21 54/600/21 44/34/21 -f 264/274/826 259/267/826 371/389/826 -f 259/267/827 512/433/827 371/389/827 -f 371/389/140 262/270/140 261/269/140 -f 151/155/828 152/154/828 371/389/828 -f 152/154/829 264/274/829 371/389/829 -f 377/404/140 381/413/140 380/399/140 -f 496/511/196 501/514/196 236/515/196 -f 729/243/830 723/244/830 358/378/830 -f 430/283/831 302/282/831 375/392/831 -f 302/282/832 305/322/832 375/392/832 -f 375/392/833 380/399/833 513/528/833 -f 429/449/831 430/283/831 375/392/831 -f 592/615/196 593/617/196 504/518/196 -f 455/477/196 456/481/196 459/314/196 +f 79/80/567 529/78/567 530/519/567 +f 659/586/568 454/16/568 404/15/568 +f 404/15/569 408/400/569 530/519/569 +f 572/548/21 48/47/21 43/46/21 +f 572/548/21 54/545/21 44/34/21 +f 264/274/570 259/267/570 371/364/570 +f 259/267/571 512/408/571 371/364/571 +f 371/364/140 262/270/140 261/269/140 +f 151/155/572 152/154/572 371/364/572 +f 152/154/573 264/274/573 371/364/573 +f 377/379/140 381/388/140 380/374/140 +f 496/486/196 501/489/196 236/490/196 +f 729/243/574 723/244/574 358/351/574 +f 430/283/575 302/282/575 375/367/575 +f 302/282/576 305/322/576 375/367/576 +f 375/367/577 380/374/577 513/503/577 +f 429/424/575 430/283/575 375/367/575 +f 592/562/196 593/564/196 504/493/196 +f 455/452/196 456/456/196 459/314/196 f 285/305/196 286/300/196 281/303/196 -f 409/429/196 405/421/196 402/418/196 +f 409/404/196 405/396/196 402/393/196 f 17/17/196 8/10/196 6/8/196 f 155/166/196 161/160/196 160/159/196 f 160/159/196 140/145/196 314/331/196 f 140/145/196 138/143/196 10/12/196 f 140/145/196 10/12/196 13/13/196 -f 390/408/196 155/166/196 160/159/196 +f 390/383/196 155/166/196 160/159/196 f 205/213/196 299/312/196 160/159/196 -f 299/312/196 390/408/196 160/159/196 -f 412/426/196 411/428/196 160/159/196 -f 411/428/196 203/211/196 160/159/196 +f 299/312/196 390/383/196 160/159/196 +f 412/401/196 411/403/196 160/159/196 +f 411/403/196 203/211/196 160/159/196 f 203/211/196 205/213/196 160/159/196 f 140/145/196 13/13/196 190/197/196 -f 140/145/196 190/197/196 433/457/196 -f 314/331/196 431/458/196 160/159/196 -f 431/458/196 412/426/196 160/159/196 -f 140/145/196 433/457/196 475/495/196 -f 573/603/196 140/145/196 528/541/196 -f 475/495/196 528/541/196 140/145/196 -f 573/603/196 484/502/196 140/145/196 -f 484/502/196 479/498/196 140/145/196 -f 510/521/196 309/332/196 140/145/196 +f 140/145/196 190/197/196 433/432/196 +f 314/331/196 431/433/196 160/159/196 +f 431/433/196 412/401/196 160/159/196 +f 140/145/196 433/432/196 475/470/196 +f 573/550/196 140/145/196 528/516/196 +f 475/470/196 528/516/196 140/145/196 +f 573/550/196 484/477/196 140/145/196 +f 484/477/196 479/473/196 140/145/196 +f 510/496/196 309/332/196 140/145/196 f 309/332/196 314/331/196 140/145/196 -f 129/140/196 132/137/196 379/394/196 +f 129/140/196 132/137/196 379/369/196 f 132/137/196 269/278/196 268/277/196 -f 268/277/196 379/394/196 132/137/196 -f 379/394/196 368/396/196 149/165/196 -f 227/234/196 263/233/196 368/396/196 -f 263/233/196 149/165/196 368/396/196 -f 227/234/196 368/396/196 367/397/196 -f 149/165/196 129/140/196 379/394/196 +f 268/277/196 379/369/196 132/137/196 +f 379/369/196 368/371/196 149/165/196 +f 227/234/196 263/233/196 368/371/196 +f 263/233/196 149/165/196 368/371/196 +f 227/234/196 368/371/196 367/372/196 +f 149/165/196 129/140/196 379/369/196 f 110/176/196 111/175/196 91/96/196 f 92/95/196 243/249/196 211/315/196 -f 243/249/196 446/466/196 211/315/196 +f 243/249/196 446/441/196 211/315/196 f 110/176/196 91/96/196 211/315/196 f 91/96/196 92/95/196 211/315/196 -f 369/395/196 211/315/196 446/466/196 +f 369/370/196 211/315/196 446/441/196 f 217/231/196 218/230/196 215/229/196 -f 215/229/196 369/395/196 217/231/196 -f 446/466/196 438/463/196 369/395/196 -f 378/310/196 381/413/196 140/145/196 -f 140/145/196 160/159/196 368/396/196 -f 160/159/196 211/315/196 369/395/196 -f 368/396/196 160/159/196 369/395/196 -f 368/396/196 379/394/196 140/145/196 +f 215/229/196 369/370/196 217/231/196 +f 446/441/196 438/438/196 369/370/196 +f 378/310/196 381/388/196 140/145/196 +f 140/145/196 160/159/196 368/371/196 +f 160/159/196 211/315/196 369/370/196 +f 368/371/196 160/159/196 369/370/196 +f 368/371/196 379/369/196 140/145/196 f 727/184/196 114/125/196 116/124/196 f 728/93/196 88/92/196 90/100/196 -f 89/91/609 69/67/609 88/92/609 -f 495/181/834 727/184/834 116/124/834 +f 89/91/435 69/67/435 88/92/435 +f 495/181/578 727/184/578 116/124/578 f 177/183/13 94/97/13 114/125/13 -f 729/243/835 208/216/835 231/238/835 -f 137/144/836 209/377/836 364/374/836 -f 364/374/837 212/375/837 75/75/837 -f 34/81/838 137/144/838 364/374/838 -f 233/443/21 499/517/21 470/407/21 -f 494/510/196 240/248/196 722/247/196 -f 383/242/834 728/93/834 90/100/834 -f 721/384/839 119/240/839 121/543/839 -f 101/102/840 9/11/840 24/105/840 -f 359/388/841 209/377/841 357/376/841 -f 726/77/842 464/493/842 725/548/842 -f 196/217/843 659/667/843 730/729/843 -f 723/244/830 360/173/830 358/378/830 -f 358/378/844 196/217/844 208/216/844 -f 208/216/845 729/243/845 358/378/845 +f 729/243/579 208/216/579 231/238/579 +f 137/144/580 209/350/580 364/347/580 +f 364/347/581 212/348/581 75/75/581 +f 34/81/582 137/144/582 364/347/582 +f 233/418/21 499/492/21 470/382/21 +f 494/485/196 240/248/196 722/247/196 +f 383/242/578 728/93/578 90/100/578 +f 721/359/583 119/240/583 121/518/583 +f 101/102/584 9/11/584 24/105/584 +f 359/363/585 209/350/585 357/349/585 +f 726/77/586 464/468/586 725/523/586 +f 196/217/587 659/586/587 730/617/587 +f 723/244/574 360/173/574 358/351/574 +f 358/351/588 196/217/588 208/216/588 +f 208/216/589 729/243/589 358/351/589 +s 1 +f 315/618/590 316/619/591 317/620/592 +f 317/620/592 319/621/593 320/622/594 +f 322/623/595 318/624/596 715/605/597 +f 318/624/596 320/622/594 319/621/593 +f 325/625/598 320/622/594 318/624/596 +f 316/619/591 319/621/593 317/620/592 +f 324/626/599 316/619/591 315/618/590 +f 324/626/599 315/618/590 326/627/600 +f 323/628/601 324/626/599 326/627/600 +f 322/623/595 321/629/602 328/630/603 +f 315/618/590 329/631/604 330/632/605 +f 326/627/600 315/618/590 330/632/605 +f 331/633/606 327/634/607 332/635/608 +f 321/629/602 327/634/607 331/633/606 +f 328/630/603 321/629/602 331/633/606 +f 323/628/601 326/627/600 332/635/608 +f 333/636/609 334/637/610 325/625/598 +f 328/630/603 325/625/598 322/623/595 +f 335/638/611 320/622/594 334/637/610 +f 317/620/592 320/622/594 335/638/611 +f 315/618/590 317/620/592 329/631/604 +f 336/639/612 332/635/608 337/640/613 +f 338/641/614 333/636/609 328/630/603 +f 333/636/609 325/625/598 328/630/603 +f 337/640/613 326/627/600 330/632/605 +f 329/631/604 317/620/592 335/638/611 +f 327/634/607 323/628/601 332/635/608 +f 325/625/598 334/637/610 320/622/594 +f 332/635/608 326/627/600 337/640/613 +f 339/343/615 340/342/616 333/636/609 +f 338/641/614 331/633/606 336/639/612 +f 333/636/609 340/342/616 334/637/610 +f 325/625/598 318/624/596 322/623/595 +f 331/633/606 332/635/608 336/639/612 +f 328/630/603 331/633/606 338/641/614 +f 336/639/612 337/640/613 341/333/617 +f 342/352/618 335/638/611 343/353/619 +f 337/640/613 330/632/605 344/334/620 +f 339/343/615 333/636/609 338/641/614 +f 335/638/611 334/637/610 343/353/619 +f 343/353/619 334/637/610 340/342/616 +f 330/632/605 329/631/604 348/346/621 +f 344/334/620 330/632/605 348/346/621 +f 329/631/604 335/638/611 342/352/618 +f 349/336/622 339/343/615 338/641/614 +f 338/641/614 336/639/612 349/336/622 +f 341/333/617 337/640/613 344/334/620 +f 329/631/604 342/352/618 348/346/621 +f 349/336/622 336/639/612 341/333/617 +f 648/580/623 538/642/624 644/578/625 +f 539/643/626 538/642/624 648/580/623 +f 540/644/627 541/645/628 542/646/629 +f 543/647/630 544/648/631 545/649/632 +f 546/650/633 547/651/634 539/643/626 +f 548/652/635 544/648/631 543/647/630 +f 643/575/636 544/648/631 548/652/635 +f 550/653/637 540/644/627 542/646/629 +f 539/643/626 648/580/623 549/654/638 +f 551/655/606 550/653/637 542/646/629 +f 550/653/637 647/530/639 646/529/640 +f 550/653/637 646/529/640 540/644/627 +f 552/656/641 649/534/642 647/530/639 +f 544/648/631 643/575/636 538/642/624 +f 539/643/626 547/651/634 538/642/624 +f 646/529/640 645/579/643 548/652/635 +f 545/649/632 538/642/624 547/651/634 +f 548/652/635 540/644/627 646/529/640 +f 648/580/623 650/532/644 549/654/638 +f 548/652/635 543/647/630 541/645/628 +f 540/644/627 548/652/635 541/645/628 +f 544/648/631 538/642/624 545/649/632 +f 643/575/636 548/652/635 645/579/643 +f 643/575/636 644/578/625 538/642/624 +f 647/530/639 550/653/637 552/656/641 +f 546/650/633 553/657/645 547/651/634 +f 554/658/646 547/651/634 553/657/645 +f 555/659/647 545/649/632 554/658/646 +f 552/656/641 550/653/637 551/655/606 +f 554/658/646 553/657/645 556/546/619 +f 543/647/630 545/649/632 555/659/647 +f 546/650/633 539/643/626 549/654/638 +f 545/649/632 547/651/634 554/658/646 +f 557/660/648 558/661/649 559/662/650 +f 560/549/651 561/542/652 558/661/649 +f 562/663/612 542/646/629 563/664/653 +f 558/661/649 546/650/633 559/662/650 +f 559/662/650 551/655/606 557/660/648 +f 541/645/628 543/647/630 564/665/654 +f 558/661/649 561/542/652 553/657/645 +f 558/661/649 553/657/645 546/650/633 +f 563/664/653 541/645/628 564/665/654 +f 542/646/629 541/645/628 563/664/653 +f 549/654/638 552/656/641 559/662/650 +f 551/655/606 542/646/629 562/663/612 +f 557/660/648 551/655/606 562/663/612 +f 559/662/650 552/656/641 551/655/606 +f 559/662/650 546/650/633 549/654/638 +f 543/647/630 555/659/647 564/665/654 +f 556/546/619 553/657/645 561/542/652 +f 557/660/648 562/663/612 566/544/655 +f 564/665/654 555/659/647 567/536/621 +f 565/537/656 564/665/654 567/536/621 +f 566/544/655 560/549/651 557/660/648 +f 563/664/653 564/665/654 565/537/656 +f 555/659/647 554/658/646 570/538/657 +f 571/540/658 563/664/653 565/537/656 +f 570/538/657 554/658/646 556/546/619 +f 566/544/655 562/663/612 571/540/658 +f 555/659/647 570/538/657 567/536/621 +f 560/549/651 558/661/649 557/660/648 +f 562/663/612 563/664/653 571/540/658 +f 597/568/659 598/569/660 603/666/661 +f 604/667/662 596/567/663 602/573/664 +f 605/668/665 604/667/662 602/573/664 +f 605/668/665 602/573/664 600/571/666 +f 598/569/660 606/669/667 603/666/661 +f 601/572/668 607/670/669 606/669/667 +f 608/671/670 599/570/671 609/672/672 +f 607/670/669 610/673/673 606/669/667 +f 601/572/668 606/669/667 598/569/660 +f 603/666/661 606/669/667 611/674/674 +f 599/570/671 597/568/659 609/672/672 +f 596/567/663 612/675/675 594/565/676 +f 600/571/666 599/570/671 608/671/670 +f 605/668/665 600/571/666 608/671/670 +f 594/565/676 607/670/669 601/572/668 +f 607/670/669 613/676/677 610/673/673 +f 606/669/667 610/673/673 611/674/674 +f 597/568/659 603/666/661 609/672/672 +f 612/675/675 607/670/669 594/565/676 +f 604/667/662 612/675/675 596/567/663 +f 603/666/661 611/674/674 614/677/678 +f 608/671/670 609/672/672 615/678/679 +f 615/678/679 609/672/672 614/677/678 +f 609/672/672 603/666/661 614/677/678 +f 616/679/680 617/680/681 618/681/682 +f 612/675/675 613/676/677 607/670/669 +f 619/682/683 620/683/684 621/684/685 +f 622/685/686 623/686/687 624/687/688 +f 621/684/685 622/685/686 619/682/683 +f 615/678/679 614/677/678 625/688/689 +f 617/680/681 615/678/679 618/681/682 +f 626/689/690 611/674/674 627/690/691 +f 617/680/681 605/668/665 608/671/670 +f 614/677/678 611/674/674 626/689/690 +f 620/683/684 617/680/681 616/679/680 +f 621/684/685 620/683/684 616/679/680 +f 614/677/678 626/689/690 625/688/689 +f 604/667/662 619/682/683 612/675/675 +f 622/685/686 624/687/688 613/676/677 +f 619/682/683 613/676/677 612/675/675 +f 617/680/681 620/683/684 605/668/665 +f 620/683/684 619/682/683 604/667/662 +f 611/674/674 610/673/673 627/690/691 +f 622/685/686 613/676/677 619/682/683 +f 628/691/692 623/686/687 622/685/686 +f 627/690/691 610/673/673 624/687/688 +f 618/681/682 615/678/679 625/688/689 +f 613/676/677 624/687/688 610/673/673 +f 617/680/681 608/671/670 615/678/679 +f 605/668/665 620/683/684 604/667/662 +f 628/691/692 629/577/693 623/686/687 +f 630/692/694 631/693/695 632/535/696 +f 626/689/690 627/690/691 633/694/697 +f 626/689/690 633/694/697 634/695/698 +f 628/691/692 622/685/686 621/684/685 +f 635/576/699 636/696/700 637/574/701 +f 631/693/695 625/688/689 634/695/698 +f 633/694/697 635/576/699 638/582/702 +f 636/696/700 624/687/688 623/686/687 +f 634/695/698 633/694/697 638/582/702 +f 639/697/703 628/691/692 621/684/685 +f 616/679/680 618/681/682 630/692/694 +f 640/581/704 629/577/693 628/691/692 +f 625/688/689 626/689/690 634/695/698 +f 639/697/703 616/679/680 630/692/694 +f 618/681/682 625/688/689 631/693/695 +f 621/684/685 616/679/680 639/697/703 +f 636/696/700 623/686/687 637/574/701 +f 631/693/695 634/695/698 641/531/705 +f 627/690/691 624/687/688 636/696/700 +f 637/574/701 623/686/687 629/577/693 +f 641/531/705 634/695/698 638/582/702 +f 633/694/697 636/696/700 635/576/699 +f 632/535/696 631/693/695 641/531/705 +f 633/694/697 627/690/691 636/696/700 +f 630/692/694 618/681/682 631/693/695 +f 642/533/706 640/581/704 639/697/703 +f 649/534/642 549/654/638 650/532/644 +f 640/581/704 628/691/692 639/697/703 +f 639/697/703 630/692/694 642/533/706 +f 642/533/706 630/692/694 632/535/696 +f 667/594/707 673/698/708 668/595/709 +f 668/595/709 673/698/708 674/699/710 +f 667/594/707 675/700/711 673/698/708 +f 672/599/712 668/595/709 674/699/710 +f 672/599/712 674/699/710 676/701/713 +f 677/702/714 678/703/715 679/704/716 +f 674/699/710 673/698/708 680/705/717 +f 669/596/718 671/598/719 681/706/720 +f 682/707/721 677/702/714 666/593/722 +f 664/591/723 679/704/716 670/597/724 +f 671/598/719 672/599/712 676/701/713 +f 677/702/714 679/704/716 664/591/723 +f 683/708/725 681/706/720 684/709/726 +f 675/700/711 685/710/727 686/711/728 +f 682/707/721 669/596/718 681/706/720 +f 679/704/716 675/700/711 670/597/724 +f 681/706/720 671/598/719 676/701/713 +f 675/700/711 686/711/728 673/698/708 +f 683/708/725 682/707/721 681/706/720 +f 682/707/721 666/593/722 669/596/718 +f 677/702/714 664/591/723 666/593/722 +f 670/597/724 675/700/711 667/594/707 +f 687/712/729 674/699/710 680/705/717 +f 681/706/720 676/701/713 684/709/726 +f 683/708/725 688/713/730 682/707/721 +f 688/713/730 677/702/714 682/707/721 +f 673/698/708 686/711/728 680/705/717 +f 676/701/713 674/699/710 687/712/729 +f 684/709/726 676/701/713 687/712/729 +f 688/713/730 678/703/715 677/702/714 +f 689/714/731 680/705/717 690/715/732 +f 687/712/729 689/714/731 691/716/733 +f 692/717/734 693/718/735 694/719/736 +f 685/710/727 693/718/735 686/711/728 +f 695/720/737 696/721/738 678/703/715 +f 684/709/726 687/712/729 691/716/733 +f 696/721/738 685/710/727 678/703/715 +f 680/705/717 686/711/728 690/715/732 +f 684/709/726 691/716/733 697/722/739 +f 698/723/740 690/715/732 692/717/734 +f 690/715/732 686/711/728 693/718/735 +f 696/721/738 693/718/735 685/710/727 +f 699/724/741 683/708/725 697/722/739 +f 678/703/715 685/710/727 679/704/716 +f 688/713/730 683/708/725 699/724/741 +f 678/703/715 688/713/730 695/720/737 +f 700/725/742 694/719/736 696/721/738 +f 695/720/737 688/713/730 699/724/741 +f 696/721/738 694/719/736 693/718/735 +f 683/708/725 684/709/726 697/722/739 +f 679/704/716 685/710/727 675/700/711 +f 687/712/729 680/705/717 689/714/731 +f 689/714/731 698/723/740 701/726/743 +f 689/714/731 690/715/732 698/723/740 +f 691/716/733 689/714/731 701/726/743 +f 690/715/732 693/718/735 692/717/734 +f 702/609/744 703/727/745 704/614/746 +f 705/728/747 691/716/733 701/726/743 +f 703/727/745 705/728/747 704/614/746 +f 702/609/744 706/604/748 707/729/749 +f 704/614/746 705/728/747 708/611/750 +f 707/729/749 699/724/741 703/727/745 +f 692/717/734 694/719/736 709/608/751 +f 701/726/743 698/723/740 710/615/752 +f 699/724/741 697/722/739 703/727/745 +f 707/729/749 700/725/742 695/720/737 +f 711/601/753 692/717/734 709/608/751 +f 703/727/745 697/722/739 705/728/747 +f 695/720/737 699/724/741 707/729/749 +f 698/723/740 711/601/753 710/615/752 +f 697/722/739 691/716/733 705/728/747 +f 700/725/742 712/606/754 694/719/736 +f 700/725/742 696/721/738 695/720/737 +f 709/608/751 694/719/736 712/606/754 +f 708/611/750 701/726/743 710/615/752 +f 698/723/740 692/717/734 711/601/753 +f 705/728/747 701/726/743 708/611/750 +f 707/729/749 703/727/745 702/609/744 +f 706/604/748 712/606/754 700/725/742 +f 706/604/748 700/725/742 707/729/749 +f 715/605/597 318/624/596 714/603/755 +f 318/624/596 319/621/593 714/603/755 +f 319/621/593 713/607/756 714/603/755 +f 319/621/593 316/619/591 713/607/756 +f 713/607/756 316/619/591 717/602/757 +f 316/619/591 324/626/599 717/602/757 +f 719/612/758 327/634/607 720/613/759 +f 324/626/599 323/628/601 716/600/760 +f 716/600/760 323/628/601 719/612/758 +f 323/628/601 327/634/607 719/612/758 +f 717/602/757 324/626/599 716/600/760 +f 720/613/759 321/629/602 718/610/761 +f 327/634/607 321/629/602 720/613/759 +f 321/629/602 322/623/595 718/610/761 +f 322/623/595 715/605/597 718/610/761 +f 649/534/642 552/656/641 549/654/638 l 295 296 diff --git a/assets/shader/default.fsh.glsl b/assets/shader/default.fsh.glsl index 6221322..7a3f757 100644 --- a/assets/shader/default.fsh.glsl +++ b/assets/shader/default.fsh.glsl @@ -4,19 +4,25 @@ precision mediump float; varying vec2 texcoord; varying vec3 v_normal; varying float v_position; +varying vec3 v_cam_normal; uniform sampler2D u_image0; uniform vec2 fog; void main() { + vec3 N = normalize(v_cam_normal); + vec3 L = vec3(0.0, 0.0, 1.0); + float NdotL = dot(N, L)/ 3.0 + 1.0 + (1.0/3.0); + float fogAmount = smoothstep(fog.x, fog.y, v_position); - float light = -dot(vec3(0.0, -1.0, 0.0), v_normal) / 3.0 + 1.0 + (1.0/3.0); + float light = -dot(vec3(0.1, -1.0, 0.3), v_normal) / 3.0 + 1.0; gl_FragColor = texture2D(u_image0, texcoord) * vec4(1.0 - fogAmount, 1.0 - fogAmount, 1.0 - fogAmount, 1.0 - fogAmount) - * vec4(light, light, light, 1.0); + * vec4(light, light, light, 1.0) + * vec4(NdotL, NdotL, NdotL, 1.0); if(gl_FragColor.a < 0.0000001) discard; } \ No newline at end of file diff --git a/assets/shader/default.vsh.glsl b/assets/shader/default.vsh.glsl index 0360638..bca1f12 100644 --- a/assets/shader/default.vsh.glsl +++ b/assets/shader/default.vsh.glsl @@ -9,6 +9,7 @@ uniform vec3 wpos; varying vec2 texcoord; varying vec3 v_normal; varying float v_position; +varying vec3 v_cam_normal; uniform mat4 view; uniform mat4 proj; @@ -23,8 +24,12 @@ void main() { texcoord = uv; v_normal = normal; + - gl_Position = proj * view * drawProj * vec4(pos, 1.0); + vec4 space_pos = view * drawProj * vec4(pos, 1.0); - v_position = length((view * drawProj * vec4(pos, 1.0)).xyz); + gl_Position = proj * space_pos;//* view * drawProj * vec4(pos, 1.0); + + v_position = length(space_pos.xyz); + v_cam_normal = mat3(view * drawProj) * normal; } \ No newline at end of file diff --git a/jassets/javaState.jar b/jassets/javaState.jar new file mode 100644 index 0000000000000000000000000000000000000000..b73f1bc87873329397c98e7e377333335d05fe7c GIT binary patch literal 2874 zcmZ`*3p|s38{X!$Q8|r_CZ{OJ91_*q2+7c#&t);>%;MyeOC6use4}dD#dU`>|TTg5V)*=WSgj3P=3sQFR#^Uh=Opg)Bj1N&* zRyJ2^XPtQpjPT(7#3f=5iFOw7UcUIMv$AG1ky;-eY1PP%SOyX-HOekY^b@l2)Bar) z?32jjPXWt4)z@_fh*;^%$FOr|4PYA{rJKVj3Qn&*f4yUnp!=||QRQ~jZAhm9M6=-0 z0i<0Mm2M}XmUTkcYdN{t{kHD@3L%>US&&#u&AG%`V@)&n3leu{(+U8u|HNh}6S##eP|5qsr-xQ{tur$$xXRUs|0rc9I`S9_!xjJMQg!j8Q?ST97lUCMO z$s0UOKFAopQf_B(L7a`14>H^M0NcWclUN_zUw!zC4u~WZ(`M9;*!;BD8j>(m@AOMc73FY5^GU8)V)z4;p`sSxvhGk-iGd5!AwU1e`sxohi5EC9S2?dr z6HJ!)*6gX5)!d4{Pe-Bl4&qCvH`XUi{VV)JfW_blB7YY@zxne79bN;(Y@4nA!kPM7 zM6@_DNm}NT(NcULVU=Q7S!!P;p4+?Z;50A-N${QLb+bFgpFiS@V=EtOr^UdpE4t}_ z@Kk>}xyRk{KpiPcW*vlEl#77u-YcAkzXk(DCZBy4LyWC4`3Ynu$N4|QuLl^PF0iFp zbnb2)O_E!ZgYm|O;R0oT{aJ?j<9;P6*8GcKF9wRJP=Y?*CGz1Sc}&c+Gss&MsRMS+ zfkECHm&zpMb6fWoLD@c~{;=r~sP)iTpWlmX_!6xf_gpjV@MYr7tj$} zpnJ}?k*wmQKxVtU@UE&N?~Jd=s3RfhgEJ;bj}Lbxj|d-jx2@=wfNDz@OLxJ{Yufs> z;YX%m{f>q9k>TE|-VM3;3MAvxuZF>S3@vDxgWuqB*Rb67&#Qif&`4plYEYBg0;ctL z(mq9XnYJhw)H zoW9EqJ9RNtJ&muqiIQF850l{Yfn&EXA8*dYc7>Q8+HlS&{2Z=!lT`l%FB)=#NX`}i zv}dERZf)hd)WDY;FE?xLJ?xYRz9?~s>vh2v=V$bx@~%{fIaMKabW#alC$2+fv6@KPJ<@p-B8< z3>gNpv$o-OrV0N8)Be^$GlmW_Msi`9gXei1PG9eJvoG%&Fpix^-&uJ7ljM+;j9^VS zcWGqV-CLKB-%7svd7kqRiC4`C_pZF~x~#R0H9F{ZYXAoa)Jf}5I!4%oGEwGz(%fV? zc^qbP4YhW}vS5ZAiin&zH{Pvruots_AeE;VWXgw3LpAP}pS`=JI#aOcB&p6qjiBv5 zuuLCSBRB_@6vIDP&w!LFYKPxkQC?dXBaln)9%kzKM;*5 z=g@f2{n39AXit%c;RAyD{@`F1;4!!G5`xj@I~Ya4pn)JLV5^JzpG9K2sIBqa7BM~5 z_N}buhUuX;1Hricy_LmLu_7={5UXG_P0(gMVchN@L$XX^T9C^9~36JWc_ zv*IxIfOQx$^2W;ApCKisco V!Js)fnd`V1zxRxq>p_@Le*$i%VeS9` literal 0 HcmV?d00001 diff --git a/src/game.rs b/src/game.rs index 606b5fd..9a248c7 100644 --- a/src/game.rs +++ b/src/game.rs @@ -1,6 +1,10 @@ use std::collections::HashMap; use std::vec; +use j4rs::errors::J4RsError; +use j4rs::JvmBuilder; +use log::warn; + use self::bots::*; use self::player::Player; @@ -10,7 +14,7 @@ mod player; pub struct Game { bots: Vec, bot_names: HashMap, - pub players: Vec + pub players: Vec, } impl Game { @@ -18,16 +22,27 @@ impl Game { let mut out = Self { bots: vec![], players: vec![], - bot_names: HashMap::new() + bot_names: HashMap::new(), }; - out.load_bots(".".to_string()); + let mut path: String = ".".to_string(); + + #[cfg(target_os = "android")] + { + + path = get_android_path().unwrap(); + /*if let Ok(p) = get_android_path() { + path = p; + }*/ + } + + //out.load_bots(path); out } pub fn load_bots(&mut self, classpath: String) { - for cl in list_bot_classes() { + for cl in list_bot_classes(&classpath) { let bot = Bot::new(&cl, &classpath); if bot.is_ok() { let mut bot: Bot = bot.unwrap(); @@ -36,7 +51,6 @@ impl Game { println!("Loaded Bot: „{}”", name); self.bot_names.insert(name, self.bots.len()); self.bots.push(bot); - } } } @@ -46,9 +60,9 @@ impl Game { self.players.push(Player::new(bot)); } - pub fn tick(&mut self){ - for p in self.players.iter_mut(){ - let state = GameState{ + pub fn tick(&mut self) { + for p in self.players.iter_mut() { + let state = GameState { posX: p.x, posY: p.y, }; @@ -59,3 +73,22 @@ impl Game { } } } + +#[cfg(target_os = "android")] +fn get_android_path() -> Result { + use log::error; + + error!("launch jvm"); + let jvm = JvmBuilder::new().build()?; + /*println!("invoke get getExternalStorageDirectory"); + let j_file = jvm.invoke_static( + "android.os.Environment", + "getExternalStorageDirectory", + &[], + )?; + println!("invoke getPath"); + let j_path = jvm.invoke(&j_file, "getPath", &[])?; + println!("to rust"); + Ok(jvm.to_rust(j_path)?)*/ + Ok("Some".to_string()) +} diff --git a/src/game/bots.rs b/src/game/bots.rs index ab23ef9..883eb79 100644 --- a/src/game/bots.rs +++ b/src/game/bots.rs @@ -39,7 +39,6 @@ impl Bot { self.jvm.to_rust(result).unwrap() } pub fn tick(&mut self, state: &GameState) -> Controller { - let controller = Controller { dirX: 1.0, dirY: 0.0, @@ -47,7 +46,8 @@ impl Bot { let j_controller = InvocationArg::new(&controller, "javaState.Controller"); let j_gamestate = InvocationArg::new(state, "javaState.GameState"); - let j_ret_controller = self.jvm + let j_ret_controller = self + .jvm .invoke(&self.bot, "executeTurn", &[j_gamestate, j_controller]) .unwrap(); let controller2: Controller = self.jvm.to_rust(j_ret_controller).unwrap(); @@ -55,10 +55,10 @@ impl Bot { } } -pub fn list_bot_classes() -> Vec { +pub fn list_bot_classes(base: &String) -> Vec { let mut out: Vec = vec![]; - if let Ok(paths) = fs::read_dir("./bots") { + if let Ok(paths) = fs::read_dir(String::from(base) + "/bots") { for path in paths { if let Ok(p) = path { if p.path().is_file() { diff --git a/src/main.rs b/src/main.rs index 4bcb8b5..9631ab8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,39 +10,56 @@ use no_stage::NoStage; use stage::Stage; use tools::parse_arg; +#[cfg(target_os = "android")] +#[macro_use] +extern crate log; + +#[cfg(target_os = "android")] +extern crate android_logger; +#[cfg(target_os = "android")] +use log::LevelFilter; +#[cfg(target_os = "android")] +use android_logger::Config; + mod game; mod no_stage; +mod render_tools; mod stage; mod tools; -mod render_tools; fn main() { + #[cfg(target_os = "android")] + android_logger::init_once( + Config::default() + .with_tag("rust.j_game")); let args = parse_arg(env::args().collect()); - let mut game = Game::new(); - game.add_player(0); + if args.contains_key("n") { + let mut game = Game::new(); + //game.add_player(0); let mut no_stage = NoStage::new(game); no_stage.run(); } else { start( conf::Conf { - window_title: "Jucraft".to_string(), + window_title: "jGame".to_string(), window_height: 900, window_width: 900 * 16 / 9, ..Default::default() }, - move |mut ctx| Box::new(Stage::new(&mut ctx, game)), + move || Box::new(Stage::new()), ); } } -const JNI_VERSION_1_6: jint = 0x00010006; + +/*const JNI_VERSION_1_6: jint = 0x00010006; #[allow(non_snake_case)] #[no_mangle] pub extern "C" fn jni_onload(env: *mut JavaVM, _reserved: jobject) -> jint { j4rs::set_java_vm(env); JNI_VERSION_1_6 -} +}*/ \ No newline at end of file diff --git a/src/render_tools/graphics.rs b/src/render_tools/graphics.rs index 2b1c7d4..1e702a5 100644 --- a/src/render_tools/graphics.rs +++ b/src/render_tools/graphics.rs @@ -7,9 +7,9 @@ use super::Vertex; #[derive(Debug)] pub struct Graphics { - pub textures: HashMap, + pub textures: HashMap, pub pipelines: HashMap, - pub models: HashMap, + pub models: HashMap, } impl Graphics { @@ -20,14 +20,18 @@ impl Graphics { models: HashMap::new(), } } - pub fn load_texture(&mut self, ctx: &mut Context, bytes: &[u8], id: String) -> Texture { + pub fn load_texture( + &mut self, + ctx: &mut Box, + bytes: &[u8], + id: String, + ) -> TextureId { let decoder = png::Decoder::new(bytes); let mut reader = decoder.read_info().unwrap(); let mut buf = vec![0; reader.output_buffer_size()]; let info = reader.next_frame(&mut buf).unwrap(); let bytes = &buf[..info.buffer_size()]; - let text = Texture::from_data_and_format( - ctx, + let text = ctx.new_texture_from_data_and_format( bytes, TextureParams { format: TextureFormat::RGBA8, @@ -49,18 +53,26 @@ impl Graphics { } pub fn add_model( &mut self, - ctx: &mut Context, + ctx: &mut Box, vertices: Vec, indices: Vec, id: String, ) { - let vertex_buffer = Buffer::immutable(ctx, BufferType::VertexBuffer, &vertices); - let index_buffer = Buffer::immutable(ctx, BufferType::IndexBuffer, &indices); + let vertex_buffer = ctx.new_buffer( + BufferType::VertexBuffer, + BufferUsage::Immutable, + BufferSource::slice(&vertices), + ); + let index_buffer = ctx.new_buffer( + BufferType::IndexBuffer, + BufferUsage::Immutable, + BufferSource::slice(&indices), + ); self.models .insert(id, (vertex_buffer, index_buffer, indices.len())); } - pub fn add_model_obj(&mut self, ctx: &mut Context, txt: String, id: String) { + pub fn add_model_obj(&mut self, ctx: &mut Box, txt: String, id: String) { let mut vertices: Vec = vec![]; let mut indices: Vec = vec![]; let mut verts: Vec = vec![]; @@ -102,12 +114,7 @@ impl Graphics { } } } - //println!("verts: {:?}", vertices); - //println!("indecies: {:?}", indices); - let vertex_buffer = Buffer::immutable(ctx, BufferType::VertexBuffer, &vertices); - let index_buffer = Buffer::immutable(ctx, BufferType::IndexBuffer, &indices); - self.models - .insert(id, (vertex_buffer, index_buffer, indices.len())); + self.add_model(ctx, vertices, indices, id); } } diff --git a/src/stage.rs b/src/stage.rs index 8a5accd..dad101d 100644 --- a/src/stage.rs +++ b/src/stage.rs @@ -1,9 +1,14 @@ use gl_matrix::common::{Vec2, Vec3, PI}; use gl_matrix::mat4; +use miniquad::window::{ + screen_size, set_cursor_grab, set_fullscreen, set_window_size, show_keyboard, show_mouse, +}; use miniquad::*; use crate::game::Game; +use j4rs::jni_sys::{jint, JavaVM}; + use crate::render_tools::default_solid_shader; use crate::render_tools::graphics::Graphics; use crate::tools::Sides; @@ -14,6 +19,7 @@ pub struct Player { } pub struct Stage { + ctx: Box, game: Game, graphics: Graphics, pipeline: Pipeline, @@ -21,34 +27,39 @@ pub struct Stage { mouse_grab: bool, fullscreen: bool, s_move: Sides, + begin_x: f32, + begin_y: f32, } impl Stage { - pub fn new(ctx: &mut Context, game: Game) -> Self { + pub fn new() -> Self { + let mut ctx: Box = window::new_rendering_backend(); let mut graphics = Graphics::new(); graphics.add_model_obj( - ctx, + &mut ctx, String::from(include_str!(concat!("../assets/models/Kirche.obj"))), "test".to_string(), ); graphics.load_texture( - ctx, + &mut ctx, include_bytes!(concat!("../assets/images/avatar.png")), "avatar".to_string(), ); - let shader = Shader::new( - ctx, - default_solid_shader::VERTEX, - default_solid_shader::FRAGMENT, - default_solid_shader::meta(), - ) - .unwrap(); + let shader = ctx + .new_shader( + ShaderSource { + glsl_vertex: Some(default_solid_shader::VERTEX), + glsl_fragment: Some(default_solid_shader::FRAGMENT), + metal_shader: None, + }, + default_solid_shader::meta(), + ) + .unwrap(); - let pipeline = Pipeline::with_params( - ctx, + let pipeline = ctx.new_pipeline_with_params( &[BufferLayout::default()], &[ VertexAttribute::with_buffer("pos", VertexFormat::Float3, 0), @@ -76,6 +87,16 @@ impl Stage { }, ); + #[cfg(target_os = "android")] + { + show_keyboard(true); + unsafe { + j4rs::set_java_vm(miniquad::native::android::VM as *mut JavaVM); + } + } + + let mut game = Game::new(); + //game.add_player(0); Self { game, graphics, @@ -87,12 +108,15 @@ impl Stage { s_move: Sides::all(false), mouse_grab: false, fullscreen: false, + ctx, + begin_x: 0., + begin_y: 0., } } } impl EventHandler for Stage { - fn update(&mut self, ctx: &mut Context) { + fn update(&mut self) { let delta_s = 1. / 60.; if self.s_move.top { @@ -120,12 +144,13 @@ impl EventHandler for Stage { self.game.tick(); } - fn draw(&mut self, ctx: &mut Context) { - ctx.begin_default_pass(PassAction::clear_color(0.75, 0.85, 0.8, 1.0)); + fn draw(&mut self) { + self.ctx + .begin_default_pass(PassAction::clear_color(0.75, 0.85, 0.8, 1.0)); //render - ctx.apply_pipeline(&self.pipeline); - let (w, h) = ctx.screen_size(); + self.ctx.apply_pipeline(&self.pipeline); + let (w, h) = screen_size(); let mut proj_matrix = mat4::create(); mat4::perspective( &mut proj_matrix, @@ -160,35 +185,46 @@ impl EventHandler for Stage { ); mat4::multiply(&mut cammat, &cammat1, &view_matrix); - ctx.apply_uniforms(&default_solid_shader::Uniforms { - proj: proj_matrix, - view: cammat, - fog: [140.0, 160.0], - wpos: [ - self.game.players[0].x as f32, - 0., - self.game.players[0].y as f32, - ], - }); + self.ctx + .apply_uniforms(UniformsSource::table(&default_solid_shader::Uniforms { + proj: proj_matrix, + view: cammat, + fog: [140.0, 160.0], + wpos: [ + 0., //self.game.players[0].x as f32, + 0., 0., //self.game.players[0].y as f32, + ], + })); - ctx.apply_bindings(&Bindings { + self.ctx.apply_bindings(&Bindings { vertex_buffers: vec![self.graphics.models["test"].0].clone(), index_buffer: self.graphics.models["test"].1, images: vec![self.graphics.textures["avatar"]], }); - ctx.draw(0, self.graphics.models["test"].2 as i32, 1); + self.ctx.draw(0, self.graphics.models["test"].2 as i32, 1); - ctx.end_render_pass(); - ctx.commit_frame(); + self.ctx.end_render_pass(); + self.ctx.commit_frame(); } - fn key_down_event( - &mut self, - _ctx: &mut Context, - keycode: KeyCode, - _keymods: KeyMods, - _repeatt: bool, - ) { + fn char_event(&mut self, _character: char, _keymods: KeyMods, _repeat: bool) { + if _character == 'h' { + self.s_move.top = !self.s_move.top; + } else if _character == 'n' { + self.s_move.bottom = !self.s_move.bottom; + } else if _character == 'w' { + self.s_move.front = !self.s_move.front; + } else if _character == 'a' { + self.s_move.left = !self.s_move.left; + } else if _character == 's' { + self.s_move.back = !self.s_move.back; + } else if _character == 'd' { + self.s_move.right = !self.s_move.right; + } else if _character == 'k' { + } + } + + fn key_down_event(&mut self, keycode: KeyCode, _keymods: KeyMods, _repeatt: bool) { if keycode == KeyCode::Space { self.s_move.top = true; } else if keycode == KeyCode::LeftShift { @@ -205,25 +241,25 @@ impl EventHandler for Stage { } } - fn key_up_event(&mut self, ctx: &mut Context, keycode: KeyCode, _keymods: KeyMods) { + fn key_up_event(&mut self, keycode: KeyCode, _keymods: KeyMods) { if keycode == KeyCode::F11 { if self.fullscreen { - ctx.set_fullscreen(false); - ctx.set_window_size(1000, 800); + set_fullscreen(false); + set_window_size(1000, 800); self.fullscreen = false; } else { - ctx.set_fullscreen(true); + set_fullscreen(true); self.fullscreen = true; } if self.mouse_grab { //println!("reloc"); - ctx.set_cursor_grab(false); - ctx.show_mouse(true); + set_cursor_grab(false); + show_mouse(true); self.mouse_grab = false; } } else if keycode == KeyCode::Escape { - ctx.set_cursor_grab(false); - ctx.show_mouse(true); + set_cursor_grab(false); + show_mouse(true); self.mouse_grab = false; } else if keycode == KeyCode::Space { self.s_move.top = false; @@ -240,29 +276,23 @@ impl EventHandler for Stage { } } - fn window_minimized_event(&mut self, ctx: &mut Context) { - ctx.set_cursor_grab(false); - ctx.show_mouse(true); + fn window_minimized_event(&mut self) { + set_cursor_grab(false); + show_mouse(true); self.mouse_grab = false; } - fn mouse_button_down_event( - &mut self, - ctx: &mut Context, - button: MouseButton, - _x: f32, - _y: f32, - ) { + fn mouse_button_down_event(&mut self, button: MouseButton, _x: f32, _y: f32) { if button == MouseButton::Left { if !self.mouse_grab { - ctx.set_cursor_grab(true); - ctx.show_mouse(false); + set_cursor_grab(true); + show_mouse(false); self.mouse_grab = true; } } } - fn raw_mouse_motion(&mut self, _ctx: &mut Context, x: f32, y: f32) { + fn raw_mouse_motion(&mut self, x: f32, y: f32) { if self.mouse_grab { self.player.rot[0] -= y / 10.0; self.player.rot[1] += x / 10.0; @@ -280,4 +310,24 @@ impl EventHandler for Stage { self.player.rot[1] += 360.; } } + + fn touch_event(&mut self, phase: TouchPhase, _id: u64, x: f32, y: f32) { + if phase == TouchPhase::Started { + if !self.mouse_grab { + self.mouse_grab = true; + self.begin_x = x; + self.begin_y = y; + } + } + + if phase == TouchPhase::Ended { + self.mouse_grab = false; + } + + if phase == TouchPhase::Moved { + self.raw_mouse_motion(self.begin_x - x, self.begin_y - y); + self.begin_x = x; + self.begin_y = y; + } + } }