├── .gitignore ├── unity ├── Realtime Clock.prefab ├── Realtime Clock.unity ├── Textures │ ├── Realtime Clock.ai │ ├── Realtime Clock.png │ ├── Realtime Clock.ai.meta │ └── Realtime Clock.png.meta ├── Materials │ ├── Realtime_Clock.mat │ └── Realtime_Clock.mat.meta ├── Models │ ├── Realtime Clock (blender).blend │ └── Realtime Clock.dae ├── Realtime Clock.unity.meta ├── Materials.meta ├── Models.meta ├── Shaders.meta ├── Textures.meta ├── Shaders │ ├── Realtime Clock.shader.meta │ └── Realtime Clock.shader └── Realtime Clock.prefab.meta ├── server ├── package.json ├── app.js └── time-in-image.js └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | *.meta 2 | !unity/*.meta 3 | *package-lock.json 4 | *node_modules/ -------------------------------------------------------------------------------- /unity/Realtime Clock.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/makinori/realtime-clock/HEAD/unity/Realtime Clock.prefab -------------------------------------------------------------------------------- /unity/Realtime Clock.unity: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/makinori/realtime-clock/HEAD/unity/Realtime Clock.unity -------------------------------------------------------------------------------- /unity/Textures/Realtime Clock.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/makinori/realtime-clock/HEAD/unity/Textures/Realtime Clock.ai -------------------------------------------------------------------------------- /unity/Materials/Realtime_Clock.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/makinori/realtime-clock/HEAD/unity/Materials/Realtime_Clock.mat -------------------------------------------------------------------------------- /unity/Textures/Realtime Clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/makinori/realtime-clock/HEAD/unity/Textures/Realtime Clock.png -------------------------------------------------------------------------------- /unity/Models/Realtime Clock (blender).blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/makinori/realtime-clock/HEAD/unity/Models/Realtime Clock (blender).blend -------------------------------------------------------------------------------- /unity/Realtime Clock.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b0b61c27861b82c4782b0b24d36fcd61 3 | timeCreated: 1535217540 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /unity/Textures/Realtime Clock.ai.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ceadb494f3a6bb0499a2ad61d56afa2d 3 | timeCreated: 1535205729 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /unity/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d0cbd958a2b85e64f95e0cdb3246bde8 3 | folderAsset: yes 4 | timeCreated: 1535291522 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /unity/Models.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 368f6890df5ae0346ad9afbd006ed6bf 3 | folderAsset: yes 4 | timeCreated: 1535291812 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /unity/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3997a71e37071174a87744028dc44a4a 3 | folderAsset: yes 4 | timeCreated: 1535291724 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /unity/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7e519d5de1ab4747b0a2ebe62bc9c3f 3 | folderAsset: yes 4 | timeCreated: 1535291734 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /unity/Shaders/Realtime Clock.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12ebb3497a3bbc041a86262e21c9e0c7 3 | timeCreated: 1535202015 4 | licenseType: Free 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /unity/Realtime Clock.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c156055b050d0c9429cb310b01d0f0bd 3 | timeCreated: 1536438255 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /unity/Materials/Realtime_Clock.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7a446dce797fc1749bcd5e1d957f5f54 3 | timeCreated: 1535291628 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "realtime-clock", 3 | "description": "Show the current time where you live on an analogue clock in VRChat.", 4 | "homepage": "https://github.com/makitsune/realtime-clock#readme", 5 | "author": "Maki and Desunyan", 6 | "dependencies": { 7 | "express": "^4.16.3", 8 | "jimp": "^0.3.11", 9 | "moment-timezone": "^0.5.21", 10 | "request": "^2.88.0", 11 | "tz-lookup": "^6.1.8" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /server/app.js: -------------------------------------------------------------------------------- 1 | // -------------------------------- 2 | const settings = { 3 | port: 8080, 4 | path: "/testing" 5 | }; 6 | // -------------------------------- 7 | 8 | const express = require("express"); 9 | const TimeInImage = require(__dirname+"/time-in-image"); 10 | 11 | var app = express(); 12 | 13 | var timeInImage = new TimeInImage(app, settings.path); 14 | timeInImage.onRequest = req=>{ 15 | let ip = req.ip.split(":")[3]; 16 | console.log(ip+=" requested the time"); 17 | } 18 | 19 | app.listen(settings.port, ()=>{ 20 | console.log("Web server open at *:"+settings.port+settings.path); 21 | }); -------------------------------------------------------------------------------- /unity/Textures/Realtime Clock.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f00f3de183c1fbd42a88bed1dfa3d35a 3 | timeCreated: 1535211142 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | spriteSheet: 70 | serializedVersion: 2 71 | sprites: [] 72 | outline: [] 73 | spritePackingTag: 74 | userData: 75 | assetBundleName: 76 | assetBundleVariant: 77 | -------------------------------------------------------------------------------- /server/time-in-image.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | const request = require("request"); 3 | const Jimp = require("jimp"); 4 | const tzlookup = require("tz-lookup"); 5 | const moment = require("moment-timezone"); 6 | 7 | const make8x8ImageBufferWith4Colors = c=>{ 8 | return new Promise((resolve,reject)=>{ 9 | let imageData = []; 10 | for (var i=0; i<64; i++) { 11 | let colorIndex; 12 | 13 | if (i<32) { 14 | colorIndex = (i%8<4)? 0: 1; 15 | } else { 16 | colorIndex = (i%8<4)? 2: 3; 17 | } 18 | 19 | imageData = imageData.concat([ 20 | c[colorIndex][0], 21 | c[colorIndex][1], 22 | c[colorIndex][2], 23 | ]); 24 | } 25 | 26 | new Jimp({ 27 | width: 8, 28 | height: 8, 29 | data: Buffer.from(imageData) 30 | }, (err,image)=>{ 31 | resolve(image.getBufferAsync(Jimp.MIME_PNG)); 32 | }); 33 | }); 34 | } 35 | 36 | const makeTimeImageBuffer = (time)=>{ // 24,60,60 37 | return new Promise((resolve,reject)=>{ 38 | let h = ((time[0])/24)*255; 39 | let m = ((time[1])/60)*255; 40 | let s = ((time[2])/60)*255; 41 | 42 | make8x8ImageBufferWith4Colors([ 43 | [h,m,s], 44 | [s,h,m], 45 | [m,s,h], 46 | [0,0,0] 47 | ]).then(buffer=>{ 48 | resolve(buffer); 49 | }); 50 | }); 51 | }; 52 | 53 | const generateCharacters = (amount)=>{ 54 | let out = ""; 55 | let choice = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".split(""); 56 | for (var i=0; i{ 64 | cachedTzs = {}; 65 | }, 1000*60*60*24*7); 66 | // every 7 days clear 67 | 68 | const TimeInImage = function (app,path) { 69 | this.onRequest = ()=>{}; 70 | 71 | app.get(path+"/:random", (req,res)=>{ 72 | this.onRequest(req); 73 | 74 | res.header({"Content-Type": "image/png"}); 75 | 76 | let ip = (req.ip.split(":")[3]); 77 | if (cachedTzs[ip]) { 78 | let time = moment().tz(cachedTzs[ip]).format("HH:mm:ss") 79 | .split(":").map(x=>parseInt(x)); 80 | 81 | makeTimeImageBuffer(time).then(buffer=>{ 82 | res.end(buffer); 83 | }); 84 | 85 | return; 86 | } 87 | 88 | request.post({ 89 | url: "https://www.iplocation.net", 90 | form: { query: ip }, 91 | headers: { referer: "https://www.iplocation.net" } 92 | }, (err,_,body)=>{ 93 | if (err) { 94 | console.log(err); 95 | return res.send(); 96 | } 97 | 98 | try { 99 | body = body 100 | .split("ipinfo.io")[1].split("")[0] 101 | .split("")[4].split(""); 102 | 103 | let tz = tzlookup( 104 | body[3].split("parseInt(x)); 112 | 113 | makeTimeImageBuffer(time).then(buffer=>{ 114 | res.end(buffer); 115 | }); 116 | } catch(err) { 117 | console.log(err); 118 | res.send(); 119 | } 120 | }); 121 | }); 122 | 123 | app.get(path, (req,res)=>{ 124 | res.redirect(path+"/"+generateCharacters(8)+".png"); 125 | }); 126 | } 127 | 128 | module.exports = TimeInImage; -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | > 🕒 Show the current time where you live on an analogue clock in VRChat. 4 | 5 | ## [Download .UnityPackage here!](https://github.com/makitsune/realtime-clock/releases) 6 | 7 | It uses https://maki.cat for finding the time with your IP address, therefore it can sometimes return an inaccurate location, which can cause the time to be offsetted by an hour or two. And fyi, I don't track anything from my HTTP GET requests... That would be mean... 8 | 9 | You can change the background and foreground colours in the material and change the numbers texture aswell. I kept the .ai file so you can change fonts easily. The mesh uses vertex colors to index each time handle so keep that in mind if you want to edit it! 10 | 11 | ## How is time served? 12 | 13 | It fetches time from https://maki.cat/time-in-image 14 | 15 | This is done by looking up your time from your IP using https://www.iplocation.net, `tz-lookup` and `moment-timezone`, then converts hours (h), minutes (m), seconds (s): 24,60,60 into 255,255,255. 16 | 17 | It then generates an 8x8 .png file where it has 4 sections of colour assembled like this: (each section shows r,g,b values) 18 | 19 | 20 | 21 | 22 |
h,m,ss,h,m
m,s,h0,0,0
23 | 24 | The shader then looks up each value from the three sections and averages them to get an accurate reading of the current time. The reason why we split them up between red, green and blue is because we were having issues with sRGB and gamma changing them. Though by using `VRC_Panorama`, this might be completely unnecessary. 25 | 26 | **Caching** was also an issue which we solved by redirecting `/time-in-image` to `/time-in-image/[random string of letters].png`. Otherwise it would turn back time when you rejoined your world. 27 | 28 | My **web server** to generate the image was made using Node.js with the modules: `express`, `request` and `jimp` 29 | 30 | ## How do I setup a server? 31 | 32 | I would 1000% appreciate if you were to host it yourself. I'm like, 99.8% uptime, but I try my best~ You will need `node`, `npm` and `git` to continue. 33 | 34 | Before running `app.js`, I recommend you take a look at the file and editing the settings variable at the top. You can easily attach `time-in-image.js` onto any Express server. https://maki.cat uses https and a few other middlewares before it gets to the route. If you need help settings things up, I'm on Discord at `Maki#4845`. 35 | 36 | ```sh 37 | git clone https://github.com/makitsune/realtime-clock 38 | cd realtime-clock/server 39 | npm install 40 | node app.js 41 | ``` 42 | 43 | Once running, a link will spew out with your local address. Take your public IP, add the port and path to it, and replace the old URL in the `VRC_Panorama` component with your new one. Make sure your IP/hostname is static. I use my [cloudflare-ddns](https://github.com/makitsune/cloudflare-ddns) for that. 44 | 45 | If you want it to run indefinitely, I recommend using a process manager like `pm2`. 46 | 47 | ```sh 48 | npm install pm2 -g 49 | pm2 start app.js --name "Realtime Clock" 50 | ``` 51 | 52 | ## Thank you! 53 | 54 | Made by [Maki](https://github.com/makitsune) and 55 | [Desunyan](https://github.com/Shii2) with lots of love~ *nyan, nyan* <3 56 | 57 | *P.S. dont head pat me in vrchat pls...*
58 | *P.P.S. Desunyan approves this readme. meow~ ^.^*
59 | *P.P.P.S. he actually just commited that^, so he could pin to his github... x3* 60 | -------------------------------------------------------------------------------- /unity/Shaders/Realtime Clock.shader: -------------------------------------------------------------------------------- 1 | // Made by Maki and Desunyan~ 2 | // Thank for downloading! ^^' 3 | 4 | Shader "Maki/Realtime Clock" { 5 | Properties { 6 | _Texture("Texture", 2D) = "black" {} 7 | _MainTex("Sync Texture", 2D) = "white" {} 8 | [HDR]_Color("Color", Color) = (1,1,1,1) 9 | [HDR]_BgColor("Background Color", Color) = (0,0,0,1) 10 | [Toggle(TICKTACK)] _ApplyTickTack("Discrete Seconds", Int) = 0 11 | } 12 | SubShader { 13 | Tags { 14 | "IgnoreProjector" = "True" 15 | "Queue" = "Transparent" 16 | "RenderType" = "Transparent" 17 | } 18 | LOD 200 19 | 20 | Blend SrcAlpha OneMinusSrcAlpha 21 | Cull Back 22 | ZWrite On 23 | 24 | Pass { 25 | CGPROGRAM 26 | #pragma vertex vert 27 | #pragma fragment frag 28 | #pragma multi_compile_fog 29 | #pragma multi_compile APPLY_GAMMA_OFF 30 | #pragma multi_compile TICKTACK_OFF TICKTACK 31 | 32 | #include "UnityCG.cginc" 33 | 34 | uniform sampler2D _Texture; 35 | uniform float4 _Texture_ST; 36 | 37 | uniform sampler2D _MainTex; 38 | uniform float4 _MainTex_ST; 39 | 40 | uniform float4 _Color; 41 | uniform float4 _BgColor; 42 | 43 | struct appdata { 44 | float4 vertex: POSITION; 45 | float2 uv: TEXCOORD0; 46 | float4 color: COLOR; 47 | UNITY_VERTEX_INPUT_INSTANCE_ID 48 | }; 49 | 50 | struct v2f { 51 | float4 vertex: SV_POSITION; 52 | float2 uv: TEXCOORD0; 53 | float4 color: COLOR; 54 | UNITY_FOG_COORDS(1) 55 | UNITY_VERTEX_OUTPUT_STEREO 56 | }; 57 | 58 | float2 rotate(float2 p, float r) { 59 | r = r * 6.28318; 60 | return float2( 61 | p.x*cos(r) - p.y*sin(r), 62 | p.y*cos(r) + p.x*sin(r) 63 | ); 64 | } 65 | 66 | int getHour(float3 textureFloats) { 67 | return round(((textureFloats.x + textureFloats.y + textureFloats.z) / 3) * 24); 68 | } 69 | 70 | int getMinSec(float3 textureFloats) { 71 | return round(((textureFloats.x + textureFloats.y + textureFloats.z) / 3) * 60); 72 | } 73 | 74 | v2f vert(appdata v) { 75 | float3 first = tex2Dlod(_MainTex,float4(0.25,0.75,0,0)).rgb; 76 | float3 second = tex2Dlod(_MainTex,float4(0.75,0.75,0,0)).rgb; 77 | float3 third = tex2Dlod(_MainTex,float4(0.25,0.25,0,0)).rgb; 78 | 79 | float3 offsetTime = float3( 80 | getHour(float3(first.r,second.g,third.b)), 81 | getMinSec(float3(first.g,second.b,third.r)), 82 | getMinSec(float3(first.b,second.r,third.g)) 83 | ); 84 | 85 | float offset = ( 86 | (offsetTime.r * 60 * 60) + 87 | (offsetTime.g * 60) + 88 | (offsetTime.b) 89 | ); 90 | 91 | float time = 0; 92 | if (tex2Dlod(_MainTex,float4(0.75,0.25,0,0)).r < 0.5) { 93 | time = offset + _Time.y; 94 | } 95 | 96 | #if TICKTACK 97 | float s = round(time) / 60; 98 | #else 99 | float s = time / 60; 100 | #endif 101 | float m = time / 60 / 60; 102 | float h = time / 60 / 60 / 12; 103 | 104 | int handleIndex = -1; // s,m,h 105 | 106 | if (v.color.r == 1) { 107 | if (v.color.g == 0) { 108 | handleIndex = 0; 109 | } 110 | } 111 | else { 112 | if (v.color.g == 1) { 113 | handleIndex = 1; 114 | } 115 | else { 116 | if (v.color.b == 1) { 117 | handleIndex = 2; 118 | } 119 | } 120 | } 121 | 122 | if (handleIndex == 0) { // seconds 123 | v.vertex.xy = rotate(v.vertex.xy, s); 124 | } 125 | else if (handleIndex == 1) { // minute 126 | v.vertex.xy = rotate(v.vertex.xy, m); 127 | } 128 | else if (handleIndex == 2) { // hour 129 | v.vertex.xy = rotate(v.vertex.xy, h); 130 | } 131 | 132 | v2f o; 133 | UNITY_SETUP_INSTANCE_ID(v); 134 | UNITY_INITIALIZE_OUTPUT(v2f, o) 135 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); 136 | o.vertex = UnityObjectToClipPos(v.vertex); 137 | o.uv = v.uv; 138 | o.color = v.color; 139 | UNITY_TRANSFER_FOG(o,o.vertex); 140 | return o; 141 | } 142 | 143 | float4 frag(v2f i) : COLOR { 144 | float4 color = _Color; 145 | 146 | if (i.color.r == 0) { 147 | if (i.color.g == 0) { 148 | if (i.color.b == 0) { 149 | float4 _Texture_var = tex2D(_Texture,TRANSFORM_TEX(i.uv, _Texture)); 150 | clip(_Texture_var.a - 0.5); 151 | } 152 | } 153 | } 154 | 155 | if (i.color.b > 0.45) { 156 | if (i.color.b < 0.55) { 157 | color = _BgColor; 158 | } 159 | } 160 | 161 | UNITY_APPLY_FOG(i.fogCoord, color); 162 | return color; 163 | } 164 | ENDCG 165 | } 166 | } 167 | } 168 | -------------------------------------------------------------------------------- /unity/Models/Realtime Clock.dae: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Blender User 6 | Blender 2.79.0 commit date:2017-09-11, commit time:10:43, hash:5bd8ac9 7 | 8 | 2018-09-08T21:20:52 9 | 2018-09-08T21:20:52 10 | 11 | Z_UP 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 0 0 0 1 21 | 22 | 23 | 0 0 0 1 24 | 25 | 26 | 0.64 0.64 0.64 1 27 | 28 | 29 | 0.5 0.5 0.5 1 30 | 31 | 32 | 50 33 | 34 | 35 | 1 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -0.004999995 -0.004999995 0.02999997 0.004999995 -0.004999935 0.02999997 -0.004999995 0.7 0.02999997 0.004999995 0.7 0.02999997 -1 0 0 -0.9807853 0.1950903 0 -0.9238795 0.3826834 0 -0.8314697 0.5555702 0 -0.7071068 0.7071068 0 -0.5555703 0.8314696 0 -0.3826835 0.9238795 0 -0.1950903 0.9807853 0 0 1 0 -0.9807853 -0.1950902 0 -0.9238796 -0.3826833 0 -0.8314697 -0.5555702 0 -0.7071068 -0.7071068 0 -0.5555702 -0.8314697 0 -0.3826833 -0.9238796 0 -0.1950901 -0.9807853 0 3.25841e-7 -1 0 0.1950907 -0.9807852 0 0.3826839 -0.9238793 0 0.5555707 -0.8314693 0 0.7071073 -0.7071064 0 0.83147 -0.5555697 0 0.9238799 -0.3826827 0 0.9807854 -0.1950894 0 1 9.65599e-7 0 0.9807851 0.1950913 0 0.9238791 0.3826845 0 0.8314689 0.5555713 0 0.7071059 0.7071077 0 0.5555691 0.8314704 0 0.3826821 0.9238801 0 0.1950888 0.9807856 0 -0.6652467 0.6532815 0 -0.7467436 0.4499881 0 -0.7969292 0.229402 0 -0.8138747 0 0 -0.7969292 -0.2294018 0 -0.7467437 -0.4499881 0 -0.6652466 -0.6532815 0 -0.4639274 0.7258874 0 -0.524297 0.5 0 -0.5614725 0.2548978 0 -0.574025 0 0 -0.5614724 -0.2548977 0 -0.524297 -0.5 0 -0.4639272 -0.7258875 0 -0.2382143 0.770598 0 -0.2702583 0.5307971 0 -0.2899909 0.2705981 0 -0.2966538 0 0 -0.2899909 -0.2705979 0 -0.2702583 -0.5307971 0 -0.2382141 -0.770598 0 0 0.785695 0 1.3411e-7 0.5411961 0 1.78814e-7 0.2758995 0 2.38419e-7 0 0 2.38419e-7 -0.2758993 0 2.83122e-7 -0.5411961 0 2.83122e-7 -0.785695 0 0.2382131 0.7705984 0 0.2702574 0.5307975 0 0.2899904 0.2705984 0 0.2966536 3.33589e-7 0 0.2899909 -0.2705978 0 0.2702585 -0.530797 0 0.2382146 -0.7705979 0 0.4639263 0.7258881 0 0.5242962 0.5000007 0 0.5614721 0.2548986 0 0.5740249 6.50415e-7 0 0.5614725 -0.2548972 0 0.5242972 -0.4999995 0 0.4639276 -0.7258872 0 0.6652458 0.6532824 0 0.746743 0.449989 0 0.7969288 0.2294028 0 0.8138746 8.24798e-7 0 0.7969292 -0.2294012 0 0.7467439 -0.4499875 0 0.665247 -0.653281 0 -1 0 -0.009999573 -0.9807853 0.1950903 -0.009999573 -0.9238795 0.3826834 -0.009999573 -0.8314697 0.5555702 -0.009999573 -0.7071068 0.7071068 -0.009999573 -0.5555703 0.8314696 -0.009999573 -0.3826835 0.9238795 -0.009999573 -0.1950903 0.9807853 -0.009999573 0 1 -0.009999573 -0.9807853 -0.1950902 -0.009999573 -0.9238796 -0.3826833 -0.009999573 -0.8314697 -0.5555702 -0.009999573 -0.7071068 -0.7071068 -0.009999573 -0.5555702 -0.8314697 -0.009999573 -0.3826833 -0.9238796 -0.009999573 -0.1950901 -0.9807853 -0.009999573 3.25841e-7 -1 -0.009999573 0.1950907 -0.9807852 -0.009999573 0.3826839 -0.9238793 -0.009999573 0.5555707 -0.8314693 -0.009999573 0.7071073 -0.7071064 -0.009999573 0.83147 -0.5555697 -0.009999573 0.9238799 -0.3826827 -0.009999573 0.9807854 -0.1950894 -0.009999573 1 9.65599e-7 -0.009999573 0.9807851 0.1950913 -0.009999573 0.9238791 0.3826845 -0.009999573 0.8314689 0.5555713 -0.009999573 0.7071059 0.7071077 -0.009999573 0.5555691 0.8314704 -0.009999573 0.3826821 0.9238801 -0.009999573 0.1950888 0.9807856 -0.009999573 -0.6652467 0.6532815 -0.009999573 -0.7467436 0.4499881 -0.009999573 -0.7969292 0.229402 -0.009999573 -0.8138747 0 -0.009999573 -0.7969292 -0.2294018 -0.009999573 -0.7467437 -0.4499881 -0.009999573 -0.6652466 -0.6532815 -0.009999573 -0.4639274 0.7258874 -0.009999573 -0.524297 0.5 -0.009999573 -0.5614725 0.2548978 -0.009999573 -0.574025 0 -0.009999573 -0.5614724 -0.2548977 -0.009999573 -0.524297 -0.5 -0.009999573 -0.4639272 -0.7258875 -0.009999573 -0.2382143 0.770598 -0.009999573 -0.2702583 0.5307971 -0.009999573 -0.2899909 0.2705981 -0.009999573 -0.2966538 0 -0.009999573 -0.2899909 -0.2705979 -0.009999573 -0.2702583 -0.5307971 -0.009999573 -0.2382141 -0.770598 -0.009999573 0 0.785695 -0.009999573 1.3411e-7 0.5411961 -0.009999573 1.78814e-7 0.2758995 -0.009999573 2.38419e-7 0 -0.009999573 2.38419e-7 -0.2758993 -0.009999573 2.83122e-7 -0.5411961 -0.009999573 2.83122e-7 -0.785695 -0.009999573 0.2382131 0.7705984 -0.009999573 0.2702574 0.5307975 -0.009999573 0.2899904 0.2705984 -0.009999573 0.2966536 3.33589e-7 -0.009999573 0.2899909 -0.2705978 -0.009999573 0.2702585 -0.530797 -0.009999573 0.2382146 -0.7705979 -0.009999573 0.4639263 0.7258881 -0.009999573 0.5242962 0.5000007 -0.009999573 0.5614721 0.2548986 -0.009999573 0.5740249 6.50415e-7 -0.009999573 0.5614725 -0.2548972 -0.009999573 0.5242972 -0.4999995 -0.009999573 0.4639276 -0.7258872 -0.009999573 0.6652458 0.6532824 -0.009999573 0.746743 0.449989 -0.009999573 0.7969288 0.2294028 -0.009999573 0.8138746 8.24798e-7 -0.009999573 0.7969292 -0.2294012 -0.009999573 0.7467439 -0.4499875 -0.009999573 0.665247 -0.653281 -0.009999573 -0.01999998 -0.01999998 0.01999998 0.01999998 -0.01999998 0.01999998 -0.01999998 0.45 0.01999998 0.01999998 0.45 0.01999998 -0.01999998 -0.01999998 0.00999999 0.01999998 -0.01999998 0.00999999 -0.01999998 0.7 0.00999999 0.01999998 0.7 0.00999999 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 0 0 0 0 0 0 0 0 0.08426529 0.777785 0.1673766 0.8266406 0.2222148 0.9157348 0.1464466 0.8535533 0.1673766 0.8266406 0.2680363 0.8629436 0.3086583 0.9619396 0.2222148 0.9157348 0.2680363 0.8629436 0.3808928 0.8852989 0.4024549 0.9903926 0.3086583 0.9619396 0.3808928 0.8852989 0.5000001 0.8928474 0.5000001 1 0.4024549 0.9903926 0.5000001 0.8928474 0.6191067 0.8852992 0.5975444 0.9903928 0.5000001 1 0.6191067 0.8852992 0.7319631 0.862944 0.6913411 0.96194 0.5975444 0.9903928 0.7319631 0.862944 0.8326229 0.826641 0.7777846 0.9157351 0.6913411 0.96194 0.8326229 0.826641 0.9157344 0.7777855 0.853553 0.8535538 0.7777846 0.9157351 0.03806024 0.6913417 0.1266282 0.7249941 0.1673766 0.8266406 0.08426529 0.777785 0.1266282 0.7249941 0.2378515 0.7499999 0.2680363 0.8629436 0.1673766 0.8266406 0.2378515 0.7499999 0.3648709 0.7653985 0.3808928 0.8852989 0.2680363 0.8629436 0.3648709 0.7653985 0.5000001 0.770598 0.5000001 0.8928474 0.3808928 0.8852989 0.5000001 0.770598 0.6351288 0.7653988 0.6191067 0.8852992 0.5000001 0.8928474 0.6351288 0.7653988 0.7621482 0.7500002 0.7319631 0.862944 0.6191067 0.8852992 0.7621482 0.7500002 0.8733714 0.7249945 0.8326229 0.826641 0.7319631 0.862944 0.8733714 0.7249945 0.9619395 0.6913421 0.9157344 0.7777855 0.8326229 0.826641 0.009607374 0.5975452 0.1015354 0.6147009 0.1266282 0.7249941 0.03806024 0.6913417 0.1015354 0.6147009 0.2192637 0.6274489 0.2378515 0.7499999 0.1266282 0.7249941 0.2192637 0.6274489 0.3550046 0.635299 0.3648709 0.7653985 0.2378515 0.7499999 0.3550046 0.635299 0.5000002 0.6379497 0.5000001 0.770598 0.3648709 0.7653985 0.5000002 0.6379497 0.6449952 0.6352992 0.6351288 0.7653988 0.5000001 0.770598 0.6449952 0.6352992 0.780736 0.6274492 0.7621482 0.7500002 0.6351288 0.7653988 0.780736 0.6274492 0.8984644 0.6147014 0.8733714 0.7249945 0.7621482 0.7500002 0.8984644 0.6147014 0.9903925 0.5975456 0.9619395 0.6913421 0.8733714 0.7249945 0 0.5 0.09306263 0.5 0.1015354 0.6147009 0.009607374 0.5975452 0.09306263 0.5 0.2129875 0.5 0.2192637 0.6274489 0.1015354 0.6147009 0.2129875 0.5 0.3516731 0.5 0.3550046 0.635299 0.2192637 0.6274489 0.3516731 0.5 0.5000002 0.5 0.5000002 0.6379497 0.3550046 0.635299 0.5000002 0.5 0.6483268 0.5000002 0.6449952 0.6352992 0.5000002 0.6379497 0.6483268 0.5000002 0.7870125 0.5000003 0.780736 0.6274492 0.6449952 0.6352992 0.7870125 0.5000003 0.9069374 0.5000004 0.8984644 0.6147014 0.780736 0.6274492 0.9069374 0.5000004 1 0.5000004 0.9903925 0.5975456 0.8984644 0.6147014 0.009607315 0.4024548 0.1015354 0.385299 0.09306263 0.5 0 0.5 0.1015354 0.385299 0.2192638 0.372551 0.2129875 0.5 0.09306263 0.5 0.2192638 0.372551 0.3550046 0.364701 0.3516731 0.5 0.2129875 0.5 0.3550046 0.364701 0.5000002 0.3620503 0.5000002 0.5 0.3516731 0.5 0.5000002 0.3620503 0.6449955 0.3647011 0.6483268 0.5000002 0.5000002 0.5 0.6449955 0.3647011 0.7807363 0.3725514 0.7870125 0.5000003 0.6483268 0.5000002 0.7807363 0.3725514 0.8984647 0.3852993 0.9069374 0.5000004 0.7870125 0.5000003 0.8984647 0.3852993 0.9903928 0.4024553 1 0.5000004 0.9069374 0.5000004 0.03806024 0.3086583 0.1266281 0.2750059 0.1015354 0.385299 0.009607315 0.4024548 0.1266281 0.2750059 0.2378515 0.25 0.2192638 0.372551 0.1015354 0.385299 0.2378515 0.25 0.3648709 0.2346014 0.3550046 0.364701 0.2192638 0.372551 0.3648709 0.2346014 0.5000002 0.229402 0.5000002 0.3620503 0.3550046 0.364701 0.5000002 0.229402 0.6351293 0.2346014 0.6449955 0.3647011 0.5000002 0.3620503 0.6351293 0.2346014 0.7621486 0.2500002 0.7807363 0.3725514 0.6449955 0.3647011 0.7621486 0.2500002 0.873372 0.2750062 0.8984647 0.3852993 0.7807363 0.3725514 0.873372 0.2750062 0.96194 0.3086585 0.9903928 0.4024553 0.8984647 0.3852993 0.08426529 0.2222149 0.1673767 0.1733592 0.1266281 0.2750059 0.03806024 0.3086583 0.1673767 0.1733592 0.2680364 0.1370562 0.2378515 0.25 0.1266281 0.2750059 0.2680364 0.1370562 0.3808929 0.1147009 0.3648709 0.2346014 0.2378515 0.25 0.3808929 0.1147009 0.5000002 0.1071525 0.5000002 0.229402 0.3648709 0.2346014 0.5000002 0.1071525 0.6191073 0.114701 0.6351293 0.2346014 0.5000002 0.229402 0.6191073 0.114701 0.7319639 0.1370564 0.7621486 0.2500002 0.6351293 0.2346014 0.7319639 0.1370564 0.8326236 0.1733595 0.873372 0.2750062 0.7621486 0.2500002 0.8326236 0.1733595 0.9157351 0.2222151 0.96194 0.3086585 0.873372 0.2750062 0.1464466 0.1464466 0.2222149 0.08426517 0.1673767 0.1733592 0.08426529 0.2222149 0.2222149 0.08426517 0.3086584 0.03806012 0.2680364 0.1370562 0.1673767 0.1733592 0.3086584 0.03806012 0.402455 0.009607255 0.3808929 0.1147009 0.2680364 0.1370562 0.402455 0.009607255 0.5000002 0 0.5000002 0.1071525 0.3808929 0.1147009 0.5000002 0 0.5975454 0.009607315 0.6191073 0.114701 0.5000002 0.1071525 0.5975454 0.009607315 0.6913421 0.03806024 0.7319639 0.1370564 0.6191073 0.114701 0.6913421 0.03806024 0.7777854 0.08426535 0.8326236 0.1733595 0.7319639 0.1370564 0.7777854 0.08426535 0.8535537 0.1464468 0.9157351 0.2222151 0.8326236 0.1733595 0.08426529 0.777785 0.1673766 0.8266406 0.2222148 0.9157348 0.1464466 0.8535533 0.1673766 0.8266406 0.2680363 0.8629436 0.3086583 0.9619396 0.2222148 0.9157348 0.2680363 0.8629436 0.3808928 0.8852989 0.4024549 0.9903926 0.3086583 0.9619396 0.3808928 0.8852989 0.5000001 0.8928474 0.5000001 1 0.4024549 0.9903926 0.5000001 0.8928474 0.6191067 0.8852992 0.5975444 0.9903928 0.5000001 1 0.6191067 0.8852992 0.7319631 0.862944 0.6913411 0.96194 0.5975444 0.9903928 0.7319631 0.862944 0.8326229 0.826641 0.7777846 0.9157351 0.6913411 0.96194 0.8326229 0.826641 0.9157344 0.7777855 0.853553 0.8535538 0.7777846 0.9157351 0.03806024 0.6913417 0.1266282 0.7249941 0.1673766 0.8266406 0.08426529 0.777785 0.1266282 0.7249941 0.2378515 0.7499999 0.2680363 0.8629436 0.1673766 0.8266406 0.2378515 0.7499999 0.3648709 0.7653985 0.3808928 0.8852989 0.2680363 0.8629436 0.3648709 0.7653985 0.5000001 0.770598 0.5000001 0.8928474 0.3808928 0.8852989 0.5000001 0.770598 0.6351288 0.7653988 0.6191067 0.8852992 0.5000001 0.8928474 0.6351288 0.7653988 0.7621482 0.7500002 0.7319631 0.862944 0.6191067 0.8852992 0.7621482 0.7500002 0.8733714 0.7249945 0.8326229 0.826641 0.7319631 0.862944 0.8733714 0.7249945 0.9619395 0.6913421 0.9157344 0.7777855 0.8326229 0.826641 0.009607374 0.5975452 0.1015354 0.6147009 0.1266282 0.7249941 0.03806024 0.6913417 0.1015354 0.6147009 0.2192637 0.6274489 0.2378515 0.7499999 0.1266282 0.7249941 0.2192637 0.6274489 0.3550046 0.635299 0.3648709 0.7653985 0.2378515 0.7499999 0.3550046 0.635299 0.5000002 0.6379497 0.5000001 0.770598 0.3648709 0.7653985 0.5000002 0.6379497 0.6449952 0.6352992 0.6351288 0.7653988 0.5000001 0.770598 0.6449952 0.6352992 0.780736 0.6274492 0.7621482 0.7500002 0.6351288 0.7653988 0.780736 0.6274492 0.8984644 0.6147014 0.8733714 0.7249945 0.7621482 0.7500002 0.8984644 0.6147014 0.9903925 0.5975456 0.9619395 0.6913421 0.8733714 0.7249945 0 0.5 0.09306263 0.5 0.1015354 0.6147009 0.009607374 0.5975452 0.09306263 0.5 0.2129875 0.5 0.2192637 0.6274489 0.1015354 0.6147009 0.2129875 0.5 0.3516731 0.5 0.3550046 0.635299 0.2192637 0.6274489 0.3516731 0.5 0.5000002 0.5 0.5000002 0.6379497 0.3550046 0.635299 0.5000002 0.5 0.6483268 0.5000002 0.6449952 0.6352992 0.5000002 0.6379497 0.6483268 0.5000002 0.7870125 0.5000003 0.780736 0.6274492 0.6449952 0.6352992 0.7870125 0.5000003 0.9069374 0.5000004 0.8984644 0.6147014 0.780736 0.6274492 0.9069374 0.5000004 1 0.5000004 0.9903925 0.5975456 0.8984644 0.6147014 0.009607315 0.4024548 0.1015354 0.385299 0.09306263 0.5 0 0.5 0.1015354 0.385299 0.2192638 0.372551 0.2129875 0.5 0.09306263 0.5 0.2192638 0.372551 0.3550046 0.364701 0.3516731 0.5 0.2129875 0.5 0.3550046 0.364701 0.5000002 0.3620503 0.5000002 0.5 0.3516731 0.5 0.5000002 0.3620503 0.6449955 0.3647011 0.6483268 0.5000002 0.5000002 0.5 0.6449955 0.3647011 0.7807363 0.3725514 0.7870125 0.5000003 0.6483268 0.5000002 0.7807363 0.3725514 0.8984647 0.3852993 0.9069374 0.5000004 0.7870125 0.5000003 0.8984647 0.3852993 0.9903928 0.4024553 1 0.5000004 0.9069374 0.5000004 0.03806024 0.3086583 0.1266281 0.2750059 0.1015354 0.385299 0.009607315 0.4024548 0.1266281 0.2750059 0.2378515 0.25 0.2192638 0.372551 0.1015354 0.385299 0.2378515 0.25 0.3648709 0.2346014 0.3550046 0.364701 0.2192638 0.372551 0.3648709 0.2346014 0.5000002 0.229402 0.5000002 0.3620503 0.3550046 0.364701 0.5000002 0.229402 0.6351293 0.2346014 0.6449955 0.3647011 0.5000002 0.3620503 0.6351293 0.2346014 0.7621486 0.2500002 0.7807363 0.3725514 0.6449955 0.3647011 0.7621486 0.2500002 0.873372 0.2750062 0.8984647 0.3852993 0.7807363 0.3725514 0.873372 0.2750062 0.96194 0.3086585 0.9903928 0.4024553 0.8984647 0.3852993 0.08426529 0.2222149 0.1673767 0.1733592 0.1266281 0.2750059 0.03806024 0.3086583 0.1673767 0.1733592 0.2680364 0.1370562 0.2378515 0.25 0.1266281 0.2750059 0.2680364 0.1370562 0.3808929 0.1147009 0.3648709 0.2346014 0.2378515 0.25 0.3808929 0.1147009 0.5000002 0.1071525 0.5000002 0.229402 0.3648709 0.2346014 0.5000002 0.1071525 0.6191073 0.114701 0.6351293 0.2346014 0.5000002 0.229402 0.6191073 0.114701 0.7319639 0.1370564 0.7621486 0.2500002 0.6351293 0.2346014 0.7319639 0.1370564 0.8326236 0.1733595 0.873372 0.2750062 0.7621486 0.2500002 0.8326236 0.1733595 0.9157351 0.2222151 0.96194 0.3086585 0.873372 0.2750062 0.1464466 0.1464466 0.2222149 0.08426517 0.1673767 0.1733592 0.08426529 0.2222149 0.2222149 0.08426517 0.3086584 0.03806012 0.2680364 0.1370562 0.1673767 0.1733592 0.3086584 0.03806012 0.402455 0.009607255 0.3808929 0.1147009 0.2680364 0.1370562 0.402455 0.009607255 0.5000002 0 0.5000002 0.1071525 0.3808929 0.1147009 0.5000002 0 0.5975454 0.009607315 0.6191073 0.114701 0.5000002 0.1071525 0.5975454 0.009607315 0.6913421 0.03806024 0.7319639 0.1370564 0.6191073 0.114701 0.6913421 0.03806024 0.7777854 0.08426535 0.8326236 0.1733595 0.7319639 0.1370564 0.7777854 0.08426535 0.8535537 0.1464468 0.9157351 0.2222151 0.8326236 0.1733595 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 0.5019608 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 98 |

0 0 0 0 1 0 1 1 3 0 2 2 2 0 3 3 7 0 4 4 36 0 5 5 9 0 6 6 8 0 7 7 36 0 8 8 43 0 9 9 10 0 10 10 9 0 11 11 43 0 12 12 50 0 13 13 11 0 14 14 10 0 15 15 50 0 16 16 57 0 17 17 12 0 18 18 11 0 19 19 57 0 20 20 64 0 21 21 35 0 22 22 12 0 23 23 64 0 24 24 71 0 25 25 34 0 26 26 35 0 27 27 71 0 28 28 78 0 29 29 33 0 30 30 34 0 31 31 78 0 32 32 31 0 33 33 32 0 34 34 33 0 35 35 6 0 36 36 37 0 37 37 36 0 38 38 7 0 39 39 37 0 40 40 44 0 41 41 43 0 42 42 36 0 43 43 44 0 44 44 51 0 45 45 50 0 46 46 43 0 47 47 51 0 48 48 58 0 49 49 57 0 50 50 50 0 51 51 58 0 52 52 65 0 53 53 64 0 54 54 57 0 55 55 65 0 56 56 72 0 57 57 71 0 58 58 64 0 59 59 72 0 60 60 79 0 61 61 78 0 62 62 71 0 63 63 79 0 64 64 30 0 65 65 31 0 66 66 78 0 67 67 5 0 68 68 38 0 69 69 37 0 70 70 6 0 71 71 38 0 72 72 45 0 73 73 44 0 74 74 37 0 75 75 45 0 76 76 52 0 77 77 51 0 78 78 44 0 79 79 52 0 80 80 59 0 81 81 58 0 82 82 51 0 83 83 59 0 84 84 66 0 85 85 65 0 86 86 58 0 87 87 66 0 88 88 73 0 89 89 72 0 90 90 65 0 91 91 73 0 92 92 80 0 93 93 79 0 94 94 72 0 95 95 80 0 96 96 29 0 97 97 30 0 98 98 79 0 99 99 4 0 100 100 39 0 101 101 38 0 102 102 5 0 103 103 39 0 104 104 46 0 105 105 45 0 106 106 38 0 107 107 46 0 108 108 53 0 109 109 52 0 110 110 45 0 111 111 53 0 112 112 60 0 113 113 59 0 114 114 52 0 115 115 60 0 116 116 67 0 117 117 66 0 118 118 59 0 119 119 67 0 120 120 74 0 121 121 73 0 122 122 66 0 123 123 74 0 124 124 81 0 125 125 80 0 126 126 73 0 127 127 81 0 128 128 28 0 129 129 29 0 130 130 80 0 131 131 13 0 132 132 40 0 133 133 39 0 134 134 4 0 135 135 40 0 136 136 47 0 137 137 46 0 138 138 39 0 139 139 47 0 140 140 54 0 141 141 53 0 142 142 46 0 143 143 54 0 144 144 61 0 145 145 60 0 146 146 53 0 147 147 61 0 148 148 68 0 149 149 67 0 150 150 60 0 151 151 68 0 152 152 75 0 153 153 74 0 154 154 67 0 155 155 75 0 156 156 82 0 157 157 81 0 158 158 74 0 159 159 82 0 160 160 27 0 161 161 28 0 162 162 81 0 163 163 14 0 164 164 41 0 165 165 40 0 166 166 13 0 167 167 41 0 168 168 48 0 169 169 47 0 170 170 40 0 171 171 48 0 172 172 55 0 173 173 54 0 174 174 47 0 175 175 55 0 176 176 62 0 177 177 61 0 178 178 54 0 179 179 62 0 180 180 69 0 181 181 68 0 182 182 61 0 183 183 69 0 184 184 76 0 185 185 75 0 186 186 68 0 187 187 76 0 188 188 83 0 189 189 82 0 190 190 75 0 191 191 83 0 192 192 26 0 193 193 27 0 194 194 82 0 195 195 15 0 196 196 42 0 197 197 41 0 198 198 14 0 199 199 42 0 200 200 49 0 201 201 48 0 202 202 41 0 203 203 49 0 204 204 56 0 205 205 55 0 206 206 48 0 207 207 56 0 208 208 63 0 209 209 62 0 210 210 55 0 211 211 63 0 212 212 70 0 213 213 69 0 214 214 62 0 215 215 70 0 216 216 77 0 217 217 76 0 218 218 69 0 219 219 77 0 220 220 84 0 221 221 83 0 222 222 76 0 223 223 84 0 224 224 25 0 225 225 26 0 226 226 83 0 227 227 16 0 228 228 17 0 229 229 42 0 230 230 15 0 231 231 17 0 232 232 18 0 233 233 49 0 234 234 42 0 235 235 18 0 236 236 19 0 237 237 56 0 238 238 49 0 239 239 19 0 240 240 20 0 241 241 63 0 242 242 56 0 243 243 20 0 244 244 21 0 245 245 70 0 246 246 63 0 247 247 21 0 248 248 22 0 249 249 77 0 250 250 70 0 251 251 22 0 252 252 23 0 253 253 84 0 254 254 77 0 255 255 23 0 256 256 24 0 257 257 25 0 258 258 84 0 259 259 88 0 260 260 117 0 261 261 90 0 262 262 89 0 263 263 117 1 264 264 124 1 265 265 91 1 266 266 90 1 267 267 124 2 268 268 131 2 269 269 92 2 270 270 91 2 271 271 131 0 272 272 138 0 273 273 93 0 274 274 92 0 275 275 138 3 276 276 145 3 277 277 116 3 278 278 93 3 279 279 145 4 280 280 152 4 281 281 115 4 282 282 116 4 283 283 152 5 284 284 159 5 285 285 114 5 286 286 115 5 287 287 159 0 288 288 112 0 289 289 113 0 290 290 114 0 291 291 87 6 292 292 118 6 293 293 117 6 294 294 88 6 295 295 118 7 296 296 125 7 297 297 124 7 298 298 117 7 299 299 125 8 300 300 132 8 301 301 131 8 302 302 124 8 303 303 132 9 304 304 139 9 305 305 138 9 306 306 131 9 307 307 139 0 308 308 146 0 309 309 145 0 310 310 138 0 311 311 146 8 312 312 153 8 313 313 152 8 314 314 145 8 315 315 153 10 316 316 160 10 317 317 159 10 318 318 152 10 319 319 160 11 320 320 111 11 321 321 112 11 322 322 159 11 323 323 86 12 324 324 119 12 325 325 118 12 326 326 87 12 327 327 119 13 328 328 126 13 329 329 125 13 330 330 118 13 331 331 126 14 332 332 133 14 333 333 132 14 334 334 125 14 335 335 133 15 336 336 140 15 337 337 139 15 338 338 132 15 339 339 140 16 340 340 147 16 341 341 146 16 342 342 139 16 343 343 147 17 344 344 154 17 345 345 153 17 346 346 146 17 347 347 154 18 348 348 161 18 349 349 160 18 350 350 153 18 351 351 161 19 352 352 110 19 353 353 111 19 354 354 160 19 355 355 85 20 356 356 120 20 357 357 119 20 358 358 86 20 359 359 120 21 360 360 127 21 361 361 126 21 362 362 119 21 363 363 127 22 364 364 134 22 365 365 133 22 366 366 126 22 367 367 134 23 368 368 141 23 369 369 140 23 370 370 133 23 371 371 141 0 372 372 148 0 373 373 147 0 374 374 140 0 375 375 148 24 376 376 155 24 377 377 154 24 378 378 147 24 379 379 155 25 380 380 162 25 381 381 161 25 382 382 154 25 383 383 162 26 384 384 109 26 385 385 110 26 386 386 161 26 387 387 94 27 388 388 121 27 389 389 120 27 390 390 85 27 391 391 121 28 392 392 128 28 393 393 127 28 394 394 120 28 395 395 128 29 396 396 135 29 397 397 134 29 398 398 127 29 399 399 135 30 400 400 142 30 401 401 141 30 402 402 134 30 403 403 142 31 404 404 149 31 405 405 148 31 406 406 141 31 407 407 149 32 408 408 156 32 409 409 155 32 410 410 148 32 411 411 156 33 412 412 163 33 413 413 162 33 414 414 155 33 415 415 163 34 416 416 108 34 417 417 109 34 418 418 162 34 419 419 95 35 420 420 122 35 421 421 121 35 422 422 94 35 423 423 122 36 424 424 129 36 425 425 128 36 426 426 121 36 427 427 129 37 428 428 136 37 429 429 135 37 430 430 128 37 431 431 136 38 432 432 143 38 433 433 142 38 434 434 135 38 435 435 143 39 436 436 150 39 437 437 149 39 438 438 142 39 439 439 150 40 440 440 157 40 441 441 156 40 442 442 149 40 443 443 157 41 444 444 164 41 445 445 163 41 446 446 156 41 447 447 164 42 448 448 107 42 449 449 108 42 450 450 163 42 451 451 96 0 452 452 123 0 453 453 122 0 454 454 95 0 455 455 123 43 456 456 130 43 457 457 129 43 458 458 122 43 459 459 130 0 460 460 137 0 461 461 136 0 462 462 129 0 463 463 137 44 464 464 144 44 465 465 143 44 466 466 136 44 467 467 144 45 468 468 151 45 469 469 150 45 470 470 143 45 471 471 151 46 472 472 158 46 473 473 157 46 474 474 150 46 475 475 158 47 476 476 165 47 477 477 164 47 478 478 157 47 479 479 165 48 480 480 106 48 481 481 107 48 482 482 164 48 483 483 97 49 484 484 98 49 485 485 123 49 486 486 96 49 487 487 98 50 488 488 99 50 489 489 130 50 490 490 123 50 491 491 99 51 492 492 100 51 493 493 137 51 494 494 130 51 495 495 100 52 496 496 101 52 497 497 144 52 498 498 137 52 499 499 101 0 500 500 102 0 501 501 151 0 502 502 144 0 503 503 102 53 504 504 103 53 505 505 158 53 506 506 151 53 507 507 103 54 508 508 104 54 509 509 165 54 510 510 158 54 511 511 104 0 512 512 105 0 513 513 106 0 514 514 165 0 515 515 166 0 516 516 167 0 517 517 169 0 518 518 168 0 519 519 170 55 520 520 171 55 521 521 173 55 522 522 172 55 523 523

99 |
100 |
101 |
102 |
103 | 104 | 105 | 106 | 107 | 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 |
--------------------------------------------------------------------------------