diff --git a/Tupfile.lua b/Tupfile.lua index 00b2ab2f..ca7c32c8 100644 --- a/Tupfile.lua +++ b/Tupfile.lua @@ -437,7 +437,7 @@ src += config.modules.thread and 'src/lib/tinycthread/*.c' or nil -- embed resource files with xxd -res = { 'etc/*.lua', 'etc/*.ttf', 'etc/shaders/*.glsl' } +res = { 'etc/boot.lua', 'etc/*.ttf', 'etc/shaders/*.glsl' } tup.foreach_rule(res, '^ XD %b^ xxd -i %f > %o', '%f.h') for i, pattern in ipairs(res) do diff --git a/etc/monkey.glb b/etc/monkey.glb new file mode 100644 index 00000000..cd392e18 Binary files /dev/null and b/etc/monkey.glb differ diff --git a/etc/monkey.h b/etc/monkey.h new file mode 100644 index 00000000..bde396f7 --- /dev/null +++ b/etc/monkey.h @@ -0,0 +1,2265 @@ +float monkey_size[3] = { 1.367188f, 0.984375f, 0.851563f }; +float monkey_offset[3] = { -0.683594f, -0.492188f, -0.425781f }; + +uint8_t monkey_vertices[] = { + 168, 149, 242, 154, 23, 59, + 168, 149, 242, 173, 63, 227, + 168, 149, 242, 212, 102, 219, + 168, 149, 242, 229, 83, 65, + 87, 149, 242, 26, 83, 65, + 87, 149, 242, 43, 102, 219, + 87, 149, 242, 82, 63, 227, + 87, 149, 242, 101, 23, 59, + 174, 140, 230, 173, 63, 227, + 174, 140, 230, 180, 26, 184, + 174, 140, 230, 212, 102, 219, + 174, 140, 230, 233, 89, 187, + 81, 140, 230, 22, 89, 187, + 81, 140, 230, 43, 102, 219, + 81, 140, 230, 75, 26, 184, + 81, 140, 230, 82, 63, 227, + 179, 135, 214, 180, 26, 184, + 179, 135, 214, 233, 89, 187, + 77, 135, 214, 22, 89, 187, + 77, 135, 214, 75, 26, 184, + 160, 124, 220, 93, 20, 187, + 160, 124, 220, 180, 26, 184, + 95, 124, 220, 75, 26, 184, + 95, 124, 220, 162, 20, 187, + 160, 132, 235, 93, 20, 187, + 160, 132, 235, 117, 59, 234, + 160, 132, 235, 173, 63, 227, + 160, 132, 235, 180, 26, 184, + 95, 132, 235, 75, 26, 184, + 95, 132, 235, 82, 63, 227, + 95, 132, 235, 138, 59, 234, + 95, 132, 235, 162, 20, 187, + 160, 145, 244, 74, 28, 69, + 160, 145, 244, 117, 59, 234, + 160, 145, 244, 154, 23, 59, + 160, 145, 244, 173, 63, 227, + 95, 145, 244, 82, 63, 227, + 95, 145, 244, 101, 23, 59, + 95, 145, 244, 138, 59, 234, + 95, 145, 244, 181, 28, 69, + 153, 149, 247, 24, 83, 68, + 153, 149, 247, 68, 103, 237, + 153, 149, 247, 74, 28, 69, + 153, 149, 247, 117, 59, 234, + 102, 149, 247, 138, 59, 234, + 102, 149, 247, 181, 28, 69, + 102, 149, 247, 187, 103, 237, + 102, 149, 247, 231, 83, 68, + 146, 140, 239, 29, 85, 197, + 146, 140, 239, 68, 103, 237, + 146, 140, 239, 93, 20, 187, + 146, 140, 239, 117, 59, 234, + 109, 140, 239, 138, 59, 234, + 109, 140, 239, 162, 20, 187, + 109, 140, 239, 187, 103, 237, + 109, 140, 239, 226, 85, 197, + 142, 135, 225, 29, 85, 197, + 142, 135, 225, 93, 20, 187, + 113, 135, 225, 162, 20, 187, + 113, 135, 225, 226, 85, 197, + 135, 159, 226, 29, 85, 197, + 135, 159, 226, 30, 169, 198, + 120, 159, 226, 225, 169, 198, + 120, 159, 226, 226, 85, 197, + 141, 159, 239, 29, 85, 197, + 141, 159, 239, 30, 169, 198, + 141, 159, 239, 67, 152, 237, + 141, 159, 239, 68, 103, 237, + 114, 159, 239, 187, 103, 237, + 114, 159, 239, 188, 152, 237, + 114, 159, 239, 225, 169, 198, + 114, 159, 239, 226, 85, 197, + 150, 159, 247, 22, 169, 68, + 150, 159, 247, 24, 83, 68, + 150, 159, 247, 67, 152, 237, + 150, 159, 247, 68, 103, 237, + 105, 159, 247, 187, 103, 237, + 105, 159, 247, 188, 152, 237, + 105, 159, 247, 231, 83, 68, + 105, 159, 247, 233, 169, 68, + 153, 170, 247, 22, 169, 68, + 153, 170, 247, 67, 152, 237, + 153, 170, 247, 74, 227, 69, + 153, 170, 247, 115, 200, 232, + 102, 170, 247, 140, 200, 232, + 102, 170, 247, 181, 227, 69, + 102, 170, 247, 188, 152, 237, + 102, 170, 247, 233, 169, 68, + 146, 178, 239, 30, 169, 198, + 146, 178, 239, 67, 152, 237, + 146, 178, 239, 95, 232, 194, + 146, 178, 239, 115, 200, 232, + 109, 178, 239, 140, 200, 232, + 109, 178, 239, 160, 232, 194, + 109, 178, 239, 188, 152, 237, + 109, 178, 239, 225, 169, 198, + 142, 184, 225, 30, 169, 198, + 142, 184, 225, 95, 232, 194, + 113, 184, 225, 160, 232, 194, + 113, 184, 225, 225, 169, 198, + 160, 194, 220, 95, 232, 194, + 160, 194, 220, 180, 225, 190, + 95, 194, 220, 75, 225, 190, + 95, 194, 220, 160, 232, 194, + 160, 186, 235, 95, 232, 194, + 160, 186, 235, 115, 200, 232, + 160, 186, 235, 174, 196, 224, + 160, 186, 235, 180, 225, 190, + 95, 186, 235, 75, 225, 190, + 95, 186, 235, 81, 196, 224, + 95, 186, 235, 140, 200, 232, + 95, 186, 235, 160, 232, 194, + 160, 174, 244, 74, 227, 69, + 160, 174, 244, 115, 200, 232, + 160, 174, 244, 154, 232, 59, + 160, 174, 244, 174, 196, 224, + 95, 174, 244, 81, 196, 224, + 95, 174, 244, 101, 232, 59, + 95, 174, 244, 140, 200, 232, + 95, 174, 244, 181, 227, 69, + 168, 170, 242, 154, 232, 59, + 168, 170, 242, 174, 196, 224, + 168, 170, 242, 213, 153, 219, + 168, 170, 242, 231, 169, 65, + 87, 170, 242, 24, 169, 65, + 87, 170, 242, 42, 153, 219, + 87, 170, 242, 81, 196, 224, + 87, 170, 242, 101, 232, 59, + 174, 178, 230, 174, 196, 224, + 174, 178, 230, 180, 225, 190, + 174, 178, 230, 213, 153, 219, + 174, 178, 230, 233, 165, 188, + 81, 178, 230, 22, 165, 188, + 81, 178, 230, 42, 153, 219, + 81, 178, 230, 75, 225, 190, + 81, 178, 230, 81, 196, 224, + 179, 184, 214, 180, 225, 190, + 179, 184, 214, 233, 165, 188, + 77, 184, 214, 22, 165, 188, + 77, 184, 214, 75, 225, 190, + 186, 159, 212, 233, 165, 188, + 186, 159, 212, 233, 89, 187, + 69, 159, 212, 22, 89, 187, + 69, 159, 212, 22, 165, 188, + 180, 159, 228, 212, 102, 219, + 180, 159, 228, 213, 153, 219, + 180, 159, 228, 233, 165, 188, + 180, 159, 228, 233, 89, 187, + 75, 159, 228, 22, 89, 187, + 75, 159, 228, 22, 165, 188, + 75, 159, 228, 42, 153, 219, + 75, 159, 228, 43, 102, 219, + 171, 159, 241, 212, 102, 219, + 171, 159, 241, 213, 153, 219, + 171, 159, 241, 229, 83, 65, + 171, 159, 241, 231, 169, 65, + 84, 159, 241, 24, 169, 65, + 84, 159, 241, 26, 83, 65, + 84, 159, 241, 42, 153, 219, + 84, 159, 241, 43, 102, 219, + 172, 159, 243, 179, 120, 244, + 172, 159, 243, 179, 135, 244, + 172, 159, 243, 229, 83, 65, + 172, 159, 243, 231, 169, 65, + 83, 159, 243, 24, 169, 65, + 83, 159, 243, 26, 83, 65, + 83, 159, 243, 76, 135, 244, + 83, 159, 243, 76, 120, 244, + 169, 171, 244, 154, 232, 59, + 169, 171, 244, 166, 149, 247, + 169, 171, 244, 179, 135, 244, + 169, 171, 244, 231, 169, 65, + 86, 171, 244, 24, 169, 65, + 86, 171, 244, 76, 135, 244, + 86, 171, 244, 89, 149, 247, + 86, 171, 244, 101, 232, 59, + 160, 176, 248, 74, 227, 69, + 160, 176, 248, 140, 150, 252, + 160, 176, 248, 154, 232, 59, + 160, 176, 248, 166, 149, 247, + 95, 176, 248, 89, 149, 247, + 95, 176, 248, 101, 232, 59, + 95, 176, 248, 115, 150, 252, + 95, 176, 248, 181, 227, 69, + 152, 171, 250, 22, 169, 68, + 152, 171, 250, 74, 227, 69, + 152, 171, 250, 120, 131, 255, + 152, 171, 250, 140, 150, 252, + 103, 171, 250, 115, 150, 252, + 103, 171, 250, 135, 131, 255, + 103, 171, 250, 181, 227, 69, + 103, 171, 250, 233, 169, 68, + 149, 159, 250, 22, 169, 68, + 149, 159, 250, 24, 83, 68, + 149, 159, 250, 120, 131, 255, + 149, 159, 250, 120, 124, 255, + 106, 159, 250, 135, 124, 255, + 106, 159, 250, 135, 131, 255, + 106, 159, 250, 231, 83, 68, + 106, 159, 250, 233, 169, 68, + 152, 148, 250, 24, 83, 68, + 152, 148, 250, 74, 28, 69, + 152, 148, 250, 120, 124, 255, + 152, 148, 250, 140, 104, 252, + 103, 148, 250, 115, 104, 252, + 103, 148, 250, 135, 124, 255, + 103, 148, 250, 181, 28, 69, + 103, 148, 250, 231, 83, 68, + 160, 159, 251, 120, 131, 255, + 160, 159, 251, 120, 124, 255, + 160, 159, 251, 140, 104, 252, + 160, 159, 251, 140, 150, 252, + 160, 159, 251, 166, 149, 247, + 160, 159, 251, 167, 105, 247, + 160, 159, 251, 179, 120, 244, + 160, 159, 251, 179, 135, 244, + 95, 159, 251, 76, 135, 244, + 95, 159, 251, 76, 120, 244, + 95, 159, 251, 88, 105, 247, + 95, 159, 251, 89, 149, 247, + 95, 159, 251, 115, 150, 252, + 95, 159, 251, 115, 104, 252, + 95, 159, 251, 135, 124, 255, + 95, 159, 251, 135, 131, 255, + 160, 143, 248, 74, 28, 69, + 160, 143, 248, 140, 104, 252, + 160, 143, 248, 154, 23, 59, + 160, 143, 248, 167, 105, 247, + 95, 143, 248, 88, 105, 247, + 95, 143, 248, 101, 23, 59, + 95, 143, 248, 115, 104, 252, + 95, 143, 248, 181, 28, 69, + 169, 148, 244, 154, 23, 59, + 169, 148, 244, 167, 105, 247, + 169, 148, 244, 179, 120, 244, + 169, 148, 244, 229, 83, 65, + 86, 148, 244, 26, 83, 65, + 86, 148, 244, 76, 120, 244, + 86, 148, 244, 88, 105, 247, + 86, 148, 244, 101, 23, 59, + 128, 183, 239, 53, 198, 202, + 128, 183, 239, 60, 231, 96, + 128, 183, 239, 195, 231, 96, + 128, 183, 239, 202, 198, 202, + 128, 173, 250, 53, 198, 202, + 128, 173, 250, 77, 72, 231, + 128, 173, 250, 104, 96, 249, + 128, 173, 250, 151, 96, 249, + 128, 173, 250, 178, 72, 231, + 128, 173, 250, 202, 198, 202, + 128, 39, 237, 127, 119, 255, + 128, 39, 237, 128, 128, 255, + 128, 39, 237, 128, 119, 255, + 128, 86, 244, 74, 15, 156, + 128, 86, 244, 91, 54, 225, + 128, 86, 244, 164, 54, 225, + 128, 86, 244, 181, 15, 156, + 128, 103, 247, 15, 173, 166, + 128, 103, 247, 44, 204, 186, + 128, 103, 247, 211, 204, 186, + 128, 103, 247, 240, 173, 166, + 128, 27, 235, 89, 7, 143, + 128, 27, 235, 99, 44, 220, + 128, 27, 235, 156, 44, 220, + 128, 27, 235, 166, 7, 143, + 128, 180, 218, 60, 231, 96, + 128, 180, 218, 107, 151, 251, + 128, 180, 218, 148, 151, 251, + 128, 180, 218, 195, 231, 96, + 128, 201, 213, 99, 201, 228, + 128, 201, 213, 107, 151, 251, + 128, 201, 213, 122, 244, 179, + 128, 201, 213, 133, 244, 179, + 128, 201, 213, 148, 151, 251, + 128, 201, 213, 156, 201, 228, + 128, 244, 46, 83, 203, 35, + 128, 244, 46, 111, 252, 104, + 128, 244, 46, 144, 252, 104, + 128, 244, 46, 172, 203, 35, + 128, 200, 0, 83, 203, 35, + 128, 200, 0, 84, 113, 9, + 128, 200, 0, 171, 113, 9, + 128, 200, 0, 172, 203, 35, + 128, 137, 4, 80, 67, 26, + 128, 137, 4, 84, 113, 9, + 128, 137, 4, 171, 113, 9, + 128, 137, 4, 175, 67, 26, + 128, 78, 75, 88, 22, 68, + 128, 78, 75, 92, 6, 111, + 128, 78, 75, 163, 6, 111, + 128, 78, 75, 167, 22, 68, + 146, 103, 212, 150, 15, 71, + 146, 103, 212, 169, 23, 188, + 146, 103, 212, 247, 148, 167, + 146, 103, 212, 247, 170, 120, + 109, 103, 212, 8, 170, 120, + 109, 103, 212, 8, 148, 167, + 109, 103, 212, 86, 23, 188, + 109, 103, 212, 105, 15, 71, + 157, 71, 213, 227, 139, 207, + 157, 71, 213, 231, 166, 191, + 157, 71, 213, 244, 171, 98, + 157, 71, 213, 245, 145, 81, + 98, 71, 213, 10, 145, 81, + 98, 71, 213, 11, 171, 98, + 98, 71, 213, 24, 166, 191, + 98, 71, 213, 28, 139, 207, + 160, 37, 213, 226, 121, 209, + 160, 37, 213, 227, 139, 207, + 160, 37, 213, 245, 145, 81, + 160, 37, 213, 246, 148, 86, + 95, 37, 213, 9, 148, 86, + 95, 37, 213, 10, 145, 81, + 95, 37, 213, 28, 139, 207, + 95, 37, 213, 29, 121, 209, + 162, 12, 207, 203, 69, 213, + 162, 12, 207, 226, 121, 209, + 162, 12, 207, 246, 148, 86, + 162, 12, 207, 250, 126, 92, + 93, 12, 207, 5, 126, 92, + 93, 12, 207, 9, 148, 86, + 93, 12, 207, 29, 121, 209, + 93, 12, 207, 52, 69, 213, + 158, 5, 206, 143, 4, 99, + 158, 5, 206, 155, 17, 185, + 158, 5, 206, 203, 69, 213, + 158, 5, 206, 250, 126, 92, + 97, 5, 206, 5, 126, 92, + 97, 5, 206, 52, 69, 213, + 97, 5, 206, 100, 17, 185, + 97, 5, 206, 112, 4, 99, + 144, 2, 211, 142, 2, 110, + 144, 2, 211, 143, 4, 99, + 144, 2, 211, 143, 18, 190, + 144, 2, 211, 155, 17, 185, + 111, 2, 211, 100, 17, 185, + 111, 2, 211, 112, 18, 190, + 111, 2, 211, 112, 4, 99, + 111, 2, 211, 113, 2, 110, + 128, 0, 214, 112, 18, 190, + 128, 0, 214, 113, 2, 110, + 128, 0, 214, 142, 2, 110, + 128, 0, 214, 143, 18, 190, + 168, 109, 207, 150, 15, 71, + 168, 109, 207, 169, 23, 188, + 168, 109, 207, 177, 24, 72, + 168, 109, 207, 177, 43, 209, + 87, 109, 207, 78, 43, 209, + 87, 109, 207, 78, 24, 72, + 87, 109, 207, 86, 23, 188, + 87, 109, 207, 105, 15, 71, + 187, 122, 208, 177, 24, 72, + 187, 122, 208, 177, 43, 209, + 187, 122, 208, 196, 35, 72, + 187, 122, 208, 215, 74, 203, + 68, 122, 208, 40, 74, 203, + 68, 122, 208, 59, 35, 72, + 68, 122, 208, 78, 43, 209, + 68, 122, 208, 78, 24, 72, + 205, 147, 194, 196, 35, 72, + 205, 147, 194, 211, 81, 211, + 205, 147, 194, 215, 74, 203, + 205, 147, 194, 237, 145, 64, + 50, 147, 194, 18, 145, 64, + 50, 147, 194, 40, 74, 203, + 50, 147, 194, 44, 81, 211, + 50, 147, 194, 59, 35, 72, + 208, 183, 216, 163, 244, 91, + 208, 183, 216, 197, 175, 223, + 208, 183, 216, 211, 81, 211, + 208, 183, 216, 237, 145, 64, + 47, 183, 216, 18, 145, 64, + 47, 183, 216, 44, 81, 211, + 47, 183, 216, 58, 175, 223, + 47, 183, 216, 92, 244, 91, + 194, 190, 221, 163, 244, 91, + 194, 190, 221, 174, 239, 88, + 194, 190, 221, 192, 210, 200, + 194, 190, 221, 197, 175, 223, + 61, 190, 221, 58, 175, 223, + 61, 190, 221, 63, 210, 200, + 61, 190, 221, 81, 239, 88, + 61, 190, 221, 92, 244, 91, + 173, 205, 230, 174, 239, 88, + 173, 205, 230, 192, 210, 200, + 173, 205, 230, 203, 223, 89, + 173, 205, 230, 205, 193, 204, + 82, 205, 230, 50, 193, 204, + 82, 205, 230, 52, 223, 89, + 82, 205, 230, 63, 210, 200, + 82, 205, 230, 81, 239, 88, + 157, 226, 237, 96, 238, 72, + 157, 226, 237, 122, 212, 223, + 157, 226, 237, 203, 223, 89, + 157, 226, 237, 205, 193, 204, + 98, 226, 237, 50, 193, 204, + 98, 226, 237, 52, 223, 89, + 98, 226, 237, 133, 212, 223, + 98, 226, 237, 159, 238, 72, + 142, 221, 241, 19, 175, 80, + 142, 221, 241, 35, 168, 205, + 142, 221, 241, 96, 238, 72, + 142, 221, 241, 122, 212, 223, + 113, 221, 241, 133, 212, 223, + 113, 221, 241, 159, 238, 72, + 113, 221, 241, 220, 168, 205, + 113, 221, 241, 236, 175, 80, + 133, 191, 240, 19, 175, 80, + 133, 191, 240, 35, 168, 205, + 133, 191, 240, 53, 198, 202, + 133, 191, 240, 60, 231, 96, + 122, 191, 240, 195, 231, 96, + 122, 191, 240, 202, 198, 202, + 122, 191, 240, 220, 168, 205, + 122, 191, 240, 236, 175, 80, + 143, 181, 243, 101, 132, 252, + 143, 181, 243, 125, 159, 251, + 143, 181, 243, 178, 72, 231, + 143, 181, 243, 196, 78, 223, + 112, 181, 243, 59, 78, 223, + 112, 181, 243, 77, 72, 231, + 112, 181, 243, 130, 159, 251, + 112, 181, 243, 154, 132, 252, + 139, 167, 242, 79, 122, 245, + 139, 167, 242, 101, 132, 252, + 139, 167, 242, 151, 96, 249, + 139, 167, 242, 178, 72, 231, + 116, 167, 242, 77, 72, 231, + 116, 167, 242, 104, 96, 249, + 116, 167, 242, 154, 132, 252, + 116, 167, 242, 176, 122, 245, + 146, 140, 239, 55, 67, 213, + 146, 140, 239, 110, 31, 210, + 146, 140, 239, 110, 162, 249, + 146, 140, 239, 175, 135, 245, + 109, 140, 239, 80, 135, 245, + 109, 140, 239, 145, 162, 249, + 109, 140, 239, 145, 31, 210, + 109, 140, 239, 200, 67, 213, + 162, 130, 233, 110, 31, 210, + 162, 130, 233, 170, 91, 242, + 162, 130, 233, 175, 135, 245, + 162, 130, 233, 180, 50, 214, + 93, 130, 233, 75, 50, 214, + 93, 130, 233, 80, 135, 245, + 93, 130, 233, 85, 91, 242, + 93, 130, 233, 145, 31, 210, + 173, 136, 228, 170, 91, 242, + 173, 136, 228, 176, 104, 243, + 173, 136, 228, 180, 50, 214, + 173, 136, 228, 201, 75, 218, + 82, 136, 228, 54, 75, 218, + 82, 136, 228, 75, 50, 214, + 82, 136, 228, 79, 104, 243, + 82, 136, 228, 85, 91, 242, + 186, 152, 225, 163, 100, 247, + 186, 152, 225, 176, 104, 243, + 186, 152, 225, 200, 115, 232, + 186, 152, 225, 201, 75, 218, + 69, 152, 225, 54, 75, 218, + 69, 152, 225, 55, 115, 232, + 69, 152, 225, 79, 104, 243, + 69, 152, 225, 92, 100, 247, + 187, 166, 225, 133, 55, 232, + 187, 166, 225, 163, 100, 247, + 187, 166, 225, 200, 115, 232, + 187, 166, 225, 200, 143, 231, + 68, 166, 225, 55, 143, 231, + 68, 166, 225, 55, 115, 232, + 68, 166, 225, 92, 100, 247, + 68, 166, 225, 122, 55, 232, + 184, 176, 227, 117, 44, 223, + 184, 176, 227, 133, 55, 232, + 184, 176, 227, 189, 199, 213, + 184, 176, 227, 200, 143, 231, + 71, 176, 227, 55, 143, 231, + 71, 176, 227, 66, 199, 213, + 71, 176, 227, 122, 55, 232, + 71, 176, 227, 138, 44, 223, + 168, 184, 235, 117, 44, 223, + 168, 184, 235, 117, 60, 235, + 168, 184, 235, 161, 205, 223, + 168, 184, 235, 189, 199, 213, + 87, 184, 235, 66, 199, 213, + 87, 184, 235, 94, 205, 223, + 87, 184, 235, 138, 60, 235, + 87, 184, 235, 138, 44, 223, + 151, 188, 241, 125, 159, 251, + 151, 188, 241, 148, 173, 245, + 151, 188, 241, 156, 68, 237, + 151, 188, 241, 196, 78, 223, + 104, 188, 241, 59, 78, 223, + 104, 188, 241, 99, 68, 237, + 104, 188, 241, 107, 173, 245, + 104, 188, 241, 130, 159, 251, + 128, 28, 237, 99, 44, 220, + 128, 28, 237, 128, 128, 255, + 128, 28, 237, 156, 44, 220, + 138, 34, 237, 108, 102, 251, + 138, 34, 237, 128, 128, 255, + 138, 34, 237, 156, 44, 220, + 138, 34, 237, 168, 93, 243, + 138, 34, 237, 169, 111, 247, + 117, 34, 237, 86, 111, 247, + 117, 34, 237, 87, 93, 243, + 117, 34, 237, 99, 44, 220, + 117, 34, 237, 128, 128, 255, + 117, 34, 237, 147, 102, 251, + 138, 19, 234, 93, 114, 249, + 138, 19, 234, 108, 102, 251, + 138, 19, 234, 151, 55, 229, + 138, 19, 234, 168, 93, 243, + 117, 19, 234, 87, 93, 243, + 117, 19, 234, 104, 55, 229, + 117, 19, 234, 147, 102, 251, + 117, 19, 234, 162, 114, 249, + 133, 13, 232, 93, 114, 249, + 133, 13, 232, 115, 152, 252, + 133, 13, 232, 137, 39, 219, + 133, 13, 232, 151, 55, 229, + 122, 13, 232, 104, 55, 229, + 122, 13, 232, 118, 39, 219, + 122, 13, 232, 140, 152, 252, + 122, 13, 232, 162, 114, 249, + 128, 12, 230, 115, 152, 252, + 128, 12, 230, 118, 39, 219, + 128, 12, 230, 137, 39, 219, + 128, 12, 230, 140, 152, 252, + 128, 102, 240, 15, 173, 166, + 128, 102, 240, 240, 173, 166, + 128, 109, 239, 15, 173, 166, + 128, 109, 239, 71, 107, 240, + 128, 109, 239, 117, 243, 75, + 128, 109, 239, 138, 243, 75, + 128, 109, 239, 184, 107, 240, + 128, 109, 239, 240, 173, 166, + 137, 108, 239, 71, 107, 240, + 137, 108, 239, 100, 72, 239, + 137, 108, 239, 138, 243, 75, + 137, 108, 239, 249, 157, 100, + 118, 108, 239, 6, 157, 100, + 118, 108, 239, 117, 243, 75, + 118, 108, 239, 155, 72, 239, + 118, 108, 239, 184, 107, 240, + 139, 98, 240, 100, 72, 239, + 139, 98, 240, 183, 111, 241, + 139, 98, 240, 232, 54, 122, + 139, 98, 240, 249, 157, 100, + 116, 98, 240, 6, 157, 100, + 116, 98, 240, 23, 54, 122, + 116, 98, 240, 72, 111, 241, + 116, 98, 240, 155, 72, 239, + 136, 90, 239, 126, 135, 255, + 136, 90, 239, 166, 134, 249, + 136, 90, 239, 181, 15, 156, + 136, 90, 239, 183, 111, 241, + 136, 90, 239, 232, 54, 122, + 119, 90, 239, 23, 54, 122, + 119, 90, 239, 72, 111, 241, + 119, 90, 239, 74, 15, 156, + 119, 90, 239, 89, 134, 249, + 119, 90, 239, 129, 135, 255, + 165, 121, 228, 169, 23, 188, + 165, 121, 228, 170, 91, 242, + 165, 121, 228, 175, 135, 245, + 165, 121, 228, 177, 43, 209, + 90, 121, 228, 78, 43, 209, + 90, 121, 228, 80, 135, 245, + 90, 121, 228, 85, 91, 242, + 90, 121, 228, 86, 23, 188, + 185, 135, 221, 170, 91, 242, + 185, 135, 221, 176, 104, 243, + 185, 135, 221, 177, 43, 209, + 185, 135, 221, 215, 74, 203, + 70, 135, 221, 40, 74, 203, + 70, 135, 221, 78, 43, 209, + 70, 135, 221, 79, 104, 243, + 70, 135, 221, 85, 91, 242, + 195, 154, 218, 163, 100, 247, + 195, 154, 218, 176, 104, 243, + 195, 154, 218, 211, 81, 211, + 195, 154, 218, 215, 74, 203, + 60, 154, 218, 40, 74, 203, + 60, 154, 218, 44, 81, 211, + 60, 154, 218, 79, 104, 243, + 60, 154, 218, 92, 100, 247, + 197, 176, 226, 133, 55, 232, + 197, 176, 226, 163, 100, 247, + 197, 176, 226, 197, 175, 223, + 197, 176, 226, 211, 81, 211, + 58, 176, 226, 44, 81, 211, + 58, 176, 226, 58, 175, 223, + 58, 176, 226, 92, 100, 247, + 58, 176, 226, 122, 55, 232, + 192, 181, 236, 117, 44, 223, + 192, 181, 236, 133, 55, 232, + 192, 181, 236, 192, 210, 200, + 192, 181, 236, 197, 175, 223, + 63, 181, 236, 58, 175, 223, + 63, 181, 236, 63, 210, 200, + 63, 181, 236, 122, 55, 232, + 63, 181, 236, 138, 44, 223, + 168, 198, 247, 117, 44, 223, + 168, 198, 247, 117, 60, 235, + 168, 198, 247, 192, 210, 200, + 168, 198, 247, 205, 193, 204, + 87, 198, 247, 50, 193, 204, + 87, 198, 247, 63, 210, 200, + 87, 198, 247, 138, 60, 235, + 87, 198, 247, 138, 44, 223, + 157, 210, 253, 117, 60, 235, + 157, 210, 253, 122, 212, 223, + 157, 210, 253, 156, 68, 237, + 157, 210, 253, 205, 193, 204, + 98, 210, 253, 50, 193, 204, + 98, 210, 253, 99, 68, 237, + 98, 210, 253, 133, 212, 223, + 98, 210, 253, 138, 60, 235, + 146, 207, 255, 35, 168, 205, + 146, 207, 255, 122, 212, 223, + 146, 207, 255, 156, 68, 237, + 146, 207, 255, 196, 78, 223, + 109, 207, 255, 59, 78, 223, + 109, 207, 255, 99, 68, 237, + 109, 207, 255, 133, 212, 223, + 109, 207, 255, 220, 168, 205, + 137, 183, 254, 35, 168, 205, + 137, 183, 254, 53, 198, 202, + 137, 183, 254, 178, 72, 231, + 137, 183, 254, 196, 78, 223, + 118, 183, 254, 59, 78, 223, + 118, 183, 254, 77, 72, 231, + 118, 183, 254, 202, 198, 202, + 118, 183, 254, 220, 168, 205, + 139, 114, 249, 71, 107, 240, + 139, 114, 249, 100, 72, 239, + 139, 114, 249, 110, 162, 249, + 139, 114, 249, 169, 23, 188, + 139, 114, 249, 175, 135, 245, + 139, 114, 249, 247, 148, 167, + 116, 114, 249, 8, 148, 167, + 116, 114, 249, 80, 135, 245, + 116, 114, 249, 86, 23, 188, + 116, 114, 249, 145, 162, 249, + 116, 114, 249, 155, 72, 239, + 116, 114, 249, 184, 107, 240, + 147, 70, 234, 166, 134, 249, + 147, 70, 234, 167, 124, 249, + 147, 70, 234, 227, 139, 207, + 147, 70, 234, 231, 166, 191, + 108, 70, 234, 24, 166, 191, + 108, 70, 234, 28, 139, 207, + 108, 70, 234, 88, 124, 249, + 108, 70, 234, 89, 134, 249, + 151, 36, 230, 167, 124, 249, + 151, 36, 230, 169, 111, 247, + 151, 36, 230, 226, 121, 209, + 151, 36, 230, 227, 139, 207, + 104, 36, 230, 28, 139, 207, + 104, 36, 230, 29, 121, 209, + 104, 36, 230, 86, 111, 247, + 104, 36, 230, 88, 124, 249, + 152, 21, 227, 168, 93, 243, + 152, 21, 227, 169, 111, 247, + 152, 21, 227, 203, 69, 213, + 152, 21, 227, 226, 121, 209, + 103, 21, 227, 29, 121, 209, + 103, 21, 227, 52, 69, 213, + 103, 21, 227, 86, 111, 247, + 103, 21, 227, 87, 93, 243, + 149, 9, 222, 151, 55, 229, + 149, 9, 222, 155, 17, 185, + 149, 9, 222, 168, 93, 243, + 149, 9, 222, 203, 69, 213, + 106, 9, 222, 52, 69, 213, + 106, 9, 222, 87, 93, 243, + 106, 9, 222, 100, 17, 185, + 106, 9, 222, 104, 55, 229, + 143, 7, 222, 137, 39, 219, + 143, 7, 222, 143, 18, 190, + 143, 7, 222, 151, 55, 229, + 143, 7, 222, 155, 17, 185, + 112, 7, 222, 100, 17, 185, + 112, 7, 222, 104, 55, 229, + 112, 7, 222, 112, 18, 190, + 112, 7, 222, 118, 39, 219, + 128, 5, 223, 112, 18, 190, + 128, 5, 223, 118, 39, 219, + 128, 5, 223, 137, 39, 219, + 128, 5, 223, 143, 18, 190, + 128, 134, 236, 71, 107, 240, + 128, 134, 236, 110, 162, 249, + 128, 134, 236, 126, 103, 253, + 128, 134, 236, 129, 103, 253, + 128, 134, 236, 145, 162, 249, + 128, 134, 236, 184, 107, 240, + 128, 155, 242, 104, 96, 249, + 128, 155, 242, 126, 103, 253, + 128, 155, 242, 129, 103, 253, + 128, 155, 242, 151, 96, 249, + 158, 189, 239, 117, 60, 235, + 158, 189, 239, 148, 173, 245, + 158, 189, 239, 156, 68, 237, + 158, 189, 239, 161, 205, 223, + 97, 189, 239, 94, 205, 223, + 97, 189, 239, 99, 68, 237, + 97, 189, 239, 107, 173, 245, + 97, 189, 239, 138, 60, 235, + 143, 146, 240, 55, 67, 213, + 143, 146, 240, 63, 92, 232, + 143, 146, 240, 110, 162, 249, + 143, 146, 240, 129, 103, 253, + 112, 146, 240, 126, 103, 253, + 112, 146, 240, 145, 162, 249, + 112, 146, 240, 192, 92, 232, + 112, 146, 240, 200, 67, 213, + 140, 155, 241, 63, 92, 232, + 140, 155, 241, 79, 122, 245, + 140, 155, 241, 129, 103, 253, + 140, 155, 241, 151, 96, 249, + 115, 155, 241, 104, 96, 249, + 115, 155, 241, 126, 103, 253, + 115, 155, 241, 176, 122, 245, + 115, 155, 241, 192, 92, 232, + 138, 38, 237, 127, 119, 255, + 138, 38, 237, 128, 128, 255, + 138, 38, 237, 167, 124, 249, + 138, 38, 237, 169, 111, 247, + 117, 38, 237, 86, 111, 247, + 117, 38, 237, 88, 124, 249, + 117, 38, 237, 128, 128, 255, + 117, 38, 237, 128, 119, 255, + 135, 70, 240, 126, 135, 255, + 135, 70, 240, 127, 119, 255, + 135, 70, 240, 166, 134, 249, + 135, 70, 240, 167, 124, 249, + 120, 70, 240, 88, 124, 249, + 120, 70, 240, 89, 134, 249, + 120, 70, 240, 128, 119, 255, + 120, 70, 240, 129, 135, 255, + 128, 70, 240, 126, 135, 255, + 128, 70, 240, 127, 119, 255, + 128, 70, 240, 128, 119, 255, + 128, 70, 240, 129, 135, 255, + 128, 85, 239, 74, 15, 156, + 128, 85, 239, 126, 135, 255, + 128, 85, 239, 129, 135, 255, + 128, 85, 239, 181, 15, 156, + 136, 92, 244, 164, 54, 225, + 136, 92, 244, 177, 37, 202, + 136, 92, 244, 181, 15, 156, + 136, 92, 244, 232, 54, 122, + 119, 92, 244, 23, 54, 122, + 119, 92, 244, 74, 15, 156, + 119, 92, 244, 78, 37, 202, + 119, 92, 244, 91, 54, 225, + 140, 98, 247, 177, 37, 202, + 140, 98, 247, 224, 165, 202, + 140, 98, 247, 232, 54, 122, + 140, 98, 247, 249, 157, 100, + 115, 98, 247, 6, 157, 100, + 115, 98, 247, 23, 54, 122, + 115, 98, 247, 31, 165, 202, + 115, 98, 247, 78, 37, 202, + 138, 110, 244, 138, 243, 75, + 138, 110, 244, 141, 228, 205, + 138, 110, 244, 224, 165, 202, + 138, 110, 244, 249, 157, 100, + 117, 110, 244, 6, 157, 100, + 117, 110, 244, 31, 165, 202, + 117, 110, 244, 114, 228, 205, + 117, 110, 244, 117, 243, 75, + 131, 111, 244, 15, 173, 166, + 131, 111, 244, 44, 204, 186, + 131, 111, 244, 138, 243, 75, + 131, 111, 244, 141, 228, 205, + 124, 111, 244, 114, 228, 205, + 124, 111, 244, 117, 243, 75, + 124, 111, 244, 211, 204, 186, + 124, 111, 244, 240, 173, 166, + 128, 101, 251, 44, 204, 186, + 128, 101, 251, 122, 157, 251, + 128, 101, 251, 123, 76, 244, + 128, 101, 251, 132, 76, 244, + 128, 101, 251, 133, 157, 251, + 128, 101, 251, 211, 204, 186, + 132, 108, 249, 44, 204, 186, + 132, 108, 249, 133, 157, 251, + 132, 108, 249, 141, 228, 205, + 123, 108, 249, 114, 228, 205, + 123, 108, 249, 122, 157, 251, + 123, 108, 249, 211, 204, 186, + 136, 107, 249, 133, 157, 251, + 136, 107, 249, 141, 228, 205, + 136, 107, 249, 224, 165, 202, + 119, 107, 249, 31, 165, 202, + 119, 107, 249, 114, 228, 205, + 119, 107, 249, 122, 157, 251, + 138, 98, 251, 132, 76, 244, + 138, 98, 251, 133, 157, 251, + 138, 98, 251, 177, 37, 202, + 138, 98, 251, 224, 165, 202, + 117, 98, 251, 31, 165, 202, + 117, 98, 251, 78, 37, 202, + 117, 98, 251, 122, 157, 251, + 117, 98, 251, 123, 76, 244, + 135, 95, 248, 132, 76, 244, + 135, 95, 248, 164, 54, 225, + 135, 95, 248, 177, 37, 202, + 120, 95, 248, 78, 37, 202, + 120, 95, 248, 91, 54, 225, + 120, 95, 248, 123, 76, 244, + 128, 90, 248, 91, 54, 225, + 128, 90, 248, 123, 76, 244, + 128, 90, 248, 132, 76, 244, + 128, 90, 248, 164, 54, 225, + 152, 87, 211, 231, 166, 191, + 152, 87, 211, 239, 160, 180, + 152, 87, 211, 244, 171, 98, + 152, 87, 211, 246, 167, 103, + 103, 87, 211, 9, 167, 103, + 103, 87, 211, 11, 171, 98, + 103, 87, 211, 16, 160, 180, + 103, 87, 211, 24, 166, 191, + 143, 96, 234, 100, 72, 239, + 143, 96, 234, 183, 111, 241, + 143, 96, 234, 239, 160, 180, + 143, 96, 234, 247, 148, 167, + 112, 96, 234, 8, 148, 167, + 112, 96, 234, 16, 160, 180, + 112, 96, 234, 72, 111, 241, + 112, 96, 234, 155, 72, 239, + 144, 87, 234, 166, 134, 249, + 144, 87, 234, 183, 111, 241, + 144, 87, 234, 231, 166, 191, + 144, 87, 234, 239, 160, 180, + 111, 87, 234, 16, 160, 180, + 111, 87, 234, 24, 166, 191, + 111, 87, 234, 72, 111, 241, + 111, 87, 234, 89, 134, 249, + 149, 95, 211, 239, 160, 180, + 149, 95, 211, 246, 167, 103, + 149, 95, 211, 247, 148, 167, + 149, 95, 211, 247, 170, 120, + 106, 95, 211, 8, 170, 120, + 106, 95, 211, 8, 148, 167, + 106, 95, 211, 9, 167, 103, + 106, 95, 211, 16, 160, 180, + 128, 14, 230, 107, 249, 162, + 128, 14, 230, 115, 152, 252, + 128, 14, 230, 140, 152, 252, + 128, 14, 230, 148, 249, 162, + 132, 15, 230, 39, 218, 144, + 132, 15, 230, 93, 114, 249, + 132, 15, 230, 107, 249, 162, + 132, 15, 230, 115, 152, 252, + 123, 15, 230, 140, 152, 252, + 123, 15, 230, 148, 249, 162, + 123, 15, 230, 162, 114, 249, + 123, 15, 230, 216, 218, 144, + 136, 21, 234, 0, 128, 128, + 136, 21, 234, 39, 218, 144, + 136, 21, 234, 93, 114, 249, + 136, 21, 234, 108, 102, 251, + 119, 21, 234, 147, 102, 251, + 119, 21, 234, 162, 114, 249, + 119, 21, 234, 216, 218, 144, + 119, 21, 234, 255, 128, 128, + 136, 31, 236, 0, 128, 128, + 136, 31, 236, 108, 102, 251, + 136, 31, 236, 156, 44, 220, + 136, 31, 236, 166, 7, 143, + 119, 31, 236, 89, 7, 143, + 119, 31, 236, 99, 44, 220, + 119, 31, 236, 147, 102, 251, + 119, 31, 236, 255, 128, 128, + 128, 26, 226, 89, 7, 143, + 128, 26, 226, 124, 89, 249, + 128, 26, 226, 131, 89, 249, + 128, 26, 226, 166, 7, 143, + 136, 30, 227, 0, 128, 128, + 136, 30, 227, 131, 89, 249, + 136, 30, 227, 145, 83, 246, + 136, 30, 227, 166, 7, 143, + 119, 30, 227, 89, 7, 143, + 119, 30, 227, 110, 83, 246, + 119, 30, 227, 124, 89, 249, + 119, 30, 227, 255, 128, 128, + 136, 22, 223, 0, 128, 128, + 136, 22, 223, 39, 218, 144, + 136, 22, 223, 145, 83, 246, + 119, 22, 223, 110, 83, 246, + 119, 22, 223, 216, 218, 144, + 119, 22, 223, 255, 128, 128, + 132, 17, 222, 39, 218, 144, + 132, 17, 222, 107, 249, 162, + 132, 17, 222, 131, 89, 249, + 132, 17, 222, 145, 83, 246, + 123, 17, 222, 110, 83, 246, + 123, 17, 222, 124, 89, 249, + 123, 17, 222, 148, 249, 162, + 123, 17, 222, 216, 218, 144, + 128, 16, 222, 107, 249, 162, + 128, 16, 222, 124, 89, 249, + 128, 16, 222, 131, 89, 249, + 128, 16, 222, 148, 249, 162, + 144, 156, 244, 63, 92, 232, + 144, 156, 244, 79, 122, 245, + 144, 156, 244, 227, 142, 205, + 144, 156, 244, 232, 118, 201, + 111, 156, 244, 23, 118, 201, + 111, 156, 244, 28, 142, 205, + 111, 156, 244, 176, 122, 245, + 111, 156, 244, 192, 92, 232, + 145, 148, 243, 55, 67, 213, + 145, 148, 243, 63, 92, 232, + 145, 148, 243, 191, 195, 215, + 145, 148, 243, 227, 142, 205, + 110, 148, 243, 28, 142, 205, + 110, 148, 243, 64, 195, 215, + 110, 148, 243, 192, 92, 232, + 110, 148, 243, 200, 67, 213, + 159, 183, 241, 95, 44, 219, + 159, 183, 241, 148, 173, 245, + 159, 183, 241, 161, 205, 223, + 159, 183, 241, 163, 94, 245, + 96, 183, 241, 92, 94, 245, + 96, 183, 241, 94, 205, 223, + 96, 183, 241, 107, 173, 245, + 96, 183, 241, 160, 44, 219, + 153, 182, 243, 125, 159, 251, + 153, 182, 243, 148, 173, 245, + 153, 182, 243, 163, 94, 245, + 153, 182, 243, 169, 74, 236, + 102, 182, 243, 86, 74, 236, + 102, 182, 243, 92, 94, 245, + 102, 182, 243, 107, 173, 245, + 102, 182, 243, 130, 159, 251, + 167, 179, 243, 95, 44, 219, + 167, 179, 243, 124, 20, 195, + 167, 179, 243, 161, 205, 223, + 167, 179, 243, 189, 199, 213, + 88, 179, 243, 66, 199, 213, + 88, 179, 243, 94, 205, 223, + 88, 179, 243, 131, 20, 195, + 88, 179, 243, 160, 44, 219, + 180, 173, 232, 83, 94, 242, + 180, 173, 232, 124, 20, 195, + 180, 173, 232, 189, 199, 213, + 180, 173, 232, 200, 143, 231, + 75, 173, 232, 55, 143, 231, + 75, 173, 232, 66, 199, 213, + 75, 173, 232, 131, 20, 195, + 75, 173, 232, 172, 94, 242, + 182, 165, 230, 83, 126, 247, + 182, 165, 230, 83, 94, 242, + 182, 165, 230, 200, 115, 232, + 182, 165, 230, 200, 143, 231, + 73, 165, 230, 55, 143, 231, + 73, 165, 230, 55, 115, 232, + 73, 165, 230, 172, 94, 242, + 73, 165, 230, 172, 126, 247, + 181, 153, 229, 83, 126, 247, + 181, 153, 229, 111, 186, 239, + 181, 153, 229, 200, 115, 232, + 181, 153, 229, 201, 75, 218, + 74, 153, 229, 54, 75, 218, + 74, 153, 229, 55, 115, 232, + 74, 153, 229, 144, 186, 239, + 74, 153, 229, 172, 126, 247, + 172, 141, 235, 111, 186, 239, + 172, 141, 235, 123, 206, 228, + 172, 141, 235, 180, 50, 214, + 172, 141, 235, 201, 75, 218, + 83, 141, 235, 54, 75, 218, + 83, 141, 235, 75, 50, 214, + 83, 141, 235, 132, 206, 228, + 83, 141, 235, 144, 186, 239, + 162, 136, 239, 110, 31, 210, + 162, 136, 239, 123, 206, 228, + 162, 136, 239, 173, 202, 220, + 162, 136, 239, 180, 50, 214, + 93, 136, 239, 75, 50, 214, + 93, 136, 239, 82, 202, 220, + 93, 136, 239, 132, 206, 228, + 93, 136, 239, 145, 31, 210, + 149, 142, 244, 55, 67, 213, + 149, 142, 244, 110, 31, 210, + 149, 142, 244, 173, 202, 220, + 149, 142, 244, 191, 195, 215, + 106, 142, 244, 64, 195, 215, + 106, 142, 244, 82, 202, 220, + 106, 142, 244, 145, 31, 210, + 106, 142, 244, 200, 67, 213, + 144, 166, 244, 79, 122, 245, + 144, 166, 244, 101, 132, 252, + 144, 166, 244, 213, 85, 213, + 144, 166, 244, 232, 118, 201, + 111, 166, 244, 23, 118, 201, + 111, 166, 244, 42, 85, 213, + 111, 166, 244, 154, 132, 252, + 111, 166, 244, 176, 122, 245, + 147, 176, 244, 101, 132, 252, + 147, 176, 244, 125, 159, 251, + 147, 176, 244, 169, 74, 236, + 147, 176, 244, 213, 85, 213, + 108, 176, 244, 42, 85, 213, + 108, 176, 244, 86, 74, 236, + 108, 176, 244, 130, 159, 251, + 108, 176, 244, 154, 132, 252, + 149, 174, 241, 169, 74, 236, + 149, 174, 241, 213, 85, 213, + 106, 174, 241, 42, 85, 213, + 106, 174, 241, 86, 74, 236, + 146, 166, 241, 213, 85, 213, + 146, 166, 241, 232, 118, 201, + 109, 166, 241, 23, 118, 201, + 109, 166, 241, 42, 85, 213, + 150, 144, 241, 173, 202, 220, + 150, 144, 241, 191, 195, 215, + 105, 144, 241, 64, 195, 215, + 105, 144, 241, 82, 202, 220, + 162, 139, 236, 123, 206, 228, + 162, 139, 236, 173, 202, 220, + 93, 139, 236, 82, 202, 220, + 93, 139, 236, 132, 206, 228, + 170, 143, 233, 111, 186, 239, + 170, 143, 233, 123, 206, 228, + 85, 143, 233, 132, 206, 228, + 85, 143, 233, 144, 186, 239, + 179, 155, 228, 83, 126, 247, + 179, 155, 228, 111, 186, 239, + 77, 155, 228, 144, 186, 239, + 77, 155, 228, 172, 126, 247, + 179, 164, 228, 83, 126, 247, + 179, 164, 228, 83, 94, 242, + 76, 164, 228, 172, 94, 242, + 76, 164, 228, 172, 126, 247, + 177, 171, 229, 83, 94, 242, + 177, 171, 229, 124, 20, 195, + 78, 171, 229, 131, 20, 195, + 78, 171, 229, 172, 94, 242, + 166, 178, 240, 95, 44, 219, + 166, 178, 240, 124, 20, 195, + 89, 178, 240, 131, 20, 195, + 89, 178, 240, 160, 44, 219, + 154, 179, 242, 163, 94, 245, + 154, 179, 242, 169, 74, 236, + 101, 179, 242, 86, 74, 236, + 101, 179, 242, 92, 94, 245, + 159, 180, 240, 95, 44, 219, + 159, 180, 240, 163, 94, 245, + 96, 180, 240, 92, 94, 245, + 96, 180, 240, 160, 44, 219, + 146, 150, 240, 191, 195, 215, + 146, 150, 240, 227, 142, 205, + 109, 150, 240, 28, 142, 205, + 109, 150, 240, 64, 195, 215, + 146, 157, 240, 227, 142, 205, + 146, 157, 240, 232, 118, 201, + 109, 157, 240, 23, 118, 201, + 109, 157, 240, 28, 142, 205, + 138, 187, 219, 19, 175, 80, + 138, 187, 219, 60, 231, 96, + 138, 187, 219, 106, 141, 3, + 138, 187, 219, 107, 151, 251, + 138, 187, 219, 133, 244, 179, + 117, 187, 219, 122, 244, 179, + 117, 187, 219, 148, 151, 251, + 117, 187, 219, 149, 141, 3, + 117, 187, 219, 195, 231, 96, + 117, 187, 219, 236, 175, 80, + 146, 214, 220, 19, 175, 80, + 146, 214, 220, 96, 238, 72, + 146, 214, 220, 106, 141, 3, + 109, 214, 220, 149, 141, 3, + 109, 214, 220, 159, 238, 72, + 109, 214, 220, 236, 175, 80, + 159, 217, 216, 96, 238, 72, + 159, 217, 216, 106, 141, 3, + 159, 217, 216, 203, 223, 89, + 96, 217, 216, 52, 223, 89, + 96, 217, 216, 149, 141, 3, + 96, 217, 216, 159, 238, 72, + 173, 199, 211, 106, 141, 3, + 173, 199, 211, 133, 244, 179, + 173, 199, 211, 171, 246, 107, + 173, 199, 211, 174, 239, 88, + 173, 199, 211, 203, 223, 89, + 82, 199, 211, 52, 223, 89, + 82, 199, 211, 81, 239, 88, + 82, 199, 211, 84, 246, 107, + 82, 199, 211, 122, 244, 179, + 82, 199, 211, 149, 141, 3, + 191, 186, 201, 163, 244, 91, + 191, 186, 201, 171, 246, 107, + 191, 186, 201, 174, 239, 88, + 191, 186, 201, 180, 242, 109, + 64, 186, 201, 75, 242, 109, + 64, 186, 201, 81, 239, 88, + 64, 186, 201, 84, 246, 107, + 64, 186, 201, 92, 244, 91, + 202, 180, 197, 163, 244, 91, + 202, 180, 197, 180, 242, 109, + 202, 180, 197, 237, 145, 64, + 202, 180, 197, 252, 153, 134, + 53, 180, 197, 3, 153, 134, + 53, 180, 197, 18, 145, 64, + 53, 180, 197, 75, 242, 109, + 53, 180, 197, 92, 244, 91, + 200, 149, 184, 196, 35, 72, + 200, 149, 184, 233, 63, 159, + 200, 149, 184, 237, 145, 64, + 200, 149, 184, 252, 153, 134, + 55, 149, 184, 3, 153, 134, + 55, 149, 184, 18, 145, 64, + 55, 149, 184, 22, 63, 159, + 55, 149, 184, 59, 35, 72, + 184, 128, 189, 177, 24, 72, + 184, 128, 189, 184, 17, 157, + 184, 128, 189, 196, 35, 72, + 184, 128, 189, 233, 63, 159, + 71, 128, 189, 22, 63, 159, + 71, 128, 189, 59, 35, 72, + 71, 128, 189, 71, 17, 157, + 71, 128, 189, 78, 24, 72, + 168, 115, 198, 150, 15, 71, + 168, 115, 198, 161, 70, 236, + 168, 115, 198, 177, 24, 72, + 168, 115, 198, 184, 17, 157, + 168, 115, 198, 205, 31, 158, + 87, 115, 198, 50, 31, 158, + 87, 115, 198, 71, 17, 157, + 87, 115, 198, 78, 24, 72, + 87, 115, 198, 94, 70, 236, + 87, 115, 198, 105, 15, 71, + 128, 244, 171, 99, 201, 228, + 128, 244, 171, 112, 250, 158, + 128, 244, 171, 143, 250, 158, + 128, 244, 171, 156, 201, 228, + 128, 255, 116, 111, 252, 104, + 128, 255, 116, 112, 250, 158, + 128, 255, 116, 143, 250, 158, + 128, 255, 116, 144, 252, 104, + 128, 102, 27, 80, 67, 26, + 128, 102, 27, 88, 22, 68, + 128, 102, 27, 167, 22, 68, + 128, 102, 27, 175, 67, 26, + 128, 68, 156, 87, 9, 104, + 128, 68, 156, 92, 6, 111, + 128, 68, 156, 163, 6, 111, + 128, 68, 156, 168, 9, 104, + 128, 1, 197, 113, 70, 15, + 128, 1, 197, 113, 2, 110, + 128, 1, 197, 142, 2, 110, + 128, 1, 197, 142, 70, 15, + 128, 23, 179, 96, 120, 4, + 128, 23, 179, 113, 70, 15, + 128, 23, 179, 142, 70, 15, + 128, 23, 179, 159, 120, 4, + 128, 54, 175, 96, 120, 4, + 128, 54, 175, 98, 53, 28, + 128, 54, 175, 157, 53, 28, + 128, 54, 175, 159, 120, 4, + 128, 65, 170, 87, 9, 104, + 128, 65, 170, 98, 53, 28, + 128, 65, 170, 157, 53, 28, + 128, 65, 170, 168, 9, 104, + 207, 158, 136, 233, 63, 159, + 207, 158, 136, 243, 80, 101, + 207, 158, 136, 248, 139, 167, + 207, 158, 136, 252, 153, 134, + 48, 158, 136, 3, 153, 134, + 48, 158, 136, 7, 139, 167, + 48, 158, 136, 12, 80, 101, + 48, 158, 136, 22, 63, 159, + 208, 169, 120, 243, 80, 101, + 208, 169, 120, 244, 77, 113, + 208, 169, 120, 248, 139, 167, + 208, 169, 120, 252, 152, 119, + 208, 169, 120, 253, 104, 120, + 47, 169, 120, 2, 104, 120, + 47, 169, 120, 3, 152, 119, + 47, 169, 120, 7, 139, 167, + 47, 169, 120, 11, 77, 113, + 47, 169, 120, 12, 80, 101, + 200, 162, 62, 28, 207, 130, + 200, 162, 62, 197, 101, 24, + 200, 162, 62, 198, 87, 30, + 200, 162, 62, 213, 153, 36, + 200, 162, 62, 254, 131, 114, + 55, 162, 62, 1, 131, 114, + 55, 162, 62, 42, 153, 36, + 55, 162, 62, 57, 87, 30, + 55, 162, 62, 58, 101, 24, + 55, 162, 62, 227, 207, 130, + 170, 184, 22, 171, 113, 9, + 170, 184, 22, 172, 203, 35, + 170, 184, 22, 191, 183, 32, + 170, 184, 22, 191, 92, 23, + 85, 184, 22, 64, 92, 23, + 85, 184, 22, 64, 183, 32, + 85, 184, 22, 83, 203, 35, + 85, 184, 22, 84, 113, 9, + 196, 121, 138, 175, 10, 138, + 196, 121, 138, 184, 17, 157, + 196, 121, 138, 220, 40, 113, + 196, 121, 138, 233, 63, 159, + 196, 121, 138, 243, 80, 101, + 59, 121, 138, 12, 80, 101, + 59, 121, 138, 22, 63, 159, + 59, 121, 138, 35, 40, 113, + 59, 121, 138, 71, 17, 157, + 59, 121, 138, 80, 10, 138, + 183, 111, 103, 96, 10, 90, + 183, 111, 103, 103, 164, 247, + 183, 111, 103, 168, 19, 74, + 183, 111, 103, 175, 10, 138, + 183, 111, 103, 220, 40, 113, + 72, 111, 103, 35, 40, 113, + 72, 111, 103, 80, 10, 138, + 72, 111, 103, 87, 19, 74, + 72, 111, 103, 152, 164, 247, + 72, 111, 103, 159, 10, 90, + 187, 126, 63, 96, 10, 90, + 187, 126, 63, 168, 19, 74, + 187, 126, 63, 197, 101, 24, + 187, 126, 63, 198, 87, 30, + 68, 126, 63, 57, 87, 30, + 68, 126, 63, 58, 101, 24, + 68, 126, 63, 87, 19, 74, + 68, 126, 63, 159, 10, 90, + 159, 135, 28, 171, 113, 9, + 159, 135, 28, 175, 67, 26, + 159, 135, 28, 191, 71, 32, + 159, 135, 28, 191, 92, 23, + 96, 135, 28, 64, 92, 23, + 96, 135, 28, 64, 71, 32, + 96, 135, 28, 80, 67, 26, + 96, 135, 28, 84, 113, 9, + 149, 82, 188, 224, 90, 52, + 149, 82, 188, 244, 171, 98, + 149, 82, 188, 245, 145, 81, + 149, 82, 188, 252, 101, 120, + 106, 82, 188, 3, 101, 120, + 106, 82, 188, 10, 145, 81, + 106, 82, 188, 11, 171, 98, + 106, 82, 188, 31, 90, 52, + 144, 74, 166, 157, 53, 28, + 144, 74, 166, 168, 9, 104, + 144, 74, 166, 224, 90, 52, + 144, 74, 166, 252, 101, 120, + 111, 74, 166, 3, 101, 120, + 111, 74, 166, 31, 90, 52, + 111, 74, 166, 87, 9, 104, + 111, 74, 166, 98, 53, 28, + 154, 35, 185, 125, 100, 3, + 154, 35, 185, 148, 130, 2, + 154, 35, 185, 246, 148, 86, + 154, 35, 185, 250, 126, 92, + 101, 35, 185, 5, 126, 92, + 101, 35, 185, 9, 148, 86, + 101, 35, 185, 107, 130, 2, + 101, 35, 185, 130, 100, 3, + 151, 63, 186, 148, 130, 2, + 151, 63, 186, 224, 90, 52, + 151, 63, 186, 245, 145, 81, + 151, 63, 186, 246, 148, 86, + 104, 63, 186, 9, 148, 86, + 104, 63, 186, 10, 145, 81, + 104, 63, 186, 31, 90, 52, + 104, 63, 186, 107, 130, 2, + 158, 9, 187, 125, 100, 3, + 158, 9, 187, 143, 4, 99, + 158, 9, 187, 250, 126, 92, + 97, 9, 187, 5, 126, 92, + 97, 9, 187, 112, 4, 99, + 97, 9, 187, 130, 100, 3, + 141, 29, 182, 125, 100, 3, + 141, 29, 182, 142, 70, 15, + 141, 29, 182, 148, 130, 2, + 141, 29, 182, 159, 120, 4, + 114, 29, 182, 96, 120, 4, + 114, 29, 182, 107, 130, 2, + 114, 29, 182, 113, 70, 15, + 114, 29, 182, 130, 100, 3, + 139, 58, 181, 148, 130, 2, + 139, 58, 181, 157, 53, 28, + 139, 58, 181, 159, 120, 4, + 139, 58, 181, 224, 90, 52, + 116, 58, 181, 31, 90, 52, + 116, 58, 181, 96, 120, 4, + 116, 58, 181, 98, 53, 28, + 116, 58, 181, 107, 130, 2, + 143, 5, 193, 125, 100, 3, + 143, 5, 193, 142, 2, 110, + 143, 5, 193, 142, 70, 15, + 143, 5, 193, 143, 4, 99, + 112, 5, 193, 112, 4, 99, + 112, 5, 193, 113, 70, 15, + 112, 5, 193, 113, 2, 110, + 112, 5, 193, 130, 100, 3, + 148, 91, 192, 205, 31, 158, + 148, 91, 192, 221, 46, 158, + 148, 91, 192, 244, 171, 98, + 148, 91, 192, 246, 167, 103, + 148, 91, 192, 252, 101, 120, + 107, 91, 192, 3, 101, 120, + 107, 91, 192, 9, 167, 103, + 107, 91, 192, 11, 171, 98, + 107, 91, 192, 34, 46, 158, + 107, 91, 192, 50, 31, 158, + 147, 98, 198, 161, 70, 236, + 147, 98, 198, 205, 31, 158, + 147, 98, 198, 246, 167, 103, + 147, 98, 198, 247, 170, 120, + 108, 98, 198, 8, 170, 120, + 108, 98, 198, 9, 167, 103, + 108, 98, 198, 50, 31, 158, + 108, 98, 198, 94, 70, 236, + 146, 105, 202, 150, 15, 71, + 146, 105, 202, 161, 70, 236, + 146, 105, 202, 247, 170, 120, + 109, 105, 202, 8, 170, 120, + 109, 105, 202, 94, 70, 236, + 109, 105, 202, 105, 15, 71, + 147, 77, 152, 163, 6, 111, + 147, 77, 152, 168, 9, 104, + 147, 77, 152, 218, 38, 134, + 147, 77, 152, 221, 46, 158, + 147, 77, 152, 252, 101, 120, + 108, 77, 152, 3, 101, 120, + 108, 77, 152, 34, 46, 158, + 108, 77, 152, 37, 38, 134, + 108, 77, 152, 87, 9, 104, + 108, 77, 152, 92, 6, 111, + 155, 87, 88, 163, 6, 111, + 155, 87, 88, 167, 22, 68, + 155, 87, 88, 218, 38, 134, + 155, 87, 88, 219, 46, 92, + 100, 87, 88, 36, 46, 92, + 100, 87, 88, 37, 38, 134, + 100, 87, 88, 88, 22, 68, + 100, 87, 88, 92, 6, 111, + 160, 108, 47, 167, 22, 68, + 160, 108, 47, 175, 67, 26, + 160, 108, 47, 191, 71, 32, + 160, 108, 47, 219, 46, 92, + 95, 108, 47, 36, 46, 92, + 95, 108, 47, 64, 71, 32, + 95, 108, 47, 80, 67, 26, + 95, 108, 47, 88, 22, 68, + 170, 240, 70, 144, 252, 104, + 170, 240, 70, 172, 203, 35, + 170, 240, 70, 191, 183, 32, + 170, 240, 70, 209, 223, 105, + 85, 240, 70, 46, 223, 105, + 85, 240, 70, 64, 183, 32, + 85, 240, 70, 83, 203, 35, + 85, 240, 70, 111, 252, 104, + 170, 248, 117, 143, 250, 158, + 170, 248, 117, 144, 252, 104, + 170, 248, 117, 209, 223, 105, + 170, 248, 117, 219, 214, 147, + 85, 248, 117, 36, 214, 147, + 85, 248, 117, 46, 223, 105, + 85, 248, 117, 111, 252, 104, + 85, 248, 117, 112, 250, 158, + 170, 238, 163, 143, 250, 158, + 170, 238, 163, 156, 201, 228, + 170, 238, 163, 219, 214, 147, + 170, 238, 163, 222, 178, 197, + 85, 238, 163, 33, 178, 197, + 85, 238, 163, 36, 214, 147, + 85, 238, 163, 99, 201, 228, + 85, 238, 163, 112, 250, 158, + 170, 195, 192, 133, 244, 179, + 170, 195, 192, 156, 201, 228, + 170, 195, 192, 171, 246, 107, + 170, 195, 192, 222, 178, 197, + 85, 195, 192, 33, 178, 197, + 85, 195, 192, 84, 246, 107, + 85, 195, 192, 99, 201, 228, + 85, 195, 192, 122, 244, 179, + 195, 180, 178, 151, 217, 215, + 195, 180, 178, 180, 242, 109, + 195, 180, 178, 248, 139, 167, + 195, 180, 178, 252, 153, 134, + 60, 180, 178, 3, 153, 134, + 60, 180, 178, 7, 139, 167, + 60, 180, 178, 75, 242, 109, + 60, 180, 178, 104, 217, 215, + 187, 186, 170, 151, 217, 215, + 187, 186, 170, 171, 246, 107, + 187, 186, 170, 180, 242, 109, + 187, 186, 170, 222, 178, 197, + 68, 186, 170, 33, 178, 197, + 68, 186, 170, 75, 242, 109, + 68, 186, 170, 84, 246, 107, + 68, 186, 170, 104, 217, 215, + 187, 219, 136, 151, 217, 215, + 187, 219, 136, 205, 227, 148, + 187, 219, 136, 219, 214, 147, + 187, 219, 136, 222, 178, 197, + 68, 219, 136, 33, 178, 197, + 68, 219, 136, 36, 214, 147, + 68, 219, 136, 50, 227, 148, + 68, 219, 136, 104, 217, 215, + 202, 200, 146, 151, 217, 215, + 202, 200, 146, 205, 227, 148, + 202, 200, 146, 248, 139, 167, + 202, 200, 146, 252, 152, 119, + 53, 200, 146, 3, 152, 119, + 53, 200, 146, 7, 139, 167, + 53, 200, 146, 50, 227, 148, + 53, 200, 146, 104, 217, 215, + 202, 207, 110, 205, 227, 148, + 202, 207, 110, 217, 214, 101, + 202, 207, 110, 252, 152, 119, + 202, 207, 110, 254, 131, 114, + 53, 207, 110, 1, 131, 114, + 53, 207, 110, 3, 152, 119, + 53, 207, 110, 38, 214, 101, + 53, 207, 110, 50, 227, 148, + 187, 225, 98, 205, 227, 148, + 187, 225, 98, 209, 223, 105, + 187, 225, 98, 217, 214, 101, + 187, 225, 98, 219, 214, 147, + 68, 225, 98, 36, 214, 147, + 68, 225, 98, 38, 214, 101, + 68, 225, 98, 46, 223, 105, + 68, 225, 98, 50, 227, 148, + 187, 216, 61, 191, 183, 32, + 187, 216, 61, 209, 223, 105, + 187, 216, 61, 213, 153, 36, + 187, 216, 61, 217, 214, 101, + 68, 216, 61, 38, 214, 101, + 68, 216, 61, 42, 153, 36, + 68, 216, 61, 46, 223, 105, + 68, 216, 61, 64, 183, 32, + 202, 197, 74, 213, 153, 36, + 202, 197, 74, 217, 214, 101, + 202, 197, 74, 254, 131, 114, + 53, 197, 74, 1, 131, 114, + 53, 197, 74, 38, 214, 101, + 53, 197, 74, 42, 153, 36, + 185, 170, 40, 191, 183, 32, + 185, 170, 40, 191, 92, 23, + 185, 170, 40, 198, 87, 30, + 185, 170, 40, 213, 153, 36, + 70, 170, 40, 42, 153, 36, + 70, 170, 40, 57, 87, 30, + 70, 170, 40, 64, 92, 23, + 70, 170, 40, 64, 183, 32, + 173, 131, 46, 168, 19, 74, + 173, 131, 46, 191, 71, 32, + 173, 131, 46, 191, 92, 23, + 173, 131, 46, 198, 87, 30, + 173, 131, 46, 219, 46, 92, + 82, 131, 46, 36, 46, 92, + 82, 131, 46, 57, 87, 30, + 82, 131, 46, 64, 92, 23, + 82, 131, 46, 64, 71, 32, + 82, 131, 46, 87, 19, 74, + 204, 170, 97, 28, 207, 130, + 204, 170, 97, 141, 147, 253, + 204, 170, 97, 252, 152, 119, + 204, 170, 97, 253, 104, 120, + 204, 170, 97, 254, 131, 114, + 51, 170, 97, 1, 131, 114, + 51, 170, 97, 2, 104, 120, + 51, 170, 97, 3, 152, 119, + 51, 170, 97, 114, 147, 253, + 51, 170, 97, 227, 207, 130, + 165, 105, 150, 175, 10, 138, + 165, 105, 150, 184, 17, 157, + 165, 105, 150, 205, 31, 158, + 165, 105, 150, 218, 38, 134, + 165, 105, 150, 221, 46, 158, + 90, 105, 150, 34, 46, 158, + 90, 105, 150, 37, 38, 134, + 90, 105, 150, 50, 31, 158, + 90, 105, 150, 71, 17, 157, + 90, 105, 150, 80, 10, 138, + 168, 102, 96, 168, 19, 74, + 168, 102, 96, 175, 10, 138, + 168, 102, 96, 218, 38, 134, + 168, 102, 96, 219, 46, 92, + 87, 102, 96, 36, 46, 92, + 87, 102, 96, 37, 38, 134, + 87, 102, 96, 80, 10, 138, + 87, 102, 96, 87, 19, 74, + 211, 180, 92, 28, 207, 130, + 211, 180, 92, 70, 240, 111, + 211, 180, 92, 141, 147, 253, + 211, 180, 92, 172, 176, 237, + 44, 180, 92, 83, 176, 237, + 44, 180, 92, 114, 147, 253, + 44, 180, 92, 185, 240, 111, + 44, 180, 92, 227, 207, 130, + 200, 109, 109, 96, 10, 90, + 200, 109, 109, 103, 164, 247, + 200, 109, 109, 139, 1, 117, + 200, 109, 109, 207, 89, 219, + 55, 109, 109, 48, 89, 219, + 55, 109, 109, 116, 1, 117, + 55, 109, 109, 152, 164, 247, + 55, 109, 109, 159, 10, 90, + 224, 114, 78, 139, 1, 117, + 224, 114, 78, 187, 120, 240, + 224, 114, 78, 191, 17, 129, + 224, 114, 78, 207, 89, 219, + 31, 114, 78, 48, 89, 219, + 31, 114, 78, 64, 17, 129, + 31, 114, 78, 68, 120, 240, + 31, 114, 78, 116, 1, 117, + 247, 135, 63, 159, 117, 251, + 247, 135, 63, 187, 120, 240, + 247, 135, 63, 191, 17, 129, + 247, 135, 63, 246, 96, 163, + 8, 135, 63, 9, 96, 163, + 8, 135, 63, 64, 17, 129, + 8, 135, 63, 68, 120, 240, + 8, 135, 63, 96, 117, 251, + 254, 169, 64, 159, 117, 251, + 254, 169, 64, 160, 141, 250, + 254, 169, 64, 235, 197, 123, + 254, 169, 64, 246, 96, 163, + 1, 169, 64, 9, 96, 163, + 1, 169, 64, 20, 197, 123, + 1, 169, 64, 95, 141, 250, + 1, 169, 64, 96, 117, 251, + 243, 193, 64, 97, 247, 94, + 243, 193, 64, 160, 141, 250, + 243, 193, 64, 186, 149, 239, + 243, 193, 64, 235, 197, 123, + 12, 193, 64, 20, 197, 123, + 12, 193, 64, 69, 149, 239, + 12, 193, 64, 95, 141, 250, + 12, 193, 64, 158, 247, 94, + 223, 189, 81, 70, 240, 111, + 223, 189, 81, 97, 247, 94, + 223, 189, 81, 172, 176, 237, + 223, 189, 81, 186, 149, 239, + 32, 189, 81, 69, 149, 239, + 32, 189, 81, 83, 176, 237, + 32, 189, 81, 158, 247, 94, + 32, 189, 81, 185, 240, 111, + 222, 181, 84, 172, 176, 237, + 222, 181, 84, 185, 55, 215, + 222, 181, 84, 186, 149, 239, + 222, 181, 84, 217, 70, 198, + 33, 181, 84, 38, 70, 198, + 33, 181, 84, 69, 149, 239, + 33, 181, 84, 70, 55, 215, + 33, 181, 84, 83, 176, 237, + 238, 184, 69, 61, 82, 226, + 238, 184, 69, 160, 141, 250, + 238, 184, 69, 185, 55, 215, + 238, 184, 69, 186, 149, 239, + 17, 184, 69, 69, 149, 239, + 17, 184, 69, 70, 55, 215, + 17, 184, 69, 95, 141, 250, + 17, 184, 69, 194, 82, 226, + 246, 165, 67, 22, 157, 193, + 246, 165, 67, 61, 82, 226, + 246, 165, 67, 159, 117, 251, + 246, 165, 67, 160, 141, 250, + 9, 165, 67, 95, 141, 250, + 9, 165, 67, 96, 117, 251, + 9, 165, 67, 194, 82, 226, + 9, 165, 67, 233, 157, 193, + 240, 138, 67, 22, 157, 193, + 240, 138, 67, 94, 233, 190, + 240, 138, 67, 159, 117, 251, + 240, 138, 67, 187, 120, 240, + 15, 138, 67, 68, 120, 240, + 15, 138, 67, 96, 117, 251, + 15, 138, 67, 161, 233, 190, + 15, 138, 67, 233, 157, 193, + 224, 122, 82, 94, 233, 190, + 224, 122, 82, 185, 212, 204, + 224, 122, 82, 187, 120, 240, + 224, 122, 82, 207, 89, 219, + 31, 122, 82, 48, 89, 219, + 31, 122, 82, 68, 120, 240, + 31, 122, 82, 70, 212, 204, + 31, 122, 82, 161, 233, 190, + 205, 118, 108, 103, 164, 247, + 205, 118, 108, 138, 246, 173, + 205, 118, 108, 185, 212, 204, + 205, 118, 108, 207, 89, 219, + 50, 118, 108, 48, 89, 219, + 50, 118, 108, 70, 212, 204, + 50, 118, 108, 117, 246, 173, + 50, 118, 108, 152, 164, 247, + 213, 174, 95, 141, 147, 253, + 213, 174, 95, 172, 176, 237, + 213, 174, 95, 203, 73, 214, + 213, 174, 95, 217, 70, 198, + 42, 174, 95, 38, 70, 198, + 42, 174, 95, 52, 73, 214, + 42, 174, 95, 83, 176, 237, + 42, 174, 95, 114, 147, 253, + 216, 167, 84, 203, 73, 214, + 216, 167, 84, 207, 37, 170, + 216, 167, 84, 217, 70, 198, + 216, 167, 84, 221, 44, 152, + 39, 167, 84, 34, 44, 152, + 39, 167, 84, 38, 70, 198, + 39, 167, 84, 48, 37, 170, + 39, 167, 84, 52, 73, 214, + 210, 124, 96, 120, 255, 136, + 210, 124, 96, 126, 255, 137, + 210, 124, 96, 138, 246, 173, + 210, 124, 96, 185, 212, 204, + 45, 124, 96, 70, 212, 204, + 45, 124, 96, 117, 246, 173, + 45, 124, 96, 129, 255, 137, + 45, 124, 96, 135, 255, 136, + 224, 128, 73, 55, 228, 95, + 224, 128, 73, 94, 233, 190, + 224, 128, 73, 120, 255, 136, + 224, 128, 73, 185, 212, 204, + 31, 128, 73, 70, 212, 204, + 31, 128, 73, 135, 255, 136, + 31, 128, 73, 161, 233, 190, + 31, 128, 73, 200, 228, 95, + 238, 140, 61, 21, 158, 64, + 238, 140, 61, 22, 157, 193, + 238, 140, 61, 55, 228, 95, + 238, 140, 61, 94, 233, 190, + 17, 140, 61, 161, 233, 190, + 17, 140, 61, 200, 228, 95, + 17, 140, 61, 233, 157, 193, + 17, 140, 61, 234, 158, 64, + 243, 160, 61, 21, 158, 64, + 243, 160, 61, 21, 63, 99, + 243, 160, 61, 22, 157, 193, + 243, 160, 61, 61, 82, 226, + 12, 160, 61, 194, 82, 226, + 12, 160, 61, 233, 157, 193, + 12, 160, 61, 234, 63, 99, + 12, 160, 61, 234, 158, 64, + 237, 174, 62, 21, 63, 99, + 237, 174, 62, 61, 82, 226, + 237, 174, 62, 162, 14, 173, + 237, 174, 62, 185, 55, 215, + 18, 174, 62, 70, 55, 215, + 18, 174, 62, 93, 14, 173, + 18, 174, 62, 194, 82, 226, + 18, 174, 62, 234, 63, 99, + 223, 172, 74, 162, 14, 173, + 223, 172, 74, 185, 55, 215, + 223, 172, 74, 207, 37, 170, + 223, 172, 74, 217, 70, 198, + 32, 172, 74, 38, 70, 198, + 32, 172, 74, 48, 37, 170, + 32, 172, 74, 70, 55, 215, + 32, 172, 74, 93, 14, 173, + 206, 165, 96, 141, 147, 253, + 206, 165, 96, 202, 75, 217, + 206, 165, 96, 203, 73, 214, + 206, 165, 96, 253, 104, 120, + 49, 165, 96, 2, 104, 120, + 49, 165, 96, 52, 73, 214, + 49, 165, 96, 53, 75, 217, + 49, 165, 96, 114, 147, 253, + 205, 150, 87, 202, 75, 217, + 205, 150, 87, 217, 38, 142, + 205, 150, 87, 228, 50, 141, + 205, 150, 87, 230, 66, 172, + 50, 150, 87, 25, 66, 172, + 50, 150, 87, 27, 50, 141, + 50, 150, 87, 38, 38, 142, + 50, 150, 87, 53, 75, 217, + 198, 140, 87, 151, 253, 121, + 198, 140, 87, 182, 188, 225, + 198, 140, 87, 217, 38, 142, + 198, 140, 87, 230, 66, 172, + 57, 140, 87, 25, 66, 172, + 57, 140, 87, 38, 38, 142, + 57, 140, 87, 73, 188, 225, + 57, 140, 87, 104, 253, 121, + 204, 139, 87, 151, 253, 121, + 204, 139, 87, 182, 188, 225, + 204, 139, 87, 247, 170, 144, + 51, 139, 87, 8, 170, 144, + 51, 139, 87, 73, 188, 225, + 51, 139, 87, 104, 253, 121, + 206, 130, 87, 182, 188, 225, + 206, 130, 87, 210, 116, 224, + 206, 130, 87, 212, 32, 135, + 206, 130, 87, 247, 170, 144, + 49, 130, 87, 8, 170, 144, + 49, 130, 87, 43, 32, 135, + 49, 130, 87, 45, 116, 224, + 49, 130, 87, 73, 188, 225, + 203, 125, 87, 126, 255, 137, + 203, 125, 87, 138, 246, 173, + 203, 125, 87, 210, 116, 224, + 203, 125, 87, 212, 32, 135, + 52, 125, 87, 43, 32, 135, + 52, 125, 87, 45, 116, 224, + 52, 125, 87, 117, 246, 173, + 52, 125, 87, 129, 255, 137, + 195, 128, 117, 220, 40, 113, + 195, 128, 117, 243, 80, 101, + 195, 128, 117, 244, 77, 113, + 195, 128, 117, 255, 125, 118, + 60, 128, 117, 0, 125, 118, + 60, 128, 117, 11, 77, 113, + 60, 128, 117, 12, 80, 101, + 60, 128, 117, 35, 40, 113, + 195, 124, 102, 103, 164, 247, + 195, 124, 102, 138, 246, 173, + 195, 124, 102, 210, 116, 224, + 195, 124, 102, 220, 40, 113, + 195, 124, 102, 255, 125, 118, + 60, 124, 102, 0, 125, 118, + 60, 124, 102, 35, 40, 113, + 60, 124, 102, 45, 116, 224, + 60, 124, 102, 117, 246, 173, + 60, 124, 102, 152, 164, 247, + 195, 133, 99, 182, 188, 225, + 195, 133, 99, 210, 116, 224, + 195, 133, 99, 230, 66, 172, + 195, 133, 99, 244, 77, 113, + 195, 133, 99, 255, 125, 118, + 60, 133, 99, 0, 125, 118, + 60, 133, 99, 11, 77, 113, + 60, 133, 99, 25, 66, 172, + 60, 133, 99, 45, 116, 224, + 60, 133, 99, 73, 188, 225, + 202, 154, 96, 202, 75, 217, + 202, 154, 96, 230, 66, 172, + 202, 154, 96, 244, 77, 113, + 202, 154, 96, 253, 104, 120, + 53, 154, 96, 2, 104, 120, + 53, 154, 96, 11, 77, 113, + 53, 154, 96, 25, 66, 172, + 53, 154, 96, 53, 75, 217, + 211, 159, 88, 202, 75, 217, + 211, 159, 88, 203, 73, 214, + 211, 159, 88, 221, 44, 152, + 211, 159, 88, 228, 50, 141, + 44, 159, 88, 27, 50, 141, + 44, 159, 88, 34, 44, 152, + 44, 159, 88, 52, 73, 214, + 44, 159, 88, 53, 75, 217, + 211, 158, 80, 160, 120, 250, + 211, 158, 80, 179, 123, 244, + 211, 158, 80, 221, 44, 152, + 211, 158, 80, 228, 50, 141, + 44, 158, 80, 27, 50, 141, + 44, 158, 80, 34, 44, 152, + 44, 158, 80, 76, 123, 244, + 44, 158, 80, 95, 120, 250, + 203, 125, 80, 81, 217, 205, + 203, 125, 80, 126, 255, 137, + 203, 125, 80, 212, 32, 135, + 52, 125, 80, 43, 32, 135, + 52, 125, 80, 129, 255, 137, + 52, 125, 80, 174, 217, 205, + 207, 130, 80, 81, 217, 205, + 207, 130, 80, 146, 130, 254, + 207, 130, 80, 212, 32, 135, + 207, 130, 80, 247, 170, 144, + 48, 130, 80, 8, 170, 144, + 48, 130, 80, 43, 32, 135, + 48, 130, 80, 109, 130, 254, + 48, 130, 80, 174, 217, 205, + 205, 138, 80, 136, 126, 255, + 205, 138, 80, 146, 130, 254, + 205, 138, 80, 151, 253, 121, + 205, 138, 80, 247, 170, 144, + 50, 138, 80, 8, 170, 144, + 50, 138, 80, 104, 253, 121, + 50, 138, 80, 109, 130, 254, + 50, 138, 80, 119, 126, 255, + 199, 140, 80, 136, 126, 255, + 199, 140, 80, 151, 253, 121, + 199, 140, 80, 217, 38, 142, + 56, 140, 80, 38, 38, 142, + 56, 140, 80, 104, 253, 121, + 56, 140, 80, 119, 126, 255, + 206, 150, 80, 136, 126, 255, + 206, 150, 80, 160, 120, 250, + 206, 150, 80, 217, 38, 142, + 206, 150, 80, 228, 50, 141, + 49, 150, 80, 27, 50, 141, + 49, 150, 80, 38, 38, 142, + 49, 150, 80, 95, 120, 250, + 49, 150, 80, 119, 126, 255, + 224, 170, 66, 162, 14, 173, + 224, 170, 66, 165, 201, 224, + 224, 170, 66, 172, 164, 241, + 224, 170, 66, 207, 37, 170, + 31, 170, 66, 48, 37, 170, + 31, 170, 66, 83, 164, 241, + 31, 170, 66, 90, 201, 224, + 31, 170, 66, 93, 14, 173, + 238, 172, 55, 21, 63, 99, + 238, 172, 55, 162, 14, 173, + 238, 172, 55, 165, 201, 224, + 238, 172, 55, 195, 161, 231, + 17, 172, 55, 60, 161, 231, + 17, 172, 55, 90, 201, 224, + 17, 172, 55, 93, 14, 173, + 17, 172, 55, 234, 63, 99, + 245, 159, 54, 21, 158, 64, + 245, 159, 54, 21, 63, 99, + 245, 159, 54, 192, 100, 234, + 245, 159, 54, 195, 161, 231, + 10, 159, 54, 60, 161, 231, + 10, 159, 54, 63, 100, 234, + 10, 159, 54, 234, 63, 99, + 10, 159, 54, 234, 158, 64, + 240, 139, 55, 21, 158, 64, + 240, 139, 55, 55, 228, 95, + 240, 139, 55, 185, 102, 239, + 240, 139, 55, 192, 100, 234, + 15, 139, 55, 63, 100, 234, + 15, 139, 55, 70, 102, 239, + 15, 139, 55, 200, 228, 95, + 15, 139, 55, 234, 158, 64, + 225, 128, 64, 55, 228, 95, + 225, 128, 64, 120, 255, 136, + 225, 128, 64, 185, 102, 239, + 225, 128, 64, 208, 132, 226, + 30, 128, 64, 47, 132, 226, + 30, 128, 64, 70, 102, 239, + 30, 128, 64, 135, 255, 136, + 30, 128, 64, 200, 228, 95, + 210, 125, 88, 81, 217, 205, + 210, 125, 88, 120, 255, 136, + 210, 125, 88, 126, 255, 137, + 210, 125, 88, 208, 132, 226, + 45, 125, 88, 47, 132, 226, + 45, 125, 88, 129, 255, 137, + 45, 125, 88, 135, 255, 136, + 45, 125, 88, 174, 217, 205, + 216, 165, 76, 172, 164, 241, + 216, 165, 76, 179, 123, 244, + 216, 165, 76, 207, 37, 170, + 216, 165, 76, 221, 44, 152, + 39, 165, 76, 34, 44, 152, + 39, 165, 76, 48, 37, 170, + 39, 165, 76, 76, 123, 244, + 39, 165, 76, 83, 164, 241, + 211, 142, 78, 136, 126, 255, + 211, 142, 78, 146, 130, 254, + 211, 142, 78, 160, 120, 250, + 211, 142, 78, 169, 136, 248, + 44, 142, 78, 86, 136, 248, + 44, 142, 78, 95, 120, 250, + 44, 142, 78, 109, 130, 254, + 44, 142, 78, 119, 126, 255, + 215, 136, 77, 81, 217, 205, + 215, 136, 77, 146, 130, 254, + 215, 136, 77, 169, 136, 248, + 215, 136, 77, 208, 132, 226, + 40, 136, 77, 47, 132, 226, + 40, 136, 77, 86, 136, 248, + 40, 136, 77, 109, 130, 254, + 40, 136, 77, 174, 217, 205, + 221, 144, 73, 167, 130, 249, + 221, 144, 73, 169, 136, 248, + 221, 144, 73, 185, 102, 239, + 221, 144, 73, 208, 132, 226, + 34, 144, 73, 47, 132, 226, + 34, 144, 73, 70, 102, 239, + 34, 144, 73, 86, 136, 248, + 34, 144, 73, 88, 130, 249, + 217, 150, 75, 160, 120, 250, + 217, 150, 75, 167, 130, 249, + 217, 150, 75, 169, 136, 248, + 217, 150, 75, 179, 123, 244, + 38, 150, 75, 76, 123, 244, + 38, 150, 75, 86, 136, 248, + 38, 150, 75, 88, 130, 249, + 38, 150, 75, 95, 120, 250, + 222, 158, 71, 149, 131, 253, + 222, 158, 71, 167, 130, 249, + 222, 158, 71, 172, 164, 241, + 222, 158, 71, 179, 123, 244, + 33, 158, 71, 76, 123, 244, + 33, 158, 71, 83, 164, 241, + 33, 158, 71, 88, 130, 249, + 33, 158, 71, 106, 131, 253, + 226, 152, 70, 149, 131, 253, + 226, 152, 70, 167, 130, 249, + 226, 152, 70, 185, 102, 239, + 226, 152, 70, 192, 100, 234, + 29, 152, 70, 63, 100, 234, + 29, 152, 70, 70, 102, 239, + 29, 152, 70, 88, 130, 249, + 29, 152, 70, 106, 131, 253, + 231, 155, 69, 149, 131, 253, + 231, 155, 69, 192, 100, 234, + 231, 155, 69, 195, 161, 231, + 24, 155, 69, 60, 161, 231, + 24, 155, 69, 63, 100, 234, + 24, 155, 69, 106, 131, 253, + 229, 163, 69, 149, 131, 253, + 229, 163, 69, 165, 201, 224, + 229, 163, 69, 172, 164, 241, + 229, 163, 69, 195, 161, 231, + 26, 163, 69, 60, 161, 231, + 26, 163, 69, 83, 164, 241, + 26, 163, 69, 90, 201, 224, + 26, 163, 69, 106, 131, 253, + 223, 184, 55, 59, 126, 20, + 223, 184, 55, 70, 240, 111, + 223, 184, 55, 97, 247, 94, + 223, 184, 55, 103, 124, 2, + 32, 184, 55, 152, 124, 2, + 32, 184, 55, 158, 247, 94, + 32, 184, 55, 185, 240, 111, + 32, 184, 55, 196, 126, 20, + 244, 188, 46, 97, 247, 94, + 244, 188, 46, 103, 124, 2, + 244, 188, 46, 179, 131, 11, + 244, 188, 46, 235, 197, 123, + 11, 188, 46, 20, 197, 123, + 11, 188, 46, 76, 131, 11, + 11, 188, 46, 152, 124, 2, + 11, 188, 46, 158, 247, 94, + 255, 166, 53, 179, 131, 11, + 255, 166, 53, 235, 197, 123, + 255, 166, 53, 246, 96, 163, + 0, 166, 53, 9, 96, 163, + 0, 166, 53, 20, 197, 123, + 0, 166, 53, 76, 131, 11, + 250, 135, 48, 103, 124, 2, + 250, 135, 48, 179, 131, 11, + 250, 135, 48, 191, 17, 129, + 250, 135, 48, 246, 96, 163, + 5, 135, 48, 9, 96, 163, + 5, 135, 48, 64, 17, 129, + 5, 135, 48, 76, 131, 11, + 5, 135, 48, 152, 124, 2, + 224, 116, 54, 59, 126, 20, + 224, 116, 54, 103, 124, 2, + 224, 116, 54, 139, 1, 117, + 224, 116, 54, 191, 17, 129, + 31, 116, 54, 64, 17, 129, + 31, 116, 54, 116, 1, 117, + 31, 116, 54, 152, 124, 2, + 31, 116, 54, 196, 126, 20, + 201, 111, 78, 59, 126, 20, + 201, 111, 78, 96, 10, 90, + 201, 111, 78, 139, 1, 117, + 201, 111, 78, 197, 101, 24, + 54, 111, 78, 58, 101, 24, + 54, 111, 78, 116, 1, 117, + 54, 111, 78, 159, 10, 90, + 54, 111, 78, 196, 126, 20, + 208, 177, 70, 28, 207, 130, + 208, 177, 70, 59, 126, 20, + 208, 177, 70, 70, 240, 111, + 208, 177, 70, 197, 101, 24, + 47, 177, 70, 58, 101, 24, + 47, 177, 70, 185, 240, 111, + 47, 177, 70, 196, 126, 20, + 47, 177, 70, 227, 207, 130, +}; + +uint16_t monkey_indices[] = { + 152, 2, 10, 152, 10, 144, 13, 5, 159, 13, + 159, 151, 147, 11, 17, 147, 17, 141, 18, 12, + 148, 18, 148, 142, 9, 27, 21, 9, 21, 16, + 22, 28, 14, 22, 14, 19, 1, 35, 26, 1, + 26, 8, 29, 36, 6, 29, 6, 15, 33, 43, + 51, 33, 51, 25, 52, 44, 38, 52, 38, 30, + 24, 50, 57, 24, 57, 20, 58, 53, 31, 58, + 31, 23, 48, 64, 60, 48, 60, 56, 63, 71, + 55, 63, 55, 59, 41, 75, 67, 41, 67, 49, + 68, 76, 46, 68, 46, 54, 74, 81, 89, 74, + 89, 66, 94, 86, 77, 94, 77, 69, 65, 88, + 96, 65, 96, 61, 99, 95, 70, 99, 70, 62, + 90, 104, 100, 90, 100, 97, 103, 111, 93, 103, + 93, 98, 83, 113, 105, 83, 105, 91, 110, 118, + 84, 110, 84, 92, 115, 121, 128, 115, 128, 106, + 135, 126, 116, 135, 116, 109, 107, 129, 136, 107, + 136, 101, 139, 134, 108, 139, 108, 102, 131, 146, + 140, 131, 140, 137, 143, 149, 132, 143, 132, 138, + 122, 153, 145, 122, 145, 130, 150, 158, 125, 150, + 125, 133, 155, 123, 171, 155, 171, 163, 172, 124, + 156, 172, 156, 164, 120, 114, 178, 120, 178, 168, + 181, 117, 127, 181, 127, 175, 112, 82, 185, 112, + 185, 176, 190, 85, 119, 190, 119, 183, 80, 72, + 192, 80, 192, 184, 199, 79, 87, 199, 87, 191, + 73, 40, 200, 73, 200, 193, 207, 47, 78, 207, + 78, 198, 42, 32, 224, 42, 224, 201, 231, 39, + 45, 231, 45, 206, 34, 0, 232, 34, 232, 226, + 239, 7, 37, 239, 37, 229, 3, 154, 162, 3, + 162, 235, 165, 157, 4, 165, 4, 236, 214, 234, + 160, 167, 237, 217, 227, 233, 213, 218, 238, 228, + 210, 203, 225, 230, 204, 221, 209, 195, 202, 205, + 196, 222, 208, 186, 194, 197, 189, 223, 211, 177, + 187, 188, 182, 220, 212, 169, 179, 180, 174, 219, + 215, 161, 170, 173, 166, 216, 333, 679, 689, 333, + 689, 342, 686, 684, 336, 686, 336, 339, 324, 671, + 681, 324, 681, 334, 682, 676, 329, 682, 329, 335, + 315, 664, 673, 315, 673, 325, 674, 667, 322, 674, + 322, 328, 307, 656, 665, 307, 665, 316, 666, 659, + 314, 666, 314, 321, 299, 648, 657, 299, 657, 308, + 658, 651, 306, 658, 306, 313, 292, 344, 562, 292, + 562, 637, 569, 349, 297, 569, 297, 642, 346, 352, + 572, 346, 572, 565, 575, 357, 347, 575, 347, 566, + 354, 361, 581, 354, 581, 573, 582, 364, 355, 582, + 355, 574, 360, 369, 589, 360, 589, 580, 590, 372, + 365, 590, 365, 583, 368, 378, 597, 368, 597, 588, + 598, 379, 373, 598, 373, 591, 377, 384, 604, 377, + 604, 596, 607, 389, 380, 607, 380, 599, 386, 394, + 613, 386, 613, 605, 614, 395, 387, 614, 387, 606, + 392, 402, 619, 392, 619, 611, 624, 403, 397, 624, + 397, 616, 400, 408, 626, 400, 626, 618, 633, 413, + 405, 633, 405, 625, 409, 240, 244, 409, 244, 627, + 249, 243, 412, 249, 412, 632, 418, 490, 621, 418, + 621, 629, 622, 491, 419, 622, 419, 630, 489, 702, + 612, 489, 612, 620, 615, 705, 492, 615, 492, 623, + 480, 603, 610, 480, 610, 700, 617, 608, 485, 617, + 485, 707, 471, 594, 602, 471, 602, 479, 609, 601, + 478, 609, 478, 486, 463, 586, 595, 463, 595, 472, + 600, 593, 470, 600, 470, 477, 455, 578, 587, 455, + 587, 464, 592, 585, 462, 592, 462, 469, 448, 571, + 579, 448, 579, 456, 584, 576, 453, 584, 453, 461, + 440, 563, 570, 440, 570, 447, 577, 568, 445, 577, + 445, 454, 434, 638, 564, 434, 564, 441, 567, 641, + 435, 567, 435, 444, 433, 710, 691, 433, 691, 636, + 694, 713, 436, 694, 436, 643, 417, 628, 248, 417, + 248, 426, 245, 631, 420, 245, 420, 427, 425, 247, + 699, 425, 699, 719, 696, 246, 428, 696, 428, 720, + 693, 711, 718, 693, 718, 698, 721, 712, 692, 721, + 692, 697, 518, 526, 688, 518, 688, 678, 687, 525, + 521, 687, 521, 685, 510, 519, 680, 510, 680, 670, + 683, 520, 513, 683, 513, 677, 501, 511, 672, 501, + 672, 662, 675, 512, 504, 675, 504, 669, 647, 735, + 726, 647, 726, 654, 729, 736, 652, 729, 652, 661, + 502, 663, 655, 502, 655, 727, 660, 668, 503, 660, + 503, 728, 552, 745, 740, 552, 740, 732, 743, 746, + 561, 743, 561, 739, 724, 733, 741, 724, 741, 250, + 742, 738, 731, 742, 731, 252, 496, 499, 725, 496, + 725, 251, 730, 506, 496, 730, 496, 251, 546, 758, + 751, 546, 751, 556, 752, 761, 549, 752, 549, 557, + 539, 767, 759, 539, 759, 547, 760, 768, 540, 760, + 540, 548, 533, 774, 764, 533, 764, 538, 771, 777, + 532, 771, 532, 541, 528, 257, 772, 528, 772, 530, + 779, 260, 529, 779, 529, 535, 747, 554, 750, 747, + 750, 256, 753, 559, 744, 753, 744, 253, 255, 748, + 807, 255, 807, 815, 810, 755, 254, 810, 254, 812, + 258, 780, 786, 258, 786, 773, 791, 785, 259, 791, + 259, 778, 775, 788, 793, 775, 793, 765, 796, 789, + 776, 796, 776, 770, 766, 794, 801, 766, 801, 757, + 802, 795, 769, 802, 769, 762, 756, 800, 808, 756, + 808, 749, 809, 803, 763, 809, 763, 754, 784, 799, + 792, 784, 792, 787, 797, 804, 781, 797, 781, 790, + 783, 814, 806, 783, 806, 798, 811, 813, 782, 811, + 782, 805, 531, 536, 634, 531, 634, 690, 645, 543, + 534, 645, 534, 695, 537, 544, 635, 544, 824, 635, + 831, 551, 644, 551, 542, 644, 545, 555, 833, 545, + 833, 825, 838, 558, 550, 838, 550, 830, 553, 734, + 646, 553, 646, 832, 653, 737, 560, 653, 560, 839, + 300, 816, 834, 300, 834, 649, 837, 823, 305, 837, + 305, 650, 817, 840, 826, 817, 826, 835, 829, 847, + 822, 829, 822, 836, 293, 639, 827, 293, 827, 842, + 828, 640, 296, 828, 296, 845, 500, 497, 263, 500, + 263, 870, 262, 495, 505, 262, 505, 873, 509, 498, + 869, 509, 869, 863, 874, 507, 514, 874, 514, 864, + 516, 508, 862, 516, 862, 853, 865, 515, 523, 865, + 523, 858, 524, 517, 855, 524, 855, 849, 856, 522, + 527, 856, 527, 850, 848, 854, 895, 848, 895, 902, + 900, 857, 851, 900, 851, 905, 852, 861, 889, 852, + 889, 894, 892, 866, 859, 892, 859, 901, 860, 868, + 880, 860, 880, 888, 887, 875, 867, 887, 867, 893, + 871, 264, 879, 871, 879, 883, 876, 261, 872, 876, + 872, 884, 878, 904, 896, 878, 896, 881, 899, 903, + 877, 899, 877, 886, 882, 897, 890, 891, 898, 885, + 716, 709, 915, 716, 915, 906, 920, 714, 723, 920, + 723, 913, 423, 717, 907, 423, 907, 994, 912, 722, + 430, 912, 430, 1001, 415, 424, 995, 415, 995, 1002, + 1000, 429, 422, 1000, 422, 1009, 708, 431, 986, 708, + 986, 914, 993, 438, 715, 993, 715, 921, 432, 439, + 978, 432, 978, 987, 985, 446, 437, 985, 437, 992, + 442, 449, 972, 442, 972, 981, 975, 452, 443, 975, + 443, 982, 450, 458, 965, 450, 965, 973, 966, 459, + 451, 966, 451, 974, 457, 465, 956, 457, 956, 964, + 959, 468, 460, 959, 460, 967, 466, 474, 949, 466, + 949, 957, 950, 475, 467, 950, 467, 958, 473, 482, + 941, 473, 941, 948, 942, 483, 476, 942, 476, 951, + 481, 703, 924, 481, 924, 940, 927, 704, 484, 927, + 484, 943, 701, 488, 931, 701, 931, 923, 936, 493, + 706, 936, 706, 928, 487, 416, 1003, 487, 1003, 930, + 1008, 421, 494, 1008, 494, 937, 933, 1004, 1010, 933, + 1010, 1047, 1013, 1007, 934, 1013, 934, 1048, 925, 932, + 1046, 925, 1046, 1051, 1049, 935, 926, 1049, 926, 1052, + 938, 922, 1050, 938, 1050, 1042, 1053, 929, 945, 1053, + 945, 1045, 947, 939, 1043, 947, 1043, 1039, 1044, 944, + 952, 1044, 952, 1040, 955, 946, 1038, 955, 1038, 1035, + 1041, 953, 960, 1041, 960, 1036, 962, 954, 1034, 962, + 1034, 1030, 1037, 961, 969, 1037, 969, 1033, 970, 963, + 1031, 970, 1031, 1026, 1032, 968, 977, 1032, 977, 1029, + 979, 971, 1027, 979, 1027, 1022, 1028, 976, 984, 1028, + 984, 1025, 988, 980, 1023, 988, 1023, 1018, 1024, 983, + 991, 1024, 991, 1021, 916, 989, 1019, 916, 1019, 1054, + 1020, 990, 919, 1020, 919, 1057, 1005, 996, 1014, 1005, + 1014, 1011, 1017, 999, 1006, 1017, 1006, 1012, 997, 909, + 1059, 997, 1059, 1015, 1060, 910, 998, 1060, 998, 1016, + 908, 917, 1055, 908, 1055, 1058, 1056, 918, 911, 1056, + 911, 1061, 241, 410, 1063, 241, 1063, 265, 1070, 411, + 242, 1070, 242, 268, 407, 399, 1072, 407, 1072, 1062, + 1077, 406, 414, 1077, 414, 1071, 401, 391, 1078, 401, + 1078, 1073, 1083, 398, 404, 1083, 404, 1076, 393, 385, + 1088, 393, 1088, 1080, 1089, 388, 396, 1089, 396, 1081, + 383, 376, 1096, 383, 1096, 1087, 1099, 381, 390, 1099, + 390, 1090, 375, 367, 1102, 375, 1102, 1094, 1109, 374, + 382, 1109, 382, 1101, 370, 362, 1112, 370, 1112, 1104, + 1115, 363, 371, 1115, 371, 1107, 359, 353, 1120, 359, + 1120, 1110, 1123, 356, 366, 1123, 366, 1117, 351, 345, + 1128, 351, 1128, 1118, 1133, 348, 358, 1133, 358, 1125, + 1162, 1166, 1248, 1162, 1248, 1287, 1255, 1165, 1161, 1255, + 1161, 1292, 1159, 1163, 1288, 1159, 1288, 1281, 1291, 1160, + 1156, 1291, 1156, 1282, 1155, 1158, 1279, 1155, 1279, 1296, + 1284, 1157, 1152, 1284, 1152, 1299, 331, 341, 1154, 331, + 1154, 1295, 1153, 340, 338, 1153, 338, 1300, 323, 332, + 1297, 323, 1297, 1273, 1298, 337, 330, 1298, 330, 1276, + 318, 326, 1274, 318, 1274, 1259, 1275, 327, 319, 1275, + 319, 1260, 310, 317, 1258, 310, 1258, 1267, 1261, 320, + 311, 1261, 311, 1268, 1257, 1280, 1286, 1257, 1286, 1264, + 1293, 1283, 1262, 1293, 1262, 1271, 1256, 1272, 1294, 1256, + 1294, 1278, 1301, 1277, 1263, 1301, 1263, 1285, 1240, 1265, + 1289, 1240, 1289, 1250, 1290, 1270, 1247, 1290, 1247, 1253, + 302, 309, 1266, 302, 1266, 1242, 1269, 312, 303, 1269, + 303, 1245, 819, 1305, 1314, 819, 1314, 841, 1317, 1308, + 820, 1317, 820, 846, 301, 1241, 1304, 301, 1304, 818, + 1309, 1246, 304, 1309, 304, 821, 294, 843, 1315, 294, + 1315, 1322, 1316, 844, 295, 1316, 295, 1323, 291, 1320, + 1126, 291, 1126, 343, 1135, 1325, 298, 1135, 298, 350, + 286, 1233, 1345, 286, 1345, 1147, 1350, 1238, 283, 1350, + 283, 1144, 1146, 1344, 1337, 1146, 1337, 290, 1342, 1351, + 1145, 1342, 1145, 287, 289, 1336, 1326, 289, 1326, 1150, + 1335, 1343, 288, 1335, 288, 1149, 1151, 1327, 1249, 1151, + 1249, 1167, 1254, 1334, 1148, 1254, 1148, 1164, 1243, 1251, + 1330, 1243, 1330, 1306, 1331, 1252, 1244, 1331, 1244, 1307, + 1111, 1121, 1207, 1111, 1207, 1168, 1210, 1122, 1116, 1210, + 1116, 1175, 281, 1196, 1232, 281, 1232, 285, 1239, 1203, + 280, 1239, 280, 284, 1138, 1368, 1360, 1138, 1360, 1142, + 1367, 1375, 1137, 1367, 1137, 1141, 1143, 1361, 1352, 1143, + 1352, 277, 1359, 1366, 1140, 1359, 1140, 276, 278, 1353, + 1197, 278, 1197, 282, 1202, 1358, 275, 1202, 275, 279, + 1097, 1103, 1385, 1097, 1385, 1394, 1390, 1108, 1098, 1390, + 1098, 1397, 1392, 1384, 1408, 1392, 1408, 1400, 1415, 1391, + 1399, 1415, 1399, 1407, 1401, 1409, 1416, 1401, 1416, 1424, + 1423, 1414, 1406, 1423, 1406, 1431, 1426, 1417, 1441, 1426, + 1441, 1435, 1444, 1422, 1429, 1444, 1429, 1436, 1189, 1449, + 1434, 1189, 1434, 1440, 1437, 1450, 1192, 1437, 1192, 1445, + 1198, 1354, 1432, 1198, 1432, 1446, 1439, 1357, 1201, 1439, + 1201, 1453, 1355, 1362, 1425, 1355, 1425, 1433, 1430, 1365, + 1356, 1430, 1356, 1438, 1363, 1370, 1402, 1363, 1402, 1427, + 1405, 1373, 1364, 1405, 1364, 1428, 1371, 1379, 1395, 1371, + 1395, 1403, 1396, 1380, 1372, 1396, 1372, 1404, 1086, 1095, + 1393, 1086, 1393, 1378, 1398, 1100, 1091, 1398, 1091, 1381, + 274, 1377, 1369, 274, 1369, 1139, 1374, 1382, 269, 1374, + 269, 1136, 1064, 1074, 1079, 1064, 1079, 1084, 1082, 1075, + 1069, 1082, 1069, 1093, 1066, 1085, 1376, 1066, 1376, 272, + 1383, 1092, 1067, 1383, 1067, 271, 266, 1065, 270, 273, + 1068, 267, 1105, 1113, 1171, 1105, 1171, 1387, 1172, 1114, + 1106, 1172, 1106, 1388, 1170, 1178, 1410, 1170, 1410, 1386, + 1413, 1183, 1173, 1413, 1173, 1389, 1179, 1466, 1418, 1179, + 1418, 1411, 1421, 1471, 1182, 1421, 1182, 1412, 1190, 1442, + 1419, 1190, 1419, 1468, 1420, 1443, 1191, 1420, 1191, 1469, + 1328, 1338, 1486, 1328, 1486, 1477, 1489, 1341, 1333, 1489, + 1333, 1480, 1204, 1474, 1485, 1204, 1485, 1217, 1490, 1483, + 1213, 1490, 1213, 1220, 1119, 1129, 1475, 1119, 1475, 1205, + 1482, 1132, 1124, 1482, 1124, 1212, 1130, 1313, 1302, 1130, + 1302, 1476, 1311, 1318, 1131, 1311, 1131, 1481, 1303, 1329, + 1478, 1479, 1332, 1310, 1127, 1321, 1312, 1319, 1324, 1134, + 1188, 1227, 1457, 1188, 1457, 1448, 1460, 1228, 1193, 1460, + 1193, 1451, 1199, 1447, 1456, 1199, 1456, 1235, 1461, 1452, + 1200, 1461, 1200, 1236, 1216, 1484, 1454, 1216, 1454, 1225, + 1463, 1491, 1221, 1463, 1221, 1230, 1339, 1347, 1458, 1339, + 1458, 1487, 1459, 1348, 1340, 1459, 1340, 1488, 1234, 1455, + 1346, 1349, 1462, 1237, 1542, 1495, 1597, 1542, 1597, 1548, + 1602, 1496, 1545, 1602, 1545, 1555, 1543, 1550, 1559, 1543, + 1559, 1534, 1560, 1553, 1544, 1560, 1544, 1537, 1533, 1557, + 1567, 1533, 1567, 1525, 1568, 1562, 1538, 1568, 1538, 1530, + 1524, 1566, 1574, 1524, 1574, 1516, 1577, 1569, 1531, 1577, + 1531, 1523, 1517, 1575, 1582, 1517, 1582, 1509, 1585, 1576, + 1522, 1585, 1522, 1514, 1511, 1583, 1591, 1511, 1591, 1503, + 1592, 1584, 1512, 1592, 1512, 1504, 1581, 1623, 1615, 1581, + 1615, 1590, 1616, 1624, 1586, 1616, 1586, 1593, 1573, 1631, + 1621, 1573, 1621, 1580, 1626, 1632, 1578, 1626, 1578, 1587, + 1564, 1638, 1629, 1564, 1629, 1572, 1634, 1641, 1571, 1634, + 1571, 1579, 1556, 1645, 1639, 1556, 1639, 1565, 1640, 1650, + 1563, 1640, 1563, 1570, 1549, 1653, 1647, 1549, 1647, 1558, + 1648, 1658, 1554, 1648, 1554, 1561, 1551, 1599, 1606, 1551, + 1606, 1655, 1609, 1600, 1552, 1609, 1552, 1656, 1206, 1218, + 1717, 1206, 1717, 1706, 1720, 1219, 1211, 1720, 1211, 1713, + 1215, 1501, 1588, 1215, 1588, 1714, 1595, 1506, 1222, 1595, + 1222, 1723, 1169, 1208, 1707, 1169, 1707, 1176, 1712, 1209, + 1174, 1712, 1174, 1185, 1465, 1660, 1596, 1465, 1596, 1494, + 1603, 1667, 1472, 1603, 1472, 1497, 1589, 1614, 1699, 1589, + 1699, 1715, 1704, 1617, 1594, 1704, 1594, 1722, 1691, 1725, + 1716, 1691, 1716, 1700, 1721, 1732, 1696, 1721, 1696, 1703, + 1677, 1724, 1690, 1677, 1690, 1685, 1697, 1733, 1682, 1697, + 1682, 1688, 1671, 1735, 1726, 1671, 1726, 1679, 1731, 1740, + 1672, 1731, 1672, 1680, 1661, 1734, 1668, 1661, 1668, 1742, + 1675, 1741, 1666, 1675, 1666, 1749, 1598, 1662, 1743, 1598, + 1743, 1604, 1748, 1665, 1601, 1748, 1601, 1611, 1180, 1737, + 1663, 1180, 1663, 1467, 1664, 1738, 1181, 1664, 1181, 1470, + 1177, 1708, 1727, 1177, 1727, 1736, 1730, 1711, 1184, 1730, + 1184, 1739, 1709, 1718, 1728, 1729, 1719, 1710, 1607, 1744, + 1752, 1607, 1752, 1845, 1755, 1747, 1608, 1755, 1608, 1846, + 1745, 1670, 1789, 1745, 1789, 1753, 1790, 1673, 1746, 1790, + 1746, 1754, 1669, 1678, 1782, 1669, 1782, 1788, 1783, 1681, + 1674, 1783, 1674, 1791, 1676, 1684, 1774, 1676, 1774, 1781, + 1777, 1689, 1683, 1777, 1683, 1784, 1686, 1693, 1767, 1686, + 1767, 1775, 1768, 1694, 1687, 1768, 1687, 1776, 1692, 1701, + 1760, 1692, 1760, 1766, 1761, 1702, 1695, 1761, 1695, 1769, + 1698, 1613, 1836, 1698, 1836, 1759, 1839, 1618, 1705, 1839, + 1705, 1762, 1654, 1605, 1844, 1654, 1844, 1797, 1847, 1610, + 1657, 1847, 1657, 1798, 1646, 1652, 1794, 1646, 1794, 1803, + 1801, 1659, 1649, 1801, 1649, 1808, 1637, 1644, 1802, 1637, + 1802, 1811, 1809, 1651, 1642, 1809, 1642, 1816, 1628, 1636, + 1810, 1628, 1810, 1818, 1817, 1643, 1635, 1817, 1635, 1825, + 1620, 1630, 1819, 1620, 1819, 1826, 1824, 1633, 1627, 1824, + 1627, 1833, 1612, 1622, 1827, 1612, 1827, 1835, 1832, 1625, + 1619, 1832, 1619, 1840, 1773, 1765, 1859, 1773, 1859, 1851, + 1864, 1770, 1778, 1864, 1778, 1856, 1853, 1860, 1867, 1853, + 1867, 1876, 1872, 1863, 1854, 1872, 1854, 1879, 1875, 1866, + 1891, 1875, 1891, 1883, 1896, 1873, 1880, 1896, 1880, 1888, + 1882, 1890, 1898, 1882, 1898, 1904, 1903, 1897, 1889, 1903, + 1889, 1911, 1796, 1842, 1884, 1796, 1884, 1906, 1887, 1849, + 1799, 1887, 1799, 1909, 1751, 1877, 1885, 1751, 1885, 1843, + 1886, 1878, 1756, 1886, 1756, 1848, 1750, 1787, 1852, 1750, + 1852, 1874, 1855, 1792, 1757, 1855, 1757, 1881, 1772, 1850, + 1786, 1772, 1786, 1780, 1793, 1857, 1779, 1793, 1779, 1785, + 1758, 1834, 1764, 1834, 1858, 1764, 1865, 1841, 1771, 1841, + 1763, 1771, 1829, 1869, 1861, 1829, 1861, 1837, 1862, 1870, + 1830, 1862, 1830, 1838, 1820, 1892, 1868, 1820, 1868, 1828, + 1871, 1895, 1823, 1871, 1823, 1831, 1812, 1899, 1893, 1812, + 1893, 1821, 1894, 1902, 1815, 1894, 1815, 1822, 1805, 1907, + 1900, 1805, 1900, 1813, 1901, 1908, 1806, 1901, 1806, 1814, + 1795, 1905, 1804, 1807, 1910, 1800, 1508, 1502, 1952, 1508, + 1952, 1944, 1955, 1505, 1515, 1955, 1515, 1947, 1518, 1510, + 1945, 1518, 1945, 1936, 1946, 1513, 1521, 1946, 1521, 1939, + 1527, 1519, 1937, 1527, 1937, 1930, 1938, 1520, 1528, 1938, + 1528, 1931, 1535, 1526, 1929, 1535, 1929, 1923, 1932, 1529, + 1536, 1932, 1536, 1924, 1541, 1532, 1920, 1541, 1920, 1914, + 1927, 1539, 1546, 1927, 1546, 1917, 1493, 1540, 1913, 1493, + 1913, 1960, 1918, 1547, 1498, 1918, 1498, 1963, 1912, 1942, + 1950, 1912, 1950, 1959, 1957, 1949, 1919, 1957, 1919, 1964, + 1915, 1921, 1934, 1915, 1934, 1943, 1941, 1926, 1916, 1941, + 1916, 1948, 1922, 1928, 1935, 1940, 1933, 1925, 1186, 1464, + 1492, 1186, 1492, 1958, 1499, 1473, 1195, 1499, 1195, 1965, + 1187, 1961, 1953, 1187, 1953, 1226, 1954, 1962, 1194, 1954, + 1194, 1229, 1214, 1224, 1951, 1214, 1951, 1500, 1956, 1231, + 1223, 1956, 1223, 1507, +}; diff --git a/etc/monkeycrush.lua b/etc/monkeycrush.lua new file mode 100644 index 00000000..d5401432 --- /dev/null +++ b/etc/monkeycrush.lua @@ -0,0 +1,53 @@ +-- Usage: lovr etc/monkeycrush.lua > etc/monkey.h + +local etc = lovr.filesystem.getSource() +local success, model = assert(pcall(lovr.data.newModelData, 'monkey.glb')) + +local min, max = lovr.math.newVec3(math.huge), lovr.math.newVec3(-math.huge) + +for i = 1, model:getMeshVertexCount(1) do + local x, y, z, nx, ny, nz = model:getMeshVertex(1, i) + min.x, min.y, min.z = math.min(x, min.x), math.min(y, min.y), math.min(z, min.z) + max.x, max.y, max.z = math.max(x, max.x), math.max(y, max.y), math.max(z, max.z) +end + +local size = lovr.math.newVec3(max - min) +local scale = .5 + +min:mul(scale) +max:mul(scale) +size:mul(scale) + +io.write(('float monkey_size[3] = { %ff, %ff, %ff };\n'):format(size:unpack())) +io.write(('float monkey_offset[3] = { %ff, %ff, %ff };\n'):format(min:unpack())) +io.write('\n') + +io.write('uint8_t monkey_vertices[] = {\n') +for i = 1, model:getMeshVertexCount(1) do + local x, y, z, nx, ny, nz = model:getMeshVertex(1, i) + local position = vec3(x, y, z):mul(scale) + local normal = vec3(nx, ny, nz) + + local qx, qy, qz = ((position - min) / size * 255 + .5):unpack() + local qnx, qny, qnz = ((normal / 2 + .5) * 255 + .5):unpack() + + qx, qy, qz = math.floor(qx), math.floor(qy), math.floor(qz) + qnx, qny, qnz = math.floor(qnx), math.floor(qny), math.floor(qnz) + + io.write((' %d, %d, %d, %d, %d, %d,\n'):format(qx, qy, qz, qnx, qny, qnz)) + + lovr.math.drain() +end +io.write('};\n\n') + +io.write('uint16_t monkey_indices[] = {\n ') +for i = 1, model:getMeshIndexCount(1) do + local index = model:getMeshIndex(1, i) + io.write((' %d,'):format(index)) + if i % 10 == 0 then + io.write('\n ') + end +end +io.write('\n};\n') + +lovr.event.quit() diff --git a/src/api/l_data_modelData.c b/src/api/l_data_modelData.c index bf99efb3..de486793 100644 --- a/src/api/l_data_modelData.c +++ b/src/api/l_data_modelData.c @@ -336,9 +336,20 @@ static int l_lovrModelDataGetMeshVertex(lua_State* L) { ModelAttribute* attribute = mesh->attributes[i]; if (!attribute) continue; + uint32_t stride = model->buffers[attribute->buffer].stride; + + if (!stride) { + switch (attribute->type) { + case I8: case U8: stride = attribute->components * 1; break; + case I16: case U16: stride = attribute->components * 2; break; + case I32: case U32: case F32: stride = attribute->components * 4; break; + default: break; + } + } + AttributeData data = { .raw = model->buffers[attribute->buffer].data }; data.u8 += attribute->offset; - data.u8 += vertex * model->buffers[attribute->buffer].stride; + data.u8 += vertex * stride; for (uint32_t j = 0; j < attribute->components; j++) { switch (attribute->type) { diff --git a/src/api/l_graphics_pass.c b/src/api/l_graphics_pass.c index 9fb28409..955e9168 100644 --- a/src/api/l_graphics_pass.c +++ b/src/api/l_graphics_pass.c @@ -573,6 +573,14 @@ static int l_lovrPassFill(lua_State* L) { return 0; } +static int l_lovrPassMonkey(lua_State* L) { + Pass* pass = luax_checktype(L, 1, Pass); + float transform[16]; + luax_readmat4(L, 2, transform, 1); + lovrPassMonkey(pass, transform); + return 0; +} + static int l_lovrPassMesh(lua_State* L) { Pass* pass = luax_checktype(L, 1, Pass); Buffer* vertices = !lua_toboolean(L, 2) ? NULL : luax_totype(L, 2, Buffer); @@ -825,6 +833,7 @@ const luaL_Reg lovrPass[] = { { "cylinder", l_lovrPassCylinder }, { "text", l_lovrPassText }, { "fill", l_lovrPassFill }, + { "monkey", l_lovrPassMonkey }, { "mesh", l_lovrPassMesh }, { "multimesh", l_lovrPassMultimesh }, diff --git a/src/modules/graphics/graphics.c b/src/modules/graphics/graphics.c index d33d36f0..7046f266 100644 --- a/src/modules/graphics/graphics.c +++ b/src/modules/graphics/graphics.c @@ -9,6 +9,7 @@ #include "core/spv.h" #include "core/os.h" #include "util.h" +#include "monkey.h" #include "shaders.h" #include #include @@ -3496,6 +3497,32 @@ void lovrPassFill(Pass* pass, Texture* texture) { }); } +void lovrPassMonkey(Pass* pass, float* transform) { + uint32_t vertexCount = COUNTOF(monkey_vertices) / 6; + + ShapeVertex* vertices; + lovrPassDraw(pass, &(Draw) { + .mode = VERTEX_TRIANGLES, + .vertex.count = vertexCount, + .vertex.pointer = (void**) &vertices, + .index.count = COUNTOF(monkey_indices), + .index.data = monkey_indices, + .transform = transform + }); + + // Manual vertex format conversion to avoid another format (and sn8x3 isn't always supported) + for (uint32_t i = 0; i < vertexCount; i++) { + vertices[i] = (ShapeVertex) { + .position.x = monkey_vertices[6 * i + 0] / 255.f * monkey_size[0] + monkey_offset[0], + .position.y = monkey_vertices[6 * i + 1] / 255.f * monkey_size[1] + monkey_offset[1], + .position.z = monkey_vertices[6 * i + 2] / 255.f * monkey_size[2] + monkey_offset[2], + .normal.x = monkey_vertices[6 * i + 3] / 255.f * 2.f - 1.f, + .normal.y = monkey_vertices[6 * i + 4] / 255.f * 2.f - 1.f, + .normal.z = monkey_vertices[6 * i + 5] / 255.f * 2.f - 1.f, + }; + } +} + void lovrPassMesh(Pass* pass, Buffer* vertices, Buffer* indices, float* transform, uint32_t start, uint32_t count, uint32_t instances) { if (count == ~0u) { count = (indices ? indices : vertices)->info.length - start; diff --git a/src/modules/graphics/graphics.h b/src/modules/graphics/graphics.h index 1323c59b..b67105de 100644 --- a/src/modules/graphics/graphics.h +++ b/src/modules/graphics/graphics.h @@ -484,6 +484,7 @@ void lovrPassCylinder(Pass* pass, float* transform, bool capped, float angle1, f void lovrPassTorus(Pass* pass, float* transform, uint32_t segmentsT, uint32_t segmentsP); void lovrPassText(Pass* pass, Font* font, const char* text, uint32_t length, float* transform, float wrap, HorizontalAlign halign, VerticalAlign valign); void lovrPassFill(Pass* pass, Texture* texture); +void lovrPassMonkey(Pass* pass, float* transform); void lovrPassMesh(Pass* pass, Buffer* vertices, Buffer* indices, float* transform, uint32_t start, uint32_t count, uint32_t instances); void lovrPassMultimesh(Pass* pass, Buffer* vertices, Buffer* indices, Buffer* indirect, uint32_t count, uint32_t offset, uint32_t stride); void lovrPassCompute(Pass* pass, uint32_t x, uint32_t y, uint32_t z, Buffer* indirect, uint32_t offset);