├── Documentation ├── API Documentation.pdf ├── Hackathon General Documentation.pdf └── Riddles Documentation.pdf ├── LSBSteg.py ├── Riddles ├── cv_easy_example │ ├── actual.jpg │ └── shredded.jpg ├── cv_hard_example │ ├── cv_hard_sample_image.jpg │ └── cv_hard_sample_qa.txt ├── cv_medium_example │ ├── combined_large_image.png │ ├── patch_image.png │ └── real_large_image.png ├── ml_easy_sample_example │ ├── README.md │ ├── result.txt │ └── series_data.csv └── ml_medium_dataset │ └── MlMediumTrainingData.csv ├── Solvers ├── eagle_submission_solver.py ├── fox_submission_solver.py └── riddle_solvers.py ├── SteganoGAN ├── DellSteganoGAN.py ├── critics.py ├── decoders.py ├── requirements 2.txt ├── sample_example │ ├── Expected Answer from decoding.txt │ └── encoded.png └── utils.py └── image_models └── DenseEncoder_DenseDecoder_0.042_2020-07-23_02_08_27.dat /Documentation/API Documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackTrick2024/HackTrick24/6d9760c91a8dab640648f703a04f17c31eeb60e6/Documentation/API Documentation.pdf -------------------------------------------------------------------------------- /Documentation/Hackathon General Documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackTrick2024/HackTrick24/6d9760c91a8dab640648f703a04f17c31eeb60e6/Documentation/Hackathon General Documentation.pdf -------------------------------------------------------------------------------- /Documentation/Riddles Documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackTrick2024/HackTrick24/6d9760c91a8dab640648f703a04f17c31eeb60e6/Documentation/Riddles Documentation.pdf -------------------------------------------------------------------------------- /LSBSteg.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from matplotlib.pyplot import imread 3 | 4 | 5 | class SteganographyException(Exception): 6 | pass 7 | 8 | class LSBSteg(): 9 | def __init__(self, im): 10 | self.image = im 11 | self.height, self.width, self.nbchannels = im.shape 12 | self.size = self.width * self.height 13 | 14 | self.maskONEValues = [1,2,4,8,16,32,64,128] 15 | #Mask used to put one ex:1->00000001, 2->00000010 .. associated with OR bitwise 16 | self.maskONE = self.maskONEValues.pop(0) #Will be used to do bitwise operations 17 | 18 | self.maskZEROValues = [254,253,251,247,239,223,191,127] 19 | #Mak used to put zero ex:254->11111110, 253->11111101 .. associated with AND bitwise 20 | self.maskZERO = self.maskZEROValues.pop(0) 21 | 22 | self.curwidth = 0 # Current width position 23 | self.curheight = 0 # Current height position 24 | self.curchan = 0 # Current channel position 25 | 26 | def put_binary_value(self, bits): #Put the bits in the image 27 | for c in bits: 28 | val = list(self.image[self.curheight,self.curwidth]) #Get the pixel value as a list 29 | if int(c) == 1: 30 | val[self.curchan] = int(val[self.curchan]) | self.maskONE #OR with maskONE 31 | else: 32 | val[self.curchan] = int(val[self.curchan]) & self.maskZERO #AND with maskZERO 33 | 34 | self.image[self.curheight,self.curwidth] = tuple(val) 35 | self.next_slot() #Move "cursor" to the next space 36 | 37 | def next_slot(self):#Move to the next slot were information can be taken or put 38 | if self.curchan == self.nbchannels-1: #Next Space is the following channel 39 | self.curchan = 0 40 | if self.curwidth == self.width-1: #Or the first channel of the next pixel of the same line 41 | self.curwidth = 0 42 | if self.curheight == self.height-1:#Or the first channel of the first pixel of the next line 43 | self.curheight = 0 44 | if self.maskONE == 128: #Mask 1000000, so the last mask 45 | raise SteganographyException("No available slot remaining (image filled)") 46 | else: #Or instead of using the first bit start using the second and so on.. 47 | self.maskONE = self.maskONEValues.pop(0) 48 | self.maskZERO = self.maskZEROValues.pop(0) 49 | else: 50 | self.curheight +=1 51 | else: 52 | self.curwidth +=1 53 | else: 54 | self.curchan +=1 55 | 56 | def read_bit(self): #Read a single bit int the image 57 | val = self.image[self.curheight,self.curwidth][self.curchan] 58 | val = int(val) & self.maskONE 59 | self.next_slot() 60 | if val > 0: 61 | return "1" 62 | else: 63 | return "0" 64 | 65 | def read_byte(self): 66 | return self.read_bits(8) 67 | 68 | def read_bits(self, nb): #Read the given number of bits 69 | bits = "" 70 | for i in range(nb): 71 | bits += self.read_bit() 72 | return bits 73 | 74 | def byteValue(self, val): 75 | return self.binary_value(val, 8) 76 | 77 | def binary_value(self, val, bitsize): #Return the binary value of an int as a byte 78 | binval = bin(val)[2:] 79 | if len(binval) > bitsize: 80 | raise SteganographyException("binary value larger than the expected size") 81 | while len(binval) < bitsize: 82 | binval = "0"+binval 83 | return binval 84 | 85 | def encode_text(self, txt): 86 | l = len(txt) 87 | binl = self.binary_value(l, 16) #Length coded on 2 bytes so the text size can be up to 65536 bytes long 88 | self.put_binary_value(binl) #Put text length coded on 4 bytes 89 | for char in txt: #And put all the chars 90 | c = ord(char) 91 | self.put_binary_value(self.byteValue(c)) 92 | return self.image 93 | 94 | def decode_text(self): 95 | ls = self.read_bits(16) #Read the text size in bytes 96 | l = int(ls,2) 97 | i = 0 98 | unhideTxt = "" 99 | while i < l: #Read all bytes of the text 100 | tmp = self.read_byte() #So one byte 101 | i += 1 102 | unhideTxt += chr(int(tmp,2)) #Every chars concatenated to str 103 | return unhideTxt 104 | 105 | def encode_image(self, imtohide): 106 | w = imtohide.width 107 | h = imtohide.height 108 | if self.width*self.height*self.nbchannels < w*h*imtohide.channels: 109 | raise SteganographyException("Carrier image not big enough to hold all the datas to steganography") 110 | binw = self.binary_value(w, 16) #Width coded on to byte so width up to 65536 111 | binh = self.binary_value(h, 16) 112 | self.put_binary_value(binw) #Put width 113 | self.put_binary_value(binh) #Put height 114 | for h in range(imtohide.height): #Iterate the hole image to put every pixel values 115 | for w in range(imtohide.width): 116 | for chan in range(imtohide.channels): 117 | val = imtohide[h,w][chan] 118 | self.put_binary_value(self.byteValue(int(val))) 119 | return self.image 120 | 121 | 122 | def decode_image(self): 123 | width = int(self.read_bits(16),2) #Read 16bits and convert it in int 124 | height = int(self.read_bits(16),2) 125 | unhideimg = np.zeros((width,height, 3), np.uint8) #Create an image in which we will put all the pixels read 126 | for h in range(height): 127 | for w in range(width): 128 | for chan in range(unhideimg.channels): 129 | val = list(unhideimg[h,w]) 130 | val[chan] = int(self.read_byte(),2) #Read the value 131 | unhideimg[h,w] = tuple(val) 132 | return unhideimg 133 | 134 | def encode_binary(self, data): 135 | l = len(data) 136 | if self.width*self.height*self.nbchannels < l+64: 137 | raise SteganographyException("Carrier image not big enough to hold all the datas to steganography") 138 | self.put_binary_value(self.binary_value(l, 64)) 139 | for byte in data: 140 | byte = byte if isinstance(byte, int) else ord(byte) # Compat py2/py3 141 | self.put_binary_value(self.byteValue(byte)) 142 | return self.image 143 | 144 | def decode_binary(self): 145 | l = int(self.read_bits(64), 2) 146 | output = b"" 147 | for i in range(l): 148 | output += chr(int(self.read_byte(),2)).encode("utf-8") 149 | return output 150 | 151 | def encode(image: np.ndarray, message: str) -> np.array: 152 | # steg = LSBSteg(cv2.imread(filepath)) 153 | steg = LSBSteg(image) 154 | img_encoded = steg.encode_text(message) 155 | return img_encoded 156 | 157 | def decode(encoded: np.array) -> str: 158 | steg = LSBSteg(encoded) 159 | return steg.decode_text() 160 | 161 | if __name__=="__main__": 162 | filepath = "Steganography/bananas background zoom.png" 163 | image = imread(filepath) 164 | encoded_np_image = encode(image, 'Welcom to HackTrick!!!!') 165 | print(decode(encoded_np_image)) -------------------------------------------------------------------------------- /Riddles/cv_easy_example/actual.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackTrick2024/HackTrick24/6d9760c91a8dab640648f703a04f17c31eeb60e6/Riddles/cv_easy_example/actual.jpg -------------------------------------------------------------------------------- /Riddles/cv_easy_example/shredded.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackTrick2024/HackTrick24/6d9760c91a8dab640648f703a04f17c31eeb60e6/Riddles/cv_easy_example/shredded.jpg -------------------------------------------------------------------------------- /Riddles/cv_hard_example/cv_hard_sample_image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackTrick2024/HackTrick24/6d9760c91a8dab640648f703a04f17c31eeb60e6/Riddles/cv_hard_example/cv_hard_sample_image.jpg -------------------------------------------------------------------------------- /Riddles/cv_hard_example/cv_hard_sample_qa.txt: -------------------------------------------------------------------------------- 1 | tion: How many cats are there? 2 | Correct Answer : 2 3 | -------------------------------------------------------------------------------- /Riddles/cv_medium_example/combined_large_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackTrick2024/HackTrick24/6d9760c91a8dab640648f703a04f17c31eeb60e6/Riddles/cv_medium_example/combined_large_image.png -------------------------------------------------------------------------------- /Riddles/cv_medium_example/patch_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackTrick2024/HackTrick24/6d9760c91a8dab640648f703a04f17c31eeb60e6/Riddles/cv_medium_example/patch_image.png -------------------------------------------------------------------------------- /Riddles/cv_medium_example/real_large_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackTrick2024/HackTrick24/6d9760c91a8dab640648f703a04f17c31eeb60e6/Riddles/cv_medium_example/real_large_image.png -------------------------------------------------------------------------------- /Riddles/ml_easy_sample_example/README.md: -------------------------------------------------------------------------------- 1 | **NOTE**: You are free to choose any preprocessing steps needed and try out different models, just know that any transform operations applied to the series also require a similar inverse transform to be applied on the predictions. 2 | -------------------------------------------------------------------------------- /Riddles/ml_easy_sample_example/result.txt: -------------------------------------------------------------------------------- 1 | [2.0, 12.0, 13.0, 1.0, 10.0, 8.0, 6.0, 6.0, 6.0, 8.0, 9.0, 6.0, 1.0, 12.0, 11.0, 7.0, 5.0, 12.0, 8.0, 7.0, 15.0, 11.0, 9.0, 7.0, 9.0, 6.0, 8.0, 13.0, 8.0, 5.0, 12.0, 10.0, 7.0, 7.0, 11.0, 7.0, 14.0, 11.0, 3.0, 10.0, 5.0, 14.0, 8.0, 11.0, 8.0, 24.0, 10.0, 15.0, 12.0, 11.0] -------------------------------------------------------------------------------- /Riddles/ml_easy_sample_example/series_data.csv: -------------------------------------------------------------------------------- 1 | timestamp,visits 2 | 2015-07-01,4 3 | 2015-07-02,8 4 | 2015-07-03,4 5 | 2015-07-04,9 6 | 2015-07-05,7 7 | 2015-07-06,4 8 | 2015-07-07,15 9 | 2015-07-08,9 10 | 2015-07-09,17 11 | 2015-07-10,16 12 | 2015-07-11,10 13 | 2015-07-12,4 14 | 2015-07-13,8 15 | 2015-07-14,17 16 | 2015-07-15,11 17 | 2015-07-16,13 18 | 2015-07-17,12 19 | 2015-07-18,21 20 | 2015-07-19,14 21 | 2015-07-20,5 22 | 2015-07-21,11 23 | 2015-07-22,16 24 | 2015-07-23,8 25 | 2015-07-24,7 26 | 2015-07-25,14 27 | 2015-07-26,8 28 | 2015-07-27,9 29 | 2015-07-28,10 30 | 2015-07-29,15 31 | 2015-07-30,5 32 | 2015-07-31,5 33 | 2015-08-01,8 34 | 2015-08-02,8 35 | 2015-08-03,10 36 | 2015-08-04,9 37 | 2015-08-05,8 38 | 2015-08-06,6 39 | 2015-08-07,5 40 | 2015-08-08,2 41 | 2015-08-09,11 42 | 2015-08-10,10 43 | 2015-08-11,7 44 | 2015-08-12,9 45 | 2015-08-13,8 46 | 2015-08-14,2 47 | 2015-08-15,2 48 | 2015-08-16,5 49 | 2015-08-17,11 50 | 2015-08-18,5 51 | 2015-08-19,4 52 | 2015-08-20,6 53 | 2015-08-21,11 54 | 2015-08-22,12 55 | 2015-08-23,8 56 | 2015-08-24,6 57 | 2015-08-25,4 58 | 2015-08-26,8 59 | 2015-08-27,7 60 | 2015-08-28,8 61 | 2015-08-29,7 62 | 2015-08-30,2 63 | 2015-08-31,2 64 | 2015-09-01,7 65 | 2015-09-02,3 66 | 2015-09-03,7 67 | 2015-09-04,9 68 | 2015-09-05,7 69 | 2015-09-06,9 70 | 2015-09-07,9 71 | 2015-09-08,4 72 | 2015-09-09,5 73 | 2015-09-10,2 74 | 2015-09-11,5 75 | 2015-09-12,10 76 | 2015-09-13,5 77 | 2015-09-14,5 78 | 2015-09-15,8 79 | 2015-09-16,4 80 | 2015-09-17,4 81 | 2015-09-18,12 82 | 2015-09-19,10 83 | 2015-09-20,7 84 | 2015-09-21,5 85 | 2015-09-22,13 86 | 2015-09-23,11 87 | 2015-09-24,2 88 | 2015-09-25,9 89 | 2015-09-26,12 90 | 2015-09-27,13 91 | 2015-09-28,11 92 | 2015-09-29,9 93 | 2015-09-30,6 94 | 2015-10-01,5 95 | 2015-10-02,6 96 | 2015-10-03,9 97 | 2015-10-04,11 98 | 2015-10-05,13 99 | 2015-10-06,7 100 | 2015-10-07,8 101 | 2015-10-08,10 102 | 2015-10-09,4 103 | 2015-10-10,9 104 | 2015-10-11,4 105 | 2015-10-12,5 106 | 2015-10-13,12 107 | 2015-10-14,4 108 | 2015-10-15,10 109 | 2015-10-16,6 110 | 2015-10-17,8 111 | 2015-10-18,11 112 | 2015-10-19,10 113 | 2015-10-20,2 114 | 2015-10-21,3 115 | 2015-10-22,10 116 | 2015-10-23,5 117 | 2015-10-24,9 118 | 2015-10-25,15 119 | 2015-10-26,3 120 | 2015-10-27,7 121 | 2015-10-28,5 122 | 2015-10-29,12 123 | 2015-10-30,10 124 | 2015-10-31,9 125 | 2015-11-01,3 126 | 2015-11-02,51 127 | 2015-11-03,18 128 | 2015-11-04,14 129 | 2015-11-05,15 130 | 2015-11-06,5 131 | 2015-11-07,5 132 | 2015-11-08,7 133 | 2015-11-09,1 134 | 2015-11-10,2 135 | 2015-11-11,8 136 | 2015-11-12,3 137 | 2015-11-13,6 138 | 2015-11-14,9 139 | 2015-11-15,6 140 | 2015-11-16,7 141 | 2015-11-17,1 142 | 2015-11-18,4 143 | 2015-11-19,6 144 | 2015-11-20,4 145 | 2015-11-21,8 146 | 2015-11-22,4 147 | 2015-11-23,6 148 | 2015-11-24,7 149 | 2015-11-25,7 150 | 2015-11-26,14 151 | 2015-11-27,6 152 | 2015-11-28,11 153 | 2015-11-29,9 154 | 2015-11-30,8 155 | 2015-12-01,11 156 | 2015-12-02,5 157 | 2015-12-03,6 158 | 2015-12-04,10 159 | 2015-12-05,7 160 | 2015-12-06,10 161 | 2015-12-07,16 162 | 2015-12-08,6 163 | 2015-12-09,4 164 | 2015-12-10,6 165 | 2015-12-11,19 166 | 2015-12-12,5 167 | 2015-12-13,13 168 | 2015-12-14,3 169 | 2015-12-15,11 170 | 2015-12-16,8 171 | 2015-12-17,6 172 | 2015-12-18,11 173 | 2015-12-19,10 174 | 2015-12-20,10 175 | 2015-12-21,10 176 | 2015-12-22,4 177 | 2015-12-23,7 178 | 2015-12-24,10 179 | 2015-12-25,8 180 | 2015-12-26,7 181 | 2015-12-27,10 182 | 2015-12-28,9 183 | 2015-12-29,8 184 | 2015-12-30,14 185 | 2015-12-31,9 186 | 2016-01-01,8 187 | 2016-01-02,7 188 | 2016-01-03,7 189 | 2016-01-04,15 190 | 2016-01-05,15 191 | 2016-01-06,10 192 | 2016-01-07,12 193 | 2016-01-08,15 194 | 2016-01-09,9 195 | 2016-01-10,9 196 | 2016-01-11,3 197 | 2016-01-12,8 198 | 2016-01-13,8 199 | 2016-01-14,12 200 | 2016-01-15,7 201 | 2016-01-16,6 202 | 2016-01-17,8 203 | 2016-01-18,16 204 | 2016-01-19,13 205 | 2016-01-20,17 206 | 2016-01-21,2 207 | 2016-01-22,20 208 | 2016-01-23,6 209 | 2016-01-24,12 210 | 2016-01-25,9 211 | 2016-01-26,10 212 | 2016-01-27,16 213 | 2016-01-28,14 214 | 2016-01-29,3 215 | 2016-01-30,2 216 | 2016-01-31,13 217 | 2016-02-01,3 218 | 2016-02-02,7 219 | 2016-02-03,11 220 | 2016-02-04,6 221 | 2016-02-05,5 222 | 2016-02-06,13 223 | 2016-02-07,1 224 | 2016-02-08,7 225 | 2016-02-09,5 226 | 2016-02-10,7 227 | 2016-02-11,10 228 | 2016-02-12,7 229 | 2016-02-13,8 230 | 2016-02-14,6 231 | 2016-02-15,4 232 | 2016-02-16,4 233 | 2016-02-17,16 234 | 2016-02-18,11 235 | 2016-02-19,5 236 | 2016-02-20,11 237 | 2016-02-21,9 238 | 2016-02-22,5 239 | 2016-02-23,8 240 | 2016-02-24,5 241 | 2016-02-25,11 242 | 2016-02-26,13 243 | 2016-02-27,20 244 | 2016-02-28,5 245 | 2016-02-29,13 246 | 2016-03-01,4 247 | 2016-03-02,8 248 | 2016-03-03,6 249 | 2016-03-04,14 250 | 2016-03-05,9 251 | 2016-03-06,9 252 | 2016-03-07,6 253 | 2016-03-08,8 254 | 2016-03-09,8 255 | 2016-03-10,5 256 | 2016-03-11,11 257 | 2016-03-12,11 258 | 2016-03-13,12 259 | 2016-03-14,7 260 | 2016-03-15,6 261 | 2016-03-16,5 262 | 2016-03-17,8 263 | 2016-03-18,16 264 | 2016-03-19,9 265 | 2016-03-20,7 266 | 2016-03-21,17 267 | 2016-03-22,13 268 | 2016-03-23,4 269 | 2016-03-24,14 270 | 2016-03-25,13 271 | 2016-03-26,10 272 | 2016-03-27,12 273 | 2016-03-28,9 274 | 2016-03-29,19 275 | 2016-03-30,10 276 | 2016-03-31,14 277 | 2016-04-01,12 278 | 2016-04-02,15 279 | 2016-04-03,9 280 | 2016-04-04,9 281 | 2016-04-05,15 282 | 2016-04-06,12 283 | 2016-04-07,9 284 | 2016-04-08,13 285 | 2016-04-09,11 286 | 2016-04-10,10 287 | 2016-04-11,4 288 | 2016-04-12,11 289 | 2016-04-13,7 290 | 2016-04-14,10 291 | 2016-04-15,9 292 | 2016-04-16,4 293 | 2016-04-17,9 294 | 2016-04-18,47 295 | 2016-04-19,5 296 | 2016-04-20,11 297 | 2016-04-21,6 298 | 2016-04-22,8 299 | 2016-04-23,11 300 | 2016-04-24,5 301 | 2016-04-25,7 302 | 2016-04-26,8 303 | 2016-04-27,3 304 | 2016-04-28,7 305 | 2016-04-29,8 306 | 2016-04-30,7 307 | 2016-05-01,7 308 | 2016-05-02,6 309 | 2016-05-03,9 310 | 2016-05-04,8 311 | 2016-05-05,8 312 | 2016-05-06,11 313 | 2016-05-07,6 314 | 2016-05-08,11 315 | 2016-05-09,21 316 | 2016-05-10,7 317 | 2016-05-11,6 318 | 2016-05-12,12 319 | 2016-05-13,8 320 | 2016-05-14,11 321 | 2016-05-15,6 322 | 2016-05-16,4 323 | 2016-05-17,9 324 | 2016-05-18,2 325 | 2016-05-19,9 326 | 2016-05-20,6 327 | 2016-05-21,7 328 | 2016-05-22,14 329 | 2016-05-23,6 330 | 2016-05-24,5 331 | 2016-05-25,6 332 | 2016-05-26,7 333 | 2016-05-27,2 334 | 2016-05-28,6 335 | 2016-05-29,14 336 | 2016-05-30,2 337 | 2016-05-31,6 338 | 2016-06-01,10 339 | 2016-06-02,10 340 | 2016-06-03,7 341 | 2016-06-04,9 342 | 2016-06-05,55 343 | 2016-06-06,7 344 | 2016-06-07,19 345 | 2016-06-08,8 346 | 2016-06-09,12 347 | 2016-06-10,10 348 | 2016-06-11,8 349 | 2016-06-12,16 350 | 2016-06-13,8 351 | 2016-06-14,7 352 | 2016-06-15,14 353 | 2016-06-16,9 354 | 2016-06-17,4 355 | 2016-06-18,8 356 | 2016-06-19,9 357 | 2016-06-20,9 358 | 2016-06-21,19 359 | 2016-06-22,9 360 | 2016-06-23,9 361 | 2016-06-24,11 362 | 2016-06-25,19 363 | 2016-06-26,7 364 | 2016-06-27,16 365 | 2016-06-28,9 366 | 2016-06-29,7 367 | 2016-06-30,5 368 | 2016-07-01,11 369 | 2016-07-02,13 370 | 2016-07-03,9 371 | 2016-07-04,11 372 | 2016-07-05,11 373 | 2016-07-06,6 374 | 2016-07-07,10 375 | 2016-07-08,8 376 | 2016-07-09,7 377 | 2016-07-10,9 378 | 2016-07-11,8 379 | 2016-07-12,13 380 | 2016-07-13,13 381 | 2016-07-14,8 382 | 2016-07-15,13 383 | 2016-07-16,19 384 | 2016-07-17,11 385 | 2016-07-18,10 386 | 2016-07-19,7 387 | 2016-07-20,9 388 | 2016-07-21,10 389 | 2016-07-22,7 390 | 2016-07-23,11 391 | 2016-07-24,10 392 | 2016-07-25,8 393 | 2016-07-26,7 394 | 2016-07-27,6 395 | 2016-07-28,15 396 | 2016-07-29,6 397 | 2016-07-30,12 398 | 2016-07-31,16 399 | 2016-08-01,10 400 | 2016-08-02,8 401 | 2016-08-03,12 402 | 2016-08-04,8 403 | 2016-08-05,5 404 | 2016-08-06,4 405 | 2016-08-07,5 406 | 2016-08-08,15 407 | 2016-08-09,8 408 | 2016-08-10,10 409 | 2016-08-11,11 410 | 2016-08-12,14 411 | 2016-08-13,10 412 | 2016-08-14,15 413 | 2016-08-15,13 414 | 2016-08-16,7 415 | 2016-08-17,7 416 | 2016-08-18,6 417 | 2016-08-19,11 418 | 2016-08-20,4 419 | 2016-08-21,3 420 | 2016-08-22,4 421 | 2016-08-23,21 422 | 2016-08-24,3 423 | 2016-08-25,7 424 | 2016-08-26,11 425 | 2016-08-27,6 426 | 2016-08-28,9 427 | 2016-08-29,6 428 | 2016-08-30,4 429 | 2016-08-31,3 430 | 2016-09-01,9 431 | 2016-09-02,6 432 | 2016-09-03,7 433 | 2016-09-04,7 434 | 2016-09-05,11 435 | 2016-09-06,22 436 | 2016-09-07,10 437 | 2016-09-08,5 438 | 2016-09-09,9 439 | 2016-09-10,8 440 | 2016-09-11,9 441 | 2016-09-12,5 442 | 2016-09-13,3 443 | 2016-09-14,7 444 | 2016-09-15,6 445 | 2016-09-16,17 446 | 2016-09-17,11 447 | 2016-09-18,12 448 | 2016-09-19,5 449 | 2016-09-20,7 450 | 2016-09-21,9 451 | 2016-09-22,8 452 | 2016-09-23,12 453 | 2016-09-24,11 454 | 2016-09-25,6 455 | 2016-09-26,14 456 | 2016-09-27,7 457 | 2016-09-28,12 458 | 2016-09-29,8 459 | 2016-09-30,14 460 | 2016-10-01,10 461 | 2016-10-02,7 462 | 2016-10-03,5 463 | 2016-10-04,6 464 | 2016-10-05,9 465 | 2016-10-06,4 466 | 2016-10-07,0 467 | 2016-10-08,8 468 | 2016-10-09,13 469 | 2016-10-10,15 470 | 2016-10-11,8 471 | 2016-10-12,4 472 | 2016-10-13,9 473 | 2016-10-14,5 474 | 2016-10-15,10 475 | 2016-10-16,9 476 | 2016-10-17,9 477 | 2016-10-18,8 478 | 2016-10-19,4 479 | 2016-10-20,11 480 | 2016-10-21,13 481 | 2016-10-22,8 482 | 2016-10-23,11 483 | 2016-10-24,4 484 | 2016-10-25,2 485 | 2016-10-26,12 486 | 2016-10-27,4 487 | 2016-10-28,4 488 | 2016-10-29,8 489 | 2016-10-30,7 490 | 2016-10-31,8 491 | 2016-11-01,6 492 | 2016-11-02,6 493 | 2016-11-03,9 494 | 2016-11-04,6 495 | 2016-11-05,12 496 | 2016-11-06,17 497 | 2016-11-07,7 498 | 2016-11-08,8 499 | 2016-11-09,17 500 | 2016-11-10,9 501 | 2016-11-11,6 502 | -------------------------------------------------------------------------------- /Riddles/ml_medium_dataset/MlMediumTrainingData.csv: -------------------------------------------------------------------------------- 1 | x_,y_,class 2 | 13.05630213,-0.059154157,0 3 | 13.26138247,-0.080945334,0 4 | 13.11896862,0.408400993,0 5 | 13.05227605,0.368700529,0 6 | 12.99901435,0.557632013,0 7 | 12.81676544,0.770649119,0 8 | 12.87649719,1.065588432,0 9 | 12.87546306,1.046200084,0 10 | 13.2106043,1.421311692,0 11 | 13.11930767,1.767519451,0 12 | 12.93124012,1.895408266,0 13 | 13.11191457,1.839419892,0 14 | 12.65004608,1.663167705,0 15 | 12.78298128,2.062236795,0 16 | 12.81419685,2.262696877,0 17 | 12.54625458,2.495106998,0 18 | 13.01130829,2.843405851,0 19 | 12.60330186,2.828473698,0 20 | 12.84102242,3.064925273,0 21 | 12.45124048,3.337016278,0 22 | 12.63535339,3.377844501,0 23 | 12.54210402,3.418138752,0 24 | 12.74157771,3.54713967,0 25 | 12.5952327,3.693438328,0 26 | 12.25646083,3.580954427,0 27 | 12.13945657,4.111383632,0 28 | 12.57262558,4.423436203,0 29 | 12.14017497,4.54200973,0 30 | 12.03868884,4.749321534,0 31 | 12.01291632,4.41031702,0 32 | 12.21614615,4.545002196,0 33 | 11.82486243,4.729614618,0 34 | 11.84646935,5.257576319,0 35 | 11.74812509,5.152355584,0 36 | 12.05030703,5.576661541,0 37 | 11.51779385,5.723683366,0 38 | 11.64402398,5.582560188,0 39 | 11.73946668,6.063912748,0 40 | 11.70208724,6.178507024,0 41 | 11.49565376,6.11476643,0 42 | 11.5773399,6.524879705,0 43 | 11.33717216,6.246983801,0 44 | 10.94254205,6.540761305,0 45 | 11.32329942,6.696009599,0 46 | 11.08091824,6.548854822,0 47 | 10.94829889,7.191652749,0 48 | 11.07204498,7.084031666,0 49 | 10.69650671,7.462104846,0 50 | 10.95147667,7.321668039,0 51 | 10.63149599,7.496120344,0 52 | 10.25462742,7.624901852,0 53 | 10.56940176,7.657019973,0 54 | 10.53634894,7.906453936,0 55 | 10.10139326,8.316287847,0 56 | 10.01694669,8.324757372,0 57 | 9.914172128,8.028215709,0 58 | 10.10598792,8.431068282,0 59 | 9.75060093,8.322202175,0 60 | 9.464266602,8.86693425,0 61 | 9.446728839,8.903295834,0 62 | 9.478013477,8.706346845,0 63 | 9.136516979,9.202737426,0 64 | 9.10010602,9.059549949,0 65 | 9.400678948,9.001608598,0 66 | 9.165037832,9.585864453,0 67 | 8.846606292,9.229813944,0 68 | 8.626808488,9.319532627,0 69 | 8.91913504,9.427755034,0 70 | 8.590937266,9.681231826,0 71 | 8.473516793,9.939319046,0 72 | 8.194731697,9.796887311,0 73 | 8.087318864,10.35032788,0 74 | 8.099438269,10.08447336,0 75 | 8.021271846,10.54365323,0 76 | 7.917929615,10.70174166,0 77 | 7.73839494,10.82012297,0 78 | 7.698314848,10.90809233,0 79 | 7.504178776,10.53795112,0 80 | 7.045742613,11.10503244,0 81 | 6.792808508,10.80394547,0 82 | 6.705822742,10.99042822,0 83 | 6.506441176,10.86401186,0 84 | 6.889038593,11.46027749,0 85 | 6.347180476,10.95687363,0 86 | 6.114058567,11.19791768,0 87 | 6.349190506,11.41351006,0 88 | 6.246490566,11.64666545,0 89 | 5.730405119,11.68628107,0 90 | 5.526467267,11.44277437,0 91 | 5.862079133,11.77894679,0 92 | 5.286807335,11.77004115,0 93 | 5.128733466,11.93159639,0 94 | 5.387087795,11.91854107,0 95 | 5.27513668,12.15819561,0 96 | 4.662660015,12.0866183,0 97 | 4.886388102,12.19039334,0 98 | 4.619407245,12.25419385,0 99 | 4.367303697,12.48213901,0 100 | 4.385366801,12.45780078,0 101 | 4.0726918,12.38896674,0 102 | 4.011522803,12.30778951,0 103 | 3.656553759,12.56626448,0 104 | 3.529057864,12.21374763,0 105 | 3.541765889,12.33536228,0 106 | 3.362639285,12.81564308,0 107 | 3.077422811,12.61064898,0 108 | 3.11155003,12.87038647,0 109 | 2.643812284,12.39784473,0 110 | 2.982790019,12.49569183,0 111 | 2.845270702,12.50543535,0 112 | 2.263543284,12.72254612,0 113 | 2.123340021,13.02207365,0 114 | 2.124216268,12.62186816,0 115 | 2.194417167,12.66827315,0 116 | 1.893324887,12.62162111,0 117 | 1.326345027,12.81055181,0 118 | 1.351714062,12.99060901,0 119 | 1.284768059,13.21768857,0 120 | 1.060495552,12.80656813,0 121 | 0.654473168,12.90537055,0 122 | 0.536438014,12.76819829,0 123 | 0.823889214,13.14350683,0 124 | 0.175133206,13.23647161,0 125 | 0.574811604,12.88262623,0 126 | 0.348080421,12.92902608,0 127 | 0.10957257,13.1372406,0 128 | -0.318181682,13.24773949,0 129 | -0.185568718,12.78914427,0 130 | -0.329408514,12.74528993,0 131 | -0.864382105,12.97683708,0 132 | -0.745350759,12.79747472,0 133 | -0.974052818,12.66471957,0 134 | -1.274572592,13.18307649,0 135 | -1.421136655,13.10077417,0 136 | -1.703292081,12.97128062,0 137 | -1.444698465,13.1304015,0 138 | -1.853189213,12.69016543,0 139 | -1.821045985,12.78926141,0 140 | -1.999730776,12.66802399,0 141 | -2.065331568,12.81537386,0 142 | -2.24992963,12.67720964,0 143 | -2.530295783,13.00455636,0 144 | -2.532317454,12.80895332,0 145 | -3.037636462,12.72824727,0 146 | -2.933527896,12.79269036,0 147 | -3.458728482,12.47378343,0 148 | -3.255478216,12.38034795,0 149 | -3.440635216,12.48696713,0 150 | -3.634454006,12.688806,0 151 | -3.897573758,12.31011991,0 152 | -4.020058401,12.44646994,0 153 | -4.284922397,12.39592639,0 154 | -4.581076679,12.34498311,0 155 | -4.324502223,12.41076906,0 156 | -4.880256314,12.17904621,0 157 | -5.09617241,11.86662002,0 158 | -5.010897146,12.19021806,0 159 | -5.375520932,11.64568821,0 160 | -5.260016188,11.85145307,0 161 | -5.606117868,11.82616516,0 162 | -5.779985763,11.5335331,0 163 | -5.578497055,11.51122297,0 164 | -6.029997804,11.51609191,0 165 | -6.271505864,11.81735496,0 166 | -6.309649384,11.43290637,0 167 | -6.581271373,11.36100829,0 168 | -6.666507132,11.0374617,0 169 | -6.313474192,11.39237289,0 170 | -6.732222389,11.31210552,0 171 | -6.835069893,10.84518486,0 172 | -6.758790357,10.69469061,0 173 | -7.12023633,10.83839322,0 174 | -7.31756395,10.83492999,0 175 | -7.455176783,10.43329,0 176 | -7.642369733,10.73870613,0 177 | -7.968651253,10.68785913,0 178 | -7.669427863,10.44440954,0 179 | -7.853198848,10.56740278,0 180 | -8.206893837,9.909650859,0 181 | -8.263303858,10.27209917,0 182 | -8.605375341,10.05366248,0 183 | -8.466768679,9.854037231,0 184 | -8.32070403,9.907239873,0 185 | -8.574351696,9.49310539,0 186 | -8.803954392,9.261126569,0 187 | -8.982563303,9.587078829,0 188 | -8.985320168,9.312357794,0 189 | -9.206662924,9.359671932,0 190 | -9.304649282,9.160022421,0 191 | -9.635092546,8.846380785,0 192 | -9.219659491,8.696933406,0 193 | -9.474615203,8.914301933,0 194 | -9.853724041,8.679342693,0 195 | -9.906823634,8.713777004,0 196 | -9.84115226,8.241659842,0 197 | -10.08970493,8.011563018,0 198 | -10.44382712,8.067471157,0 199 | -9.976295167,8.275232705,0 200 | -10.28712177,7.942684813,0 201 | -10.4109555,7.640119552,0 202 | -10.43564824,7.644815345,0 203 | -10.71445913,7.415576711,0 204 | -10.91662213,7.380657194,0 205 | -10.77632599,7.139067023,0 206 | -11.11737267,7.271174492,0 207 | -11.24258305,7.089297276,0 208 | -11.24230312,6.837753218,0 209 | -11.32718889,6.359515501,0 210 | -11.47133268,6.451455903,0 211 | -11.58252332,6.19725243,0 212 | -11.43524998,5.965657234,0 213 | -11.34593186,6.273286295,0 214 | -11.28951858,5.838607503,0 215 | -11.82763169,5.889250835,0 216 | -11.93061653,5.817263199,0 217 | -11.55681416,5.595299147,0 218 | -11.97312227,5.334190156,0 219 | -12.08401982,5.211194881,0 220 | -11.90601221,5.234258615,0 221 | -11.88047918,4.595908592,0 222 | -12.17552674,4.433645144,0 223 | -12.06050956,4.605404777,0 224 | -11.95622376,4.646692973,0 225 | -12.47550953,4.015705163,0 226 | -12.38569925,3.927153236,0 227 | -12.54019768,4.155554594,0 228 | -12.40782018,3.706125109,0 229 | -12.33388193,3.838824463,0 230 | -12.4210413,3.629327047,0 231 | -12.2845357,3.227737367,0 232 | -12.37998593,3.039723649,0 233 | -12.76125347,2.881210371,0 234 | -12.64945528,2.678995369,0 235 | -12.79902918,2.734042415,0 236 | -13.03202874,2.539986091,0 237 | -13.00406465,2.195101499,0 238 | -13.01950884,2.380764471,0 239 | -12.80775542,1.901161576,0 240 | -13.039884,2.133930891,0 241 | -12.80318451,1.855641987,0 242 | -13.14270218,1.347753915,0 243 | -13.21777649,1.684714913,0 244 | -12.76704214,1.204249505,0 245 | -13.02559364,0.851967041,0 246 | -12.9666044,1.057673377,0 247 | -12.7365794,0.975512211,0 248 | -13.05457153,0.782942571,0 249 | -13.1407303,0.226241257,0 250 | -13.28439138,0.18997653,0 251 | -13.23668142,0.142214099,0 252 | -13.20856157,0.039585912,0 253 | -12.88947925,-0.372583611,0 254 | -13.02546182,-0.275366083,0 255 | -12.98639284,-0.443397962,0 256 | -12.95674084,-0.633202785,0 257 | -12.77811354,-0.839916163,0 258 | -12.78921468,-1.281226948,0 259 | -13.21581164,-1.263389833,0 260 | -12.72784721,-1.438297634,0 261 | -12.9962283,-1.521403295,0 262 | -12.86650339,-1.586644014,0 263 | -13.0656848,-1.578074235,0 264 | -12.95857429,-2.091340525,0 265 | -12.74680759,-1.914236158,0 266 | -12.62902739,-2.369337688,0 267 | -12.62734974,-2.4773305,0 268 | -12.75499829,-2.646410376,0 269 | -12.7945289,-3.079836843,0 270 | -12.68626384,-3.221367638,0 271 | -12.90410349,-3.114824288,0 272 | -12.73025881,-3.112162295,0 273 | -12.69606946,-3.335614649,0 274 | -12.66173017,-3.586093211,0 275 | -12.23775114,-4.028088872,0 276 | -12.10755087,-3.814593498,0 277 | -12.57760532,-3.99068061,0 278 | -12.1850002,-4.293411744,0 279 | -12.26061582,-4.657084155,0 280 | -12.35007487,-4.563134679,0 281 | -12.22792079,-4.877461547,0 282 | -12.16202496,-4.91685388,0 283 | -12.09720882,-4.926316649,0 284 | -11.93603874,-5.097059696,0 285 | -11.61719636,-5.451502947,0 286 | -11.76959776,-5.477557017,0 287 | -11.66386855,-5.854874159,0 288 | -11.4752203,-5.924028183,0 289 | -11.28663432,-5.816533538,0 290 | -11.32908376,-6.008381246,0 291 | -11.25624418,-6.144220716,0 292 | -11.12183391,-6.302898815,0 293 | -11.26719418,-6.570589495,0 294 | -11.35902341,-6.552181099,0 295 | -11.17366651,-6.703420089,0 296 | -10.75655021,-7.129255902,0 297 | -10.89067894,-6.851079924,0 298 | -10.68132565,-7.312382469,0 299 | -10.91217931,-7.367439809,0 300 | -10.55835657,-7.674475397,0 301 | -10.45584911,-7.73787451,0 302 | -10.22171449,-7.730258264,0 303 | -10.20764366,-7.604952043,0 304 | -10.44406766,-8.000814729,0 305 | -10.00300493,-8.274448054,0 306 | -10.03979114,-8.113851176,0 307 | -10.25100292,-8.163905341,0 308 | -9.644347845,-8.241752071,0 309 | -9.676678785,-8.796116433,0 310 | -9.872292,-8.642234331,0 311 | -9.274978507,-8.838383137,0 312 | -9.51671562,-9.002388869,0 313 | -9.144223889,-9.311388688,0 314 | -8.986850133,-9.122503285,0 315 | -8.872907112,-9.40023519,0 316 | -9.108421122,-9.145635775,0 317 | -8.748255404,-9.746100421,0 318 | -8.807199879,-9.867863218,0 319 | -8.870291152,-9.858464329,0 320 | -8.300463527,-9.757410896,0 321 | -8.387786358,-10.27184622,0 322 | -8.307897874,-10.18368737,0 323 | -8.188704614,-10.0707635,0 324 | -7.791015062,-10.42903887,0 325 | -7.54247284,-10.50924939,0 326 | -7.659938184,-10.50646509,0 327 | -7.456163826,-10.28500956,0 328 | -7.246038815,-10.6292465,0 329 | -7.305617443,-10.81583427,0 330 | -7.20959989,-10.650141,0 331 | -6.986548688,-10.8048442,0 332 | -6.643700524,-11.19174495,0 333 | -6.571377634,-11.39917644,0 334 | -6.634084572,-11.16075944,0 335 | -6.534630688,-11.13905954,0 336 | -6.473364867,-11.30959785,0 337 | -5.942475273,-11.48338644,0 338 | -6.283610739,-11.35682069,0 339 | -5.600730467,-11.45380962,0 340 | -5.967736602,-11.89646583,0 341 | -5.356089986,-11.47233211,0 342 | -5.249963364,-11.81481793,0 343 | -5.393903883,-11.67185255,0 344 | -5.418963737,-11.89360366,0 345 | -5.054944314,-12.06067858,0 346 | -4.974996904,-12.23021017,0 347 | -4.702913166,-12.08355963,0 348 | -4.277357977,-11.91843907,0 349 | -4.629005148,-12.36868758,0 350 | -4.43599157,-12.33996156,0 351 | -4.252317148,-12.31129507,0 352 | -3.76384559,-12.38596933,0 353 | -3.653924201,-12.24084894,0 354 | -3.507489264,-12.63739284,0 355 | -3.506349243,-12.70181897,0 356 | -3.564962403,-12.48151147,0 357 | -3.133010607,-12.78608051,0 358 | -2.832269051,-12.4334403,0 359 | -2.625573861,-12.91345157,0 360 | -2.404553213,-12.84666886,0 361 | -2.737881532,-12.97549104,0 362 | -2.243226172,-12.97151205,0 363 | -2.134298261,-12.56096706,0 364 | -1.729617041,-12.94091205,0 365 | -1.714524371,-12.60331592,0 366 | -1.811503143,-13.11504379,0 367 | -1.297637606,-12.71237084,0 368 | -1.070215215,-13.12810396,0 369 | -1.393691487,-12.79950264,0 370 | -0.973510464,-12.75343198,0 371 | -0.741943112,-12.77783065,0 372 | -0.735758363,-13.1533543,0 373 | -0.790847967,-13.0198108,0 374 | -0.19272762,-13.17715804,0 375 | -0.405596912,-12.96586368,0 376 | -0.113640957,-13.11161141,0 377 | -0.153291412,-13.07264249,0 378 | -0.005388123,-12.95223206,0 379 | 0.577888403,-13.16375195,0 380 | 0.540978354,-13.12051483,0 381 | 0.831577332,-13.06265961,0 382 | 1.152113791,-13.17711366,0 383 | 1.069499663,-12.91482481,0 384 | 1.164032472,-13.22467127,0 385 | 1.251659765,-12.86191297,0 386 | 1.75353189,-13.17874237,0 387 | 2.054060751,-12.72160089,0 388 | 1.966808464,-12.58185924,0 389 | 1.792467115,-12.55074789,0 390 | 2.30010033,-12.86770795,0 391 | 2.275774789,-12.87832019,0 392 | 2.840815786,-12.73619634,0 393 | 2.522449584,-12.43399212,0 394 | 3.035301904,-12.63165834,0 395 | 3.121818997,-12.76345057,0 396 | 3.468966571,-12.58399253,0 397 | 3.071492695,-12.60133671,0 398 | 3.604968619,-12.48235813,0 399 | 3.969661435,-12.47815658,0 400 | 4.10173822,-12.6454246,0 401 | 4.051178857,-12.40544587,0 402 | 4.049409994,-12.36162631,0 403 | 4.166779836,-12.357747,0 404 | 4.201772173,-12.02583423,0 405 | 4.43835551,-12.22820106,0 406 | 4.690547279,-12.28579078,0 407 | 4.994113422,-12.003564,0 408 | 4.809013085,-12.17896678,0 409 | 5.174907602,-12.04963349,0 410 | 5.124041173,-12.00809204,0 411 | 5.292676298,-11.61082396,0 412 | 5.836915402,-11.43578447,0 413 | 5.986099477,-11.45310817,0 414 | 6.225884076,-11.63008222,0 415 | 6.082555412,-11.25726636,0 416 | 6.233111117,-11.16322977,0 417 | 6.187207798,-11.15306775,0 418 | 6.292724967,-11.30179878,0 419 | 6.862306527,-10.98299212,0 420 | 6.867149635,-10.84921925,0 421 | 7.111447948,-10.75991581,0 422 | 7.014511032,-10.96742825,0 423 | 7.120347975,-11.09805895,0 424 | 7.626404076,-10.46120652,0 425 | 7.768292946,-10.64779438,0 426 | 7.717809629,-10.76970342,0 427 | 7.631651915,-10.25550083,0 428 | 7.741020601,-10.6133695,0 429 | 8.080978821,-10.39500523,0 430 | 8.042103446,-9.842286739,0 431 | 8.499576729,-9.952213575,0 432 | 8.574161918,-10.00054731,0 433 | 8.265413904,-9.758161489,0 434 | 8.453533774,-9.879484527,0 435 | 8.545640723,-9.663711223,0 436 | 8.674627203,-9.544007324,0 437 | 8.849536888,-9.304892541,0 438 | 9.018884444,-9.088020443,0 439 | 9.20970353,-9.217200757,0 440 | 9.160110515,-9.117167755,0 441 | 9.417042827,-8.711364001,0 442 | 9.541337548,-8.768909434,0 443 | 9.476055754,-8.912686674,0 444 | 9.713690312,-8.380217656,0 445 | 10.10207669,-8.194700859,0 446 | 10.07481197,-8.064176028,0 447 | 9.8862088,-8.426411049,0 448 | 9.973473736,-8.095857521,0 449 | 10.20657948,-7.946975835,0 450 | 10.11177399,-7.603644877,0 451 | 10.43770705,-7.722428059,0 452 | 10.85667116,-7.397688953,0 453 | 10.58175384,-7.288234217,0 454 | 10.86722605,-7.444183327,0 455 | 10.75428121,-6.972114168,0 456 | 10.75038703,-6.790372198,0 457 | 10.95174701,-6.569577442,0 458 | 11.1291155,-6.696084242,0 459 | 11.12133347,-6.761280806,0 460 | 11.11872952,-6.606570094,0 461 | 11.52892851,-6.297444024,0 462 | 11.32515671,-5.996329919,0 463 | 11.79735236,-5.884524499,0 464 | 11.52620358,-5.689152737,0 465 | 11.74303958,-5.360787604,0 466 | 11.67904152,-5.2543483,0 467 | 12.16149841,-5.235010293,0 468 | 11.74157495,-5.014689861,0 469 | 12.05128921,-4.67570341,0 470 | 12.18625832,-4.857775527,0 471 | 12.01156697,-4.61302413,0 472 | 12.22006444,-4.561506046,0 473 | 12.30142608,-4.347372487,0 474 | 12.50226313,-4.397435937,0 475 | 12.21547474,-4.009955963,0 476 | 12.25714581,-3.834016984,0 477 | 12.7330859,-3.762919961,0 478 | 12.71609017,-3.38397036,0 479 | 12.7062782,-3.350318771,0 480 | 12.88301005,-3.166880997,0 481 | 12.8188966,-2.897184359,0 482 | 12.50312733,-2.787003116,0 483 | 12.81894854,-2.907582673,0 484 | 12.82340062,-2.726667893,0 485 | 12.82687353,-2.691189459,0 486 | 13.09186747,-2.35789085,0 487 | 13.10660345,-1.977033476,0 488 | 12.96739066,-1.853939779,0 489 | 12.94284324,-1.618119071,0 490 | 12.60272934,-1.354007839,0 491 | 13.05654182,-1.350903802,0 492 | 12.90926874,-1.500600758,0 493 | 12.69823012,-0.894018448,0 494 | 12.79274911,-0.934449989,0 495 | 12.74798269,-1.020305307,0 496 | 13.23600661,-0.747049157,0 497 | 13.05123846,-0.63519521,0 498 | 13.15442658,-0.112916874,0 499 | 13.10116403,-0.412612101,0 500 | 13.26380613,0.079699682,0 501 | -9.5,-9.5,0 502 | -8.5,-9.5,0 503 | -7.5,-9.5,0 504 | -6.5,-9.5,0 505 | -5.5,-9.5,0 506 | -4.5,-9.5,0 507 | -3.5,-9.5,0 508 | -2.5,-9.5,0 509 | -1.5,-9.5,0 510 | -0.5,-9.5,0 511 | 0.5,-9.5,0 512 | 1.5,-9.5,0 513 | 2.5,-9.5,0 514 | 3.5,-9.5,0 515 | 4.5,-9.5,0 516 | 5.5,-9.5,0 517 | 6.5,-9.5,0 518 | 7.5,-9.5,0 519 | 8.5,-9.5,0 520 | 9.5,-9.5,0 521 | 9.5,-9.5,0 522 | 9.5,-8.5,0 523 | 9.5,-7.5,0 524 | 9.5,-6.5,0 525 | 9.5,-5.5,0 526 | 9.5,-4.5,0 527 | 9.5,-3.5,0 528 | 9.5,-2.5,0 529 | 9.5,-1.5,0 530 | 9.5,-0.5,0 531 | 9.5,0.5,0 532 | 9.5,1.5,0 533 | 9.5,2.5,0 534 | 9.5,3.5,0 535 | 9.5,4.5,0 536 | 9.5,5.5,0 537 | 9.5,6.5,0 538 | 9.5,7.5,0 539 | 9.5,8.5,0 540 | 9.5,9.5,0 541 | 9.5,9.5,0 542 | 8.5,9.5,0 543 | 7.5,9.5,0 544 | 6.5,9.5,0 545 | 5.5,9.5,0 546 | 4.5,9.5,0 547 | 3.5,9.5,0 548 | 2.5,9.5,0 549 | 1.5,9.5,0 550 | 0.5,9.5,0 551 | -0.5,9.5,0 552 | -1.5,9.5,0 553 | -2.5,9.5,0 554 | -3.5,9.5,0 555 | -4.5,9.5,0 556 | -5.5,9.5,0 557 | -6.5,9.5,0 558 | -7.5,9.5,0 559 | -8.5,9.5,0 560 | -9.5,9.5,0 561 | -9.5,9.5,0 562 | -9.5,8.5,0 563 | -9.5,7.5,0 564 | -9.5,6.5,0 565 | -9.5,5.5,0 566 | -9.5,4.5,0 567 | -9.5,3.5,0 568 | -9.5,2.5,0 569 | -9.5,1.5,0 570 | -9.5,0.5,0 571 | -9.5,-0.5,0 572 | -9.5,-2.5,0 573 | -9.5,-3.5,0 574 | -9.5,-4.5,0 575 | -9.5,-5.5,0 576 | -9.5,-6.5,0 577 | -9.5,-7.5,0 578 | -9.5,-8.5,0 579 | -9.5,-9.5,0 580 | -0.136175583,-0.137853564,0 581 | 0.076768187,29.9762779,0 582 | -25.84043163,15.23863667,0 583 | -0.188621273,0.214696658,0 584 | -0.004840853,0.049004353,0 585 | 0.037672386,-0.036326911,0 586 | -0.117654298,0.408935228,0 587 | -0.249119354,1.053669297,0 588 | -0.220743076,1.240168997,0 589 | -0.205207971,1.481867174,0 590 | 0.04276231,1.639125722,0 591 | -0.093182227,1.942336366,0 592 | -0.226763758,1.797000701,0 593 | -0.124608092,2.046179449,0 594 | -0.023748133,2.651646344,0 595 | -0.278714293,2.566047088,0 596 | -0.237750435,2.949067784,0 597 | -0.214169022,2.99035587,0 598 | -0.092183266,3.436619681,0 599 | -0.101668638,3.827430497,0 600 | 0.28096791,4.169785432,0 601 | -0.123600263,4.011890153,0 602 | 0.190832556,4.565839815,0 603 | 0.155772468,4.498194866,0 604 | -0.282683572,4.821395075,0 605 | 0.108369931,5.506803212,0 606 | 0.243422706,5.811830308,0 607 | 0.07977492,5.778933129,0 608 | -0.226907318,6.000697255,0 609 | -0.080030932,6.087883859,0 610 | 0.048888908,6.282960434,0 611 | 0.146224794,7.038805284,0 612 | 0.146524408,6.832970942,0 613 | -0.175564036,7.116090458,0 614 | -0.193133364,7.357769296,0 615 | 0.151341665,7.647388531,0 616 | 0.191221626,8.24240923,0 617 | -0.286328439,8.61638991,0 618 | -0.117804149,8.301748587,0 619 | -0.165830103,8.847209868,0 620 | -0.244895709,9.144354081,0 621 | 0.034138012,9.068966432,0 622 | -0.147255459,9.429229457,0 623 | 0.10636531,10.12510919,0 624 | -0.179954904,10.24730168,0 625 | 0.175734213,10.46512906,0 626 | 0.0140227,10.59937459,0 627 | 0.254554212,10.61339957,0 628 | -0.19783596,11.33426358,0 629 | -0.298304173,11.12736888,0 630 | -0.165517832,11.8135178,0 631 | -0.084866303,11.83375101,0 632 | -0.179944707,12.07706789,0 633 | 0.249084116,12.57645315,0 634 | -0.252428798,12.53166568,0 635 | 0.117210184,12.57878444,0 636 | -0.071165288,13.0671296,0 637 | -0.146325913,13.55629658,0 638 | 0.053215553,13.3867079,0 639 | -0.021263465,13.62090611,0 640 | -0.051464901,14.28323716,0 641 | -0.254317545,14.38302925,0 642 | -0.13808127,14.58337629,0 643 | -0.083046581,15.13051868,0 644 | -0.292766731,15.0964898,0 645 | 0.155662785,15.41858549,0 646 | 0.163531081,15.77467544,0 647 | 0.299292534,15.89729502,0 648 | 0.044820661,15.89144851,0 649 | 0.050885892,16.3160535,0 650 | -0.048616994,16.90312771,0 651 | 0.279428672,16.59111346,0 652 | -0.086200339,17.03798012,0 653 | -0.269219213,17.22089761,0 654 | 0.099390653,17.75044568,0 655 | 0.296643085,17.81213035,0 656 | 0.272693713,18.07063867,0 657 | -0.042542644,18.69446083,0 658 | 0.151978697,18.57820841,0 659 | 0.114319423,18.97400333,0 660 | 0.240368031,19.26211,0 661 | 0.257209335,19.35683782,0 662 | 0.266386787,19.68500547,0 663 | 0.191408396,19.81341229,0 664 | -0.190267735,20.17055689,0 665 | -0.166471234,20.12159879,0 666 | 0.195242134,20.74520151,0 667 | 0.155977478,20.71366957,0 668 | -0.158222513,20.88813549,0 669 | 0.154240386,21.51883003,0 670 | -0.123247204,21.95847986,0 671 | -0.093682165,22.06567497,0 672 | 0.27031913,21.9659019,0 673 | -0.144460393,22.31518273,0 674 | -0.004653709,22.96592706,0 675 | 0.213205456,22.68732254,0 676 | -0.214055596,23.00732438,0 677 | 0.217135045,23.62537466,0 678 | -0.189446264,23.53853746,0 679 | 0.213047442,23.98509111,0 680 | 0.166802537,24.04728752,0 681 | -0.002477033,24.321969,0 682 | 0.006303196,24.58605845,0 683 | -0.197997547,25.07009471,0 684 | 0.078098959,24.92098116,0 685 | 0.065837584,25.63445313,0 686 | -0.175252085,25.75528912,0 687 | 0.111268838,25.93320526,0 688 | -0.014875569,26.28245917,0 689 | -0.219609787,26.34036588,0 690 | 0.027750379,26.87815032,0 691 | 0.114814997,26.73211175,0 692 | 0.010445013,27.12441403,0 693 | 0.217762539,27.40654108,0 694 | -0.285339883,27.95923353,0 695 | -0.190266726,28.18942892,0 696 | -0.07444194,28.48400795,0 697 | 0.264389542,28.49126861,0 698 | -0.288064843,28.94816055,0 699 | 0.23973168,28.70790837,0 700 | 0.237955739,29.36342596,0 701 | -4.86E-05,29.22263626,0 702 | 0.120743878,29.94533156,0 703 | 0.134399138,30.05885574,0 704 | 0.07204863,30.23198785,0 705 | -0.150122773,29.99742757,0 706 | -0.603392329,29.71417067,0 707 | -0.824748213,29.52172483,0 708 | -0.664067634,29.27172666,0 709 | -1.258189764,29.34407884,0 710 | -1.076401232,29.49235305,0 711 | -1.698526772,29.2565956,0 712 | -1.8504656,28.77757625,0 713 | -2.039185544,29.01654909,0 714 | -2.469082394,28.71958077,0 715 | -2.165975777,28.63668008,0 716 | -2.905816039,28.70614464,0 717 | -3.084657017,28.43740422,0 718 | -3.134936784,28.15898308,0 719 | -3.294249514,28.06530477,0 720 | -3.271125181,27.90387931,0 721 | -4.003969306,28.09863803,0 722 | -4.214849212,27.8166676,0 723 | -4.236922315,27.73542771,0 724 | -4.659503041,27.35161479,0 725 | -4.376582067,27.58576812,0 726 | -4.962295852,27.21414385,0 727 | -5.139808471,26.82514763,0 728 | -5.154884573,26.9344891,0 729 | -5.315068184,26.94995005,0 730 | -5.809019182,26.81644317,0 731 | -5.793786913,26.40676636,0 732 | -5.974901406,26.23282519,0 733 | -6.364087167,26.1671344,0 734 | -6.68534886,26.35241412,0 735 | -6.542920057,25.83292761,0 736 | -6.880173643,25.76062935,0 737 | -7.106911329,25.58946603,0 738 | -7.603877361,25.42145796,0 739 | -7.868469995,25.58837745,0 740 | -7.982744943,25.3549221,0 741 | -8.348712517,25.2833279,0 742 | -8.57000751,25.20129798,0 743 | -8.720188345,25.10927403,0 744 | -8.503734003,25.18218923,0 745 | -8.7857227,24.79284597,0 746 | -9.225987392,24.58385434,0 747 | -9.371195466,24.57955465,0 748 | -9.735009189,24.5821598,0 749 | -10.05371099,24.62701039,0 750 | -9.792372189,24.24760878,0 751 | -10.46740738,23.938433,0 752 | -10.35312766,23.96843436,0 753 | -10.61359758,23.71138382,0 754 | -10.78670344,23.93739909,0 755 | -11.22722492,23.39462601,0 756 | -11.10054422,23.33220169,0 757 | -11.27898563,23.1433002,0 758 | -11.8099878,23.17686468,0 759 | -12.00846629,23.33219003,0 760 | -12.32115783,23.02901241,0 761 | -12.43526487,22.69343922,0 762 | -12.62882353,22.81860266,0 763 | -12.95600462,22.48481155,0 764 | -13.08396091,22.6465227,0 765 | -13.10449436,22.05485641,0 766 | -13.57406843,22.14924651,0 767 | -13.72924321,21.83734845,0 768 | -13.83096099,21.81006682,0 769 | -13.98929343,21.68476946,0 770 | -14.66878218,21.69872365,0 771 | -14.55323111,21.5994463,0 772 | -14.97049745,21.2994357,0 773 | -15.30500065,21.15791085,0 774 | -15.75764608,20.86779066,0 775 | -15.51016571,20.69192774,0 776 | -16.02692228,20.89120695,0 777 | -15.89389933,20.74036918,0 778 | -16.22353403,20.7924525,0 779 | -16.72474923,20.1683576,0 780 | -17.07393072,20.3025603,0 781 | -17.273892,20.02007083,0 782 | -16.955469,19.91443888,0 783 | -17.42503623,20.17751464,0 784 | -17.79367285,19.91936458,0 785 | -18.07452837,19.42255286,0 786 | -17.87160283,19.26005982,0 787 | -18.50396025,19.33996691,0 788 | -18.34399331,19.21170327,0 789 | -18.56330194,19.09231419,0 790 | -19.01496271,19.30901154,0 791 | -19.22005282,19.05284201,0 792 | -19.24678294,18.79133111,0 793 | -19.45103434,18.63675709,0 794 | -19.89111731,18.33132989,0 795 | -19.89144081,18.42670241,0 796 | -20.29524131,18.46295173,0 797 | -20.53262489,17.87882198,0 798 | -20.96180581,17.97323193,0 799 | -20.79612355,17.89448942,0 800 | -20.91376552,17.92178751,0 801 | -21.17080207,17.94518033,0 802 | -21.88619068,17.73605257,0 803 | -22.07612415,17.11122695,0 804 | -21.77698524,17.55901754,0 805 | -22.00000568,16.99072189,0 806 | -22.32617133,16.79953923,0 807 | -22.71290934,17.05726346,0 808 | -22.81321812,16.66590339,0 809 | -23.24221119,16.35724985,0 810 | -23.18702388,16.48138986,0 811 | -23.56399013,16.50024815,0 812 | -23.98021642,16.27965003,0 813 | -24.15334457,15.97990488,0 814 | -24.46474693,16.16064513,0 815 | -24.21049843,16.12628069,0 816 | -24.94690316,15.97336809,0 817 | -24.78983278,15.39942957,0 818 | -24.85514595,15.80092897,0 819 | -25.11786866,15.21438355,0 820 | -25.35825281,15.0173517,0 821 | -25.66800433,15.34905053,0 822 | -26.01043494,14.84129216,0 823 | -25.88235573,15.06256846,0 824 | -25.58461811,14.68885047,0 825 | -25.68027453,14.55477102,0 826 | -25.14636171,14.8594149,0 827 | -25.29023209,14.43605255,0 828 | -25.00167236,14.17130448,0 829 | -24.35571224,14.21361336,0 830 | -24.2003129,13.76889158,0 831 | -23.94279881,13.8455049,0 832 | -23.75444809,13.6576227,0 833 | -23.71198626,13.72394957,0 834 | -23.28829027,13.43202654,0 835 | -23.12309352,13.50169864,0 836 | -22.71317171,13.1612031,0 837 | -22.98220564,13.08183533,0 838 | -22.26466057,12.98714052,0 839 | -22.50031821,13.04707397,0 840 | -22.24968347,12.85811694,0 841 | -22.08357861,12.41312262,0 842 | -21.52355002,12.68588714,0 843 | -21.18568867,12.12074977,0 844 | -20.91194541,11.9992389,0 845 | -21.16438014,11.93720789,0 846 | -20.68932857,11.95710109,0 847 | -20.37738132,11.94665122,0 848 | -20.24169254,11.77587656,0 849 | -20.05081644,11.3022226,0 850 | -19.74124936,11.46953509,0 851 | -19.62932394,11.23379467,0 852 | -19.44474128,11.02666148,0 853 | -19.28882293,10.88504681,0 854 | -18.87619557,10.89858823,0 855 | -19.03239249,10.7872871,0 856 | -18.45581973,10.46603219,0 857 | -18.3909998,10.84051488,0 858 | -18.10244089,10.33703624,0 859 | -17.67849479,10.43999923,0 860 | -17.86016427,9.917959825,0 861 | -17.35244481,10.33004505,0 862 | -17.27941905,9.781238216,0 863 | -17.20215934,9.992128157,0 864 | -16.91939027,9.554616834,0 865 | -16.54068191,9.716955595,0 866 | -16.31059102,9.40061518,0 867 | -16.199231,9.544796822,0 868 | -15.68488988,8.979520294,0 869 | -15.71777862,9.372217794,0 870 | -15.43066857,8.673222742,0 871 | -15.12132482,8.774600138,0 872 | -15.0960543,8.863468484,0 873 | -14.96421467,8.469286923,0 874 | -14.66244652,8.280468897,0 875 | -14.24943841,8.429893713,0 876 | -14.41554105,8.36856615,0 877 | -13.95505808,7.998572546,0 878 | -13.59561874,8.100496312,0 879 | -13.55154389,7.91534084,0 880 | -13.38191031,7.912222168,0 881 | -13.03551801,7.367375996,0 882 | -12.81788409,7.440998389,0 883 | -12.55790956,7.087126283,0 884 | -12.31564299,7.031228402,0 885 | -12.36418742,7.002141098,0 886 | -11.93536436,6.856690847,0 887 | -11.70026281,6.809307294,0 888 | -11.77801798,6.916878447,0 889 | -11.53704634,6.790452964,0 890 | -11.43318163,6.278940122,0 891 | -10.87425486,6.582921056,0 892 | -10.42496305,6.326128804,0 893 | -10.27149639,6.331143479,0 894 | -10.08255255,5.83654725,0 895 | -9.862908351,5.912152494,0 896 | -9.588133015,5.94854518,0 897 | -9.407384479,5.246740841,0 898 | -9.434137598,5.498603219,0 899 | -8.966058553,5.368753845,0 900 | -8.750374092,5.256265742,0 901 | -9.012544695,4.857518964,0 902 | -8.804791955,4.811493016,0 903 | -8.321674962,5.08782523,0 904 | -8.244989633,4.484442014,0 905 | -8.147695482,4.298131585,0 906 | -7.690228852,4.303516993,0 907 | -7.178851231,4.245851608,0 908 | -7.387520682,3.890575983,0 909 | -6.908070717,4.31290964,0 910 | -6.51236671,3.650900507,0 911 | -6.468600131,3.640727254,0 912 | -6.48002357,3.718703142,0 913 | -5.99925024,3.365764019,0 914 | -5.739930335,3.2072931,0 915 | -5.643821925,3.0304598,0 916 | -5.480556216,2.887932637,0 917 | -5.425414212,2.924773154,0 918 | -4.752923847,3.135631843,0 919 | -4.935632042,2.621141274,0 920 | -4.454709568,2.518127558,0 921 | -4.33638968,2.263699873,0 922 | -4.151771629,2.140598342,0 923 | -4.11515852,2.172490333,0 924 | -3.97085558,2.022220729,0 925 | -3.757183734,1.871831788,0 926 | -3.180497828,2.000084975,0 927 | -3.347399021,1.708193958,0 928 | -2.779362815,1.581339158,0 929 | -2.680534728,1.222807768,0 930 | -2.321428763,1.44597239,0 931 | -2.169447561,1.408495788,0 932 | -1.80584196,1.070855521,0 933 | -1.848100664,0.78415632,0 934 | -1.800890499,1.034434161,0 935 | -1.487965436,0.885372155,0 936 | -0.919177076,0.477827951,0 937 | -1.075482081,0.361348996,0 938 | -0.521644153,0.445797282,0 939 | -0.454953827,0.087737882,0 940 | -0.356562391,0.257647901,0 941 | 0.192124631,-0.041794596,0 942 | 0.136175583,0.137853564,0 943 | -0.076768187,-29.9762779,0 944 | 25.84043163,-15.23863667,0 945 | 0.188621273,-0.214696658,0 946 | 0.004840853,-0.049004353,0 947 | -0.037672386,0.036326911,0 948 | 0.117654298,-0.408935228,0 949 | 0.249119354,-1.053669297,0 950 | 0.220743076,-1.240168997,0 951 | 0.205207971,-1.481867174,0 952 | -0.04276231,-1.639125722,0 953 | 0.093182227,-1.942336366,0 954 | 0.226763758,-1.797000701,0 955 | 0.124608092,-2.046179449,0 956 | 0.023748133,-2.651646344,0 957 | 0.278714293,-2.566047088,0 958 | 0.237750435,-2.949067784,0 959 | 0.214169022,-2.99035587,0 960 | 0.092183266,-3.436619681,0 961 | 0.101668638,-3.827430497,0 962 | -0.28096791,-4.169785432,0 963 | 0.123600263,-4.011890153,0 964 | -0.190832556,-4.565839815,0 965 | -0.155772468,-4.498194866,0 966 | 0.282683572,-4.821395075,0 967 | -0.108369931,-5.506803212,0 968 | -0.243422706,-5.811830308,0 969 | -0.07977492,-5.778933129,0 970 | 0.226907318,-6.000697255,0 971 | 0.080030932,-6.087883859,0 972 | -0.048888908,-6.282960434,0 973 | -0.146224794,-7.038805284,0 974 | -0.146524408,-6.832970942,0 975 | 0.175564036,-7.116090458,0 976 | 0.193133364,-7.357769296,0 977 | -0.151341665,-7.647388531,0 978 | -0.191221626,-8.24240923,0 979 | 0.117804149,-8.301748587,0 980 | 0.165830103,-8.847209868,0 981 | 0.244895709,-9.144354081,0 982 | -0.034138012,-9.068966432,0 983 | 0.147255459,-9.429229457,0 984 | -0.10636531,-10.12510919,0 985 | 0.179954904,-10.24730168,0 986 | -0.175734213,-10.46512906,0 987 | -0.0140227,-10.59937459,0 988 | -0.254554212,-10.61339957,0 989 | 0.19783596,-11.33426358,0 990 | 0.298304173,-11.12736888,0 991 | 0.165517832,-11.8135178,0 992 | 0.084866303,-11.83375101,0 993 | 0.179944707,-12.07706789,0 994 | -0.249084116,-12.57645315,0 995 | 0.252428798,-12.53166568,0 996 | -0.117210184,-12.57878444,0 997 | 0.071165288,-13.0671296,0 998 | 0.146325913,-13.55629658,0 999 | -0.053215553,-13.3867079,0 1000 | 0.021263465,-13.62090611,0 1001 | 0.051464901,-14.28323716,0 1002 | 0.254317545,-14.38302925,0 1003 | 0.13808127,-14.58337629,0 1004 | 0.083046581,-15.13051868,0 1005 | 0.292766731,-15.0964898,0 1006 | -0.155662785,-15.41858549,0 1007 | -0.163531081,-15.77467544,0 1008 | -0.299292534,-15.89729502,0 1009 | -0.044820661,-15.89144851,0 1010 | -0.050885892,-16.3160535,0 1011 | 0.048616994,-16.90312771,0 1012 | -0.279428672,-16.59111346,0 1013 | 0.086200339,-17.03798012,0 1014 | 0.269219213,-17.22089761,0 1015 | -0.099390653,-17.75044568,0 1016 | -0.296643085,-17.81213035,0 1017 | -0.272693713,-18.07063867,0 1018 | 0.042542644,-18.69446083,0 1019 | -0.151978697,-18.57820841,0 1020 | -0.114319423,-18.97400333,0 1021 | -0.240368031,-19.26211,0 1022 | -0.257209335,-19.35683782,0 1023 | -0.266386787,-19.68500547,0 1024 | -0.191408396,-19.81341229,0 1025 | 0.190267735,-20.17055689,0 1026 | 0.166471234,-20.12159879,0 1027 | -0.195242134,-20.74520151,0 1028 | -0.155977478,-20.71366957,0 1029 | 0.158222513,-20.88813549,0 1030 | -0.154240386,-21.51883003,0 1031 | 0.123247204,-21.95847986,0 1032 | 0.093682165,-22.06567497,0 1033 | -0.27031913,-21.9659019,0 1034 | 0.144460393,-22.31518273,0 1035 | 0.004653709,-22.96592706,0 1036 | -0.213205456,-22.68732254,0 1037 | 0.214055596,-23.00732438,0 1038 | -0.217135045,-23.62537466,0 1039 | 0.189446264,-23.53853746,0 1040 | -0.213047442,-23.98509111,0 1041 | -0.166802537,-24.04728752,0 1042 | 0.002477033,-24.321969,0 1043 | -0.006303196,-24.58605845,0 1044 | 0.197997547,-25.07009471,0 1045 | -0.078098959,-24.92098116,0 1046 | -0.065837584,-25.63445313,0 1047 | 0.175252085,-25.75528912,0 1048 | -0.111268838,-25.93320526,0 1049 | 0.014875569,-26.28245917,0 1050 | 0.219609787,-26.34036588,0 1051 | -0.027750379,-26.87815032,0 1052 | -0.114814997,-26.73211175,0 1053 | -0.010445013,-27.12441403,0 1054 | -0.217762539,-27.40654108,0 1055 | 0.285339883,-27.95923353,0 1056 | 0.190266726,-28.18942892,0 1057 | 0.07444194,-28.48400795,0 1058 | -0.264389542,-28.49126861,0 1059 | 0.288064843,-28.94816055,0 1060 | -0.23973168,-28.70790837,0 1061 | -0.237955739,-29.36342596,0 1062 | 4.86E-05,-29.22263626,0 1063 | -0.120743878,-29.94533156,0 1064 | -0.134399138,-30.05885574,0 1065 | -0.07204863,-30.23198785,0 1066 | 0.150122773,-29.99742757,0 1067 | 0.603392329,-29.71417067,0 1068 | 0.824748213,-29.52172483,0 1069 | 0.664067634,-29.27172666,0 1070 | 1.258189764,-29.34407884,0 1071 | 1.076401232,-29.49235305,0 1072 | 1.698526772,-29.2565956,0 1073 | 1.8504656,-28.77757625,0 1074 | 2.039185544,-29.01654909,0 1075 | 2.469082394,-28.71958077,0 1076 | 2.165975777,-28.63668008,0 1077 | 2.905816039,-28.70614464,0 1078 | 3.084657017,-28.43740422,0 1079 | 3.134936784,-28.15898308,0 1080 | 3.294249514,-28.06530477,0 1081 | 3.271125181,-27.90387931,0 1082 | 4.003969306,-28.09863803,0 1083 | 4.214849212,-27.8166676,0 1084 | 4.236922315,-27.73542771,0 1085 | 4.659503041,-27.35161479,0 1086 | 4.376582067,-27.58576812,0 1087 | 4.962295852,-27.21414385,0 1088 | 5.139808471,-26.82514763,0 1089 | 5.154884573,-26.9344891,0 1090 | 5.315068184,-26.94995005,0 1091 | 5.809019182,-26.81644317,0 1092 | 5.793786913,-26.40676636,0 1093 | 5.974901406,-26.23282519,0 1094 | 6.364087167,-26.1671344,0 1095 | 6.68534886,-26.35241412,0 1096 | 6.542920057,-25.83292761,0 1097 | 6.880173643,-25.76062935,0 1098 | 7.106911329,-25.58946603,0 1099 | 7.603877361,-25.42145796,0 1100 | 7.868469995,-25.58837745,0 1101 | 7.982744943,-25.3549221,0 1102 | 8.348712517,-25.2833279,0 1103 | 8.57000751,-25.20129798,0 1104 | 8.720188345,-25.10927403,0 1105 | 8.503734003,-25.18218923,0 1106 | 8.7857227,-24.79284597,0 1107 | 9.371195466,-24.57955465,0 1108 | 9.735009189,-24.5821598,0 1109 | 10.05371099,-24.62701039,0 1110 | 9.792372189,-24.24760878,0 1111 | 10.46740738,-23.938433,0 1112 | 10.35312766,-23.96843436,0 1113 | 10.61359758,-23.71138382,0 1114 | 10.78670344,-23.93739909,0 1115 | 11.22722492,-23.39462601,0 1116 | 11.10054422,-23.33220169,0 1117 | 11.27898563,-23.1433002,0 1118 | 11.8099878,-23.17686468,0 1119 | 12.00846629,-23.33219003,0 1120 | 12.32115783,-23.02901241,0 1121 | 12.43526487,-22.69343922,0 1122 | 12.62882353,-22.81860266,0 1123 | 12.95600462,-22.48481155,0 1124 | 13.08396091,-22.6465227,0 1125 | 13.10449436,-22.05485641,0 1126 | 13.57406843,-22.14924651,0 1127 | 13.72924321,-21.83734845,0 1128 | 13.83096099,-21.81006682,0 1129 | 13.98929343,-21.68476946,0 1130 | 14.66878218,-21.69872365,0 1131 | 14.55323111,-21.5994463,0 1132 | 14.97049745,-21.2994357,0 1133 | 15.23506251,-21.51789341,0 1134 | 15.30500065,-21.15791085,0 1135 | 15.75764608,-20.86779066,0 1136 | 15.51016571,-20.69192774,0 1137 | 16.02692228,-20.89120695,0 1138 | 15.89389933,-20.74036918,0 1139 | 16.22353403,-20.7924525,0 1140 | 16.72474923,-20.1683576,0 1141 | 17.07393072,-20.3025603,0 1142 | 17.273892,-20.02007083,0 1143 | 16.955469,-19.91443888,0 1144 | 17.42503623,-20.17751464,0 1145 | 17.79367285,-19.91936458,0 1146 | 18.07452837,-19.42255286,0 1147 | 17.87160283,-19.26005982,0 1148 | 18.50396025,-19.33996691,0 1149 | 18.34399331,-19.21170327,0 1150 | 18.56330194,-19.09231419,0 1151 | 19.01496271,-19.30901154,0 1152 | 19.22005282,-19.05284201,0 1153 | 19.24678294,-18.79133111,0 1154 | 19.45103434,-18.63675709,0 1155 | 19.89111731,-18.33132989,0 1156 | 19.89144081,-18.42670241,0 1157 | 20.29524131,-18.46295173,0 1158 | 20.53262489,-17.87882198,0 1159 | 20.96180581,-17.97323193,0 1160 | 20.79612355,-17.89448942,0 1161 | 20.91376552,-17.92178751,0 1162 | 21.17080207,-17.94518033,0 1163 | 21.88619068,-17.73605257,0 1164 | 22.07612415,-17.11122695,0 1165 | 21.77698524,-17.55901754,0 1166 | 22.00000568,-16.99072189,0 1167 | 22.32617133,-16.79953923,0 1168 | 22.71290934,-17.05726346,0 1169 | 22.81321812,-16.66590339,0 1170 | 23.24221119,-16.35724985,0 1171 | 23.18702388,-16.48138986,0 1172 | 23.56399013,-16.50024815,0 1173 | 23.98021642,-16.27965003,0 1174 | 24.15334457,-15.97990488,0 1175 | 24.46474693,-16.16064513,0 1176 | 24.21049843,-16.12628069,0 1177 | 24.94690316,-15.97336809,0 1178 | 24.78983278,-15.39942957,0 1179 | 24.85514595,-15.80092897,0 1180 | 25.11786866,-15.21438355,0 1181 | 25.35825281,-15.0173517,0 1182 | 25.66800433,-15.34905053,0 1183 | 26.01043494,-14.84129216,0 1184 | 25.88235573,-15.06256846,0 1185 | 25.58461811,-14.68885047,0 1186 | 25.68027453,-14.55477102,0 1187 | 25.14636171,-14.8594149,0 1188 | 25.29023209,-14.43605255,0 1189 | 25.00167236,-14.17130448,0 1190 | 24.65175434,-14.37134763,0 1191 | 24.35571224,-14.21361336,0 1192 | 24.2003129,-13.76889158,0 1193 | 23.94279881,-13.8455049,0 1194 | 23.75444809,-13.6576227,0 1195 | 23.71198626,-13.72394957,0 1196 | 23.28829027,-13.43202654,0 1197 | 23.12309352,-13.50169864,0 1198 | 22.71317171,-13.1612031,0 1199 | 22.98220564,-13.08183533,0 1200 | 22.26466057,-12.98714052,0 1201 | 22.50031821,-13.04707397,0 1202 | 22.24968347,-12.85811694,0 1203 | 22.08357861,-12.41312262,0 1204 | 21.52355002,-12.68588714,0 1205 | 21.18568867,-12.12074977,0 1206 | 20.91194541,-11.9992389,0 1207 | 21.16438014,-11.93720789,0 1208 | 20.68932857,-11.95710109,0 1209 | 20.37738132,-11.94665122,0 1210 | 20.24169254,-11.77587656,0 1211 | 20.05081644,-11.3022226,0 1212 | 19.74124936,-11.46953509,0 1213 | 19.62932394,-11.23379467,0 1214 | 19.44474128,-11.02666148,0 1215 | 19.28882293,-10.88504681,0 1216 | 18.87619557,-10.89858823,0 1217 | 19.03239249,-10.7872871,0 1218 | 18.45581973,-10.46603219,0 1219 | 18.3909998,-10.84051488,0 1220 | 18.10244089,-10.33703624,0 1221 | 17.67849479,-10.43999923,0 1222 | 17.86016427,-9.917959825,0 1223 | 17.35244481,-10.33004505,0 1224 | 17.27941905,-9.781238216,0 1225 | 17.20215934,-9.992128157,0 1226 | 16.91939027,-9.554616834,0 1227 | 16.54068191,-9.716955595,0 1228 | 16.31059102,-9.40061518,0 1229 | 16.199231,-9.544796822,0 1230 | 15.68488988,-8.979520294,0 1231 | 15.71777862,-9.372217794,0 1232 | 15.43066857,-8.673222742,0 1233 | 15.12132482,-8.774600138,0 1234 | 15.0960543,-8.863468484,0 1235 | 14.96421467,-8.469286923,0 1236 | 14.66244652,-8.280468897,0 1237 | 14.24943841,-8.429893713,0 1238 | 14.41554105,-8.36856615,0 1239 | 13.95505808,-7.998572546,0 1240 | 13.59561874,-8.100496312,0 1241 | 13.55154389,-7.91534084,0 1242 | 13.38191031,-7.912222168,0 1243 | 13.03551801,-7.367375996,0 1244 | 12.81788409,-7.440998389,0 1245 | 12.55790956,-7.087126283,0 1246 | 12.31564299,-7.031228402,0 1247 | 12.36418742,-7.002141098,0 1248 | 11.93536436,-6.856690847,0 1249 | 11.70026281,-6.809307294,0 1250 | 11.77801798,-6.916878447,0 1251 | 11.53704634,-6.790452964,0 1252 | 11.43318163,-6.278940122,0 1253 | 10.87425486,-6.582921056,0 1254 | 10.42496305,-6.326128804,0 1255 | 10.27149639,-6.331143479,0 1256 | 10.08255255,-5.83654725,0 1257 | 9.862908351,-5.912152494,0 1258 | 9.588133015,-5.94854518,0 1259 | 9.407384479,-5.246740841,0 1260 | 9.434137598,-5.498603219,0 1261 | 8.966058553,-5.368753845,0 1262 | 8.750374092,-5.256265742,0 1263 | 9.012544695,-4.857518964,0 1264 | 8.804791955,-4.811493016,0 1265 | 8.321674962,-5.08782523,0 1266 | 8.244989633,-4.484442014,0 1267 | 8.147695482,-4.298131585,0 1268 | 7.690228852,-4.303516993,0 1269 | 7.178851231,-4.245851608,0 1270 | 7.387520682,-3.890575983,0 1271 | 6.908070717,-4.31290964,0 1272 | 6.51236671,-3.650900507,0 1273 | 6.468600131,-3.640727254,0 1274 | 6.48002357,-3.718703142,0 1275 | 5.99925024,-3.365764019,0 1276 | 5.739930335,-3.2072931,0 1277 | 5.643821925,-3.0304598,0 1278 | 5.480556216,-2.887932637,0 1279 | 5.425414212,-2.924773154,0 1280 | 4.752923847,-3.135631843,0 1281 | 4.935632042,-2.621141274,0 1282 | 4.454709568,-2.518127558,0 1283 | 4.33638968,-2.263699873,0 1284 | 4.151771629,-2.140598342,0 1285 | 4.11515852,-2.172490333,0 1286 | 3.97085558,-2.022220729,0 1287 | 3.757183734,-1.871831788,0 1288 | 3.180497828,-2.000084975,0 1289 | 3.347399021,-1.708193958,0 1290 | 2.779362815,-1.581339158,0 1291 | 2.680534728,-1.222807768,0 1292 | 2.321428763,-1.44597239,0 1293 | 2.169447561,-1.408495788,0 1294 | 1.80584196,-1.070855521,0 1295 | 1.848100664,-0.78415632,0 1296 | 1.800890499,-1.034434161,0 1297 | 1.487965436,-0.885372155,0 1298 | 0.919177076,-0.477827951,0 1299 | 1.075482081,-0.361348996,0 1300 | 0.521644153,-0.445797282,0 1301 | 0.454953827,-0.087737882,0 1302 | 0.356562391,-0.257647901,0 1303 | -0.192124631,0.041794596,0 1304 | -0.136175583,0.137853564,0 1305 | 0.076768187,-29.9762779,0 1306 | -25.84043163,-15.23863667,0 1307 | -0.188621273,-0.214696658,0 1308 | -0.004840853,-0.049004353,0 1309 | 0.037672386,0.036326911,0 1310 | -0.117654298,-0.408935228,0 1311 | -0.249119354,-1.053669297,0 1312 | -0.220743076,-1.240168997,0 1313 | -0.205207971,-1.481867174,0 1314 | 0.04276231,-1.639125722,0 1315 | -0.093182227,-1.942336366,0 1316 | -0.226763758,-1.797000701,0 1317 | -0.124608092,-2.046179449,0 1318 | -0.023748133,-2.651646344,0 1319 | -0.278714293,-2.566047088,0 1320 | -0.237750435,-2.949067784,0 1321 | -0.214169022,-2.99035587,0 1322 | -0.092183266,-3.436619681,0 1323 | -0.101668638,-3.827430497,0 1324 | 0.28096791,-4.169785432,0 1325 | -0.123600263,-4.011890153,0 1326 | 0.190832556,-4.565839815,0 1327 | 0.155772468,-4.498194866,0 1328 | -0.282683572,-4.821395075,0 1329 | 0.108369931,-5.506803212,0 1330 | 0.243422706,-5.811830308,0 1331 | 0.07977492,-5.778933129,0 1332 | -0.226907318,-6.000697255,0 1333 | -0.080030932,-6.087883859,0 1334 | 0.048888908,-6.282960434,0 1335 | 0.146224794,-7.038805284,0 1336 | 0.146524408,-6.832970942,0 1337 | -0.175564036,-7.116090458,0 1338 | -0.193133364,-7.357769296,0 1339 | 0.151341665,-7.647388531,0 1340 | 0.191221626,-8.24240923,0 1341 | -0.286328439,-8.61638991,0 1342 | -0.117804149,-8.301748587,0 1343 | -0.165830103,-8.847209868,0 1344 | -0.244895709,-9.144354081,0 1345 | 0.034138012,-9.068966432,0 1346 | -0.147255459,-9.429229457,0 1347 | 0.10636531,-10.12510919,0 1348 | -0.179954904,-10.24730168,0 1349 | 0.175734213,-10.46512906,0 1350 | 0.0140227,-10.59937459,0 1351 | 0.254554212,-10.61339957,0 1352 | -0.19783596,-11.33426358,0 1353 | -0.298304173,-11.12736888,0 1354 | -0.165517832,-11.8135178,0 1355 | -0.084866303,-11.83375101,0 1356 | -0.179944707,-12.07706789,0 1357 | 0.249084116,-12.57645315,0 1358 | -0.252428798,-12.53166568,0 1359 | 0.117210184,-12.57878444,0 1360 | -0.071165288,-13.0671296,0 1361 | -0.146325913,-13.55629658,0 1362 | 0.053215553,-13.3867079,0 1363 | -0.021263465,-13.62090611,0 1364 | -0.051464901,-14.28323716,0 1365 | -0.254317545,-14.38302925,0 1366 | -0.13808127,-14.58337629,0 1367 | -0.083046581,-15.13051868,0 1368 | -0.292766731,-15.0964898,0 1369 | 0.155662785,-15.41858549,0 1370 | 0.163531081,-15.77467544,0 1371 | 0.299292534,-15.89729502,0 1372 | 0.044820661,-15.89144851,0 1373 | 0.050885892,-16.3160535,0 1374 | -0.048616994,-16.90312771,0 1375 | 0.279428672,-16.59111346,0 1376 | -0.086200339,-17.03798012,0 1377 | -0.269219213,-17.22089761,0 1378 | 0.099390653,-17.75044568,0 1379 | 0.296643085,-17.81213035,0 1380 | 0.272693713,-18.07063867,0 1381 | -0.042542644,-18.69446083,0 1382 | 0.151978697,-18.57820841,0 1383 | 0.114319423,-18.97400333,0 1384 | 0.240368031,-19.26211,0 1385 | 0.257209335,-19.35683782,0 1386 | 0.266386787,-19.68500547,0 1387 | 0.191408396,-19.81341229,0 1388 | -0.190267735,-20.17055689,0 1389 | -0.166471234,-20.12159879,0 1390 | 0.195242134,-20.74520151,0 1391 | 0.155977478,-20.71366957,0 1392 | -0.158222513,-20.88813549,0 1393 | 0.154240386,-21.51883003,0 1394 | -0.123247204,-21.95847986,0 1395 | -0.093682165,-22.06567497,0 1396 | 0.27031913,-21.9659019,0 1397 | -0.144460393,-22.31518273,0 1398 | -0.004653709,-22.96592706,0 1399 | 0.213205456,-22.68732254,0 1400 | -0.214055596,-23.00732438,0 1401 | 0.217135045,-23.62537466,0 1402 | -0.189446264,-23.53853746,0 1403 | 0.213047442,-23.98509111,0 1404 | 0.166802537,-24.04728752,0 1405 | -0.002477033,-24.321969,0 1406 | 0.006303196,-24.58605845,0 1407 | -0.197997547,-25.07009471,0 1408 | 0.078098959,-24.92098116,0 1409 | 0.065837584,-25.63445313,0 1410 | -0.175252085,-25.75528912,0 1411 | 0.111268838,-25.93320526,0 1412 | -0.014875569,-26.28245917,0 1413 | -0.219609787,-26.34036588,0 1414 | 0.027750379,-26.87815032,0 1415 | 0.114814997,-26.73211175,0 1416 | 0.010445013,-27.12441403,0 1417 | 0.217762539,-27.40654108,0 1418 | -0.285339883,-27.95923353,0 1419 | -0.190266726,-28.18942892,0 1420 | -0.07444194,-28.48400795,0 1421 | 0.264389542,-28.49126861,0 1422 | -0.288064843,-28.94816055,0 1423 | 0.23973168,-28.70790837,0 1424 | 0.237955739,-29.36342596,0 1425 | -4.86E-05,-29.22263626,0 1426 | 0.120743878,-29.94533156,0 1427 | 0.134399138,-30.05885574,0 1428 | 0.07204863,-30.23198785,0 1429 | -0.150122773,-29.99742757,0 1430 | -0.603392329,-29.71417067,0 1431 | -0.824748213,-29.52172483,0 1432 | -0.664067634,-29.27172666,0 1433 | -1.258189764,-29.34407884,0 1434 | -1.076401232,-29.49235305,0 1435 | -1.698526772,-29.2565956,0 1436 | -1.8504656,-28.77757625,0 1437 | -2.039185544,-29.01654909,0 1438 | -2.469082394,-28.71958077,0 1439 | -2.165975777,-28.63668008,0 1440 | -2.905816039,-28.70614464,0 1441 | -3.084657017,-28.43740422,0 1442 | -3.134936784,-28.15898308,0 1443 | -3.294249514,-28.06530477,0 1444 | -3.271125181,-27.90387931,0 1445 | -4.003969306,-28.09863803,0 1446 | -4.214849212,-27.8166676,0 1447 | -4.236922315,-27.73542771,0 1448 | -4.659503041,-27.35161479,0 1449 | -4.376582067,-27.58576812,0 1450 | -4.962295852,-27.21414385,0 1451 | -5.139808471,-26.82514763,0 1452 | -5.154884573,-26.9344891,0 1453 | -5.315068184,-26.94995005,0 1454 | -5.809019182,-26.81644317,0 1455 | -5.793786913,-26.40676636,0 1456 | -5.974901406,-26.23282519,0 1457 | -6.364087167,-26.1671344,0 1458 | -6.68534886,-26.35241412,0 1459 | -6.542920057,-25.83292761,0 1460 | -6.880173643,-25.76062935,0 1461 | -7.106911329,-25.58946603,0 1462 | -7.603877361,-25.42145796,0 1463 | -7.868469995,-25.58837745,0 1464 | -7.982744943,-25.3549221,0 1465 | -8.348712517,-25.2833279,0 1466 | -8.57000751,-25.20129798,0 1467 | -8.720188345,-25.10927403,0 1468 | -8.503734003,-25.18218923,0 1469 | -8.7857227,-24.79284597,0 1470 | -9.225987392,-24.58385434,0 1471 | -9.371195466,-24.57955465,0 1472 | -9.735009189,-24.5821598,0 1473 | -10.05371099,-24.62701039,0 1474 | -9.792372189,-24.24760878,0 1475 | -10.46740738,-23.938433,0 1476 | -10.35312766,-23.96843436,0 1477 | -10.61359758,-23.71138382,0 1478 | -10.78670344,-23.93739909,0 1479 | -11.22722492,-23.39462601,0 1480 | -11.10054422,-23.33220169,0 1481 | -11.27898563,-23.1433002,0 1482 | -11.8099878,-23.17686468,0 1483 | -12.00846629,-23.33219003,0 1484 | -12.32115783,-23.02901241,0 1485 | -12.43526487,-22.69343922,0 1486 | -12.62882353,-22.81860266,0 1487 | -12.95600462,-22.48481155,0 1488 | -13.08396091,-22.6465227,0 1489 | -13.10449436,-22.05485641,0 1490 | -13.57406843,-22.14924651,0 1491 | -13.72924321,-21.83734845,0 1492 | -13.83096099,-21.81006682,0 1493 | -13.98929343,-21.68476946,0 1494 | -14.66878218,-21.69872365,0 1495 | -14.55323111,-21.5994463,0 1496 | -14.97049745,-21.2994357,0 1497 | -15.23506251,-21.51789341,0 1498 | -15.30500065,-21.15791085,0 1499 | -15.75764608,-20.86779066,0 1500 | -15.51016571,-20.69192774,0 1501 | -16.02692228,-20.89120695,0 1502 | -15.89389933,-20.74036918,0 1503 | -16.22353403,-20.7924525,0 1504 | -16.72474923,-20.1683576,0 1505 | -17.07393072,-20.3025603,0 1506 | -17.273892,-20.02007083,0 1507 | -16.955469,-19.91443888,0 1508 | -17.42503623,-20.17751464,0 1509 | -17.79367285,-19.91936458,0 1510 | -18.07452837,-19.42255286,0 1511 | -17.87160283,-19.26005982,0 1512 | -18.50396025,-19.33996691,0 1513 | -18.34399331,-19.21170327,0 1514 | -18.56330194,-19.09231419,0 1515 | -19.01496271,-19.30901154,0 1516 | -19.22005282,-19.05284201,0 1517 | -19.24678294,-18.79133111,0 1518 | -19.45103434,-18.63675709,0 1519 | -19.89111731,-18.33132989,0 1520 | -19.89144081,-18.42670241,0 1521 | -20.29524131,-18.46295173,0 1522 | -20.53262489,-17.87882198,0 1523 | -20.96180581,-17.97323193,0 1524 | -20.79612355,-17.89448942,0 1525 | -20.91376552,-17.92178751,0 1526 | -21.17080207,-17.94518033,0 1527 | -21.88619068,-17.73605257,0 1528 | -22.07612415,-17.11122695,0 1529 | -21.77698524,-17.55901754,0 1530 | -22.00000568,-16.99072189,0 1531 | -22.32617133,-16.79953923,0 1532 | -22.71290934,-17.05726346,0 1533 | -22.81321812,-16.66590339,0 1534 | -23.24221119,-16.35724985,0 1535 | -23.18702388,-16.48138986,0 1536 | -23.56399013,-16.50024815,0 1537 | -23.98021642,-16.27965003,0 1538 | -24.15334457,-15.97990488,0 1539 | -24.46474693,-16.16064513,0 1540 | -24.21049843,-16.12628069,0 1541 | -24.94690316,-15.97336809,0 1542 | -24.78983278,-15.39942957,0 1543 | -24.85514595,-15.80092897,0 1544 | -25.11786866,-15.21438355,0 1545 | -25.35825281,-15.0173517,0 1546 | -25.66800433,-15.34905053,0 1547 | -26.01043494,-14.84129216,0 1548 | -25.88235573,-15.06256846,0 1549 | -25.58461811,-14.68885047,0 1550 | -25.68027453,-14.55477102,0 1551 | -25.14636171,-14.8594149,0 1552 | -25.29023209,-14.43605255,0 1553 | -25.00167236,-14.17130448,0 1554 | -24.65175434,-14.37134763,0 1555 | -24.35571224,-14.21361336,0 1556 | -24.2003129,-13.76889158,0 1557 | -23.94279881,-13.8455049,0 1558 | -23.75444809,-13.6576227,0 1559 | -23.71198626,-13.72394957,0 1560 | -23.28829027,-13.43202654,0 1561 | -23.12309352,-13.50169864,0 1562 | -22.71317171,-13.1612031,0 1563 | -22.98220564,-13.08183533,0 1564 | -22.26466057,-12.98714052,0 1565 | -22.50031821,-13.04707397,0 1566 | -22.24968347,-12.85811694,0 1567 | -22.08357861,-12.41312262,0 1568 | -21.52355002,-12.68588714,0 1569 | -21.18568867,-12.12074977,0 1570 | -20.91194541,-11.9992389,0 1571 | -21.16438014,-11.93720789,0 1572 | -20.68932857,-11.95710109,0 1573 | -20.37738132,-11.94665122,0 1574 | -20.24169254,-11.77587656,0 1575 | -20.05081644,-11.3022226,0 1576 | -19.74124936,-11.46953509,0 1577 | -19.62932394,-11.23379467,0 1578 | -19.44474128,-11.02666148,0 1579 | -19.28882293,-10.88504681,0 1580 | -18.87619557,-10.89858823,0 1581 | -19.03239249,-10.7872871,0 1582 | -18.45581973,-10.46603219,0 1583 | -18.3909998,-10.84051488,0 1584 | -18.10244089,-10.33703624,0 1585 | -17.67849479,-10.43999923,0 1586 | -17.86016427,-9.917959825,0 1587 | -17.35244481,-10.33004505,0 1588 | -17.27941905,-9.781238216,0 1589 | -17.20215934,-9.992128157,0 1590 | -16.91939027,-9.554616834,0 1591 | -16.54068191,-9.716955595,0 1592 | -16.31059102,-9.40061518,0 1593 | -16.199231,-9.544796822,0 1594 | -15.68488988,-8.979520294,0 1595 | -15.71777862,-9.372217794,0 1596 | -15.43066857,-8.673222742,0 1597 | -15.12132482,-8.774600138,0 1598 | -15.0960543,-8.863468484,0 1599 | -14.96421467,-8.469286923,0 1600 | -14.66244652,-8.280468897,0 1601 | -14.24943841,-8.429893713,0 1602 | -14.41554105,-8.36856615,0 1603 | -13.95505808,-7.998572546,0 1604 | -13.59561874,-8.100496312,0 1605 | -13.55154389,-7.91534084,0 1606 | -13.38191031,-7.912222168,0 1607 | -13.03551801,-7.367375996,0 1608 | -12.81788409,-7.440998389,0 1609 | -12.55790956,-7.087126283,0 1610 | -12.31564299,-7.031228402,0 1611 | -12.36418742,-7.002141098,0 1612 | -11.93536436,-6.856690847,0 1613 | -11.70026281,-6.809307294,0 1614 | -11.77801798,-6.916878447,0 1615 | -11.53704634,-6.790452964,0 1616 | -11.43318163,-6.278940122,0 1617 | -10.87425486,-6.582921056,0 1618 | -10.42496305,-6.326128804,0 1619 | -10.27149639,-6.331143479,0 1620 | -10.08255255,-5.83654725,0 1621 | -9.862908351,-5.912152494,0 1622 | -9.588133015,-5.94854518,0 1623 | -9.407384479,-5.246740841,0 1624 | -9.434137598,-5.498603219,0 1625 | -8.966058553,-5.368753845,0 1626 | -8.750374092,-5.256265742,0 1627 | -9.012544695,-4.857518964,0 1628 | -8.804791955,-4.811493016,0 1629 | -8.321674962,-5.08782523,0 1630 | -8.244989633,-4.484442014,0 1631 | -8.147695482,-4.298131585,0 1632 | -7.690228852,-4.303516993,0 1633 | -7.178851231,-4.245851608,0 1634 | -7.387520682,-3.890575983,0 1635 | -6.908070717,-4.31290964,0 1636 | -6.51236671,-3.650900507,0 1637 | -6.468600131,-3.640727254,0 1638 | -6.48002357,-3.718703142,0 1639 | -5.99925024,-3.365764019,0 1640 | -5.739930335,-3.2072931,0 1641 | -5.643821925,-3.0304598,0 1642 | -5.480556216,-2.887932637,0 1643 | -5.425414212,-2.924773154,0 1644 | -4.752923847,-3.135631843,0 1645 | -4.935632042,-2.621141274,0 1646 | -4.454709568,-2.518127558,0 1647 | -4.33638968,-2.263699873,0 1648 | -4.151771629,-2.140598342,0 1649 | -4.11515852,-2.172490333,0 1650 | -3.97085558,-2.022220729,0 1651 | -3.757183734,-1.871831788,0 1652 | -3.180497828,-2.000084975,0 1653 | -3.347399021,-1.708193958,0 1654 | -2.779362815,-1.581339158,0 1655 | -2.680534728,-1.222807768,0 1656 | -2.321428763,-1.44597239,0 1657 | -2.169447561,-1.408495788,0 1658 | -1.80584196,-1.070855521,0 1659 | -1.848100664,-0.78415632,0 1660 | -1.800890499,-1.034434161,0 1661 | -1.487965436,-0.885372155,0 1662 | -0.919177076,-0.477827951,0 1663 | -1.075482081,-0.361348996,0 1664 | -0.521644153,-0.445797282,0 1665 | -0.454953827,-0.087737882,0 1666 | -0.356562391,-0.257647901,0 1667 | 0.192124631,0.041794596,0 1668 | 0.136175583,-0.137853564,0 1669 | -0.076768187,29.9762779,0 1670 | 25.84043163,15.23863667,0 1671 | 0.188621273,0.214696658,0 1672 | 0.004840853,0.049004353,0 1673 | -0.037672386,-0.036326911,0 1674 | 0.117654298,0.408935228,0 1675 | 0.249119354,1.053669297,0 1676 | 0.220743076,1.240168997,0 1677 | 0.205207971,1.481867174,0 1678 | -0.04276231,1.639125722,0 1679 | 0.093182227,1.942336366,0 1680 | 0.226763758,1.797000701,0 1681 | 0.124608092,2.046179449,0 1682 | 0.023748133,2.651646344,0 1683 | 0.278714293,2.566047088,0 1684 | 0.237750435,2.949067784,0 1685 | 0.214169022,2.99035587,0 1686 | 0.092183266,3.436619681,0 1687 | 0.101668638,3.827430497,0 1688 | -0.28096791,4.169785432,0 1689 | 0.123600263,4.011890153,0 1690 | -0.190832556,4.565839815,0 1691 | -0.155772468,4.498194866,0 1692 | 0.282683572,4.821395075,0 1693 | -0.108369931,5.506803212,0 1694 | -0.243422706,5.811830308,0 1695 | -0.07977492,5.778933129,0 1696 | 0.226907318,6.000697255,0 1697 | 0.080030932,6.087883859,0 1698 | -0.048888908,6.282960434,0 1699 | -0.146224794,7.038805284,0 1700 | -0.146524408,6.832970942,0 1701 | 0.175564036,7.116090458,0 1702 | 0.193133364,7.357769296,0 1703 | -0.151341665,7.647388531,0 1704 | -0.191221626,8.24240923,0 1705 | 0.286328439,8.61638991,0 1706 | 0.117804149,8.301748587,0 1707 | 0.165830103,8.847209868,0 1708 | 0.244895709,9.144354081,0 1709 | -0.034138012,9.068966432,0 1710 | 0.147255459,9.429229457,0 1711 | -0.10636531,10.12510919,0 1712 | 0.179954904,10.24730168,0 1713 | -0.175734213,10.46512906,0 1714 | -0.0140227,10.59937459,0 1715 | -0.254554212,10.61339957,0 1716 | 0.19783596,11.33426358,0 1717 | 0.298304173,11.12736888,0 1718 | 0.165517832,11.8135178,0 1719 | 0.084866303,11.83375101,0 1720 | 0.179944707,12.07706789,0 1721 | -0.249084116,12.57645315,0 1722 | 0.252428798,12.53166568,0 1723 | -0.117210184,12.57878444,0 1724 | 0.071165288,13.0671296,0 1725 | 0.146325913,13.55629658,0 1726 | -0.053215553,13.3867079,0 1727 | 0.021263465,13.62090611,0 1728 | 0.051464901,14.28323716,0 1729 | 0.254317545,14.38302925,0 1730 | 0.13808127,14.58337629,0 1731 | 0.083046581,15.13051868,0 1732 | 0.292766731,15.0964898,0 1733 | -0.155662785,15.41858549,0 1734 | -0.163531081,15.77467544,0 1735 | -0.299292534,15.89729502,0 1736 | -0.044820661,15.89144851,0 1737 | -0.050885892,16.3160535,0 1738 | 0.048616994,16.90312771,0 1739 | -0.279428672,16.59111346,0 1740 | 0.086200339,17.03798012,0 1741 | 0.269219213,17.22089761,0 1742 | -0.099390653,17.75044568,0 1743 | -0.296643085,17.81213035,0 1744 | -0.272693713,18.07063867,0 1745 | 0.042542644,18.69446083,0 1746 | -0.151978697,18.57820841,0 1747 | -0.114319423,18.97400333,0 1748 | -0.240368031,19.26211,0 1749 | -0.257209335,19.35683782,0 1750 | -0.266386787,19.68500547,0 1751 | -0.191408396,19.81341229,0 1752 | 0.190267735,20.17055689,0 1753 | 0.166471234,20.12159879,0 1754 | -0.195242134,20.74520151,0 1755 | -0.155977478,20.71366957,0 1756 | 0.158222513,20.88813549,0 1757 | -0.154240386,21.51883003,0 1758 | 0.123247204,21.95847986,0 1759 | 0.093682165,22.06567497,0 1760 | -0.27031913,21.9659019,0 1761 | 0.144460393,22.31518273,0 1762 | 0.004653709,22.96592706,0 1763 | -0.213205456,22.68732254,0 1764 | 0.214055596,23.00732438,0 1765 | -0.217135045,23.62537466,0 1766 | 0.189446264,23.53853746,0 1767 | -0.213047442,23.98509111,0 1768 | -0.166802537,24.04728752,0 1769 | 0.002477033,24.321969,0 1770 | -0.006303196,24.58605845,0 1771 | 0.197997547,25.07009471,0 1772 | -0.078098959,24.92098116,0 1773 | -0.065837584,25.63445313,0 1774 | 0.175252085,25.75528912,0 1775 | -0.111268838,25.93320526,0 1776 | 0.014875569,26.28245917,0 1777 | 0.219609787,26.34036588,0 1778 | -0.027750379,26.87815032,0 1779 | -0.114814997,26.73211175,0 1780 | -0.010445013,27.12441403,0 1781 | -0.217762539,27.40654108,0 1782 | 0.285339883,27.95923353,0 1783 | 0.190266726,28.18942892,0 1784 | 0.07444194,28.48400795,0 1785 | -0.264389542,28.49126861,0 1786 | 0.288064843,28.94816055,0 1787 | -0.23973168,28.70790837,0 1788 | -0.237955739,29.36342596,0 1789 | 4.86E-05,29.22263626,0 1790 | -0.120743878,29.94533156,0 1791 | -0.134399138,30.05885574,0 1792 | -0.07204863,30.23198785,0 1793 | 0.150122773,29.99742757,0 1794 | 0.603392329,29.71417067,0 1795 | 0.824748213,29.52172483,0 1796 | 0.664067634,29.27172666,0 1797 | 1.258189764,29.34407884,0 1798 | 1.076401232,29.49235305,0 1799 | 1.698526772,29.2565956,0 1800 | 1.8504656,28.77757625,0 1801 | 2.039185544,29.01654909,0 1802 | 2.469082394,28.71958077,0 1803 | 2.165975777,28.63668008,0 1804 | 2.905816039,28.70614464,0 1805 | 3.084657017,28.43740422,0 1806 | 3.134936784,28.15898308,0 1807 | 3.294249514,28.06530477,0 1808 | 3.271125181,27.90387931,0 1809 | 4.003969306,28.09863803,0 1810 | 4.214849212,27.8166676,0 1811 | 4.236922315,27.73542771,0 1812 | 4.659503041,27.35161479,0 1813 | 4.376582067,27.58576812,0 1814 | 4.962295852,27.21414385,0 1815 | 5.139808471,26.82514763,0 1816 | 5.154884573,26.9344891,0 1817 | 5.315068184,26.94995005,0 1818 | 5.809019182,26.81644317,0 1819 | 5.793786913,26.40676636,0 1820 | 5.974901406,26.23282519,0 1821 | 6.364087167,26.1671344,0 1822 | 6.68534886,26.35241412,0 1823 | 6.542920057,25.83292761,0 1824 | 6.880173643,25.76062935,0 1825 | 7.106911329,25.58946603,0 1826 | 7.603877361,25.42145796,0 1827 | 7.868469995,25.58837745,0 1828 | 7.982744943,25.3549221,0 1829 | 8.348712517,25.2833279,0 1830 | 8.57000751,25.20129798,0 1831 | 8.720188345,25.10927403,0 1832 | 8.503734003,25.18218923,0 1833 | 8.7857227,24.79284597,0 1834 | 9.225987392,24.58385434,0 1835 | 9.371195466,24.57955465,0 1836 | 9.735009189,24.5821598,0 1837 | 10.05371099,24.62701039,0 1838 | 9.792372189,24.24760878,0 1839 | 10.46740738,23.938433,0 1840 | 10.35312766,23.96843436,0 1841 | 10.61359758,23.71138382,0 1842 | 10.78670344,23.93739909,0 1843 | 11.22722492,23.39462601,0 1844 | 11.10054422,23.33220169,0 1845 | 11.27898563,23.1433002,0 1846 | 11.8099878,23.17686468,0 1847 | 12.00846629,23.33219003,0 1848 | 12.32115783,23.02901241,0 1849 | 12.43526487,22.69343922,0 1850 | 12.62882353,22.81860266,0 1851 | 12.95600462,22.48481155,0 1852 | 13.08396091,22.6465227,0 1853 | 13.10449436,22.05485641,0 1854 | 13.57406843,22.14924651,0 1855 | 13.72924321,21.83734845,0 1856 | 13.83096099,21.81006682,0 1857 | 13.98929343,21.68476946,0 1858 | 14.66878218,21.69872365,0 1859 | 14.55323111,21.5994463,0 1860 | 14.97049745,21.2994357,0 1861 | 15.23506251,21.51789341,0 1862 | 15.30500065,21.15791085,0 1863 | 15.75764608,20.86779066,0 1864 | 15.51016571,20.69192774,0 1865 | 16.02692228,20.89120695,0 1866 | 15.89389933,20.74036918,0 1867 | 16.22353403,20.7924525,0 1868 | 16.72474923,20.1683576,0 1869 | 17.07393072,20.3025603,0 1870 | 17.273892,20.02007083,0 1871 | 16.955469,19.91443888,0 1872 | 17.42503623,20.17751464,0 1873 | 17.79367285,19.91936458,0 1874 | 18.07452837,19.42255286,0 1875 | 17.87160283,19.26005982,0 1876 | 18.50396025,19.33996691,0 1877 | 18.34399331,19.21170327,0 1878 | 18.56330194,19.09231419,0 1879 | 19.01496271,19.30901154,0 1880 | 19.22005282,19.05284201,0 1881 | 19.24678294,18.79133111,0 1882 | 19.45103434,18.63675709,0 1883 | 19.89111731,18.33132989,0 1884 | 19.89144081,18.42670241,0 1885 | 20.29524131,18.46295173,0 1886 | 20.53262489,17.87882198,0 1887 | 20.96180581,17.97323193,0 1888 | 20.79612355,17.89448942,0 1889 | 20.91376552,17.92178751,0 1890 | 21.17080207,17.94518033,0 1891 | 21.88619068,17.73605257,0 1892 | 22.07612415,17.11122695,0 1893 | 21.77698524,17.55901754,0 1894 | 22.00000568,16.99072189,0 1895 | 22.32617133,16.79953923,0 1896 | 22.71290934,17.05726346,0 1897 | 22.81321812,16.66590339,0 1898 | 23.24221119,16.35724985,0 1899 | 23.18702388,16.48138986,0 1900 | 23.56399013,16.50024815,0 1901 | 23.98021642,16.27965003,0 1902 | 24.15334457,15.97990488,0 1903 | 24.46474693,16.16064513,0 1904 | 24.21049843,16.12628069,0 1905 | 24.94690316,15.97336809,0 1906 | 24.78983278,15.39942957,0 1907 | 24.85514595,15.80092897,0 1908 | 25.11786866,15.21438355,0 1909 | 25.35825281,15.0173517,0 1910 | 25.66800433,15.34905053,0 1911 | 26.01043494,14.84129216,0 1912 | 25.88235573,15.06256846,0 1913 | 25.58461811,14.68885047,0 1914 | 25.68027453,14.55477102,0 1915 | 25.14636171,14.8594149,0 1916 | 25.29023209,14.43605255,0 1917 | 25.00167236,14.17130448,0 1918 | 24.65175434,14.37134763,0 1919 | 24.35571224,14.21361336,0 1920 | 24.2003129,13.76889158,0 1921 | 23.94279881,13.8455049,0 1922 | 23.75444809,13.6576227,0 1923 | 23.71198626,13.72394957,0 1924 | 23.28829027,13.43202654,0 1925 | 23.12309352,13.50169864,0 1926 | 22.71317171,13.1612031,0 1927 | 22.98220564,13.08183533,0 1928 | 22.26466057,12.98714052,0 1929 | 22.50031821,13.04707397,0 1930 | 22.24968347,12.85811694,0 1931 | 22.08357861,12.41312262,0 1932 | 21.52355002,12.68588714,0 1933 | 21.18568867,12.12074977,0 1934 | 20.91194541,11.9992389,0 1935 | 21.16438014,11.93720789,0 1936 | 20.68932857,11.95710109,0 1937 | 20.37738132,11.94665122,0 1938 | 20.24169254,11.77587656,0 1939 | 20.05081644,11.3022226,0 1940 | 19.74124936,11.46953509,0 1941 | 19.62932394,11.23379467,0 1942 | 19.44474128,11.02666148,0 1943 | 19.28882293,10.88504681,0 1944 | 18.87619557,10.89858823,0 1945 | 19.03239249,10.7872871,0 1946 | 18.45581973,10.46603219,0 1947 | 18.3909998,10.84051488,0 1948 | 18.10244089,10.33703624,0 1949 | 17.67849479,10.43999923,0 1950 | 17.86016427,9.917959825,0 1951 | 17.35244481,10.33004505,0 1952 | 17.27941905,9.781238216,0 1953 | 17.20215934,9.992128157,0 1954 | 16.91939027,9.554616834,0 1955 | 16.54068191,9.716955595,0 1956 | 16.31059102,9.40061518,0 1957 | 16.199231,9.544796822,0 1958 | 15.68488988,8.979520294,0 1959 | 15.71777862,9.372217794,0 1960 | 15.43066857,8.673222742,0 1961 | 15.12132482,8.774600138,0 1962 | 15.0960543,8.863468484,0 1963 | 14.96421467,8.469286923,0 1964 | 14.66244652,8.280468897,0 1965 | 14.24943841,8.429893713,0 1966 | 14.41554105,8.36856615,0 1967 | 13.95505808,7.998572546,0 1968 | 13.59561874,8.100496312,0 1969 | 13.55154389,7.91534084,0 1970 | 13.38191031,7.912222168,0 1971 | 13.03551801,7.367375996,0 1972 | 12.81788409,7.440998389,0 1973 | 12.55790956,7.087126283,0 1974 | 12.31564299,7.031228402,0 1975 | 12.36418742,7.002141098,0 1976 | 11.93536436,6.856690847,0 1977 | 11.70026281,6.809307294,0 1978 | 11.77801798,6.916878447,0 1979 | 11.53704634,6.790452964,0 1980 | 11.43318163,6.278940122,0 1981 | 10.87425486,6.582921056,0 1982 | 10.42496305,6.326128804,0 1983 | 10.27149639,6.331143479,0 1984 | 10.08255255,5.83654725,0 1985 | 9.862908351,5.912152494,0 1986 | 9.588133015,5.94854518,0 1987 | 9.407384479,5.246740841,0 1988 | 9.434137598,5.498603219,0 1989 | 8.966058553,5.368753845,0 1990 | 8.750374092,5.256265742,0 1991 | 9.012544695,4.857518964,0 1992 | 8.804791955,4.811493016,0 1993 | 8.321674962,5.08782523,0 1994 | 8.244989633,4.484442014,0 1995 | 8.147695482,4.298131585,0 1996 | 7.690228852,4.303516993,0 1997 | 7.178851231,4.245851608,0 1998 | 7.387520682,3.890575983,0 1999 | 6.908070717,4.31290964,0 2000 | 6.51236671,3.650900507,0 2001 | 6.468600131,3.640727254,0 2002 | 6.48002357,3.718703142,0 2003 | 5.99925024,3.365764019,0 2004 | 5.739930335,3.2072931,0 2005 | 5.643821925,3.0304598,0 2006 | 5.480556216,2.887932637,0 2007 | 5.425414212,2.924773154,0 2008 | 4.752923847,3.135631843,0 2009 | 4.935632042,2.621141274,0 2010 | 4.454709568,2.518127558,0 2011 | 4.33638968,2.263699873,0 2012 | 4.151771629,2.140598342,0 2013 | 4.11515852,2.172490333,0 2014 | 3.97085558,2.022220729,0 2015 | 3.757183734,1.871831788,0 2016 | 3.180497828,2.000084975,0 2017 | 3.347399021,1.708193958,0 2018 | 2.779362815,1.581339158,0 2019 | 2.680534728,1.222807768,0 2020 | 2.321428763,1.44597239,0 2021 | 2.169447561,1.408495788,0 2022 | 1.80584196,1.070855521,0 2023 | 1.848100664,0.78415632,0 2024 | 1.800890499,1.034434161,0 2025 | 1.487965436,0.885372155,0 2026 | 1.075482081,0.361348996,0 2027 | 0.521644153,0.445797282,0 2028 | 0.454953827,0.087737882,0 2029 | 0.356562391,0.257647901,0 2030 | -0.192124631,-0.041794596,0 2031 | 15.73948417,14.93873899,-1 2032 | -14.26051583,-15.06126101,-1 2033 | -14.26051583,14.93873899,-1 2034 | 14.26051583,-14.93873899,-1 2035 | 0.739484168,34.93873899,-1 2036 | -0.739484168,-34.93873899,-1 2037 | 20.73948417,-0.061261011,-1 2038 | -20.73948417,0.061261011,-1 2039 | -------------------------------------------------------------------------------- /Solvers/eagle_submission_solver.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from LSBSteg import decode 3 | 4 | api_base_url = None 5 | team_id=None 6 | 7 | 8 | def init_eagle(team_id): 9 | ''' 10 | In this fucntion you need to hit to the endpoint to start the game as an eagle with your team id. 11 | If a sucessful response is returned, you will recive back the first footprints. 12 | ''' 13 | pass 14 | 15 | def select_channel(footprint): 16 | ''' 17 | According to the footprint you recieved (one footprint per channel) 18 | you need to decide if you want to listen to any of the 3 channels or just skip this message. 19 | Your goal is to try to catch all the real messages and skip the fake and the empty ones. 20 | Refer to the documentation of the Footprints to know more what the footprints represent to guide you in your approach. 21 | ''' 22 | pass 23 | 24 | def skip_msg(team_id): 25 | ''' 26 | If you decide to NOT listen to ANY of the 3 channels then you need to hit the end point skipping the message. 27 | If sucessful request to the end point , you will expect to have back new footprints IF ANY. 28 | ''' 29 | pass 30 | 31 | def request_msg(team_id, channel_id): 32 | ''' 33 | If you decide to listen to any of the 3 channels then you need to hit the end point of selecting a channel to hear on (1,2 or 3) 34 | ''' 35 | pass 36 | 37 | def submit_msg(team_id, decoded_msg): 38 | ''' 39 | In this function you are expected to: 40 | 1. Decode the message you requested previously 41 | 2. call the api end point to send your decoded message 42 | If sucessful request to the end point , you will expect to have back new footprints IF ANY. 43 | ''' 44 | 45 | def end_eagle(team_id): 46 | ''' 47 | Use this function to call the api end point of ending the eagle game. 48 | Note that: 49 | 1. Not calling this fucntion will cost you in the scoring function 50 | ''' 51 | pass 52 | 53 | def submit_eagle_attempt(team_id): 54 | ''' 55 | Call this function to start playing as an eagle. 56 | You should submit with your own team id that was sent to you in the email. 57 | Remeber you have up to 15 Submissions as an Eagle In phase1. 58 | In this function you should: 59 | 1. Initialize the game as fox 60 | 2. Solve the footprints to know which channel to listen on if any. 61 | 3. Select a channel to hear on OR send skip request. 62 | 4. Submit your answer in case you listened on any channel 63 | 5. End the Game 64 | ''' 65 | pass 66 | 67 | 68 | submit_eagle_attempt(team_id) 69 | -------------------------------------------------------------------------------- /Solvers/fox_submission_solver.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import numpy as np 3 | from LSBSteg import encode 4 | from riddle_solvers import riddle_solvers 5 | 6 | api_base_url = None 7 | team_id=None 8 | 9 | def init_fox(team_id): 10 | ''' 11 | In this fucntion you need to hit to the endpoint to start the game as a fox with your team id. 12 | If a sucessful response is returned, you will recive back the message that you can break into chunkcs 13 | and the carrier image that you will encode the chunk in it. 14 | ''' 15 | pass 16 | 17 | def generate_message_array(message, image_carrier): 18 | ''' 19 | In this function you will need to create your own startegy. That includes: 20 | 1. How you are going to split the real message into chunkcs 21 | 2. Include any fake chunks 22 | 3. Decide what 3 chuncks you will send in each turn in the 3 channels & what is their entities (F,R,E) 23 | 4. Encode each chunck in the image carrier 24 | ''' 25 | pass 26 | 27 | def get_riddle(team_id, riddle_id): 28 | ''' 29 | In this function you will hit the api end point that requests the type of riddle you want to solve. 30 | use the riddle id to request the specific riddle. 31 | Note that: 32 | 1. Once you requested a riddle you cannot request it again per game. 33 | 2. Each riddle has a timeout if you didnot reply with your answer it will be considered as a wrong answer. 34 | 3. You cannot request several riddles at a time, so requesting a new riddle without answering the old one 35 | will allow you to answer only the new riddle and you will have no access again to the old riddle. 36 | ''' 37 | pass 38 | 39 | def solve_riddle(team_id, solution): 40 | ''' 41 | In this function you will solve the riddle that you have requested. 42 | You will hit the API end point that submits your answer. 43 | Use te riddle_solvers.py to implement the logic of each riddle. 44 | ''' 45 | pass 46 | 47 | def send_message(team_id, messages, message_entities=['F', 'E', 'R']): 48 | ''' 49 | Use this function to call the api end point to send one chunk of the message. 50 | You will need to send the message (images) in each of the 3 channels along with their entites. 51 | Refer to the API documentation to know more about what needs to be send in this api call. 52 | ''' 53 | pass 54 | 55 | def end_fox(team_id): 56 | ''' 57 | Use this function to call the api end point of ending the fox game. 58 | Note that: 59 | 1. Not calling this fucntion will cost you in the scoring function 60 | 2. Calling it without sending all the real messages will also affect your scoring fucntion 61 | (Like failing to submit the entire message within the timelimit of the game). 62 | ''' 63 | pass 64 | 65 | def submit_fox_attempt(team_id): 66 | ''' 67 | Call this function to start playing as a fox. 68 | You should submit with your own team id that was sent to you in the email. 69 | Remeber you have up to 15 Submissions as a Fox In phase1. 70 | In this function you should: 71 | 1. Initialize the game as fox 72 | 2. Solve riddles 73 | 3. Make your own Strategy of sending the messages in the 3 channels 74 | 4. Make your own Strategy of splitting the message into chunks 75 | 5. Send the messages 76 | 6. End the Game 77 | Note that: 78 | 1. You HAVE to start and end the game on your own. The time between the starting and ending the game is taken into the scoring function 79 | 2. You can send in the 3 channels any combination of F(Fake),R(Real),E(Empty) under the conditions that 80 | 2.a. At most one real message is sent 81 | 2.b. You cannot send 3 E(Empty) messages, there should be atleast R(Real)/F(Fake) 82 | 3. Refer To the documentation to know more about the API handling 83 | ''' 84 | pass 85 | 86 | 87 | submit_fox_attempt(team_id) -------------------------------------------------------------------------------- /Solvers/riddle_solvers.py: -------------------------------------------------------------------------------- 1 | # Add the necessary imports here 2 | import pandas as pd 3 | import torch 4 | from utils import * 5 | 6 | 7 | def solve_cv_easy(test_case: tuple) -> list: 8 | shredded_image, shred_width = test_case 9 | shredded_image = np.array(shredded_image) 10 | """ 11 | This function takes a tuple as input and returns a list as output. 12 | 13 | Parameters: 14 | input (tuple): A tuple containing two elements: 15 | - A numpy array representing a shredded image. 16 | - An integer representing the shred width in pixels. 17 | 18 | Returns: 19 | list: A list of integers representing the order of shreds. When combined in this order, it builds the whole image. 20 | """ 21 | return [] 22 | 23 | 24 | def solve_cv_medium(input: tuple) -> list: 25 | combined_image_array , patch_image_array = test_case 26 | combined_image = np.array(combined_image_array,dtype=np.uint8) 27 | patch_image = np.array(patch_image_array,dtype=np.uint8) 28 | """ 29 | This function takes a tuple as input and returns a list as output. 30 | 31 | Parameters: 32 | input (tuple): A tuple containing two elements: 33 | - A numpy array representing the RGB base image. 34 | - A numpy array representing the RGB patch image. 35 | 36 | Returns: 37 | list: A list representing the real image. 38 | """ 39 | return [] 40 | 41 | 42 | def solve_cv_hard(input: tuple) -> int: 43 | extracted_question, image = test_case 44 | image = np.array(image) 45 | """ 46 | This function takes a tuple as input and returns an integer as output. 47 | 48 | Parameters: 49 | input (tuple): A tuple containing two elements: 50 | - A string representing a question about an image. 51 | - An RGB image object loaded using the Pillow library. 52 | 53 | Returns: 54 | int: An integer representing the answer to the question about the image. 55 | """ 56 | return 0 57 | 58 | 59 | def solve_ml_easy(input: pd.DataFrame) -> list: 60 | data = pd.DataFrame(data) 61 | 62 | """ 63 | This function takes a pandas DataFrame as input and returns a list as output. 64 | 65 | Parameters: 66 | input (pd.DataFrame): A pandas DataFrame representing the input data. 67 | 68 | Returns: 69 | list: A list of floats representing the output of the function. 70 | """ 71 | return [] 72 | 73 | 74 | def solve_ml_medium(input: list) -> int: 75 | """ 76 | This function takes a list as input and returns an integer as output. 77 | 78 | Parameters: 79 | input (list): A list of signed floats representing the input data. 80 | 81 | Returns: 82 | int: An integer representing the output of the function. 83 | """ 84 | return 0 85 | 86 | 87 | 88 | def solve_sec_medium(input: torch.Tensor) -> str: 89 | img = torch.tensor(img) 90 | """ 91 | This function takes a torch.Tensor as input and returns a string as output. 92 | 93 | Parameters: 94 | input (torch.Tensor): A torch.Tensor representing the image that has the encoded message. 95 | 96 | Returns: 97 | str: A string representing the decoded message from the image. 98 | """ 99 | return '' 100 | 101 | def solve_sec_hard(input:tuple)->str: 102 | """ 103 | This function takes a tuple as input and returns a list a string. 104 | 105 | Parameters: 106 | input (tuple): A tuple containing two elements: 107 | - A key 108 | - A Plain text. 109 | 110 | Returns: 111 | list:A string of ciphered text 112 | """ 113 | 114 | return '' 115 | 116 | def solve_problem_solving_easy(input: tuple) -> list: 117 | """ 118 | This function takes a tuple as input and returns a list as output. 119 | 120 | Parameters: 121 | input (tuple): A tuple containing two elements: 122 | - A list of strings representing a question. 123 | - An integer representing a key. 124 | 125 | Returns: 126 | list: A list of strings representing the solution to the problem. 127 | """ 128 | return [] 129 | 130 | 131 | def solve_problem_solving_medium(input: str) -> str: 132 | """ 133 | This function takes a string as input and returns a string as output. 134 | 135 | Parameters: 136 | input (str): A string representing the input data. 137 | 138 | Returns: 139 | str: A string representing the solution to the problem. 140 | """ 141 | return '' 142 | 143 | 144 | def solve_problem_solving_hard(input: tuple) -> int: 145 | """ 146 | This function takes a tuple as input and returns an integer as output. 147 | 148 | Parameters: 149 | input (tuple): A tuple containing two integers representing m and n. 150 | 151 | Returns: 152 | int: An integer representing the solution to the problem. 153 | """ 154 | return 0 155 | 156 | 157 | riddle_solvers = { 158 | 'cv_easy': solve_cv_easy, 159 | 'cv_medium': solve_cv_medium, 160 | 'cv_hard': solve_cv_hard, 161 | 'ml_easy': solve_ml_easy, 162 | 'ml_medium': solve_ml_medium, 163 | 'sec_medium_stegano': solve_sec_medium, 164 | 'sec_hard':solve_sec_hard, 165 | 'problem_solving_easy': solve_problem_solving_easy, 166 | 'problem_solving_medium': solve_problem_solving_medium, 167 | 'problem_solving_hard': solve_problem_solving_hard 168 | } 169 | -------------------------------------------------------------------------------- /SteganoGAN/DellSteganoGAN.py: -------------------------------------------------------------------------------- 1 | from utils import * 2 | import numpy as np 3 | 4 | def stegano_solver(cover_im: np.ndarray, message: str) -> str: 5 | ## add your code here 6 | pass -------------------------------------------------------------------------------- /SteganoGAN/critics.py: -------------------------------------------------------------------------------- 1 | import torch 2 | from torch import nn 3 | 4 | class BasicCritic(nn.Module): 5 | """ 6 | The BasicCritic module takes an image and predicts whether it is a cover 7 | image or a steganographic image (N, 1). 8 | 9 | Input: (N, 3, H, W) 10 | Output: (N, 1) 11 | """ 12 | def _name(self): 13 | return "BasicCritic" 14 | 15 | def _conv2d(self, in_channels, out_channels): 16 | return nn.Conv2d( 17 | in_channels=in_channels, 18 | out_channels=out_channels, 19 | kernel_size=3 20 | ) 21 | 22 | def _build_models(self): 23 | self.conv1 = nn.Sequential( 24 | self._conv2d(3, self.hidden_size), 25 | nn.LeakyReLU(inplace=True), 26 | nn.BatchNorm2d(self.hidden_size), 27 | ) 28 | self.conv2 = nn.Sequential( 29 | self._conv2d(self.hidden_size, self.hidden_size), 30 | nn.LeakyReLU(inplace=True), 31 | nn.BatchNorm2d(self.hidden_size), 32 | ) 33 | self.conv3 = nn.Sequential( 34 | self._conv2d(self.hidden_size, self.hidden_size), 35 | nn.LeakyReLU(inplace=True), 36 | nn.BatchNorm2d(self.hidden_size), 37 | ) 38 | self.conv4 = nn.Sequential( 39 | self._conv2d(self.hidden_size, 1) 40 | ) 41 | 42 | return self.conv1, self.conv2, self.conv3, self.conv4 43 | 44 | def __init__(self, hidden_size): 45 | super().__init__() 46 | self.hidden_size = hidden_size 47 | self._models = self._build_models() 48 | self.name = self._name() 49 | 50 | def forward(self, image): 51 | x = self._models[0](image) 52 | x_1 = self._models[1](x) 53 | x_2 = self._models[2](x_1) 54 | x_3 = self._models[3](x_2) 55 | return torch.mean(x_3.view(x_3.size(0), -1), dim=1) -------------------------------------------------------------------------------- /SteganoGAN/decoders.py: -------------------------------------------------------------------------------- 1 | import torch 2 | from torch import nn 3 | 4 | class BasicDecoder(nn.Module): 5 | """ 6 | The BasicDecoder module takes an steganographic image and attempts to decode 7 | the embedded data tensor. 8 | 9 | Input: (N, 3, H, W) 10 | Output: (N, D, H, W) 11 | """ 12 | def _name(self): 13 | return "BasicDecoder" 14 | 15 | def _conv2d(self, in_channels, out_channels): 16 | return nn.Conv2d( 17 | in_channels=in_channels, 18 | out_channels=out_channels, 19 | kernel_size=3, 20 | padding=1 21 | ) 22 | 23 | def _build_models(self): 24 | self.conv1 = nn.Sequential( 25 | self._conv2d(3, self.hidden_size), 26 | nn.LeakyReLU(inplace=True), 27 | nn.BatchNorm2d(self.hidden_size), 28 | ) 29 | self.conv2 = nn.Sequential( 30 | self._conv2d(self.hidden_size, self.hidden_size), 31 | nn.LeakyReLU(inplace=True), 32 | nn.BatchNorm2d(self.hidden_size), 33 | ) 34 | self.conv3 = nn.Sequential( 35 | self._conv2d(self.hidden_size, self.hidden_size), 36 | nn.LeakyReLU(inplace=True), 37 | nn.BatchNorm2d(self.hidden_size), 38 | ) 39 | self.conv4 = nn.Sequential( 40 | self._conv2d(self.hidden_size, self.data_depth), 41 | #nn.Sigmoid(), 42 | ) 43 | 44 | return self.conv1, self.conv2, self.conv3, self.conv4 45 | 46 | def forward(self, image): 47 | x = self._models[0](image) 48 | x_1 = self._models[1](x) 49 | x_2 = self._models[2](x_1) 50 | x_3 = self._models[3](x_2) 51 | #x_4 = Bernoulli(x_3).sample() 52 | return x_3 53 | 54 | def __init__(self, data_depth, hidden_size): 55 | super().__init__() 56 | self.data_depth = data_depth 57 | self.hidden_size = hidden_size 58 | self._models = self._build_models() 59 | self.name = self._name() 60 | 61 | 62 | class DenseDecoder(BasicDecoder): 63 | def _name(self): 64 | return "DenseDecoder" 65 | 66 | def _build_models(self): 67 | self.conv1 = super()._build_models()[0] 68 | self.conv2 = super()._build_models()[1] 69 | self.conv3 = nn.Sequential( 70 | self._conv2d(self.hidden_size * 2, self.hidden_size), 71 | nn.LeakyReLU(inplace=True), 72 | nn.BatchNorm2d(self.hidden_size) 73 | ) 74 | self.conv4 = nn.Sequential( 75 | self._conv2d(self.hidden_size * 3, self.data_depth), 76 | ) 77 | 78 | return self.conv1, self.conv2, self.conv3, self.conv4 79 | 80 | def forward(self, image): 81 | x = self._models[0](image) 82 | x_list = [x] 83 | x_1 = self._models[1](torch.cat(x_list, dim=1)) 84 | x_list.append(x_1) 85 | x_2 = self._models[2](torch.cat(x_list, dim=1)) 86 | x_list.append(x_2) 87 | x_3 = self._models[3](torch.cat(x_list, dim=1)) 88 | x_list.append(x_3) 89 | return x_3 -------------------------------------------------------------------------------- /SteganoGAN/requirements 2.txt: -------------------------------------------------------------------------------- 1 | imageio==2.33.0 2 | numpy==1.24.1 3 | reedsolo==1.7.0 4 | torch==2.0.1 5 | torchvision==0.15.2 -------------------------------------------------------------------------------- /SteganoGAN/sample_example/Expected Answer from decoding.txt: -------------------------------------------------------------------------------- 1 | Beyond The Obvious. 2 | -------------------------------------------------------------------------------- /SteganoGAN/sample_example/encoded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackTrick2024/HackTrick24/6d9760c91a8dab640648f703a04f17c31eeb60e6/SteganoGAN/sample_example/encoded.png -------------------------------------------------------------------------------- /SteganoGAN/utils.py: -------------------------------------------------------------------------------- 1 | import torch 2 | from collections import Counter 3 | from reedsolo import RSCodec 4 | import zlib 5 | from decoders import DenseDecoder 6 | from critics import BasicCritic 7 | 8 | import torch 9 | from torch.optim import Adam 10 | 11 | import warnings 12 | warnings.filterwarnings('ignore') 13 | 14 | rs = RSCodec(100) # DO NOT CHANGE THIS LINE 15 | 16 | METRIC_FIELDS = [ 17 | 'val.encoder_mse', 18 | 'val.decoder_loss', 19 | 'val.decoder_acc', 20 | 'val.cover_score', 21 | 'val.generated_score', 22 | 'val.ssim', 23 | 'val.psnr', 24 | 'val.bpp', 25 | 'train.encoder_mse', 26 | 'train.decoder_loss', 27 | 'train.decoder_acc', 28 | 'train.cover_score', 29 | 'train.generated_score', 30 | ] 31 | 32 | data_depth = 4 33 | hidden_size = 32 34 | 35 | device = 'cuda' if torch.cuda.is_available() else 'cpu' 36 | 37 | LOAD_MODEL = True 38 | PRE_TRAINED_MODEL_PATH = 'image_models/DenseEncoder_DenseDecoder_0.042_2020-07-23_02_08_27.dat' 39 | 40 | 41 | decoder = DenseDecoder(data_depth, hidden_size).to(device) 42 | critic = BasicCritic(hidden_size).to(device) 43 | cr_optimizer = Adam(critic.parameters(), lr=1e-4) 44 | metrics = {field: list() for field in METRIC_FIELDS} 45 | 46 | if LOAD_MODEL: 47 | if device == 'cuda': 48 | checkpoint = torch.load(PRE_TRAINED_MODEL_PATH) 49 | else: 50 | checkpoint = torch.load(PRE_TRAINED_MODEL_PATH, map_location=lambda storage, loc: storage) 51 | 52 | critic.load_state_dict(checkpoint['state_dict_critic']) 53 | decoder.load_state_dict(checkpoint['state_dict_decoder']) 54 | cr_optimizer.load_state_dict(checkpoint['cr_optimizer']) 55 | 56 | metrics = checkpoint['metrics'] 57 | ep = checkpoint['train_epoch'] 58 | date = checkpoint['date'] 59 | 60 | def text_to_bits(text): 61 | """Convert text to a list of ints in {0, 1}""" 62 | return bytearray_to_bits(text_to_bytearray(text)) 63 | 64 | 65 | def bits_to_text(bits): 66 | """Convert a list of ints in {0, 1} to text""" 67 | return bytearray_to_text(bits_to_bytearray(bits)) 68 | 69 | 70 | def bytearray_to_bits(x): 71 | """Convert bytearray to a list of bits""" 72 | result = [] 73 | for i in x: 74 | bits = bin(i)[2:] 75 | bits = '00000000'[len(bits):] + bits 76 | result.extend([int(b) for b in bits]) 77 | 78 | return result 79 | 80 | 81 | def bits_to_bytearray(bits): 82 | """Convert a list of bits to a bytearray""" 83 | ints = [] 84 | for b in range(len(bits) // 8): 85 | byte = bits[b * 8:(b + 1) * 8] 86 | ints.append(int(''.join([str(bit) for bit in byte]), 2)) 87 | 88 | return bytearray(ints) 89 | 90 | 91 | def text_to_bytearray(text): 92 | """Compress and add error correction""" 93 | assert isinstance(text, str), "expected a string" 94 | x = zlib.compress(text.encode("utf-8")) 95 | x = rs.encode(bytearray(x)) 96 | 97 | return x 98 | 99 | 100 | def bytearray_to_text(x): 101 | """Apply error correction and decompress""" 102 | try: 103 | text = rs.decode(x)[0] 104 | zobj = zlib.decompressobj() # obj for decompressing data streams that won’t fit into memory at once. 105 | text = zobj.decompress(text, zlib.MAX_WBITS|32) 106 | 107 | return text.decode("utf-8") 108 | 109 | except BaseException as e: 110 | return False 111 | 112 | 113 | def make_payload(width, height, depth, text): 114 | """ 115 | This takes a piece of text and encodes it into a bit vector. It then 116 | fills a matrix of size (width, height) with copies of the bit vector. 117 | """ 118 | message = text_to_bits(text) + [0] * 32 119 | 120 | payload = message 121 | while len(payload) < width * height * depth: 122 | payload += message 123 | 124 | payload = payload[:width * height * depth] 125 | 126 | return torch.FloatTensor(payload).view(1, depth, height, width) 127 | 128 | def make_message(image): 129 | image = image.to(device) 130 | 131 | image = decoder(image).view(-1) > 0 132 | image = torch.tensor(image, dtype=torch.uint8) 133 | 134 | # split and decode messages 135 | candidates = Counter() 136 | bits = image.data.cpu().numpy().tolist() 137 | for candidate in bits_to_bytearray(bits).split(b'\x00\x00\x00\x00'): 138 | candidate = bytearray_to_text(bytearray(candidate)) 139 | if candidate: 140 | candidates[candidate] += 1 141 | 142 | # choose most common message 143 | if len(candidates) == 0: 144 | # raise ValueError('Failed to find message.') 145 | return 146 | 147 | candidate, _ = candidates.most_common(1)[0] 148 | return candidate 149 | 150 | 151 | def decode(generated: torch.Tensor) -> str: 152 | text_return = make_message(generated) 153 | return text_return -------------------------------------------------------------------------------- /image_models/DenseEncoder_DenseDecoder_0.042_2020-07-23_02_08_27.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackTrick2024/HackTrick24/6d9760c91a8dab640648f703a04f17c31eeb60e6/image_models/DenseEncoder_DenseDecoder_0.042_2020-07-23_02_08_27.dat --------------------------------------------------------------------------------