diff options
author | sotech117 <michael_foiani@brown.edu> | 2024-05-09 15:29:13 -0400 |
---|---|---|
committer | sotech117 <michael_foiani@brown.edu> | 2024-05-09 15:29:13 -0400 |
commit | 0d6b3ded83f583a858368b1bbceda60ba65453a2 (patch) | |
tree | 9cb4f3aefc3c65492f61fac03498c220f2ef816c | |
parent | 3d9a55316dbcfb2ca1f32f5554d1948fcabb5d74 (diff) |
fix spacing on wave, fix normals and displacement, add retiling
-rw-r--r-- | cmake-build-debug/.ninja_deps | bin | 528124 -> 739504 bytes | |||
-rw-r--r-- | cmake-build-debug/.ninja_log | 125 | ||||
-rwxr-xr-x | cmake-build-debug/.rcc/Resources.qrc | 2 | ||||
-rw-r--r-- | cmake-build-debug/.rcc/qrc_Resources.cpp | 1062 | ||||
-rw-r--r-- | cmake-build-debug/CMakeFiles/ocean_autogen.dir/ParseCache.txt | 6 | ||||
-rw-r--r-- | cmake-build-debug/Testing/Temporary/LastTest.log | 4 | ||||
-rw-r--r-- | cmake-build-debug/build.ninja | 4 | ||||
-rwxr-xr-x | cmake-build-debug/ocean | bin | 8772280 -> 8748664 bytes | |||
-rw-r--r-- | src/arap.cpp | 16 | ||||
-rw-r--r-- | src/ocean/ocean_alt.cpp | 213 | ||||
-rw-r--r-- | src/ocean/ocean_alt.h | 26 |
11 files changed, 921 insertions, 537 deletions
diff --git a/cmake-build-debug/.ninja_deps b/cmake-build-debug/.ninja_deps Binary files differindex 81bd2d5..b1b950d 100644 --- a/cmake-build-debug/.ninja_deps +++ b/cmake-build-debug/.ninja_deps diff --git a/cmake-build-debug/.ninja_log b/cmake-build-debug/.ninja_log index 051ba0e..371a403 100644 --- a/cmake-build-debug/.ninja_log +++ b/cmake-build-debug/.ninja_log @@ -1,88 +1,41 @@ # ninja log v5 -12 41 1714798632131430431 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/StaticGLEW_autogen/timestamp dc143b4497306125 -1645 4059 1714849325058746610 CMakeFiles/ocean.dir/src/mainwindow.cpp.o b8eab0029b0c2d42 -78 110 1712645727876186134 CMakeFiles/StaticGLEW.dir/StaticGLEW_autogen/mocs_compilation.cpp.o cf14dd1335b34a8d -5173 6594 1714798638674541274 CMakeFiles/ocean.dir/src/graphics/shape.cpp.o fad1395b11fceaa7 -1647 4944 1714849325940198995 CMakeFiles/ocean.dir/cmake-build-debug/.rcc/qrc_Resources.cpp.o 5414beaf8d128308 -4944 5062 1714849326069646592 ocean 90ea6245b9d0c531 -1645 4083 1714849325084208159 CMakeFiles/ocean.dir/src/main.cpp.o 11d1d3bb5133c4bd -1646 4515 1714849325508570672 CMakeFiles/ocean.dir/src/glwidget.cpp.o b59369eca2fe4e32 -3358 3439 1714798635528627000 libStaticGLEW.a 8b4a852037c57830 -5173 5621 1714798637703869673 CMakeFiles/ocean.dir/src/graphics/graphicsdebug.cpp.o bf7241321ed3a409 -12 41 1714798632131430431 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/StaticGLEW_autogen/mocs_compilation.cpp dc143b4497306125 -12 41 1714798632131430431 StaticGLEW_autogen/mocs_compilation.cpp dc143b4497306125 -1904 5414 1712645733171665244 CMakeFiles/ocean.dir/src/graphics/meshloader.cpp.o 64961778db90f56 -12 41 1714798632131430431 StaticGLEW_autogen/timestamp dc143b4497306125 -1 208 1714786291867142933 build.ninja dbd6bd50c232cbc4 -13 1443 1714849322439247000 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -1444 1644 1714849322652629849 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/.rcc/qrc_Resources.cpp e023bb8377457e1b -42 3358 1714798635444441414 CMakeFiles/StaticGLEW.dir/glew/src/glew.c.o 4784775df883673d -13 1443 1714849322439247000 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 +2947 4344 1715274669529296463 CMakeFiles/ocean.dir/src/ocean/ocean.cpp.o 960e422714c6a8ba +1848 2039 1715274667230803612 .rcc/qrc_Resources.cpp e023bb8377457e1b +54 1003 1715281217677853384 CMakeFiles/ocean.dir/src/ocean/ocean_alt.cpp.o ad7112753002ff6a +1461 4462 1715280373353844511 CMakeFiles/ocean.dir/src/arap.cpp.o 46f485071c8cb61b +1452 4403 1715280373286798214 CMakeFiles/ocean.dir/ocean_autogen/mocs_compilation.cpp.o a0b6000c88b7e2e0 +13 50 1715281216730706979 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 +2046 4734 1715274669919280047 CMakeFiles/ocean.dir/src/graphics/shader.cpp.o 267b6ae673a33204 +13 50 1715281216730706979 ocean_autogen/timestamp 43dd0284b7c480b9 1899 4665 1712645732404853458 CMakeFiles/ocean.dir/src/graphics/camera.cpp.o d624ce2b01ab1415 -13 1443 1714849322439247000 ocean_autogen/timestamp 43dd0284b7c480b9 -13 1443 1714849322439247000 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -1644 3711 1714849324706874005 CMakeFiles/ocean.dir/ocean_autogen/mocs_compilation.cpp.o a0b6000c88b7e2e0 -5173 6446 1714798638528665913 CMakeFiles/ocean.dir/src/graphics/shader.cpp.o 267b6ae673a33204 -1646 3824 1714849324823821994 CMakeFiles/ocean.dir/src/arap.cpp.o 46f485071c8cb61b -1444 1644 1714849322652629849 .rcc/qrc_Resources.cpp e023bb8377457e1b -5622 6431 1714798638512399688 CMakeFiles/ocean.dir/src/ocean/ocean.cpp.o 960e422714c6a8ba -1647 2974 1714849323972820909 CMakeFiles/ocean.dir/src/ocean/ocean_alt.cpp.o ad7112753002ff6a -12 1343 1714849489919521000 ocean_autogen/timestamp 43dd0284b7c480b9 -12 1343 1714849489919521000 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -12 1343 1714849489919521000 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 -12 1343 1714849489919521000 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -1343 3058 1714849491634745870 CMakeFiles/ocean.dir/src/mainwindow.cpp.o b8eab0029b0c2d42 -1344 3066 1714849491644097365 CMakeFiles/ocean.dir/src/main.cpp.o 11d1d3bb5133c4bd -1343 3071 1714849491648431194 CMakeFiles/ocean.dir/ocean_autogen/mocs_compilation.cpp.o a0b6000c88b7e2e0 -12 54 1714849512803933609 ocean_autogen/timestamp 43dd0284b7c480b9 -12 54 1714849512803933609 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -12 54 1714849512803933609 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 -12 54 1714849512803933609 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -59 2256 1714849514995444844 CMakeFiles/ocean.dir/src/glwidget.cpp.o b59369eca2fe4e32 -2256 2378 1714849515124708731 ocean 90ea6245b9d0c531 -12 48 1714849546910108212 ocean_autogen/timestamp 43dd0284b7c480b9 -12 48 1714849546910108212 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -12 48 1714849546910108212 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 -12 48 1714849546910108212 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -12 903 1714849585867613000 ocean_autogen/timestamp 43dd0284b7c480b9 -12 903 1714849585867613000 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -12 903 1714849585867613000 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 -12 903 1714849585867613000 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -13 1371 1714849679964127000 ocean_autogen/timestamp 43dd0284b7c480b9 -13 1371 1714849679964127000 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -13 1371 1714849679964127000 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 -13 1371 1714849679964127000 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -12 1419 1714849740909476000 ocean_autogen/timestamp 43dd0284b7c480b9 -12 1419 1714849740909476000 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -12 1419 1714849740909476000 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 -12 1419 1714849740909476000 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -1420 3366 1714849742859070429 CMakeFiles/ocean.dir/src/main.cpp.o 11d1d3bb5133c4bd -1419 3374 1714849742869732936 CMakeFiles/ocean.dir/ocean_autogen/mocs_compilation.cpp.o a0b6000c88b7e2e0 -1419 3406 1714849742902087877 CMakeFiles/ocean.dir/src/mainwindow.cpp.o b8eab0029b0c2d42 -1421 3822 1714849743317925525 CMakeFiles/ocean.dir/src/glwidget.cpp.o b59369eca2fe4e32 -3822 3938 1714849743440390980 ocean 90ea6245b9d0c531 -13 50 1714849812101018777 ocean_autogen/timestamp 43dd0284b7c480b9 -13 50 1714849812101018777 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -13 50 1714849812101018777 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 -13 50 1714849812101018777 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -55 2158 1714849814198824051 CMakeFiles/ocean.dir/src/glwidget.cpp.o b59369eca2fe4e32 -2159 2268 1714849814316943052 ocean 90ea6245b9d0c531 -12 47 1714849854255275738 ocean_autogen/timestamp 43dd0284b7c480b9 -12 47 1714849854255275738 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -12 47 1714849854255275738 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 -12 47 1714849854255275738 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -52 2271 1714849856467743692 CMakeFiles/ocean.dir/src/glwidget.cpp.o b59369eca2fe4e32 -2271 2381 1714849856586742326 ocean 90ea6245b9d0c531 -12 1395 1714850004866419000 ocean_autogen/timestamp 43dd0284b7c480b9 -12 1395 1714850004866419000 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -12 1395 1714850004866419000 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 -12 1395 1714850004866419000 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -1395 3342 1714850006815112363 CMakeFiles/ocean.dir/ocean_autogen/mocs_compilation.cpp.o a0b6000c88b7e2e0 -1395 3348 1714850006819452984 CMakeFiles/ocean.dir/src/mainwindow.cpp.o b8eab0029b0c2d42 -1396 3357 1714850006832743054 CMakeFiles/ocean.dir/src/main.cpp.o 11d1d3bb5133c4bd -12 49 1714850057707318528 ocean_autogen/timestamp 43dd0284b7c480b9 -12 49 1714850057707318528 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -12 49 1714850057707318528 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 -12 49 1714850057707318528 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -53 2317 1714850059965615495 CMakeFiles/ocean.dir/src/glwidget.cpp.o b59369eca2fe4e32 -2317 2433 1714850060089833714 ocean 90ea6245b9d0c531 +1848 2039 1715274667230803612 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/.rcc/qrc_Resources.cpp e023bb8377457e1b +0 312 1715274665170073627 build.ninja dbd6bd50c232cbc4 +13 50 1715281216730706979 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 +13 50 1715281216730706979 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 +39 439 1715274665627645867 CMakeFiles/StaticGLEW.dir/glew/src/glew.c.o 4784775df883673d +13 38 1715274665230530986 StaticGLEW_autogen/timestamp dc143b4497306125 +1904 5414 1712645733171665244 CMakeFiles/ocean.dir/src/graphics/meshloader.cpp.o 64961778db90f56 +13 38 1715274665230530986 StaticGLEW_autogen/mocs_compilation.cpp dc143b4497306125 +13 38 1715274665230530986 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/StaticGLEW_autogen/mocs_compilation.cpp dc143b4497306125 +2043 2947 1715274668133653802 CMakeFiles/ocean.dir/src/graphics/graphicsdebug.cpp.o bf7241321ed3a409 +439 519 1715274665712161000 libStaticGLEW.a 8b4a852037c57830 +1003 1128 1715281217805809420 ocean 90ea6245b9d0c531 +4734 7910 1715274673090001677 CMakeFiles/ocean.dir/cmake-build-debug/.rcc/qrc_Resources.cpp.o 5414beaf8d128308 +1465 4774 1715280373664251970 CMakeFiles/ocean.dir/src/glwidget.cpp.o b59369eca2fe4e32 +1454 4406 1715280373288458479 CMakeFiles/ocean.dir/src/main.cpp.o 11d1d3bb5133c4bd +2048 5185 1715274670365151792 CMakeFiles/ocean.dir/src/graphics/shape.cpp.o fad1395b11fceaa7 +78 110 1712645727876186134 CMakeFiles/StaticGLEW.dir/StaticGLEW_autogen/mocs_compilation.cpp.o cf14dd1335b34a8d +1453 4308 1715280373192267033 CMakeFiles/ocean.dir/src/mainwindow.cpp.o b8eab0029b0c2d42 +13 38 1715274665230530986 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/StaticGLEW_autogen/timestamp dc143b4497306125 +12 50 1715281268927907042 ocean_autogen/timestamp 43dd0284b7c480b9 +12 50 1715281268927907042 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 +12 50 1715281268927907042 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 +12 50 1715281268927907042 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 +55 1023 1715281269895587725 CMakeFiles/ocean.dir/src/ocean/ocean_alt.cpp.o ad7112753002ff6a +1023 1134 1715281270009164793 ocean 90ea6245b9d0c531 +16 64 1715281338252186848 ocean_autogen/timestamp 43dd0284b7c480b9 +16 64 1715281338252186848 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 +16 64 1715281338252186848 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 +16 64 1715281338252186848 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 +69 1286 1715281339468067863 CMakeFiles/ocean.dir/src/ocean/ocean_alt.cpp.o ad7112753002ff6a +1286 1448 1715281339634009005 ocean 90ea6245b9d0c531 diff --git a/cmake-build-debug/.rcc/Resources.qrc b/cmake-build-debug/.rcc/Resources.qrc index d9e170f..8cf8334 100755 --- a/cmake-build-debug/.rcc/Resources.qrc +++ b/cmake-build-debug/.rcc/Resources.qrc @@ -15,6 +15,8 @@ <file alias="resources/shaders/anchorPoint.frag">/Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/anchorPoint.frag</file> <file alias="resources/shaders/texture.vert">/Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/texture.vert</file> <file alias="resources/shaders/texture.frag">/Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/texture.frag</file> + <file alias="resources/shaders/color.vert">/Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/color.vert</file> + <file alias="resources/shaders/color.frag">/Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/color.frag</file> </qresource> </RCC> diff --git a/cmake-build-debug/.rcc/qrc_Resources.cpp b/cmake-build-debug/.rcc/qrc_Resources.cpp index 32602c5..aea2901 100644 --- a/cmake-build-debug/.rcc/qrc_Resources.cpp +++ b/cmake-build-debug/.rcc/qrc_Resources.cpp @@ -7,7 +7,305 @@ *****************************************************************************/ static const unsigned char qt_resource_data[] = { - // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/texture.vert + // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/color.vert + 0x0,0x0,0xc,0xf2, + 0x23, + 0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x33,0x30,0x20,0x63,0x6f,0x72,0x65, + 0xa,0xa,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, + 0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x20,0x2f,0x2f,0x20,0x50,0x6f,0x73,0x69, + 0x74,0x69,0x6f,0x6e,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x76,0x65,0x72,0x74, + 0x65,0x78,0xa,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69, + 0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x72, + 0x6d,0x61,0x6c,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x76,0x65,0x72,0x74,0x65, + 0x78,0xa,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, + 0x6e,0x20,0x3d,0x20,0x32,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x74, + 0x65,0x78,0x43,0x6f,0x6f,0x72,0x64,0x73,0x3b,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e, + 0x6f,0x72,0x6d,0x61,0x6c,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x76,0x65,0x72, + 0x74,0x65,0x78,0xa,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x20,0x3d,0x20,0x2d,0x33,0x30,0x30,0x30, + 0x2e,0x66,0x3b,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x73,0x6b,0x79,0x48,0x65,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x35,0x30, + 0x30,0x2e,0x66,0x3b,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x6d,0x61,0x74, + 0x34,0x20,0x70,0x72,0x6f,0x6a,0x3b,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20, + 0x6d,0x61,0x74,0x34,0x20,0x76,0x69,0x65,0x77,0x3b,0xa,0x75,0x6e,0x69,0x66,0x6f, + 0x72,0x6d,0x20,0x6d,0x61,0x74,0x34,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x3b,0xa,0x75, + 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x6d,0x61,0x74,0x34,0x20,0x69,0x6e,0x76,0x65, + 0x72,0x73,0x65,0x56,0x69,0x65,0x77,0x3b,0xa,0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f, + 0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x77,0x69,0x64,0x74,0x68,0x3b,0xa, + 0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3b,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a, + 0x20,0x50,0x61,0x73,0x73,0x20,0x69,0x6e,0x20,0x77,0x69,0x64,0x74,0x68,0x20,0x61, + 0x6e,0x64,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x20,0x61,0x73,0x20,0x75,0x6e,0x69, + 0x66,0x6f,0x72,0x6d,0xa,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x6d,0x61, + 0x74,0x33,0x20,0x69,0x6e,0x76,0x65,0x72,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x70, + 0x6f,0x73,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x3b,0xa,0xa,0x6f,0x75,0x74,0x20,0x76, + 0x65,0x63,0x33,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x63,0x61,0x6d,0x65,0x72, + 0x61,0x53,0x70,0x61,0x63,0x65,0x3b,0xa,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33, + 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61, + 0x63,0x65,0x3b,0xa,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x61,0x6d, + 0x65,0x72,0x61,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x3b,0xa, + 0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x6f,0x73,0x3b,0xa,0x6f,0x75, + 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74, + 0x79,0x3b,0xa,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x6f,0x6c,0x64,0x50, + 0x6f,0x73,0x46,0x6c,0x61,0x74,0x3b,0xa,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, + 0x20,0x76,0x65,0x63,0x32,0x20,0x77,0x69,0x64,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64, + 0x73,0x3b,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x32,0x20, + 0x6c,0x65,0x6e,0x67,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x3b,0xa,0xa,0x76, + 0x65,0x63,0x33,0x20,0x6d,0x6f,0x76,0x65,0x54,0x6f,0x54,0x6f,0x70,0x44,0x6f,0x77, + 0x6e,0x28,0x76,0x65,0x63,0x33,0x20,0x70,0x29,0x20,0x7b,0xa,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x70,0x5b,0x30, + 0x5d,0x20,0x2d,0x20,0x28,0x28,0x77,0x69,0x64,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64, + 0x73,0x5b,0x30,0x5d,0x20,0x2b,0x20,0x77,0x69,0x64,0x74,0x68,0x42,0x6f,0x75,0x6e, + 0x64,0x73,0x5b,0x31,0x5d,0x29,0x20,0x2f,0x20,0x32,0x29,0x29,0x20,0x2f,0x20,0x28, + 0x77,0x69,0x64,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x31,0x5d,0x20,0x2d, + 0x20,0x77,0x69,0x64,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x30,0x5d,0x29, + 0x20,0x2a,0x20,0x32,0x2c,0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x2d,0x28,0x70,0x5b,0x32,0x5d,0x20,0x2d,0x20,0x28,0x28,0x6c,0x65,0x6e, + 0x67,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x30,0x5d,0x20,0x2b,0x20,0x6c, + 0x65,0x6e,0x67,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x31,0x5d,0x29,0x20, + 0x2f,0x20,0x32,0x29,0x29,0x20,0x2a,0x20,0x32,0x20,0x2f,0x20,0x28,0x6c,0x65,0x6e, + 0x67,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x31,0x5d,0x20,0x2d,0x20,0x6c, + 0x65,0x6e,0x67,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x30,0x5d,0x29,0x2c, + 0x20,0x30,0x2e,0x66,0x29,0x3b,0xa,0x7d,0xa,0xa,0x76,0x65,0x63,0x34,0x20,0x72, + 0x65,0x66,0x72,0x61,0x63,0x74,0x54,0x6f,0x46,0x6c,0x6f,0x6f,0x72,0x28,0x76,0x65, + 0x63,0x33,0x20,0x6c,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x20,0x6e,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x29,0x20,0x7b, + 0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x66,0x72,0x61,0x63,0x74,0x73, + 0x20,0x69,0x6e,0x63,0x6f,0x6d,0x69,0x6e,0x67,0x20,0x6c,0x69,0x67,0x68,0x74,0x20, + 0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x20,0x74,0x68,0x72,0x6f, + 0x75,0x67,0x68,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x6e,0x20,0x61,0x74,0x20, + 0x70,0x6f,0x69,0x6e,0x74,0x20,0x70,0x20,0x75,0x6e,0x74,0x69,0x6c,0x20,0x68,0x69, + 0x74,0x73,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x20,0x61,0x74,0x20,0x64,0x65,0x70,0x74, + 0x68,0x20,0x64,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x77,0x5f,0x6f, + 0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x6c,0x29,0x3b, + 0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x5f,0x74, + 0x68,0x65,0x74,0x61,0x5f,0x69,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x2d,0x77,0x5f, + 0x6f,0x2c,0x20,0x6e,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x6e,0x5f,0x69,0x20,0x3d,0x20,0x31,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x6e,0x5f,0x74,0x20,0x3d,0x20,0x31,0x2e,0x33,0x33,0x66,0x3b, + 0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x65,0x74,0x65,0x72, + 0x6d,0x69,0x6e,0x61,0x6e,0x74,0x20,0x3d,0x20,0x31,0x2e,0x66,0x20,0x2d,0x20,0x28, + 0x70,0x6f,0x77,0x28,0x28,0x6e,0x5f,0x69,0x20,0x2f,0x20,0x6e,0x5f,0x74,0x29,0x2c, + 0x20,0x32,0x2e,0x66,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x66,0x20,0x2d,0x20,0x70, + 0x6f,0x77,0x28,0x63,0x6f,0x73,0x5f,0x74,0x68,0x65,0x74,0x61,0x5f,0x69,0x2c,0x20, + 0x32,0x2e,0x66,0x29,0x29,0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x72,0x30,0x20,0x3d,0x20,0x70,0x6f,0x77,0x28,0x28,0x6e,0x5f,0x69, + 0x20,0x2d,0x20,0x6e,0x5f,0x74,0x29,0x20,0x2f,0x20,0x28,0x6e,0x5f,0x69,0x20,0x2b, + 0x20,0x6e,0x5f,0x74,0x29,0x2c,0x20,0x32,0x2e,0x66,0x29,0x3b,0x20,0x2f,0x2f,0x20, + 0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65, + 0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x65,0x20,0x70, + 0x72,0x6f,0x62,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x6f,0x66,0x20,0x72,0x65, + 0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x72,0x6f,0x62,0x5f,0x74,0x6f,0x5f,0x72,0x65,0x66,0x6c,0x20, + 0x3d,0x20,0x72,0x30,0x20,0x2b,0x20,0x28,0x28,0x31,0x20,0x2d,0x20,0x72,0x30,0x29, + 0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x28,0x31,0x20,0x2d,0x20,0x63,0x6f,0x73,0x5f, + 0x74,0x68,0x65,0x74,0x61,0x5f,0x69,0x29,0x2c,0x20,0x35,0x2e,0x66,0x29,0x29,0x3b, + 0xa,0xa,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x74,0x65,0x72,0x6d, + 0x69,0x6e,0x61,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x30,0x29,0x20,0x7b,0xa,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x5f, + 0x74,0x68,0x65,0x74,0x61,0x5f,0x74,0x20,0x3d,0x20,0x73,0x71,0x72,0x74,0x28,0x64, + 0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6e,0x74,0x29,0x3b,0xa,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x77,0x5f,0x74,0x20,0x3d,0x20, + 0x28,0x6e,0x5f,0x69,0x20,0x2f,0x20,0x6e,0x5f,0x74,0x29,0x20,0x2a,0x20,0x77,0x5f, + 0x6f,0x20,0x2b,0x20,0x28,0x28,0x6e,0x5f,0x69,0x20,0x2f,0x20,0x6e,0x5f,0x74,0x29, + 0x20,0x2a,0x20,0x63,0x6f,0x73,0x5f,0x74,0x68,0x65,0x74,0x61,0x5f,0x69,0x20,0x2d, + 0x20,0x63,0x6f,0x73,0x5f,0x74,0x68,0x65,0x74,0x61,0x5f,0x74,0x29,0x20,0x2a,0x20, + 0x6e,0x3b,0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x64,0x69,0x73,0x74,0x20,0x3d,0x20,0x70,0x2e,0x79,0x20,0x2d,0x20,0x64,0x3b, + 0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64, + 0x65,0x70,0x74,0x68,0x53,0x63,0x61,0x6c,0x65,0x20,0x3d,0x20,0x64,0x69,0x73,0x74, + 0x20,0x2f,0x20,0x77,0x5f,0x74,0x2e,0x79,0x3b,0xa,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x67,0x72,0x6f,0x75,0x6e,0x64,0x43,0x6f,0x6e, + 0x74,0x61,0x63,0x74,0x50,0x6f,0x69,0x6e,0x74,0x20,0x3d,0x20,0x2d,0x28,0x77,0x5f, + 0x74,0x20,0x2a,0x20,0x64,0x65,0x70,0x74,0x68,0x53,0x63,0x61,0x6c,0x65,0x29,0x20, + 0x2b,0x20,0x70,0x3b,0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x34,0x28,0x67,0x72,0x6f,0x75,0x6e,0x64,0x43, + 0x6f,0x6e,0x74,0x61,0x63,0x74,0x50,0x6f,0x69,0x6e,0x74,0x2c,0x20,0x31,0x2e,0x66, + 0x20,0x2d,0x20,0x70,0x72,0x6f,0x62,0x5f,0x74,0x6f,0x5f,0x72,0x65,0x66,0x6c,0x29, + 0x3b,0xa,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0xa,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65, + 0x63,0x34,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0xa, + 0x20,0x20,0x20,0x20,0x7d,0xa,0x7d,0xa,0xa,0x76,0x65,0x63,0x33,0x20,0x77,0x72, + 0x61,0x70,0x47,0x4c,0x28,0x76,0x65,0x63,0x33,0x20,0x70,0x29,0x20,0x7b,0xa,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6e,0x65,0x77,0x58,0x20,0x3d,0x20, + 0x70,0x5b,0x30,0x5d,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x6e,0x65,0x77,0x59,0x20,0x3d,0x20,0x70,0x5b,0x31,0x5d,0x3b,0xa,0xa,0x20,0x20, + 0x20,0x20,0x6e,0x65,0x77,0x58,0x20,0x3d,0x20,0x6d,0x6f,0x64,0x28,0x6e,0x65,0x77, + 0x58,0x20,0x2b,0x20,0x31,0x2e,0x66,0x2c,0x20,0x32,0x2e,0x66,0x29,0x20,0x2d,0x20, + 0x31,0x2e,0x66,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x59,0x20,0x3d, + 0x20,0x6d,0x6f,0x64,0x28,0x6e,0x65,0x77,0x59,0x20,0x2b,0x20,0x31,0x2e,0x66,0x2c, + 0x20,0x32,0x2e,0x66,0x29,0x20,0x2d,0x20,0x31,0x2e,0x66,0x3b,0xa,0xa,0x20,0x20, + 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x33,0x28,0x6e,0x65, + 0x77,0x58,0x2c,0x20,0x6e,0x65,0x77,0x59,0x2c,0x20,0x30,0x2e,0x66,0x29,0x3b,0xa, + 0x7d,0xa,0xa,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x20,0x7b, + 0xa,0x20,0x20,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x63,0x61,0x6d,0x65, + 0x72,0x61,0x53,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c, + 0x69,0x7a,0x65,0x28,0x69,0x6e,0x76,0x65,0x72,0x73,0x65,0x28,0x74,0x72,0x61,0x6e, + 0x73,0x70,0x6f,0x73,0x65,0x28,0x6d,0x61,0x74,0x33,0x28,0x76,0x69,0x65,0x77,0x29, + 0x29,0x29,0x20,0x2a,0x20,0x69,0x6e,0x76,0x65,0x72,0x73,0x65,0x54,0x72,0x61,0x6e, + 0x73,0x70,0x6f,0x73,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x20,0x2a,0x20,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x63,0x61,0x6d,0x65,0x72,0x61, + 0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x76,0x65, + 0x63,0x33,0x28,0x69,0x6e,0x76,0x65,0x72,0x73,0x65,0x56,0x69,0x65,0x77,0x20,0x2a, + 0x20,0x76,0x65,0x63,0x34,0x28,0x30,0x2e,0x66,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20, + 0x30,0x2e,0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x29,0x3b,0xa,0x20,0x20,0x20,0x20, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63, + 0x65,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0xa,0x20,0x20,0x20,0x20, + 0x70,0x6f,0x73,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x65,0x6c, + 0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, + 0x2c,0x20,0x31,0x2e,0x66,0x29,0x29,0x3b,0x20,0x2f,0x2f,0x76,0x65,0x63,0x33,0x28, + 0x6d,0x6f,0x64,0x65,0x6c,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x6f,0x62,0x6a, + 0x53,0x70,0x61,0x63,0x65,0x50,0x6f,0x73,0x2c,0x20,0x31,0x2e,0x66,0x29,0x29,0x3b, + 0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x44, + 0x69,0x72,0x20,0x3d,0x20,0x2d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28, + 0x76,0x65,0x63,0x33,0x28,0x31,0x2c,0x20,0x2d,0x31,0x2c,0x20,0x31,0x29,0x29,0x3b, + 0xa,0xa,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f, + 0x6e,0x20,0x3d,0x20,0x70,0x72,0x6f,0x6a,0x20,0x2a,0x20,0x76,0x69,0x65,0x77,0x20, + 0x2a,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x70, + 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x31,0x29,0x3b,0xa,0xa,0x2f,0x2f, + 0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20, + 0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, + 0x5b,0x30,0x5d,0x20,0x2d,0x20,0x28,0x28,0x77,0x69,0x64,0x74,0x68,0x42,0x6f,0x75, + 0x6e,0x64,0x73,0x5b,0x30,0x5d,0x20,0x2b,0x20,0x77,0x69,0x64,0x74,0x68,0x42,0x6f, + 0x75,0x6e,0x64,0x73,0x5b,0x31,0x5d,0x29,0x20,0x2f,0x20,0x32,0x29,0x29,0x20,0x2f, + 0x20,0x28,0x77,0x69,0x64,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x31,0x5d, + 0x20,0x2d,0x20,0x77,0x69,0x64,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x30, + 0x5d,0x29,0x20,0x2a,0x20,0x32,0x2c,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5b, + 0x32,0x5d,0x20,0x2d,0x20,0x28,0x28,0x6c,0x65,0x6e,0x67,0x74,0x68,0x42,0x6f,0x75, + 0x6e,0x64,0x73,0x5b,0x30,0x5d,0x20,0x2b,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x42, + 0x6f,0x75,0x6e,0x64,0x73,0x5b,0x31,0x5d,0x29,0x20,0x2f,0x20,0x32,0x29,0x29,0x20, + 0x2f,0x20,0x28,0x6c,0x65,0x6e,0x67,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b, + 0x31,0x5d,0x20,0x2d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64, + 0x73,0x5b,0x30,0x5d,0x29,0x20,0x2a,0x20,0x32,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20, + 0x31,0x2e,0x66,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x6e,0x65,0x77,0x58,0x20,0x3d,0x20,0x6d,0x6f,0x64,0x28,0x69,0x6e,0x74,0x28,0x70, + 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5b,0x30,0x5d,0x29,0x2c,0x20,0x33,0x29,0x20, + 0x2d,0x20,0x31,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6e, + 0x65,0x77,0x59,0x20,0x3d,0x20,0x6d,0x6f,0x64,0x28,0x69,0x6e,0x74,0x28,0x70,0x6f, + 0x73,0x69,0x74,0x69,0x6f,0x6e,0x5b,0x32,0x5d,0x29,0x2c,0x20,0x33,0x29,0x20,0x2d, + 0x20,0x31,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x72,0x65, + 0x66,0x72,0x61,0x63,0x74,0x65,0x64,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x41, + 0x6e,0x64,0x50,0x72,0x6f,0x62,0x20,0x3d,0x20,0x72,0x65,0x66,0x72,0x61,0x63,0x74, + 0x54,0x6f,0x46,0x6c,0x6f,0x6f,0x72,0x28,0x2d,0x6c,0x69,0x67,0x68,0x74,0x44,0x69, + 0x72,0x2c,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x2c,0x20, + 0x64,0x65,0x70,0x74,0x68,0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x77,0x61,0x74,0x65,0x72,0x4d,0x75,0x72,0x6b,0x69,0x6e,0x65,0x73, + 0x73,0x20,0x3d,0x20,0x2e,0x30,0x30,0x32,0x66,0x3b,0xa,0xa,0x20,0x20,0x20,0x20, + 0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x76,0x65, + 0x63,0x34,0x28,0x6e,0x65,0x77,0x58,0x2c,0x20,0x6e,0x65,0x77,0x59,0x2c,0x20,0x30, + 0x2e,0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x69, + 0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x20,0x3d,0x20,0x72,0x65,0x66,0x72,0x61, + 0x63,0x74,0x65,0x64,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x41,0x6e,0x64,0x50, + 0x72,0x6f,0x62,0x5b,0x33,0x5d,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x64, + 0x6f,0x74,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53, + 0x70,0x61,0x63,0x65,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x44,0x69,0x72,0x29,0x2c, + 0x20,0x30,0x2e,0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x20,0x2a,0x20,0x65,0x78,0x70, + 0x28,0x2d,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x28,0x70,0x6f,0x73,0x69,0x74,0x69, + 0x6f,0x6e,0x20,0x2d,0x20,0x76,0x65,0x63,0x33,0x28,0x72,0x65,0x66,0x72,0x61,0x63, + 0x74,0x65,0x64,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x41,0x6e,0x64,0x50,0x72, + 0x6f,0x62,0x29,0x29,0x29,0x20,0x2a,0x20,0x77,0x61,0x74,0x65,0x72,0x4d,0x75,0x72, + 0x6b,0x69,0x6e,0x65,0x73,0x73,0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x6f,0x6c, + 0x64,0x50,0x6f,0x73,0x46,0x6c,0x61,0x74,0x20,0x3d,0x20,0x6d,0x6f,0x76,0x65,0x54, + 0x6f,0x54,0x6f,0x70,0x44,0x6f,0x77,0x6e,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f, + 0x6e,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6d,0x6f, + 0x76,0x65,0x54,0x6f,0x54,0x6f,0x70,0x44,0x6f,0x77,0x6e,0x28,0x76,0x65,0x63,0x33, + 0x28,0x72,0x65,0x66,0x72,0x61,0x63,0x74,0x65,0x64,0x50,0x6f,0x73,0x69,0x74,0x69, + 0x6f,0x6e,0x41,0x6e,0x64,0x50,0x72,0x6f,0x62,0x29,0x29,0x3b,0xa,0x20,0x20,0x20, + 0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x76, + 0x65,0x63,0x34,0x28,0x70,0x6f,0x73,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x7d, + 0xa, + // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/color.frag + 0x0,0x0,0x5,0x40, + 0x23, + 0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x20,0x63,0x6f,0x72,0x65, + 0xa,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x43,0x6f, + 0x6c,0x6f,0x72,0x3b,0xa,0xa,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x5f,0x63,0x61,0x6d,0x65,0x72,0x61,0x53,0x70,0x61,0x63,0x65, + 0x3b,0xa,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x61,0x6d,0x65,0x72,0x61, + 0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x3b,0xa,0x69,0x6e,0x20, + 0x76,0x65,0x63,0x33,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c, + 0x64,0x53,0x70,0x61,0x63,0x65,0x3b,0xa,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20, + 0x70,0x6f,0x73,0x3b,0xa,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x6f,0x6c,0x64, + 0x50,0x6f,0x73,0x46,0x6c,0x61,0x74,0x3b,0xa,0x69,0x6e,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0xa,0xa,0x2f,0x2f, + 0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x75, + 0x6c,0x74,0x69,0x70,0x6c,0x69,0x65,0x72,0x20,0x3d,0x20,0x31,0x2e,0x66,0x3b,0xa, + 0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x20,0x3d,0x20,0x31,0x30,0x2e,0x66,0x3b, + 0xa,0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x69,0x6e,0x74,0x45,0x78,0x70,0x20,0x3d,0x20,0x30,0x2e,0x35,0x66,0x3b,0xa, + 0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x73,0x63,0x61,0x6c,0x65,0x20,0x3d,0x20,0x31,0x2e,0x66,0x3b,0xa,0xa,0x75,0x6e, + 0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x75,0x6c,0x74, + 0x69,0x70,0x6c,0x69,0x65,0x72,0x20,0x3d,0x20,0x2e,0x39,0x66,0x3b,0xa,0x75,0x6e, + 0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x6e,0x74, + 0x72,0x61,0x73,0x74,0x20,0x3d,0x20,0x32,0x30,0x2e,0x66,0x3b,0xa,0x75,0x6e,0x69, + 0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x69,0x6e,0x74,0x45,0x78, + 0x70,0x20,0x3d,0x20,0x30,0x2e,0x66,0x3b,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x63,0x61,0x6c,0x65,0x20,0x3d,0x20,0x31, + 0x2e,0x66,0x3b,0xa,0xa,0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x69,0x65,0x72,0x20, + 0x3d,0x20,0x2e,0x35,0x66,0x3b,0xa,0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x20, + 0x3d,0x20,0x31,0x2e,0x35,0x66,0x3b,0xa,0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72, + 0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x69,0x6e,0x74,0x45,0x78,0x70,0x20,0x3d, + 0x20,0x30,0x2e,0x66,0x3b,0xa,0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x63,0x61,0x6c,0x65,0x20,0x3d,0x20,0x31,0x2e, + 0x66,0x3b,0xa,0xa,0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65, + 0x63,0x34,0x20,0x62,0x61,0x73,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x76,0x65, + 0x63,0x34,0x28,0x29,0x3b,0xa,0xa,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e, + 0x28,0x29,0x20,0x7b,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c, + 0x6f,0x72,0x20,0x3d,0x20,0x30,0x2e,0x35,0x66,0x20,0x2a,0x20,0x28,0x76,0x65,0x63, + 0x34,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70, + 0x61,0x63,0x65,0x5b,0x30,0x5d,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x5b,0x32, + 0x5d,0x2c,0x20,0x31,0x2e,0x66,0x29,0x20,0x2b,0x20,0x31,0x29,0x3b,0xa,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6f,0x6c,0x64,0x41,0x72,0x65,0x61,0x20, + 0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x64,0x46,0x64,0x78,0x28,0x6f,0x6c, + 0x64,0x50,0x6f,0x73,0x46,0x6c,0x61,0x74,0x29,0x29,0x20,0x2a,0x20,0x6c,0x65,0x6e, + 0x67,0x74,0x68,0x28,0x64,0x46,0x64,0x79,0x28,0x6f,0x6c,0x64,0x50,0x6f,0x73,0x46, + 0x6c,0x61,0x74,0x29,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x6e,0x65,0x77,0x41,0x72,0x65,0x61,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74, + 0x68,0x28,0x64,0x46,0x64,0x78,0x28,0x70,0x6f,0x73,0x29,0x29,0x20,0x2a,0x20,0x6c, + 0x65,0x6e,0x67,0x74,0x68,0x28,0x64,0x46,0x64,0x79,0x28,0x70,0x6f,0x73,0x29,0x29, + 0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x61,0x72,0x65,0x61, + 0x52,0x61,0x74,0x69,0x6f,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x41,0x72,0x65,0x61,0x20, + 0x2f,0x20,0x6e,0x65,0x77,0x41,0x72,0x65,0x61,0x20,0x2a,0x20,0x6d,0x75,0x6c,0x74, + 0x69,0x70,0x6c,0x69,0x65,0x72,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x69,0x66, + 0x28,0x6f,0x6c,0x64,0x41,0x72,0x65,0x61,0x20,0x2f,0x20,0x6e,0x65,0x77,0x41,0x72, + 0x65,0x61,0x20,0x3e,0x20,0x33,0x29,0x20,0x7b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x61,0x72,0x65,0x61,0x52,0x61,0x74,0x69,0x6f,0x20,0x3d,0x20, + 0x30,0x2e,0x66,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x7d,0xa,0x2f,0x2f,0x20, + 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x63, + 0x6c,0x61,0x6d,0x70,0x28,0x76,0x65,0x63,0x34,0x28,0x69,0x6e,0x74,0x65,0x6e,0x73, + 0x69,0x74,0x79,0x2c,0x20,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20, + 0x28,0x31,0x2e,0x66,0x20,0x2d,0x20,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79, + 0x29,0x20,0x2a,0x20,0x2e,0x35,0x66,0x2c,0x20,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69, + 0x74,0x79,0x29,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa, + 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, + 0x76,0x65,0x63,0x34,0x28,0x70,0x6f,0x77,0x28,0x61,0x72,0x65,0x61,0x52,0x61,0x74, + 0x69,0x6f,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x29,0x29,0x20,0x2a, + 0x20,0x70,0x6f,0x77,0x28,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20, + 0x69,0x6e,0x74,0x45,0x78,0x70,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x66,0x69,0x6e,0x61,0x6c,0x49,0x6e,0x74,0x20,0x3d,0x20,0x70,0x6f, + 0x77,0x28,0x61,0x72,0x65,0x61,0x52,0x61,0x74,0x69,0x6f,0x2c,0x20,0x63,0x6f,0x6e, + 0x74,0x72,0x61,0x73,0x74,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x69,0x6e,0x74, + 0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20,0x69,0x6e,0x74,0x45,0x78,0x70,0x29,0x3b, + 0xa,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x49,0x6e,0x74,0x20,0x3d,0x20, + 0x63,0x6c,0x61,0x6d,0x70,0x28,0x66,0x69,0x6e,0x61,0x6c,0x49,0x6e,0x74,0x2c,0x20, + 0x30,0x2c,0x20,0x31,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43, + 0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x31,0x2c,0x20,0x31, + 0x2c,0x20,0x31,0x2c,0x20,0x66,0x69,0x6e,0x61,0x6c,0x49,0x6e,0x74,0x20,0x2a,0x20, + 0x73,0x63,0x61,0x6c,0x65,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x76, + 0x65,0x63,0x33,0x28,0x31,0x29,0x2c,0x20,0x70,0x6f,0x77,0x28,0x6f,0x6c,0x64,0x41, + 0x72,0x65,0x61,0x20,0x2f,0x20,0x6e,0x65,0x77,0x41,0x72,0x65,0x61,0x20,0x2a,0x20, + 0x2e,0x32,0x66,0x2c,0x20,0x31,0x2e,0x35,0x66,0x29,0x29,0x3b,0xa,0x7d,0xa, + // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/texture.vert 0x0,0x0,0x1,0x88, 0x23, 0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x33,0x30,0x20,0x63,0x6f,0x72,0x65, @@ -164,7 +462,7 @@ static const unsigned char qt_resource_data[] = { 0x6f,0x6c,0x6f,0x72,0x2e,0x77,0x20,0x3d,0x20,0x31,0x3b,0xa,0x20,0x20,0x20,0x20, 0x7d,0xa,0x7d,0xa, // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/shader.vert - 0x0,0x0,0xd,0x53, + 0x0,0x0,0xd,0x9a, 0x23, 0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x33,0x30,0x20,0x63,0x6f,0x72,0x65, 0xa,0xa,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, @@ -176,212 +474,216 @@ static const unsigned char qt_resource_data[] = { 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x72, 0x6d,0x61,0x6c,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x76,0x65,0x72,0x74,0x65, 0x78,0xa,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, - 0x6e,0x20,0x3d,0x20,0x33,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x74, + 0x6e,0x20,0x3d,0x20,0x32,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x74, 0x65,0x78,0x43,0x6f,0x6f,0x72,0x64,0x73,0x3b,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e, 0x6f,0x72,0x6d,0x61,0x6c,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x76,0x65,0x72, - 0x74,0x65,0x78,0xa,0xa,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x6d,0x61, - 0x74,0x34,0x20,0x70,0x72,0x6f,0x6a,0x3b,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, - 0x20,0x6d,0x61,0x74,0x34,0x20,0x76,0x69,0x65,0x77,0x3b,0xa,0x75,0x6e,0x69,0x66, - 0x6f,0x72,0x6d,0x20,0x6d,0x61,0x74,0x34,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x3b,0xa, - 0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x6d,0x61,0x74,0x34,0x20,0x69,0x6e,0x76, - 0x65,0x72,0x73,0x65,0x56,0x69,0x65,0x77,0x3b,0xa,0x2f,0x2f,0x75,0x6e,0x69,0x66, - 0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x77,0x69,0x64,0x74,0x68,0x3b, - 0xa,0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3b,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f, - 0x3a,0x20,0x50,0x61,0x73,0x73,0x20,0x69,0x6e,0x20,0x77,0x69,0x64,0x74,0x68,0x20, - 0x61,0x6e,0x64,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x20,0x61,0x73,0x20,0x75,0x6e, - 0x69,0x66,0x6f,0x72,0x6d,0xa,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x6d, - 0x61,0x74,0x33,0x20,0x69,0x6e,0x76,0x65,0x72,0x73,0x65,0x54,0x72,0x61,0x6e,0x73, - 0x70,0x6f,0x73,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x3b,0xa,0xa,0x6f,0x75,0x74,0x20, - 0x76,0x65,0x63,0x33,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x63,0x61,0x6d,0x65, - 0x72,0x61,0x53,0x70,0x61,0x63,0x65,0x3b,0xa,0x6f,0x75,0x74,0x20,0x76,0x65,0x63, - 0x33,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70, - 0x61,0x63,0x65,0x3b,0xa,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x61, - 0x6d,0x65,0x72,0x61,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x3b, - 0xa,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x6f,0x73,0x3b,0xa,0x6f, - 0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x65,0x66,0x6c,0x50,0x6f,0x73,0x3b, - 0xa,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x65,0x66,0x72,0x50,0x6f, - 0x73,0x3b,0xa,0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x65,0x66, - 0x72,0x50,0x72,0x6f,0x62,0x3b,0xa,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x32,0x20, - 0x75,0x76,0x3b,0xa,0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x61, - 0x74,0x49,0x6f,0x72,0x3b,0xa,0xa,0x76,0x65,0x63,0x34,0x20,0x67,0x65,0x74,0x52, - 0x65,0x66,0x72,0x50,0x6f,0x73,0x28,0x29,0x20,0x7b,0xa,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x20,0x3d,0x20,0x2d,0x31,0x30, - 0x30,0x30,0x2e,0x66,0x3b,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20,0x50, - 0x61,0x73,0x73,0x20,0x61,0x73,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0xa,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x77,0x5f,0x6f,0x20,0x3d,0x20,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x70,0x6f,0x73,0x20,0x2d,0x20,0x63,0x61, - 0x6d,0x65,0x72,0x61,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x29, - 0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x5f, - 0x74,0x68,0x65,0x74,0x61,0x5f,0x69,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x2d,0x77, - 0x5f,0x6f,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64, - 0x53,0x70,0x61,0x63,0x65,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x6e,0x5f,0x69,0x20,0x3d,0x20,0x31,0x3b,0xa,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x6e,0x5f,0x74,0x20,0x3d,0x20,0x31,0x2e,0x33,0x33,0x66, - 0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x6d,0x61,0x74,0x49,0x6f,0x72,0x20,0x3d, - 0x20,0x6e,0x5f,0x74,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6e,0x74,0x20,0x3d,0x20,0x31,0x2e, - 0x66,0x20,0x2d,0x20,0x28,0x70,0x6f,0x77,0x28,0x28,0x6e,0x5f,0x69,0x20,0x2f,0x20, - 0x6e,0x5f,0x74,0x29,0x2c,0x20,0x32,0x2e,0x66,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e, - 0x66,0x20,0x2d,0x20,0x70,0x6f,0x77,0x28,0x63,0x6f,0x73,0x5f,0x74,0x68,0x65,0x74, - 0x61,0x5f,0x69,0x2c,0x20,0x32,0x2e,0x66,0x29,0x29,0x29,0x3b,0xa,0xa,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x30,0x20,0x3d,0x20,0x70,0x6f,0x77, - 0x28,0x28,0x6e,0x5f,0x69,0x20,0x2d,0x20,0x6e,0x5f,0x74,0x29,0x20,0x2f,0x20,0x28, - 0x6e,0x5f,0x69,0x20,0x2b,0x20,0x6e,0x5f,0x74,0x29,0x2c,0x20,0x32,0x2e,0x66,0x29, - 0x3b,0x20,0x2f,0x2f,0x20,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x20,0x72,0x65, - 0x71,0x75,0x69,0x72,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x6c,0x63,0x75,0x6c, - 0x61,0x74,0x65,0x20,0x70,0x72,0x6f,0x62,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x20, - 0x6f,0x66,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0xa,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x72,0x6f,0x62,0x5f,0x74,0x6f,0x5f, - 0x72,0x65,0x66,0x6c,0x20,0x3d,0x20,0x72,0x30,0x20,0x2b,0x20,0x28,0x28,0x31,0x20, - 0x2d,0x20,0x72,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x28,0x31,0x20,0x2d, - 0x20,0x63,0x6f,0x73,0x5f,0x74,0x68,0x65,0x74,0x61,0x5f,0x69,0x29,0x2c,0x20,0x35, - 0x2e,0x66,0x29,0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64, - 0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x30,0x29, - 0x20,0x7b,0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x63,0x6f,0x73,0x5f,0x74,0x68,0x65,0x74,0x61,0x5f,0x74,0x20,0x3d,0x20,0x73, - 0x71,0x72,0x74,0x28,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6e,0x74,0x29, - 0x3b,0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x77, - 0x5f,0x74,0x20,0x3d,0x20,0x28,0x6e,0x5f,0x69,0x20,0x2f,0x20,0x6e,0x5f,0x74,0x29, - 0x20,0x2a,0x20,0x77,0x5f,0x6f,0x20,0x2b,0x20,0x28,0x28,0x6e,0x5f,0x69,0x20,0x2f, - 0x20,0x6e,0x5f,0x74,0x29,0x20,0x2a,0x20,0x63,0x6f,0x73,0x5f,0x74,0x68,0x65,0x74, - 0x61,0x5f,0x69,0x20,0x2d,0x20,0x63,0x6f,0x73,0x5f,0x74,0x68,0x65,0x74,0x61,0x5f, - 0x74,0x29,0x20,0x2a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c, - 0x64,0x53,0x70,0x61,0x63,0x65,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x52,0x61,0x79,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x65,0x64,0x52, - 0x61,0x79,0x28,0x69,0x2e,0x68,0x69,0x74,0x2c,0x20,0x77,0x5f,0x74,0x29,0x3b,0xa, - 0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x61,0x74,0x74,0x65,0x6e,0x75,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x28,0x21, - 0x65,0x6e,0x74,0x65,0x72,0x69,0x6e,0x67,0x20,0x26,0x26,0x20,0x61,0x74,0x74,0x65, - 0x6e,0x75,0x61,0x74,0x65,0x52,0x65,0x66,0x72,0x61,0x63,0x74,0x29,0x20,0x3f,0x20, - 0x73,0x74,0x64,0x3a,0x3a,0x70,0x6f,0x77,0x28,0x4d,0x5f,0x45,0x2c,0x20,0x28,0x2d, - 0x28,0x72,0x61,0x79,0x2e,0x6f,0x20,0x2d,0x20,0x69,0x2e,0x68,0x69,0x74,0x29,0x2e, - 0x6e,0x6f,0x72,0x6d,0x28,0x29,0x29,0x20,0x2a,0x20,0x6d,0x61,0x74,0x2e,0x69,0x6f, - 0x72,0x29,0x20,0x3a,0x20,0x31,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x4c,0x20,0x2b,0x3d,0x20,0x74,0x72,0x61,0x63,0x65,0x52,0x61,0x79,0x28, - 0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x65,0x64,0x52,0x61,0x79,0x2c,0x20,0x73,0x63, - 0x65,0x6e,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x6e,0x5f,0x74,0x2c,0x20, - 0x21,0x69,0x73,0x5f,0x69,0x6e,0x5f,0x72,0x65,0x66,0x72,0x61,0x63,0x74,0x6f,0x72, - 0x29,0x20,0x2a,0x20,0x61,0x74,0x74,0x65,0x6e,0x75,0x61,0x74,0x69,0x6f,0x6e,0x20, - 0x2f,0x20,0x74,0x68,0x72,0x65,0x73,0x68,0x6f,0x6c,0x64,0x3b,0xa,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x20, - 0x3d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x79,0x20,0x2d,0x20,0x64, - 0x65,0x70,0x74,0x68,0x3b,0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x53,0x63,0x61,0x6c,0x65,0x20,0x3d, - 0x20,0x64,0x69,0x73,0x74,0x20,0x2f,0x20,0x77,0x5f,0x74,0x2e,0x79,0x3b,0xa,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x67,0x72,0x6f,0x75, - 0x6e,0x64,0x43,0x6f,0x6e,0x74,0x61,0x63,0x74,0x50,0x6f,0x69,0x6e,0x74,0x20,0x3d, - 0x20,0x2d,0x28,0x77,0x5f,0x74,0x20,0x2a,0x20,0x64,0x65,0x70,0x74,0x68,0x53,0x63, - 0x61,0x6c,0x65,0x29,0x20,0x2b,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b, - 0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, - 0x76,0x65,0x63,0x34,0x28,0x67,0x72,0x6f,0x75,0x6e,0x64,0x43,0x6f,0x6e,0x74,0x61, - 0x63,0x74,0x50,0x6f,0x69,0x6e,0x74,0x2c,0x20,0x31,0x2e,0x66,0x20,0x2d,0x20,0x70, - 0x72,0x6f,0x62,0x5f,0x74,0x6f,0x5f,0x72,0x65,0x66,0x6c,0x29,0x3b,0xa,0x20,0x20, - 0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0xa,0x2f,0x2f,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x45,0x69,0x67,0x65,0x6e,0x3a,0x3a,0x56,0x65,0x63,0x74, - 0x6f,0x72,0x33,0x66,0x20,0x77,0x5f,0x69,0x20,0x3d,0x20,0x77,0x5f,0x6f,0x20,0x2d, - 0x20,0x32,0x20,0x2a,0x20,0x77,0x5f,0x6f,0x2e,0x64,0x6f,0x74,0x28,0x69,0x6e,0x74, - 0x65,0x72,0x73,0x65,0x63,0x74,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x29,0x20,0x2a,0x20, - 0x69,0x6e,0x63,0x69,0x64,0x65,0x6e,0x63,0x65,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x3b, - 0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52,0x61,0x79,0x20,0x72, - 0x65,0x66,0x6c,0x65,0x63,0x74,0x65,0x64,0x52,0x61,0x79,0x28,0x69,0x2e,0x68,0x69, - 0x74,0x2c,0x20,0x77,0x5f,0x69,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20, + 0x74,0x65,0x78,0xa,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x20,0x3d,0x20,0x2d,0x33,0x30,0x30,0x30, + 0x2e,0x66,0x3b,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x73,0x6b,0x79,0x48,0x65,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x35,0x30, + 0x30,0x2e,0x66,0x3b,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x6d,0x61,0x74, + 0x34,0x20,0x70,0x72,0x6f,0x6a,0x3b,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20, + 0x6d,0x61,0x74,0x34,0x20,0x76,0x69,0x65,0x77,0x3b,0xa,0x75,0x6e,0x69,0x66,0x6f, + 0x72,0x6d,0x20,0x6d,0x61,0x74,0x34,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x3b,0xa,0x75, + 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x6d,0x61,0x74,0x34,0x20,0x69,0x6e,0x76,0x65, + 0x72,0x73,0x65,0x56,0x69,0x65,0x77,0x3b,0xa,0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f, + 0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x77,0x69,0x64,0x74,0x68,0x3b,0xa, + 0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3b,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a, + 0x20,0x50,0x61,0x73,0x73,0x20,0x69,0x6e,0x20,0x77,0x69,0x64,0x74,0x68,0x20,0x61, + 0x6e,0x64,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x20,0x61,0x73,0x20,0x75,0x6e,0x69, + 0x66,0x6f,0x72,0x6d,0xa,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x6d,0x61, + 0x74,0x33,0x20,0x69,0x6e,0x76,0x65,0x72,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x70, + 0x6f,0x73,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x3b,0xa,0xa,0x6f,0x75,0x74,0x20,0x76, + 0x65,0x63,0x33,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x63,0x61,0x6d,0x65,0x72, + 0x61,0x53,0x70,0x61,0x63,0x65,0x3b,0xa,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33, + 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61, + 0x63,0x65,0x3b,0xa,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x61,0x6d, + 0x65,0x72,0x61,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x3b,0xa, + 0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x6f,0x73,0x3b,0xa,0x6f,0x75, + 0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x65,0x66,0x6c,0x50,0x6f,0x73,0x3b,0xa, + 0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x65,0x66,0x72,0x50,0x6f,0x73, + 0x3b,0xa,0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x65,0x66,0x72, + 0x50,0x72,0x6f,0x62,0x3b,0xa,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x32,0x20,0x75, + 0x76,0x3b,0xa,0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x61,0x74, + 0x49,0x6f,0x72,0x3b,0xa,0xa,0x76,0x65,0x63,0x34,0x20,0x67,0x65,0x74,0x52,0x65, + 0x66,0x72,0x50,0x6f,0x73,0x28,0x29,0x20,0x7b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x20,0x3d,0x20,0x2d,0x31, + 0x35,0x30,0x30,0x2e,0x66,0x3b,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20, + 0x50,0x61,0x73,0x73,0x20,0x61,0x73,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0xa, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x77,0x5f,0x6f,0x20,0x3d,0x20,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x70,0x6f,0x73,0x20,0x2d,0x20,0x63, + 0x61,0x6d,0x65,0x72,0x61,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65, + 0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73, + 0x5f,0x74,0x68,0x65,0x74,0x61,0x5f,0x69,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x2d, + 0x77,0x5f,0x6f,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c, + 0x64,0x53,0x70,0x61,0x63,0x65,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x6e,0x5f,0x69,0x20,0x3d,0x20,0x31,0x3b,0xa,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x6e,0x5f,0x74,0x20,0x3d,0x20,0x31,0x2e,0x33,0x33, + 0x66,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x6d,0x61,0x74,0x49,0x6f,0x72,0x20, + 0x3d,0x20,0x6e,0x5f,0x74,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6e,0x74,0x20,0x3d,0x20,0x31, + 0x2e,0x66,0x20,0x2d,0x20,0x28,0x70,0x6f,0x77,0x28,0x28,0x6e,0x5f,0x69,0x20,0x2f, + 0x20,0x6e,0x5f,0x74,0x29,0x2c,0x20,0x32,0x2e,0x66,0x29,0x20,0x2a,0x20,0x28,0x31, + 0x2e,0x66,0x20,0x2d,0x20,0x70,0x6f,0x77,0x28,0x63,0x6f,0x73,0x5f,0x74,0x68,0x65, + 0x74,0x61,0x5f,0x69,0x2c,0x20,0x32,0x2e,0x66,0x29,0x29,0x29,0x3b,0xa,0xa,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x30,0x20,0x3d,0x20,0x70,0x6f, + 0x77,0x28,0x28,0x6e,0x5f,0x69,0x20,0x2d,0x20,0x6e,0x5f,0x74,0x29,0x20,0x2f,0x20, + 0x28,0x6e,0x5f,0x69,0x20,0x2b,0x20,0x6e,0x5f,0x74,0x29,0x2c,0x20,0x32,0x2e,0x66, + 0x29,0x3b,0x20,0x2f,0x2f,0x20,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x20,0x72, + 0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x6c,0x63,0x75, + 0x6c,0x61,0x74,0x65,0x20,0x70,0x72,0x6f,0x62,0x61,0x62,0x69,0x6c,0x69,0x74,0x79, + 0x20,0x6f,0x66,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0xa,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x72,0x6f,0x62,0x5f,0x74,0x6f, + 0x5f,0x72,0x65,0x66,0x6c,0x20,0x3d,0x20,0x72,0x30,0x20,0x2b,0x20,0x28,0x28,0x31, + 0x20,0x2d,0x20,0x72,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x28,0x31,0x20, + 0x2d,0x20,0x63,0x6f,0x73,0x5f,0x74,0x68,0x65,0x74,0x61,0x5f,0x69,0x29,0x2c,0x20, + 0x35,0x2e,0x66,0x29,0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x30, + 0x29,0x20,0x7b,0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x63,0x6f,0x73,0x5f,0x74,0x68,0x65,0x74,0x61,0x5f,0x74,0x20,0x3d,0x20, + 0x73,0x71,0x72,0x74,0x28,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6e,0x74, + 0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, + 0x77,0x5f,0x74,0x20,0x3d,0x20,0x28,0x6e,0x5f,0x69,0x20,0x2f,0x20,0x6e,0x5f,0x74, + 0x29,0x20,0x2a,0x20,0x77,0x5f,0x6f,0x20,0x2b,0x20,0x28,0x28,0x6e,0x5f,0x69,0x20, + 0x2f,0x20,0x6e,0x5f,0x74,0x29,0x20,0x2a,0x20,0x63,0x6f,0x73,0x5f,0x74,0x68,0x65, + 0x74,0x61,0x5f,0x69,0x20,0x2d,0x20,0x63,0x6f,0x73,0x5f,0x74,0x68,0x65,0x74,0x61, + 0x5f,0x74,0x29,0x20,0x2a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72, + 0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x52,0x61,0x79,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x65,0x64, + 0x52,0x61,0x79,0x28,0x69,0x2e,0x68,0x69,0x74,0x2c,0x20,0x77,0x5f,0x74,0x29,0x3b, + 0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x61,0x74,0x74,0x65,0x6e,0x75,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x28, + 0x21,0x65,0x6e,0x74,0x65,0x72,0x69,0x6e,0x67,0x20,0x26,0x26,0x20,0x61,0x74,0x74, + 0x65,0x6e,0x75,0x61,0x74,0x65,0x52,0x65,0x66,0x72,0x61,0x63,0x74,0x29,0x20,0x3f, + 0x20,0x73,0x74,0x64,0x3a,0x3a,0x70,0x6f,0x77,0x28,0x4d,0x5f,0x45,0x2c,0x20,0x28, + 0x2d,0x28,0x72,0x61,0x79,0x2e,0x6f,0x20,0x2d,0x20,0x69,0x2e,0x68,0x69,0x74,0x29, + 0x2e,0x6e,0x6f,0x72,0x6d,0x28,0x29,0x29,0x20,0x2a,0x20,0x6d,0x61,0x74,0x2e,0x69, + 0x6f,0x72,0x29,0x20,0x3a,0x20,0x31,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x4c,0x20,0x2b,0x3d,0x20,0x74,0x72,0x61,0x63,0x65,0x52,0x61,0x79, 0x28,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x65,0x64,0x52,0x61,0x79,0x2c,0x20,0x73, - 0x63,0x65,0x6e,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x63,0x75,0x72,0x72, - 0x65,0x6e,0x74,0x5f,0x69,0x6f,0x72,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20, - 0x2f,0x20,0x74,0x68,0x72,0x65,0x73,0x68,0x6f,0x6c,0x64,0x3b,0xa,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x34, - 0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0xa,0x20,0x20, - 0x20,0x20,0x7d,0xa,0x7d,0xa,0xa,0x76,0x65,0x63,0x33,0x20,0x67,0x65,0x74,0x52, - 0x65,0x66,0x6c,0x50,0x6f,0x73,0x28,0x29,0x20,0x7b,0xa,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x20,0x3d,0x20,0x35,0x30,0x30, - 0x2e,0x66,0x3b,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20,0x50,0x61,0x73, - 0x73,0x20,0x61,0x73,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0xa,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x77,0x5f,0x6f,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d, - 0x61,0x6c,0x69,0x7a,0x65,0x28,0x70,0x6f,0x73,0x20,0x2d,0x20,0x63,0x61,0x6d,0x65, - 0x72,0x61,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x29,0x3b,0xa, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74, - 0x65,0x64,0x52,0x61,0x79,0x20,0x3d,0x20,0x77,0x5f,0x6f,0x20,0x2d,0x20,0x32,0x20, - 0x2a,0x20,0x64,0x6f,0x74,0x28,0x77,0x5f,0x6f,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61, - 0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x29,0x20,0x2a,0x20, + 0x63,0x65,0x6e,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x6e,0x5f,0x74,0x2c, + 0x20,0x21,0x69,0x73,0x5f,0x69,0x6e,0x5f,0x72,0x65,0x66,0x72,0x61,0x63,0x74,0x6f, + 0x72,0x29,0x20,0x2a,0x20,0x61,0x74,0x74,0x65,0x6e,0x75,0x61,0x74,0x69,0x6f,0x6e, + 0x20,0x2f,0x20,0x74,0x68,0x72,0x65,0x73,0x68,0x6f,0x6c,0x64,0x3b,0xa,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74, + 0x20,0x3d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x79,0x20,0x2d,0x20, + 0x64,0x65,0x70,0x74,0x68,0x3b,0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x53,0x63,0x61,0x6c,0x65,0x20, + 0x3d,0x20,0x64,0x69,0x73,0x74,0x20,0x2f,0x20,0x77,0x5f,0x74,0x2e,0x79,0x3b,0xa, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x67,0x72,0x6f, + 0x75,0x6e,0x64,0x43,0x6f,0x6e,0x74,0x61,0x63,0x74,0x50,0x6f,0x69,0x6e,0x74,0x20, + 0x3d,0x20,0x2d,0x28,0x77,0x5f,0x74,0x20,0x2a,0x20,0x64,0x65,0x70,0x74,0x68,0x53, + 0x63,0x61,0x6c,0x65,0x29,0x20,0x2b,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, + 0x3b,0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x76,0x65,0x63,0x34,0x28,0x67,0x72,0x6f,0x75,0x6e,0x64,0x43,0x6f,0x6e,0x74, + 0x61,0x63,0x74,0x50,0x6f,0x69,0x6e,0x74,0x2c,0x20,0x31,0x2e,0x66,0x20,0x2d,0x20, + 0x70,0x72,0x6f,0x62,0x5f,0x74,0x6f,0x5f,0x72,0x65,0x66,0x6c,0x29,0x3b,0xa,0x20, + 0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0xa,0x2f,0x2f,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x45,0x69,0x67,0x65,0x6e,0x3a,0x3a,0x56,0x65,0x63, + 0x74,0x6f,0x72,0x33,0x66,0x20,0x77,0x5f,0x69,0x20,0x3d,0x20,0x77,0x5f,0x6f,0x20, + 0x2d,0x20,0x32,0x20,0x2a,0x20,0x77,0x5f,0x6f,0x2e,0x64,0x6f,0x74,0x28,0x69,0x6e, + 0x74,0x65,0x72,0x73,0x65,0x63,0x74,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x29,0x20,0x2a, + 0x20,0x69,0x6e,0x63,0x69,0x64,0x65,0x6e,0x63,0x65,0x4e,0x6f,0x72,0x6d,0x61,0x6c, + 0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52,0x61,0x79,0x20, + 0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x65,0x64,0x52,0x61,0x79,0x28,0x69,0x2e,0x68, + 0x69,0x74,0x2c,0x20,0x77,0x5f,0x69,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x4c,0x20,0x2b,0x3d,0x20,0x74,0x72,0x61,0x63,0x65,0x52,0x61, + 0x79,0x28,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x65,0x64,0x52,0x61,0x79,0x2c,0x20, + 0x73,0x63,0x65,0x6e,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x63,0x75,0x72, + 0x72,0x65,0x6e,0x74,0x5f,0x69,0x6f,0x72,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29, + 0x20,0x2f,0x20,0x74,0x68,0x72,0x65,0x73,0x68,0x6f,0x6c,0x64,0x3b,0xa,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63, + 0x34,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0xa,0x20, + 0x20,0x20,0x20,0x7d,0xa,0x7d,0xa,0xa,0x76,0x65,0x63,0x33,0x20,0x67,0x65,0x74, + 0x52,0x65,0x66,0x6c,0x50,0x6f,0x73,0x28,0x29,0x20,0x7b,0xa,0x2f,0x2f,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x20,0x3d,0x20, + 0x35,0x30,0x30,0x2e,0x66,0x3b,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20, + 0x50,0x61,0x73,0x73,0x20,0x61,0x73,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0xa, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x77,0x5f,0x6f,0x20,0x3d,0x20,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x70,0x6f,0x73,0x20,0x2d,0x20,0x63, + 0x61,0x6d,0x65,0x72,0x61,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65, + 0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x65,0x66,0x6c, + 0x65,0x63,0x74,0x65,0x64,0x52,0x61,0x79,0x20,0x3d,0x20,0x77,0x5f,0x6f,0x20,0x2d, + 0x20,0x32,0x20,0x2a,0x20,0x64,0x6f,0x74,0x28,0x77,0x5f,0x6f,0x2c,0x20,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x29, + 0x20,0x2a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53, + 0x70,0x61,0x63,0x65,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x64,0x69,0x73,0x74,0x20,0x3d,0x20,0x73,0x6b,0x79,0x48,0x65,0x69,0x67,0x68, + 0x74,0x20,0x2d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x79,0x3b,0xa, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x53, + 0x63,0x61,0x6c,0x65,0x20,0x3d,0x20,0x64,0x69,0x73,0x74,0x20,0x2f,0x20,0x72,0x65, + 0x66,0x6c,0x65,0x63,0x74,0x65,0x64,0x52,0x61,0x79,0x2e,0x79,0x3b,0xa,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x43,0x6f,0x6e,0x74,0x61,0x63, + 0x74,0x50,0x6f,0x69,0x6e,0x74,0x20,0x3d,0x20,0x28,0x72,0x65,0x66,0x6c,0x65,0x63, + 0x74,0x65,0x64,0x52,0x61,0x79,0x20,0x2a,0x20,0x64,0x65,0x70,0x74,0x68,0x53,0x63, + 0x61,0x6c,0x65,0x29,0x20,0x2b,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b, + 0xa,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6b,0x79,0x43, + 0x6f,0x6e,0x74,0x61,0x63,0x74,0x50,0x6f,0x69,0x6e,0x74,0x3b,0xa,0x7d,0xa,0xa, + 0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x20,0x7b,0xa,0x2f,0x2f, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x20, + 0x3d,0x20,0x2d,0x34,0x2e,0x66,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x20,0x3d,0x20,0x70,0x6f,0x73,0x69,0x74, + 0x69,0x6f,0x6e,0x2e,0x79,0x20,0x2d,0x20,0x64,0x65,0x70,0x74,0x68,0x3b,0xa,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x77,0x69,0x64,0x74,0x68,0x20,0x3d, + 0x20,0x38,0x31,0x2e,0x66,0x20,0x2a,0x20,0x32,0x2e,0x66,0x3b,0xa,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20, + 0x38,0x31,0x2e,0x66,0x20,0x2a,0x20,0x32,0x2e,0x66,0x3b,0xa,0x20,0x20,0x20,0x20, + 0x6d,0x61,0x74,0x49,0x6f,0x72,0x20,0x3d,0x20,0x31,0x2e,0x33,0x33,0x66,0x3b,0xa, + 0xa,0x20,0x20,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x63,0x61,0x6d,0x65, + 0x72,0x61,0x53,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c, + 0x69,0x7a,0x65,0x28,0x69,0x6e,0x76,0x65,0x72,0x73,0x65,0x28,0x74,0x72,0x61,0x6e, + 0x73,0x70,0x6f,0x73,0x65,0x28,0x6d,0x61,0x74,0x33,0x28,0x76,0x69,0x65,0x77,0x29, + 0x29,0x29,0x20,0x2a,0x20,0x69,0x6e,0x76,0x65,0x72,0x73,0x65,0x54,0x72,0x61,0x6e, + 0x73,0x70,0x6f,0x73,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x20,0x2a,0x20,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x63,0x61,0x6d,0x65,0x72,0x61, + 0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x76,0x65, + 0x63,0x33,0x28,0x69,0x6e,0x76,0x65,0x72,0x73,0x65,0x56,0x69,0x65,0x77,0x20,0x2a, + 0x20,0x76,0x65,0x63,0x34,0x28,0x30,0x2e,0x66,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20, + 0x30,0x2e,0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x29,0x3b,0xa,0x20,0x20,0x20,0x20, 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63, - 0x65,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69, - 0x73,0x74,0x20,0x3d,0x20,0x64,0x65,0x70,0x74,0x68,0x20,0x2d,0x20,0x70,0x6f,0x73, - 0x69,0x74,0x69,0x6f,0x6e,0x2e,0x79,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x53,0x63,0x61,0x6c,0x65,0x20,0x3d,0x20, - 0x64,0x69,0x73,0x74,0x20,0x2f,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x65,0x64, - 0x52,0x61,0x79,0x2e,0x79,0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x73,0x6b,0x79,0x43,0x6f,0x6e,0x74,0x61,0x63,0x74,0x50,0x6f,0x69,0x6e,0x74,0x20, - 0x3d,0x20,0x28,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x65,0x64,0x52,0x61,0x79,0x20, - 0x2a,0x20,0x64,0x65,0x70,0x74,0x68,0x53,0x63,0x61,0x6c,0x65,0x29,0x20,0x2b,0x20, - 0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0xa,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x73,0x6b,0x79,0x43,0x6f,0x6e,0x74,0x61,0x63,0x74,0x50, - 0x6f,0x69,0x6e,0x74,0x3b,0xa,0x7d,0xa,0xa,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61, - 0x69,0x6e,0x28,0x29,0x20,0x7b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x20,0x3d,0x20,0x2d,0x34,0x2e,0x66,0x3b, - 0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73, - 0x74,0x20,0x3d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x79,0x20,0x2d, - 0x20,0x64,0x65,0x70,0x74,0x68,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x77,0x69,0x64,0x74,0x68,0x20,0x3d,0x20,0x38,0x31,0x2e,0x66,0x20,0x2a, - 0x20,0x32,0x2e,0x66,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x38,0x31,0x2e,0x66,0x20,0x2a,0x20, - 0x32,0x2e,0x66,0x3b,0xa,0x20,0x20,0x20,0x20,0x6d,0x61,0x74,0x49,0x6f,0x72,0x20, - 0x3d,0x20,0x31,0x2e,0x33,0x33,0x66,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x5f,0x63,0x61,0x6d,0x65,0x72,0x61,0x53,0x70,0x61,0x63,0x65, - 0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e,0x76, - 0x65,0x72,0x73,0x65,0x28,0x74,0x72,0x61,0x6e,0x73,0x70,0x6f,0x73,0x65,0x28,0x6d, - 0x61,0x74,0x33,0x28,0x76,0x69,0x65,0x77,0x29,0x29,0x29,0x20,0x2a,0x20,0x69,0x6e, - 0x76,0x65,0x72,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x70,0x6f,0x73,0x65,0x4d,0x6f, - 0x64,0x65,0x6c,0x20,0x2a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x29,0x3b,0xa,0x20, - 0x20,0x20,0x20,0x63,0x61,0x6d,0x65,0x72,0x61,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53, - 0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x69,0x6e,0x76,0x65, - 0x72,0x73,0x65,0x56,0x69,0x65,0x77,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x30, - 0x2e,0x66,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x31,0x2e, - 0x66,0x29,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f, - 0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x72, - 0x6d,0x61,0x6c,0x3b,0xa,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x76, - 0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x2a,0x20,0x76,0x65,0x63,0x34, - 0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x31,0x2e,0x66,0x29,0x29, - 0x3b,0x20,0x2f,0x2f,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x2a, - 0x20,0x76,0x65,0x63,0x34,0x28,0x6f,0x62,0x6a,0x53,0x70,0x61,0x63,0x65,0x50,0x6f, - 0x73,0x2c,0x20,0x31,0x2e,0x66,0x29,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20, - 0x70,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0xa, - 0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x65,0x70, - 0x74,0x68,0x53,0x63,0x61,0x6c,0x65,0x20,0x3d,0x20,0x64,0x69,0x73,0x74,0x20,0x2f, - 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x79,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x67,0x72,0x6f,0x75,0x6e,0x64,0x43,0x6f,0x6e,0x74, - 0x61,0x63,0x74,0x50,0x6f,0x69,0x6e,0x74,0x20,0x3d,0x20,0x2d,0x28,0x6e,0x6f,0x72, - 0x6d,0x61,0x6c,0x20,0x2a,0x20,0x64,0x65,0x70,0x74,0x68,0x53,0x63,0x61,0x6c,0x65, - 0x29,0x20,0x2b,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x20,0x2f,0x2f, - 0x20,0x63,0x61,0x72,0x72,0x69,0x65,0x73,0x20,0x64,0x6f,0x77,0x6e,0x20,0x74,0x6f, - 0x20,0x67,0x72,0x6f,0x75,0x6e,0x64,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x67,0x72, - 0x6f,0x75,0x6e,0x64,0x43,0x6f,0x6e,0x74,0x61,0x63,0x74,0x50,0x6f,0x69,0x6e,0x74, - 0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x2a,0x20, - 0x76,0x65,0x63,0x34,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x31, - 0x29,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x75,0x76,0x20,0x3d,0x20,0x76, - 0x65,0x63,0x32,0x28,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x20, - 0x2b,0x20,0x38,0x31,0x2e,0x66,0x29,0x20,0x2f,0x20,0x28,0x31,0x36,0x32,0x2e,0x66, - 0x29,0x2c,0x20,0x67,0x72,0x6f,0x75,0x6e,0x64,0x43,0x6f,0x6e,0x74,0x61,0x63,0x74, - 0x50,0x6f,0x69,0x6e,0x74,0x2e,0x7a,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20, - 0x75,0x76,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c, - 0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x72,0x65,0x66,0x72, - 0x50,0x6f,0x73,0x5f,0x61,0x6e,0x64,0x5f,0x70,0x72,0x6f,0x62,0x20,0x3d,0x20,0x67, - 0x65,0x74,0x52,0x65,0x66,0x72,0x50,0x6f,0x73,0x28,0x29,0x3b,0xa,0x20,0x20,0x20, - 0x20,0x72,0x65,0x66,0x72,0x50,0x6f,0x73,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28, - 0x72,0x65,0x66,0x72,0x50,0x6f,0x73,0x5f,0x61,0x6e,0x64,0x5f,0x70,0x72,0x6f,0x62, - 0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x20, - 0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x72,0x65,0x66,0x72,0x50,0x6f,0x73,0x5f, - 0x61,0x6e,0x64,0x5f,0x70,0x72,0x6f,0x62,0x2e,0x77,0x2c,0x20,0x30,0x2e,0x66,0x2c, - 0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x6c, - 0x50,0x6f,0x73,0x20,0x3d,0x20,0x67,0x65,0x74,0x52,0x65,0x66,0x6c,0x50,0x6f,0x73, - 0x28,0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69, - 0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x70,0x72,0x6f,0x6a,0x20,0x2a,0x20,0x76,0x69, - 0x65,0x77,0x20,0x2a,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x2a,0x20,0x76,0x65,0x63, - 0x34,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x31,0x29,0x3b,0xa, - 0x7d,0xa, + 0x65,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0xa,0x20,0x20,0x20,0x20, + 0x70,0x6f,0x73,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x65,0x6c, + 0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, + 0x2c,0x20,0x31,0x2e,0x66,0x29,0x29,0x3b,0x20,0x2f,0x2f,0x76,0x65,0x63,0x33,0x28, + 0x6d,0x6f,0x64,0x65,0x6c,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x6f,0x62,0x6a, + 0x53,0x70,0x61,0x63,0x65,0x50,0x6f,0x73,0x2c,0x20,0x31,0x2e,0x66,0x29,0x29,0x3b, + 0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73, + 0x69,0x74,0x69,0x6f,0x6e,0x3b,0xa,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x53,0x63,0x61,0x6c,0x65,0x20,0x3d, + 0x20,0x64,0x69,0x73,0x74,0x20,0x2f,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x79, + 0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x67,0x72,0x6f, + 0x75,0x6e,0x64,0x43,0x6f,0x6e,0x74,0x61,0x63,0x74,0x50,0x6f,0x69,0x6e,0x74,0x20, + 0x3d,0x20,0x2d,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x2a,0x20,0x64,0x65,0x70, + 0x74,0x68,0x53,0x63,0x61,0x6c,0x65,0x29,0x20,0x2b,0x20,0x70,0x6f,0x73,0x69,0x74, + 0x69,0x6f,0x6e,0x3b,0x20,0x2f,0x2f,0x20,0x63,0x61,0x72,0x72,0x69,0x65,0x73,0x20, + 0x64,0x6f,0x77,0x6e,0x20,0x74,0x6f,0x20,0x67,0x72,0x6f,0x75,0x6e,0x64,0xa,0x2f, + 0x2f,0x20,0x20,0x20,0x20,0x67,0x72,0x6f,0x75,0x6e,0x64,0x43,0x6f,0x6e,0x74,0x61, + 0x63,0x74,0x50,0x6f,0x69,0x6e,0x74,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x6d, + 0x6f,0x64,0x65,0x6c,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x70,0x6f,0x73,0x69, + 0x74,0x69,0x6f,0x6e,0x2c,0x20,0x31,0x29,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20, + 0x20,0x75,0x76,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x28,0x70,0x6f,0x73,0x69, + 0x74,0x69,0x6f,0x6e,0x2e,0x78,0x20,0x2b,0x20,0x38,0x31,0x2e,0x66,0x29,0x20,0x2f, + 0x20,0x28,0x31,0x36,0x32,0x2e,0x66,0x29,0x2c,0x20,0x67,0x72,0x6f,0x75,0x6e,0x64, + 0x43,0x6f,0x6e,0x74,0x61,0x63,0x74,0x50,0x6f,0x69,0x6e,0x74,0x2e,0x7a,0x29,0x3b, + 0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x75,0x76,0x20,0x3d,0x20,0x76,0x65,0x63,0x32, + 0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x34,0x20,0x72,0x65,0x66,0x72,0x50,0x6f,0x73,0x5f,0x61,0x6e,0x64,0x5f,0x70, + 0x72,0x6f,0x62,0x20,0x3d,0x20,0x67,0x65,0x74,0x52,0x65,0x66,0x72,0x50,0x6f,0x73, + 0x28,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x72,0x50,0x6f,0x73,0x20, + 0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x72,0x65,0x66,0x72,0x50,0x6f,0x73,0x5f,0x61, + 0x6e,0x64,0x5f,0x70,0x72,0x6f,0x62,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x72,0x65, + 0x66,0x72,0x50,0x72,0x6f,0x62,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x72, + 0x65,0x66,0x72,0x50,0x6f,0x73,0x5f,0x61,0x6e,0x64,0x5f,0x70,0x72,0x6f,0x62,0x2e, + 0x77,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0xa,0x20, + 0x20,0x20,0x20,0x72,0x65,0x66,0x6c,0x50,0x6f,0x73,0x20,0x3d,0x20,0x67,0x65,0x74, + 0x52,0x65,0x66,0x6c,0x50,0x6f,0x73,0x28,0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20, + 0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x70,0x72, + 0x6f,0x6a,0x20,0x2a,0x20,0x76,0x69,0x65,0x77,0x20,0x2a,0x20,0x6d,0x6f,0x64,0x65, + 0x6c,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f, + 0x6e,0x2c,0x20,0x31,0x29,0x3b,0xa,0x7d,0xa, // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/shader.frag - 0x0,0x0,0x12,0x6a, + 0x0,0x0,0x12,0xa6, 0x23, 0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x20,0x63,0x6f,0x72,0x65, 0xa,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x43,0x6f, @@ -529,155 +831,159 @@ static const unsigned char qt_resource_data[] = { 0x50,0x6f,0x73,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x72, 0x65,0x66,0x6c,0x55,0x56,0x20,0x3d,0x20,0x75,0x76,0x46,0x72,0x6f,0x6d,0x57,0x6f, 0x72,0x6c,0x64,0x50,0x6f,0x69,0x6e,0x74,0x28,0x72,0x65,0x66,0x6c,0x50,0x6f,0x73, - 0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x77,0x61, - 0x74,0x65,0x72,0x4d,0x75,0x72,0x6b,0x69,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30, - 0x2e,0x30,0x30,0x32,0x66,0x3b,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20, - 0x4d,0x61,0x6b,0x65,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0xa,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x77,0x61,0x74,0x65,0x72,0x56,0x6f,0x6c,0x75,0x6d, - 0x65,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x72,0x65, - 0x64,0x20,0x2a,0x20,0x30,0x2e,0x31,0x66,0x2c,0x20,0x67,0x72,0x65,0x65,0x6e,0x20, - 0x2a,0x20,0x30,0x2e,0x32,0x66,0x2c,0x20,0x62,0x6c,0x75,0x65,0x20,0x2a,0x20,0x30, - 0x2e,0x32,0x66,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x6d,0x75,0x72,0x6b,0x44,0x69,0x66,0x66,0x75,0x73,0x65,0x20,0x3d,0x20,0x30,0x2e, - 0x33,0x66,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x75, - 0x72,0x6b,0x41,0x6d,0x62,0x69,0x65,0x6e,0x74,0x20,0x3d,0x20,0x30,0x2e,0x38,0x66, - 0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x65,0x65,0x72, - 0x41,0x74,0x74,0x20,0x3d,0x20,0x65,0x78,0x70,0x28,0x2d,0x6c,0x65,0x6e,0x67,0x74, - 0x68,0x28,0x28,0x70,0x6f,0x73,0x20,0x2d,0x20,0x72,0x65,0x66,0x72,0x50,0x6f,0x73, - 0x29,0x29,0x20,0x2a,0x20,0x77,0x61,0x74,0x65,0x72,0x4d,0x75,0x72,0x6b,0x69,0x6e, - 0x65,0x73,0x73,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x58,0x50, - 0x4c,0x41,0x4e,0x41,0x54,0x49,0x4f,0x4e,0x3a,0x20,0x57,0x48,0x45,0x4e,0x20,0x54, - 0x48,0x45,0x20,0x57,0x41,0x54,0x45,0x52,0x20,0x49,0x53,0x20,0x4e,0x4f,0x54,0x20, - 0x50,0x45,0x52,0x46,0x45,0x43,0x54,0x4c,0x59,0x20,0x43,0x4c,0x45,0x41,0x52,0x2c, - 0x20,0x49,0x54,0x20,0x57,0x49,0x4c,0x4c,0x20,0x48,0x41,0x56,0x45,0x20,0x53,0x54, - 0x55,0x46,0x46,0x20,0x53,0x43,0x41,0x54,0x54,0x45,0x52,0x49,0x4e,0x47,0x20,0x4c, - 0x49,0x47,0x48,0x54,0x20,0x55,0x4e,0x44,0x45,0x52,0x4e,0x45,0x41,0x54,0x48,0x20, - 0x54,0x48,0x45,0x20,0x53,0x55,0x52,0x46,0x41,0x43,0x45,0xa,0x20,0x20,0x20,0x20, - 0x2f,0x2f,0x20,0x53,0x4f,0x4d,0x45,0x20,0x4f,0x46,0x20,0x49,0x54,0x20,0x57,0x49, - 0x4c,0x4c,0x20,0x42,0x45,0x20,0x44,0x49,0x46,0x46,0x55,0x53,0x45,0x4c,0x59,0x20, - 0x4c,0x49,0x54,0x2c,0x20,0x42,0x55,0x54,0x20,0x54,0x48,0x45,0x52,0x45,0x20,0x57, - 0x49,0x4c,0x4c,0x20,0x42,0x45,0x20,0x53,0x55,0x42,0x53,0x55,0x52,0x46,0x41,0x43, - 0x45,0x20,0x53,0x43,0x41,0x54,0x54,0x45,0x52,0x49,0x4e,0x47,0x2c,0x20,0x45,0x53, - 0x54,0x49,0x4d,0x41,0x54,0x45,0x44,0x20,0x42,0x59,0x20,0x54,0x48,0x45,0x20,0x41, - 0x4d,0x42,0x49,0x45,0x4e,0x54,0x20,0x54,0x45,0x52,0x4d,0xa,0xa,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x34,0x20,0x64,0x69,0x66,0x66,0x75,0x73,0x65,0x20,0x3d,0x20, - 0x76,0x65,0x63,0x34,0x28,0x72,0x65,0x64,0x20,0x2a,0x20,0x64,0x2c,0x20,0x67,0x72, - 0x65,0x65,0x6e,0x20,0x2a,0x20,0x64,0x2c,0x20,0x62,0x6c,0x75,0x65,0x20,0x2a,0x20, - 0x64,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x34,0x20,0x73,0x70,0x65,0x63,0x75,0x6c,0x61,0x72,0x20,0x3d,0x20,0x76,0x65, - 0x63,0x34,0x28,0x31,0x2c,0x20,0x31,0x2c,0x20,0x31,0x2c,0x20,0x31,0x29,0x20,0x2a, - 0x20,0x70,0x6f,0x77,0x28,0x73,0x70,0x65,0x63,0x2c,0x20,0x31,0x30,0x2e,0x66,0x29, - 0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x61, - 0x6e,0x73,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x20,0x3d,0x20,0x76,0x65,0x63,0x34, - 0x28,0x76,0x65,0x63,0x33,0x28,0x72,0x65,0x66,0x72,0x55,0x56,0x2c,0x20,0x31,0x2e, - 0x66,0x20,0x2d,0x20,0x72,0x65,0x66,0x72,0x55,0x56,0x2e,0x79,0x29,0x2c,0x20,0x31, - 0x2e,0x66,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x77, - 0x61,0x74,0x65,0x72,0x42,0x6c,0x75,0x72,0x72,0x69,0x6e,0x65,0x73,0x73,0x20,0x3d, - 0x20,0x30,0x2e,0x66,0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x72, - 0x65,0x66,0x72,0x55,0x56,0x42,0x6c,0x75,0x72,0x72,0x79,0x20,0x3d,0x20,0x28,0x31, - 0x20,0x2d,0x20,0x62,0x65,0x65,0x72,0x41,0x74,0x74,0x29,0x20,0x2a,0x20,0x76,0x65, - 0x63,0x32,0x28,0x72,0x61,0x6e,0x64,0x28,0x72,0x65,0x66,0x72,0x55,0x56,0x29,0x2c, - 0x20,0x72,0x61,0x6e,0x64,0x28,0x76,0x65,0x63,0x34,0x28,0x70,0x6f,0x73,0x2c,0x20, - 0x64,0x29,0x29,0x29,0x20,0x2a,0x20,0x77,0x61,0x74,0x65,0x72,0x42,0x6c,0x75,0x72, - 0x72,0x69,0x6e,0x65,0x73,0x73,0x20,0x2b,0x20,0x72,0x65,0x66,0x72,0x55,0x56,0x3b, - 0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x61,0x6e,0x73,0x6d, - 0x69,0x73,0x73,0x69,0x76,0x65,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, - 0x28,0x67,0x72,0x6f,0x75,0x6e,0x64,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20, - 0x76,0x65,0x63,0x32,0x28,0x72,0x65,0x66,0x72,0x55,0x56,0x42,0x6c,0x75,0x72,0x72, - 0x79,0x29,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x6d,0x75, - 0x72,0x6b,0x20,0x3d,0x20,0x28,0x76,0x65,0x63,0x34,0x28,0x77,0x61,0x74,0x65,0x72, - 0x56,0x6f,0x6c,0x75,0x6d,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x64,0x20, - 0x2a,0x20,0x6d,0x75,0x72,0x6b,0x44,0x69,0x66,0x66,0x75,0x73,0x65,0x20,0x2b,0x20, - 0x77,0x61,0x74,0x65,0x72,0x56,0x6f,0x6c,0x75,0x6d,0x65,0x43,0x6f,0x6c,0x6f,0x72, - 0x20,0x2a,0x20,0x6d,0x75,0x72,0x6b,0x41,0x6d,0x62,0x69,0x65,0x6e,0x74,0x2c,0x20, - 0x31,0x2e,0x30,0x66,0x29,0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x34,0x20,0x73,0x6b,0x79,0x52,0x65,0x66,0x6c,0x20,0x3d,0x20,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x28,0x73,0x6b,0x79,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20, - 0x76,0x65,0x63,0x32,0x28,0x72,0x65,0x66,0x6c,0x55,0x56,0x29,0x29,0x3b,0xa,0x2f, - 0x2f,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x20,0x2a,0x3d, - 0x20,0x62,0x65,0x65,0x72,0x41,0x74,0x74,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x66, - 0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x30,0x2e,0x37,0x35,0x66, - 0x20,0x2a,0x20,0x64,0x69,0x66,0x66,0x75,0x73,0x65,0x3b,0x20,0x2f,0x2f,0x20,0x44, - 0x69,0x66,0x66,0x75,0x73,0x65,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61, - 0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x30,0x2c, - 0x20,0x30,0x2c,0x20,0x30,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20, - 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76, - 0x65,0x63,0x34,0x28,0x2e,0x39,0x66,0x2c,0x31,0x2e,0x66,0x2c,0x31,0x2e,0x66,0x2c, - 0x30,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f, - 0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x72,0x65,0x64,0x20,0x2a,0x20,0x2e, - 0x32,0x66,0x2c,0x20,0x67,0x72,0x65,0x65,0x6e,0x20,0x2a,0x20,0x2e,0x32,0x66,0x2c, - 0x20,0x62,0x6c,0x75,0x65,0x20,0x2a,0x20,0x2e,0x32,0x66,0x2c,0x31,0x2e,0x66,0x29, - 0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20, - 0x2b,0x3d,0x20,0x31,0x2e,0x66,0x20,0x2a,0x20,0x73,0x70,0x65,0x63,0x75,0x6c,0x61, - 0x72,0x3b,0x20,0x2f,0x2f,0x20,0x53,0x70,0x65,0x63,0x75,0x6c,0x61,0x72,0x20,0x54, - 0x4f,0x44,0x4f,0x3a,0x20,0x50,0x61,0x73,0x73,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70, - 0x6c,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x61,0x73,0x20,0x75,0x6e,0x69, - 0x66,0x6f,0x72,0x6d,0x73,0x2e,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43, - 0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x66,0x72,0x61, - 0x67,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x31,0x2e,0x66, - 0x29,0x3b,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x61,0x6d,0x70,0xa,0x20,0x20,0x20,0x20, - 0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2b,0x3d,0x20,0x30,0x2e,0x33, - 0x66,0x20,0x2a,0x20,0x73,0x6b,0x79,0x52,0x65,0x66,0x6c,0x3b,0xa,0x20,0x20,0x20, - 0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x63,0x6c,0x61, - 0x6d,0x70,0x28,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x30,0x2e, - 0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x61,0x6d, - 0x70,0xa,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72, - 0x20,0x2a,0x3d,0x20,0x20,0x28,0x28,0x31,0x20,0x2d,0x20,0x72,0x65,0x66,0x72,0x50, - 0x72,0x6f,0x62,0x29,0x20,0x2f,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0xa,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x76,0x6f,0x6c,0x75,0x6d,0x65,0x74,0x72,0x69, - 0x63,0x20,0x3d,0x20,0x62,0x65,0x65,0x72,0x41,0x74,0x74,0x20,0x2a,0x20,0x74,0x72, - 0x61,0x6e,0x73,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x3b,0xa,0x20,0x20,0x20,0x20, - 0x76,0x6f,0x6c,0x75,0x6d,0x65,0x74,0x72,0x69,0x63,0x20,0x2b,0x3d,0x20,0x28,0x31, - 0x20,0x2d,0x20,0x62,0x65,0x65,0x72,0x41,0x74,0x74,0x29,0x20,0x2a,0x20,0x6d,0x75, - 0x72,0x6b,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c, - 0x6f,0x72,0x20,0x2b,0x3d,0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x20,0x2a, - 0x20,0x76,0x6f,0x6c,0x75,0x6d,0x65,0x74,0x72,0x69,0x63,0x3b,0xa,0x2f,0x2f,0x20, - 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x74, - 0x72,0x61,0x6e,0x73,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x20,0x2a,0x20,0x72,0x65, - 0x66,0x72,0x50,0x72,0x6f,0x62,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67, - 0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x76,0x65,0x63, - 0x33,0x28,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x2c,0x20,0x31,0x2e, - 0x66,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x69,0x76,0x69,0x64, - 0x69,0x6e,0x67,0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x20,0x62,0x79,0x20, - 0x32,0x20,0x6a,0x75,0x73,0x74,0x20,0x66,0x6f,0x72,0x20,0x68,0x65,0x75,0x72,0x69, - 0x73,0x74,0x69,0x63,0x2e,0x20,0x57,0x61,0x6e,0x74,0x20,0x6d,0x6f,0x72,0x65,0x20, - 0x70,0x68,0x6f,0x6e,0x67,0x20,0x74,0x6f,0x20,0x73,0x68,0x6f,0x77,0x20,0x74,0x68, - 0x72,0x6f,0x75,0x67,0x68,0x2e,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61, + 0x29,0x3b,0xa,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x77,0x61,0x74,0x65,0x72,0x4d,0x75,0x72,0x6b,0x69,0x6e,0x65,0x73,0x73,0x20,0x3d, + 0x20,0x30,0x2e,0x30,0x30,0x32,0x66,0x3b,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f, + 0x3a,0x20,0x4d,0x61,0x6b,0x65,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0xa,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x77,0x61,0x74,0x65,0x72,0x4d,0x75, + 0x72,0x6b,0x69,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x30,0x30,0x30,0x35, + 0x66,0x3b,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20,0x4d,0x61,0x6b,0x65, + 0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x33,0x20,0x77,0x61,0x74,0x65,0x72,0x56,0x6f,0x6c,0x75,0x6d,0x65,0x43,0x6f,0x6c, + 0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x72,0x65,0x64,0x20,0x2a,0x20, + 0x30,0x2e,0x31,0x66,0x2c,0x20,0x67,0x72,0x65,0x65,0x6e,0x20,0x2a,0x20,0x30,0x2e, + 0x32,0x66,0x2c,0x20,0x62,0x6c,0x75,0x65,0x20,0x2a,0x20,0x30,0x2e,0x32,0x66,0x29, + 0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x75,0x72,0x6b, + 0x44,0x69,0x66,0x66,0x75,0x73,0x65,0x20,0x3d,0x20,0x30,0x2e,0x33,0x66,0x3b,0xa, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x75,0x72,0x6b,0x41,0x6d, + 0x62,0x69,0x65,0x6e,0x74,0x20,0x3d,0x20,0x30,0x2e,0x38,0x66,0x3b,0xa,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x65,0x65,0x72,0x41,0x74,0x74,0x20, + 0x3d,0x20,0x65,0x78,0x70,0x28,0x2d,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x28,0x70, + 0x6f,0x73,0x20,0x2d,0x20,0x72,0x65,0x66,0x72,0x50,0x6f,0x73,0x29,0x29,0x20,0x2a, + 0x20,0x77,0x61,0x74,0x65,0x72,0x4d,0x75,0x72,0x6b,0x69,0x6e,0x65,0x73,0x73,0x29, + 0x3b,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x58,0x50,0x4c,0x41,0x4e,0x41, + 0x54,0x49,0x4f,0x4e,0x3a,0x20,0x57,0x48,0x45,0x4e,0x20,0x54,0x48,0x45,0x20,0x57, + 0x41,0x54,0x45,0x52,0x20,0x49,0x53,0x20,0x4e,0x4f,0x54,0x20,0x50,0x45,0x52,0x46, + 0x45,0x43,0x54,0x4c,0x59,0x20,0x43,0x4c,0x45,0x41,0x52,0x2c,0x20,0x49,0x54,0x20, + 0x57,0x49,0x4c,0x4c,0x20,0x48,0x41,0x56,0x45,0x20,0x53,0x54,0x55,0x46,0x46,0x20, + 0x53,0x43,0x41,0x54,0x54,0x45,0x52,0x49,0x4e,0x47,0x20,0x4c,0x49,0x47,0x48,0x54, + 0x20,0x55,0x4e,0x44,0x45,0x52,0x4e,0x45,0x41,0x54,0x48,0x20,0x54,0x48,0x45,0x20, + 0x53,0x55,0x52,0x46,0x41,0x43,0x45,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53, + 0x4f,0x4d,0x45,0x20,0x4f,0x46,0x20,0x49,0x54,0x20,0x57,0x49,0x4c,0x4c,0x20,0x42, + 0x45,0x20,0x44,0x49,0x46,0x46,0x55,0x53,0x45,0x4c,0x59,0x20,0x4c,0x49,0x54,0x2c, + 0x20,0x42,0x55,0x54,0x20,0x54,0x48,0x45,0x52,0x45,0x20,0x57,0x49,0x4c,0x4c,0x20, + 0x42,0x45,0x20,0x53,0x55,0x42,0x53,0x55,0x52,0x46,0x41,0x43,0x45,0x20,0x53,0x43, + 0x41,0x54,0x54,0x45,0x52,0x49,0x4e,0x47,0x2c,0x20,0x45,0x53,0x54,0x49,0x4d,0x41, + 0x54,0x45,0x44,0x20,0x42,0x59,0x20,0x54,0x48,0x45,0x20,0x41,0x4d,0x42,0x49,0x45, + 0x4e,0x54,0x20,0x54,0x45,0x52,0x4d,0xa,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x34,0x20,0x64,0x69,0x66,0x66,0x75,0x73,0x65,0x20,0x3d,0x20,0x76,0x65,0x63,0x34, + 0x28,0x72,0x65,0x64,0x20,0x2a,0x20,0x64,0x2c,0x20,0x67,0x72,0x65,0x65,0x6e,0x20, + 0x2a,0x20,0x64,0x2c,0x20,0x62,0x6c,0x75,0x65,0x20,0x2a,0x20,0x64,0x2c,0x20,0x31, + 0x2e,0x30,0x66,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x73, + 0x70,0x65,0x63,0x75,0x6c,0x61,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x31, + 0x2c,0x20,0x31,0x2c,0x20,0x31,0x2c,0x20,0x31,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77, + 0x28,0x73,0x70,0x65,0x63,0x2c,0x20,0x31,0x30,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x61,0x6e,0x73,0x6d,0x69, + 0x73,0x73,0x69,0x76,0x65,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x76,0x65,0x63, + 0x33,0x28,0x72,0x65,0x66,0x72,0x55,0x56,0x2c,0x20,0x31,0x2e,0x66,0x20,0x2d,0x20, + 0x72,0x65,0x66,0x72,0x55,0x56,0x2e,0x79,0x29,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b, + 0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x77,0x61,0x74,0x65,0x72, + 0x42,0x6c,0x75,0x72,0x72,0x69,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x66, + 0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x72,0x65,0x66,0x72,0x55, + 0x56,0x42,0x6c,0x75,0x72,0x72,0x79,0x20,0x3d,0x20,0x28,0x31,0x20,0x2d,0x20,0x62, + 0x65,0x65,0x72,0x41,0x74,0x74,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x32,0x28,0x72, + 0x61,0x6e,0x64,0x28,0x72,0x65,0x66,0x72,0x55,0x56,0x29,0x2c,0x20,0x72,0x61,0x6e, + 0x64,0x28,0x76,0x65,0x63,0x34,0x28,0x70,0x6f,0x73,0x2c,0x20,0x64,0x29,0x29,0x29, + 0x20,0x2a,0x20,0x77,0x61,0x74,0x65,0x72,0x42,0x6c,0x75,0x72,0x72,0x69,0x6e,0x65, + 0x73,0x73,0x20,0x2b,0x20,0x72,0x65,0x66,0x72,0x55,0x56,0x3b,0xa,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x61,0x6e,0x73,0x6d,0x69,0x73,0x73,0x69, + 0x76,0x65,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x67,0x72,0x6f, + 0x75,0x6e,0x64,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x76,0x65,0x63,0x32, + 0x28,0x72,0x65,0x66,0x72,0x55,0x56,0x42,0x6c,0x75,0x72,0x72,0x79,0x29,0x29,0x3b, + 0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x6d,0x75,0x72,0x6b,0x20,0x3d, + 0x20,0x28,0x76,0x65,0x63,0x34,0x28,0x77,0x61,0x74,0x65,0x72,0x56,0x6f,0x6c,0x75, + 0x6d,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x64,0x20,0x2a,0x20,0x6d,0x75, + 0x72,0x6b,0x44,0x69,0x66,0x66,0x75,0x73,0x65,0x20,0x2b,0x20,0x77,0x61,0x74,0x65, + 0x72,0x56,0x6f,0x6c,0x75,0x6d,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x6d, + 0x75,0x72,0x6b,0x41,0x6d,0x62,0x69,0x65,0x6e,0x74,0x2c,0x20,0x31,0x2e,0x30,0x66, + 0x29,0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x73,0x6b, + 0x79,0x52,0x65,0x66,0x6c,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28, + 0x73,0x6b,0x79,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x76,0x65,0x63,0x32, + 0x28,0x72,0x65,0x66,0x6c,0x55,0x56,0x29,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20, + 0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x20,0x2a,0x3d,0x20,0x62,0x65,0x65, + 0x72,0x41,0x74,0x74,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43, + 0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x30,0x2e,0x37,0x35,0x66,0x20,0x2a,0x20,0x64, + 0x69,0x66,0x66,0x75,0x73,0x65,0x3b,0x20,0x2f,0x2f,0x20,0x44,0x69,0x66,0x66,0x75, + 0x73,0x65,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c, + 0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20, + 0x30,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66, + 0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28, + 0x2e,0x39,0x66,0x2c,0x31,0x2e,0x66,0x2c,0x31,0x2e,0x66,0x2c,0x30,0x29,0x3b,0xa, + 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, + 0x76,0x65,0x63,0x34,0x28,0x72,0x65,0x64,0x20,0x2a,0x20,0x2e,0x32,0x66,0x2c,0x20, + 0x67,0x72,0x65,0x65,0x6e,0x20,0x2a,0x20,0x2e,0x32,0x66,0x2c,0x20,0x62,0x6c,0x75, + 0x65,0x20,0x2a,0x20,0x2e,0x32,0x66,0x2c,0x31,0x2e,0x66,0x29,0x3b,0xa,0x20,0x20, + 0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2b,0x3d,0x20,0x31, + 0x2e,0x66,0x20,0x2a,0x20,0x73,0x70,0x65,0x63,0x75,0x6c,0x61,0x72,0x3b,0x20,0x2f, + 0x2f,0x20,0x53,0x70,0x65,0x63,0x75,0x6c,0x61,0x72,0x20,0x54,0x4f,0x44,0x4f,0x3a, + 0x20,0x50,0x61,0x73,0x73,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x69,0x63,0x61, + 0x74,0x69,0x6f,0x6e,0x73,0x20,0x61,0x73,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, + 0x73,0x2e,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72, + 0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c, + 0x6f,0x72,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0x20,0x2f, + 0x2f,0x20,0x43,0x6c,0x61,0x6d,0x70,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67, + 0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2b,0x3d,0x20,0x30,0x2e,0x33,0x66,0x20,0x2a,0x20, + 0x73,0x6b,0x79,0x52,0x65,0x66,0x6c,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61, 0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x66, 0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x31, - 0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43, - 0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x72,0x65,0x66,0x72, - 0x50,0x72,0x6f,0x62,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20, - 0x31,0x2e,0x66,0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x4f, - 0x44,0x4f,0x3a,0x20,0x41,0x43,0x54,0x55,0x41,0x4c,0x20,0x4c,0x49,0x47,0x48,0x54, - 0x49,0x4e,0x47,0x20,0x4d,0x4f,0x44,0x45,0x4c,0x20,0x53,0x48,0x4f,0x55,0x4c,0x44, - 0x20,0x42,0x45,0x20,0x53,0x4f,0x4d,0x45,0x54,0x48,0x49,0x4e,0x47,0x20,0x4c,0x49, - 0x4b,0x45,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x45,0x4c,0x4f,0x43,0x49, - 0x54,0x59,0x20,0x2a,0x20,0x44,0x49,0x46,0x46,0x55,0x53,0x45,0xa,0x20,0x20,0x20, - 0x20,0x2f,0x2f,0x20,0x28,0x31,0x20,0x2d,0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f, - 0x62,0x29,0x20,0x2a,0x20,0x53,0x50,0x45,0x43,0x55,0x4c,0x41,0x52,0xa,0x20,0x20, - 0x20,0x20,0x2f,0x2f,0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x20,0x2a,0x20, - 0x28,0x42,0x45,0x45,0x52,0x20,0x2a,0x20,0x54,0x52,0x41,0x4e,0x53,0x4d,0x49,0x53, - 0x53,0x49,0x56,0x45,0x20,0x2b,0x20,0x28,0x31,0x20,0x2d,0x20,0x62,0x65,0x65,0x72, - 0x41,0x74,0x74,0x29,0x20,0x2a,0x20,0x56,0x4f,0x4c,0x55,0x4d,0x45,0x20,0x28,0x77, - 0x68,0x69,0x63,0x68,0x20,0x69,0x73,0x20,0x73,0x6f,0x6d,0x65,0x77,0x68,0x61,0x74, - 0x20,0x64,0x69,0x66,0x66,0x75,0x73,0x65,0x20,0x74,0x6f,0x6f,0x3f,0x29,0x29,0xa, - 0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x72,0x61,0x6e,0x73,0x6d,0x69,0x73,0x73, - 0x69,0x76,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x6e,0x27,0x74,0x20,0x6a,0x75, - 0x73,0x74,0x20,0x67,0x65,0x74,0x20,0x64,0x61,0x72,0x6b,0x65,0x72,0x2c,0x20,0x62, - 0x75,0x74,0x20,0x62,0x6c,0x75,0x72,0x72,0x69,0x65,0x72,0x20,0x61,0x73,0x20,0x62, - 0x65,0x65,0x72,0x20,0x61,0x74,0x74,0x65,0x6e,0x75,0x61,0x74,0x69,0x6f,0x6e,0x20, - 0x6c,0x6f,0x77,0x65,0x72,0x73,0x2e,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72, - 0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x28,0x67,0x72,0x6f,0x75,0x6e,0x64,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c, - 0x20,0x76,0x65,0x63,0x32,0x28,0x72,0x65,0x66,0x72,0x55,0x56,0x29,0x29,0x3b,0xa, - 0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20, - 0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f, - 0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x5b,0x30,0x5d,0x2c,0x20,0x30,0x2c,0x20, - 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63, - 0x65,0x5b,0x31,0x5d,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20, - 0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x64,0x69, - 0x66,0x66,0x75,0x73,0x65,0x3b,0xa,0x7d,0xa, + 0x2e,0x66,0x29,0x3b,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x61,0x6d,0x70,0xa,0xa,0x20, + 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x3d,0x20, + 0x20,0x28,0x28,0x31,0x20,0x2d,0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x29, + 0x20,0x2f,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x34,0x20,0x76,0x6f,0x6c,0x75,0x6d,0x65,0x74,0x72,0x69,0x63,0x20,0x3d,0x20, + 0x62,0x65,0x65,0x72,0x41,0x74,0x74,0x20,0x2a,0x20,0x74,0x72,0x61,0x6e,0x73,0x6d, + 0x69,0x73,0x73,0x69,0x76,0x65,0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x6f,0x6c,0x75, + 0x6d,0x65,0x74,0x72,0x69,0x63,0x20,0x2b,0x3d,0x20,0x28,0x31,0x20,0x2d,0x20,0x62, + 0x65,0x65,0x72,0x41,0x74,0x74,0x29,0x20,0x2a,0x20,0x6d,0x75,0x72,0x6b,0x3b,0xa, + 0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2b, + 0x3d,0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x20,0x2a,0x20,0x76,0x6f,0x6c, + 0x75,0x6d,0x65,0x74,0x72,0x69,0x63,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66, + 0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x74,0x72,0x61,0x6e,0x73, + 0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x20,0x2a,0x20,0x72,0x65,0x66,0x72,0x50,0x72, + 0x6f,0x62,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f, + 0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x76,0x65,0x63,0x33,0x28,0x66,0x72, + 0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa, + 0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x69,0x76,0x69,0x64,0x69,0x6e,0x67,0x20, + 0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x20,0x62,0x79,0x20,0x32,0x20,0x6a,0x75, + 0x73,0x74,0x20,0x66,0x6f,0x72,0x20,0x68,0x65,0x75,0x72,0x69,0x73,0x74,0x69,0x63, + 0x2e,0x20,0x57,0x61,0x6e,0x74,0x20,0x6d,0x6f,0x72,0x65,0x20,0x70,0x68,0x6f,0x6e, + 0x67,0x20,0x74,0x6f,0x20,0x73,0x68,0x6f,0x77,0x20,0x74,0x68,0x72,0x6f,0x75,0x67, + 0x68,0x2e,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c, + 0x6f,0x72,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x66,0x72,0x61,0x67,0x43, + 0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b, + 0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72, + 0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62, + 0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x31,0x2e,0x66,0x29, + 0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20, + 0x41,0x43,0x54,0x55,0x41,0x4c,0x20,0x4c,0x49,0x47,0x48,0x54,0x49,0x4e,0x47,0x20, + 0x4d,0x4f,0x44,0x45,0x4c,0x20,0x53,0x48,0x4f,0x55,0x4c,0x44,0x20,0x42,0x45,0x20, + 0x53,0x4f,0x4d,0x45,0x54,0x48,0x49,0x4e,0x47,0x20,0x4c,0x49,0x4b,0x45,0xa,0x20, + 0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x45,0x4c,0x4f,0x43,0x49,0x54,0x59,0x20,0x2a, + 0x20,0x44,0x49,0x46,0x46,0x55,0x53,0x45,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20, + 0x28,0x31,0x20,0x2d,0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x29,0x20,0x2a, + 0x20,0x53,0x50,0x45,0x43,0x55,0x4c,0x41,0x52,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f, + 0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x20,0x2a,0x20,0x28,0x42,0x45,0x45, + 0x52,0x20,0x2a,0x20,0x54,0x52,0x41,0x4e,0x53,0x4d,0x49,0x53,0x53,0x49,0x56,0x45, + 0x20,0x2b,0x20,0x28,0x31,0x20,0x2d,0x20,0x62,0x65,0x65,0x72,0x41,0x74,0x74,0x29, + 0x20,0x2a,0x20,0x56,0x4f,0x4c,0x55,0x4d,0x45,0x20,0x28,0x77,0x68,0x69,0x63,0x68, + 0x20,0x69,0x73,0x20,0x73,0x6f,0x6d,0x65,0x77,0x68,0x61,0x74,0x20,0x64,0x69,0x66, + 0x66,0x75,0x73,0x65,0x20,0x74,0x6f,0x6f,0x3f,0x29,0x29,0xa,0x20,0x20,0x20,0x20, + 0x2f,0x2f,0x20,0x54,0x72,0x61,0x6e,0x73,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x20, + 0x73,0x68,0x6f,0x75,0x6c,0x64,0x6e,0x27,0x74,0x20,0x6a,0x75,0x73,0x74,0x20,0x67, + 0x65,0x74,0x20,0x64,0x61,0x72,0x6b,0x65,0x72,0x2c,0x20,0x62,0x75,0x74,0x20,0x62, + 0x6c,0x75,0x72,0x72,0x69,0x65,0x72,0x20,0x61,0x73,0x20,0x62,0x65,0x65,0x72,0x20, + 0x61,0x74,0x74,0x65,0x6e,0x75,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x77,0x65, + 0x72,0x73,0x2e,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f, + 0x6c,0x6f,0x72,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x67,0x72, + 0x6f,0x75,0x6e,0x64,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x76,0x65,0x63, + 0x32,0x28,0x72,0x65,0x66,0x72,0x55,0x56,0x29,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20, + 0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65, + 0x63,0x34,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53, + 0x70,0x61,0x63,0x65,0x5b,0x30,0x5d,0x2c,0x20,0x30,0x2c,0x20,0x6e,0x6f,0x72,0x6d, + 0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x5b,0x31,0x5d, + 0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x64,0x69,0x66,0x66,0x75,0x73, + 0x65,0x3b,0xa,0x7d,0xa, // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/caustic_sample.jpg 0x0,0x1,0x55,0xb5, 0xff, @@ -292427,6 +292733,16 @@ static const unsigned char qt_resource_name[] = { 0x9,0xe7,0xac,0x73, 0x0,0x73, 0x0,0x68,0x0,0x61,0x0,0x64,0x0,0x65,0x0,0x72,0x0,0x73, + // color.vert + 0x0,0xa, + 0x6,0x58,0x80,0xf4, + 0x0,0x63, + 0x0,0x6f,0x0,0x6c,0x0,0x6f,0x0,0x72,0x0,0x2e,0x0,0x76,0x0,0x65,0x0,0x72,0x0,0x74, + // color.frag + 0x0,0xa, + 0x6,0x59,0x94,0x17, + 0x0,0x63, + 0x0,0x6f,0x0,0x6c,0x0,0x6f,0x0,0x72,0x0,0x2e,0x0,0x66,0x0,0x72,0x0,0x61,0x0,0x67, // texture.vert 0x0,0xc, 0x7,0x5c,0x3b,0x14, @@ -292514,55 +292830,61 @@ static const unsigned char qt_resource_struct[] = { 0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x2, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, // :/resources/images - 0x0,0x0,0x0,0x18,0x0,0x2,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0xb, + 0x0,0x0,0x0,0x18,0x0,0x2,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0xd, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, // :/resources/shaders - 0x0,0x0,0x0,0x2a,0x0,0x2,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x4, + 0x0,0x0,0x0,0x2a,0x0,0x2,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x4, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - // :/resources/shaders/texture.vert + // :/resources/shaders/color.vert 0x0,0x0,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x8f,0x5d,0xd8,0x6b,0x15, + // :/resources/shaders/color.frag + 0x0,0x0,0x0,0x58,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xc,0xf6, +0x0,0x0,0x1,0x8f,0x5d,0xd8,0x6b,0x15, + // :/resources/shaders/texture.vert + 0x0,0x0,0x0,0x72,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x12,0x3a, 0x0,0x0,0x1,0x8f,0x2a,0xcf,0x26,0x7a, // :/resources/shaders/texture.frag - 0x0,0x0,0x0,0xce,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x6,0x98, + 0x0,0x0,0x1,0x2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x18,0xd2, 0x0,0x0,0x1,0x8f,0x2a,0xcf,0x26,0x7a, // :/resources/shaders/anchorPoint.frag - 0x0,0x0,0x0,0x5c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1,0x8c, + 0x0,0x0,0x0,0x90,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x13,0xc6, 0x0,0x0,0x1,0x8e,0xa4,0xf3,0xf5,0x48, // :/resources/shaders/anchorPoint.geom - 0x0,0x0,0x0,0x82,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x2,0x12, + 0x0,0x0,0x0,0xb6,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x14,0x4c, 0x0,0x0,0x1,0x8f,0xd,0xe3,0x6f,0xf0, // :/resources/shaders/anchorPoint.vert - 0x0,0x0,0x0,0xa8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x5,0x44, + 0x0,0x0,0x0,0xdc,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x17,0x7e, 0x0,0x0,0x1,0x8f,0x2a,0xcf,0x26,0x7a, // :/resources/shaders/shader.vert - 0x0,0x0,0x0,0xec,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x8,0xc1, -0x0,0x0,0x1,0x8f,0x41,0x3a,0x4b,0x8f, + 0x0,0x0,0x1,0x20,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1a,0xfb, +0x0,0x0,0x1,0x8f,0x5d,0xd8,0x6b,0x17, // :/resources/shaders/shader.frag - 0x0,0x0,0x1,0x8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x16,0x18, -0x0,0x0,0x1,0x8f,0x44,0xe8,0xa7,0xca, + 0x0,0x0,0x1,0x3c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x28,0x99, +0x0,0x0,0x1,0x8f,0x5d,0xd8,0x6b,0x16, // :/resources/images/caustic_sample.jpg - 0x0,0x0,0x1,0x24,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x28,0x86, + 0x0,0x0,0x1,0x58,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x3b,0x43, 0x0,0x0,0x1,0x8f,0x2a,0xcf,0x26,0x6b, // :/resources/images/hello.png - 0x0,0x0,0x1,0x96,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x30,0x75,0x8c, + 0x0,0x0,0x1,0xca,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x30,0x88,0x49, 0x0,0x0,0x1,0x8f,0x2a,0xcf,0x26,0x6d, // :/resources/images/anamorphic.jpg - 0x0,0x0,0x1,0xce,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x37,0xd9,0x5c, + 0x0,0x0,0x2,0x2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x37,0xec,0x19, 0x0,0x0,0x1,0x8f,0x2a,0xcf,0x26,0x6a, // :/resources/images/kitten.png - 0x0,0x0,0x1,0x4e,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x7e,0x3f, + 0x0,0x0,0x1,0x82,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x90,0xfc, 0x0,0x0,0x1,0x8f,0x2a,0xcf,0x26,0x72, // :/resources/images/uv1.png - 0x0,0x0,0x1,0x82,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2f,0xb9,0xf4, + 0x0,0x0,0x1,0xb6,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2f,0xcc,0xb1, 0x0,0x0,0x1,0x8f,0x2a,0xcf,0x26,0x72, // :/resources/images/sky_clouds.png - 0x0,0x0,0x1,0xf0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x38,0x4e,0x5e, -0x0,0x0,0x1,0x8f,0x41,0x3a,0x4b,0x8e, + 0x0,0x0,0x2,0x24,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x38,0x61,0x1b, +0x0,0x0,0x1,0x8f,0x4c,0x56,0x85,0x26, // :/resources/images/daniel.jpg - 0x0,0x0,0x1,0x68,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x19,0xf7,0x5f, -0x0,0x0,0x1,0x8f,0x41,0x3a,0x4b,0x8b, + 0x0,0x0,0x1,0x9c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1a,0xa,0x1c, +0x0,0x0,0x1,0x8f,0x4c,0x56,0x85,0x24, // :/resources/images/sand_text.jpg - 0x0,0x0,0x1,0xae,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x37,0x7e,0xea, + 0x0,0x0,0x1,0xe2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x37,0x91,0xa7, 0x0,0x0,0x1,0x8f,0x2a,0xcf,0x26,0x72, }; diff --git a/cmake-build-debug/CMakeFiles/ocean_autogen.dir/ParseCache.txt b/cmake-build-debug/CMakeFiles/ocean_autogen.dir/ParseCache.txt index d55e7dc..363ebe7 100644 --- a/cmake-build-debug/CMakeFiles/ocean_autogen.dir/ParseCache.txt +++ b/cmake-build-debug/CMakeFiles/ocean_autogen.dir/ParseCache.txt @@ -2,8 +2,7 @@ /Users/sotech117/Documents/final/adv/ocean-simulation/src/arap.h /Users/sotech117/Documents/final/adv/ocean-simulation/src/ocean/ocean.h /Users/sotech117/Documents/final/adv/ocean-simulation/src/graphics/camera.cpp -/Users/sotech117/Documents/final/adv/ocean-simulation/util/tiny_obj_loader.h -/Users/sotech117/Documents/final/adv/ocean-simulation/src/graphics/camera.h +/Users/sotech117/Documents/final/adv/ocean-simulation/src/graphics/shape.cpp /Users/sotech117/Documents/final/adv/ocean-simulation/src/glwidget.h mmc:Q_OBJECT mdp:/Users/sotech117/Documents/final/adv/ocean-simulation/src/glwidget.h @@ -1388,7 +1387,8 @@ mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qtwidgetsexports.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qtwidgetsglobal.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qwidget.h -/Users/sotech117/Documents/final/adv/ocean-simulation/src/graphics/shape.cpp +/Users/sotech117/Documents/final/adv/ocean-simulation/util/tiny_obj_loader.h +/Users/sotech117/Documents/final/adv/ocean-simulation/src/graphics/camera.h /Users/sotech117/Documents/final/adv/ocean-simulation/src/arap.cpp /Users/sotech117/Documents/final/adv/ocean-simulation/src/graphics/meshloader.cpp /Users/sotech117/Documents/final/adv/ocean-simulation/src/graphics/shader.h diff --git a/cmake-build-debug/Testing/Temporary/LastTest.log b/cmake-build-debug/Testing/Temporary/LastTest.log index 2c5f261..41fa4a8 100644 --- a/cmake-build-debug/Testing/Temporary/LastTest.log +++ b/cmake-build-debug/Testing/Temporary/LastTest.log @@ -1,3 +1,3 @@ -Start testing: May 04 15:14 EDT +Start testing: May 09 15:02 EDT ---------------------------------------------------------- -End testing: May 04 15:14 EDT +End testing: May 09 15:02 EDT diff --git a/cmake-build-debug/build.ninja b/cmake-build-debug/build.ninja index 299a3cc..50e4a07 100644 --- a/cmake-build-debug/build.ninja +++ b/cmake-build-debug/build.ninja @@ -268,7 +268,7 @@ build StaticGLEW_autogen: phony CMakeFiles/StaticGLEW_autogen StaticGLEW_autogen ############################################# # Custom command for .rcc/qrc_Resources.cpp -build .rcc/qrc_Resources.cpp | ${cmake_ninja_workdir}.rcc/qrc_Resources.cpp: CUSTOM_COMMAND /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/uv1.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/kitten.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/hello.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/sand_text.jpg /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/caustic_sample.jpg /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/anamorphic.jpg /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/daniel.jpg /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/sky_clouds.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/shader.frag /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/shader.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/anchorPoint.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/anchorPoint.geom /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/anchorPoint.frag /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/texture.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/texture.frag .rcc/Resources.qrc /Users/sotech117/Qt/6.5.2/macos/./libexec/rcc || StaticGLEW_autogen StaticGLEW_autogen_timestamp_deps libStaticGLEW.a ocean_autogen ocean_autogen_timestamp_deps +build .rcc/qrc_Resources.cpp | ${cmake_ninja_workdir}.rcc/qrc_Resources.cpp: CUSTOM_COMMAND /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/uv1.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/kitten.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/hello.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/sand_text.jpg /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/caustic_sample.jpg /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/anamorphic.jpg /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/daniel.jpg /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/sky_clouds.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/shader.frag /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/shader.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/anchorPoint.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/anchorPoint.geom /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/anchorPoint.frag /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/texture.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/texture.frag /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/color.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/color.frag .rcc/Resources.qrc /Users/sotech117/Qt/6.5.2/macos/./libexec/rcc || StaticGLEW_autogen StaticGLEW_autogen_timestamp_deps libStaticGLEW.a ocean_autogen ocean_autogen_timestamp_deps COMMAND = cd /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug && /Users/sotech117/Qt/6.5.2/macos/./libexec/rcc --output /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/.rcc/qrc_Resources.cpp --name Resources /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/.rcc/Resources.qrc --no-zstd DESC = Running rcc for resource Resources restat = 1 @@ -297,7 +297,7 @@ build StaticGLEW_autogen/timestamp StaticGLEW_autogen/mocs_compilation.cpp | ${c ############################################# # Phony custom command for CMakeFiles/ocean_autogen_timestamp_deps -build CMakeFiles/ocean_autogen_timestamp_deps | ${cmake_ninja_workdir}CMakeFiles/ocean_autogen_timestamp_deps: phony /Users/sotech117/Qt/6.5.2/macos/./libexec/moc /Users/sotech117/Qt/6.5.2/macos/./libexec/uic libStaticGLEW.a || StaticGLEW_autogen StaticGLEW_autogen_timestamp_deps libStaticGLEW.a +build CMakeFiles/ocean_autogen_timestamp_deps | ${cmake_ninja_workdir}CMakeFiles/ocean_autogen_timestamp_deps: phony libStaticGLEW.a /Users/sotech117/Qt/6.5.2/macos/./libexec/moc /Users/sotech117/Qt/6.5.2/macos/./libexec/uic || StaticGLEW_autogen StaticGLEW_autogen_timestamp_deps libStaticGLEW.a ############################################# diff --git a/cmake-build-debug/ocean b/cmake-build-debug/ocean Binary files differindex ff53975..552319e 100755 --- a/cmake-build-debug/ocean +++ b/cmake-build-debug/ocean diff --git a/src/arap.cpp b/src/arap.cpp index 2f10849..729de07 100644 --- a/src/arap.cpp +++ b/src/arap.cpp @@ -34,7 +34,7 @@ void ARAP::init // if (MeshLoader::loadTriMesh(m_mesh_path, vertices, triangles)) { // m_shape.init(vertices, triangles); // } - + m_ocean.update_ocean(); vertices = m_ocean.get_vertices(); triangles = m_ocean.get_faces(); m_shape.init(vertices, triangles); @@ -102,10 +102,16 @@ void ARAP::update(double seconds) // Note that the "seconds" parameter represents the amount of time that has passed since // the last update - - m_ocean.fft_prime(m_time); - // m_shape.setVertices_and_Normals(m_ocean.get_vertices(), m_ocean.getNormals()); - m_shape.setVertices(m_ocean.get_vertices()); + m_ocean.fft_prime(m_time); + m_ocean.update_ocean(); + // std::cout << "updating ocean" << std::endl; + auto tmp = m_ocean.get_vertices(); + // print the vertex +// std::cout << "faces\t" << m_ocean.get_faces().size() << std::endl; +// std::cout << "noormals\t" << m_ocean.getNormals().size() << std::endl; +// std::cout << "vertices\t" << tmp.size() << std::endl; + m_shape.setVertices_and_Normals(m_ocean.get_vertices(), m_ocean.getNormals()); + // m_shape.setVertices(m_ocean.get_vertices()); m_time += m_timestep; diff --git a/src/ocean/ocean_alt.cpp b/src/ocean/ocean_alt.cpp index ca080cd..6355abd 100644 --- a/src/ocean/ocean_alt.cpp +++ b/src/ocean/ocean_alt.cpp @@ -45,10 +45,17 @@ void ocean_alt::init_wave_index_constants(){ // initialize m_current_h to be h0 for now // m_current_h.push_back(h0_prime); m_current_h.push_back(Eigen::Vector2d(0.0, 0.0)); - m_displacements.push_back(Eigen::Vector2d(0.0, 0.0)); - m_slopes.push_back(Eigen::Vector2d(0.0, 0.0)); + // m_displacements.push_back(Eigen::Vector2d(0.0, 0.0)); + // m_slopes.push_back(Eigen::Vector2d(0.0, 0.0)); m_normals.push_back(Eigen::Vector3f(0.0, 1.0, 0.0)); + m_slopes_x.push_back(Eigen::Vector2d(0.0, 0.0)); + m_slopes_z.push_back(Eigen::Vector2d(0.0, 0.0)); + + m_displacements_x.push_back(Eigen::Vector2d(0.0, 0.0)); + m_displacements_z.push_back(Eigen::Vector2d(0.0, 0.0)); + + m_vertices.push_back(Eigen::Vector3f(0.0, 0.0, 0.0)); } } @@ -57,8 +64,14 @@ void ocean_alt::fft_prime(double t){ // FFT std::vector<Eigen::Vector2d> h_tildas = std::vector<Eigen::Vector2d>(); - std::vector<Eigen::Vector2d> ikh = std::vector<Eigen::Vector2d>(); - std::vector<Eigen::Vector2d> neg_ik_hat_h = std::vector<Eigen::Vector2d>(); + // std::vector<Eigen::Vector2d> ikh = std::vector<Eigen::Vector2d>(); +// std::vector<Eigen::Vector2d> neg_ik_hat_h = std::vector<Eigen::Vector2d>(); + + std::vector<Eigen::Vector2d> ikhx = std::vector<Eigen::Vector2d>(); + std::vector<Eigen::Vector2d> ikhz = std::vector<Eigen::Vector2d>(); + + std::vector<Eigen::Vector2d> neg_ik_hat_h_x = std::vector<Eigen::Vector2d>(); + std::vector<Eigen::Vector2d> neg_ik_hat_h_z = std::vector<Eigen::Vector2d>(); // find each h_tilda at each index, to be used for next for loop for (int i=0; i<N; i++){ @@ -67,25 +80,47 @@ void ocean_alt::fft_prime(double t){ h_tildas.emplace_back(h_t_prime); Eigen::Vector2d k_vector = m_waveIndexConstants[i].k_vector; - ikh.emplace_back(-h_t_prime[1] * k_vector[0], -h_t_prime[1] * k_vector[1]); + // ikh.emplace_back(-h_t_prime[1] * k_vector[0], -h_t_prime[1] * k_vector[1]); + ikhx.emplace_back(-h_t_prime[1] * k_vector[0], -h_t_prime[1] * k_vector[0]); + ikhz.emplace_back(-h_t_prime[1] * k_vector[1], -h_t_prime[1] * k_vector[1]); + - Eigen::Vector2d k_normalized = k_vector.normalized(); - Eigen::Vector2d neg_ik_hat_h_val = - Eigen::Vector2d(k_normalized[1] * h_t_prime[1], k_normalized[0] * h_t_prime[1]); - neg_ik_hat_h.emplace_back(neg_ik_hat_h_val); +// Eigen::Vector2d neg_ik_hat_h_val = +// Eigen::Vector2d(k_normalized[1] * h_t_prime[1], k_normalized[0] * h_t_prime[1]); +// neg_ik_hat_h.emplace_back(neg_ik_hat_h_val); + double len = k_vector.norm(); + if (len < .000001) + { + neg_ik_hat_h_x.emplace_back(0.0, 0.0); + neg_ik_hat_h_z.emplace_back(0.0, 0.0); + } + else + { + Eigen::Vector2d k_normalized = k_vector.normalized(); + neg_ik_hat_h_x.emplace_back(k_normalized[0] * h_t_prime[1], k_normalized[0] * h_t_prime[1]); + neg_ik_hat_h_z.emplace_back(k_normalized[1] * h_t_prime[1], k_normalized[1] * h_t_prime[1]); + } } bool fast = true; if (fast) { std::vector<Eigen::Vector2d> tmp = fast_fft(h_tildas); - std::vector<Eigen::Vector2d> tmp2 = fast_fft(ikh); - std::vector<Eigen::Vector2d> tmp3 = fast_fft(neg_ik_hat_h); +// std::vector<Eigen::Vector2d> tmp2 = fast_fft(ikh); + // std::vector<Eigen::Vector2d> tmp3 = fast_fft(neg_ik_hat_h); + std::vector<Eigen::Vector2d> tmp4 = fast_fft(ikhx); + std::vector<Eigen::Vector2d> tmp5 = fast_fft(ikhz); + std::vector<Eigen::Vector2d> tmp6 = fast_fft(neg_ik_hat_h_x); + std::vector<Eigen::Vector2d> tmp7 = fast_fft(neg_ik_hat_h_z); for (int i = 0; i < N; i++) { m_current_h[i] = tmp[i]; - m_slopes[i] = tmp2[i]; - m_displacements[i] = tmp3[i]; + // m_slopes[i] = tmp2[i]; + // m_displacements[i] = tmp3[i]; + m_slopes_x[i] = tmp4[i]; + m_slopes_z[i] = tmp5[i]; + m_displacements_x[i] = tmp6[i]; + m_displacements_z[i] = tmp7[i]; } return; @@ -95,8 +130,8 @@ void ocean_alt::fft_prime(double t){ for (int i=0; i<N; i++){ Eigen::Vector2d x_vector = m_waveIndexConstants[i].base_horiz_pos; m_current_h[i] = Eigen::Vector2d(0.0, 0.0); - m_displacements[i] = Eigen::Vector2d(0.0, 0.0); - m_slopes[i] = Eigen::Vector2d(0.0, 0.0); + // m_displacements[i] = Eigen::Vector2d(0.0, 0.0); + // m_slopes[i] = Eigen::Vector2d(0.0, 0.0); @@ -116,8 +151,8 @@ void ocean_alt::fft_prime(double t){ Eigen::Vector2d k_normalized = k_vector.normalized(); - m_displacements[i] += k_normalized*imag_comp; - m_slopes[i] += -k_vector*imag_comp; + // m_displacements[i] += k_normalized*imag_comp; + // m_slopes[i] += -k_vector*imag_comp; } } @@ -254,78 +289,136 @@ Eigen::Vector2d ocean_alt::complex_exp(double exponent){ return Eigen::Vector2d(real, imag); } -std::vector<Eigen::Vector3f> ocean_alt::get_vertices() +void ocean_alt::update_ocean() { - std::vector<Eigen::Vector3f> vertices = std::vector<Eigen::Vector3f>(); + // reset normals & vertices arrays for the single tile + m_vertices = std::vector<Eigen::Vector3f>(N); + m_normals = std::vector<Eigen::Vector3f>(N); for (int i = 0; i < N; i++){ Eigen::Vector2d horiz_pos = spacing*m_waveIndexConstants[i].base_horiz_pos; Eigen::Vector2d amplitude = m_current_h[i]; float height = amplitude[0]; - Eigen::Vector2d slope = m_slopes[i] * .3f; - Eigen::Vector3f s = Eigen::Vector3f(-slope[0], 0.0, -slope[1]); - Eigen::Vector3f y = Eigen::Vector3f(0.0, 1.0, 0.0); + // Eigen::Vector2d slope = m_slopes[i] * .3f; + // Eigen::Vector3f s = Eigen::Vector3f(-slope[0], 0.0, -slope[1]); + // Eigen::Vector3f y = Eigen::Vector3f(0.0, 1.0, 0.0); - float xs = 1.f + s[0]*s[0]; - float ys = 1.f + s[1]*s[1]; - float zs = 1.f + s[2]*s[2]; - - Eigen::Vector3f diff = y - s; - Eigen::Vector3f norm = Eigen::Vector3f(diff[0]/ sqrt(xs), diff[1]/ sqrt(ys), diff[2]/sqrt(zs)); +// float xs = 1.f + s[0]*s[0]; +// float ys = 1.f + s[1]*s[1]; +// float zs = 1.f + s[2]*s[2]; +// +// Eigen::Vector3f diff = y - s; +// Eigen::Vector3f Eigen::Vector3f(diff[0]/ sqrt(xs), diff[1]/ sqrt(ys), diff[2]/sqrt(zs)); // NEW -// Eigen::Vector3f norm = Eigen::Vector3f(-slope[0], 1.0, -slope[1]); - norm.normalize(); - //NEW - - - - + Eigen::Vector3f norm = Eigen::Vector3f(-m_slopes_x[i][0], 1.0, -m_slopes_z[i][0]); + norm = -norm.normalized(); // FIXME: why do I have to be inverted? //if (i==6) std::cout << amplitude[0] << std::endl; // calculate displacement - Eigen::Vector2d disp = lambda*m_displacements[i]; - - // + // Eigen::Vector2d disp = lambda*m_displacements[i]; + Eigen::Vector2d disp = lambda*Eigen::Vector2d(m_displacements_x[i][0], m_displacements_z[i][0]) + + Eigen::Vector2d(vertex_displacement, vertex_displacement); // set corner at 0,0 for retiling // for final vertex position, use the real number component of amplitude vector - vertices.push_back(Eigen::Vector3f(horiz_pos[0] + disp[0], height, horiz_pos[1] + disp[1])); + m_vertices[i] = {horiz_pos[0] + disp[0], height, horiz_pos[1] + disp[1]}; m_normals[i] = norm.normalized();//Eigen::Vector3f(-slope[0], 1.0, -slope[1]).normalized(); //std::cout << "normal: " << m_normals[i] << std::endl } - return vertices; +} + +std::vector<Eigen::Vector3f> ocean_alt::get_vertices(){ + // extend the returned array based on the tilecount + std::vector<Eigen::Vector3f> vertices = std::vector<Eigen::Vector3f>(); + for (int i = 0; i < num_tiles_x; i++) + { + for (int j = 0; j < num_tiles_z; j++) + { + for (int k = 0; k < N; k++) + { + double c = Lx - 2 / (num_rows / Lx); + Eigen::Vector3f vertex = m_vertices[k] + Eigen::Vector3f(i*(c), 0.0, (j)*(c)); + vertices.push_back(vertex); + } + } + } + + return vertices; } std::vector<Eigen::Vector3f> ocean_alt::getNormals(){ - return m_normals; + // based on the tile count, add more to the normals + std::vector<Eigen::Vector3f> normals = std::vector<Eigen::Vector3f>(); + // do the x 1D direction first + for (int i = 0; i < num_tiles_x; i++) + { + for (int j = 0; j < num_tiles_z; j++) + { + for (int k = 0; k < N; k++) + { + normals.push_back(m_normals[k]); + } + } + } + + + return normals; } std::vector<Eigen::Vector3i> ocean_alt::get_faces() { // connect the vertices into faces std::vector<Eigen::Vector3i> faces = std::vector<Eigen::Vector3i>(); - for (int i = 0; i < N; i++) - { - int x = i / num_rows; - int z = i % num_rows; + for (int i = 0; i < num_tiles_x; i++) + { + for (int j = 0; j < num_tiles_z; j++) + { + for (int k = 0; k < N; k++) + { + int x = k % num_rows; + int z = k / num_rows; - // connect the vertices into faces - if (x < num_rows - 1 && z < num_cols - 1) - { - int i1 = i; - int i2 = i + 1; - int i3 = i + num_rows; - int i4 = i + num_rows + 1; + // connect the vertices into faces + if (x < num_rows - 1 && z < num_cols - 1) + { + int tile_index_offset = (j + num_tiles_z * i) * N; + int i1 = k + tile_index_offset; + int i2 = k + 1 + tile_index_offset; + int i3 = k + num_rows + tile_index_offset; + int i4 = k + num_rows + 1 + tile_index_offset; + + faces.emplace_back(i2, i1, i3); + faces.emplace_back(i2, i3, i4); + } + } + } + } + return faces; + + +// for (int i = 0; i < N; i++) +// { +// int x = i / num_rows; +// int z = i % num_rows; +// +// // connect the vertices into faces +// if (x < num_rows - 1 && z < num_cols - 1) +// { +// int i1 = i; +// int i2 = i + 1; +// int i3 = i + num_rows; +// int i4 = i + num_rows + 1; +// // faces.emplace_back(i2, i1, i3); // faces.emplace_back(i2, i3, i4); - faces.emplace_back(i1, i2, i3); - faces.emplace_back(i3, i2, i4); - } - } - return faces; +// faces.emplace_back(i1, i2, i3); +// faces.emplace_back(i3, i2, i4); +// } +// } +// return faces; } Eigen::Vector2d muliply_complex(Eigen::Vector2d a, Eigen::Vector2d b) @@ -442,11 +535,11 @@ std::vector<Eigen::Vector2d> ocean_alt::fast_fft } // divide by N*N and add the signs based on the indices - double sign[] = {1, -1}; + double sign[] = {1.0, -1.0}; for (int i = 0; i < N; i++) { - // h[i] /= N; - h[i] /= sqrt(N); + h[i] /= N; + // h[i] /= sqrt(N); h[i] *= sign[(i / num_rows + i % num_cols) % 2]; } diff --git a/src/ocean/ocean_alt.h b/src/ocean/ocean_alt.h index 4bb1d54..13f0d0d 100644 --- a/src/ocean/ocean_alt.h +++ b/src/ocean/ocean_alt.h @@ -25,6 +25,7 @@ class ocean_alt public: ocean_alt(); void updateVertexAmplitudes(double t); + void update_ocean(); std::vector<Eigen::Vector3f> get_vertices(); std::vector<Eigen::Vector3i> get_faces(); void fft_prime(double t); @@ -66,26 +67,33 @@ private: const int num_rows = 256; const int num_cols = 256; + const int num_tiles_x = 5; + const int num_tiles_z = 1; + + const double vertex_displacement = Lx / 2; + const int N = num_rows*num_cols; // total number of grid points - const double lambda = 0; // how much displacement matters - const double spacing = 35.0; // spacing between grid points + const double lambda = .5; // how much displacement matters + const double spacing = 1.0; // spacing between grid points - const double A = 100; // numeric constant for the Phillips spectrum - const double V = 50; // wind speed + const double A = 15000; // numeric constant for the Phillips spectrum + const double V = 1000; // wind speed const double gravity = 9.81; const double L = V*V/gravity; const Eigen::Vector2d omega_wind = Eigen::Vector2d(1.0, 0.0); // wind direction, used in Phillips equation std::vector<Eigen::Vector2d> m_current_h; // current height fields for each K - std::vector<Eigen::Vector2d> m_displacements; // current displacement vector for each K - std::vector<Eigen::Vector2d> m_slopes; // current displacement vector for each K + // std::vector<Eigen::Vector2d> m_displacements; // current displacement vector for each K + // std::vector<Eigen::Vector2d> m_slopes; // current displacement vector for each K + std::vector<Eigen::Vector2d> m_slopes_x; + std::vector<Eigen::Vector2d> m_slopes_z; + std::vector<Eigen::Vector2d> m_displacements_x; + std::vector<Eigen::Vector2d> m_displacements_z; //std::vector<Eigen::Vector3f> m_slope_vectors; // current displacement vector for each K std::vector<Eigen::Vector3f> m_normals; // current displacement vector for each K - - - + std::vector<Eigen::Vector3f> m_vertices; // current displacement vector for each K const double D = 1.0; // Depth below mean water level (for dispersion relation) |