diff --git a/manual/manual.pdf b/manual/manual.pdf new file mode 100644 index 0000000..fcc62c2 --- /dev/null +++ b/manual/manual.pdf @@ -0,0 +1,3233 @@ +%PDF-1.7 +% + +1 0 obj +<< + /Type /Pages + /Count 4 + /Kids [205 0 R 221 0 R 223 0 R 240 0 R] +>> +endobj + +2 0 obj +<< + /Type /Outlines + /First 3 0 R + /Last 16 0 R + /Count 2 +>> +endobj + +3 0 obj +<< + /Parent 2 0 R + /Next 16 0 R + /First 4 0 R + /Last 13 0 R + /Count -4 + /Title (1. Messages) + /Dest 196 0 R +>> +endobj + +4 0 obj +<< + /Parent 3 0 R + /Next 7 0 R + /First 5 0 R + /Last 6 0 R + /Count -2 + /Title (1.1. Heartbeat) + /Dest 186 0 R +>> +endobj + +5 0 obj +<< + /Parent 4 0 R + /Next 6 0 R + /Title (1.1.1. Server) + /Dest 184 0 R +>> +endobj + +6 0 obj +<< + /Parent 4 0 R + /Prev 5 0 R + /Title (1.1.2. Device) + /Dest 185 0 R +>> +endobj + +7 0 obj +<< + /Parent 3 0 R + /Next 10 0 R + /Prev 4 0 R + /First 8 0 R + /Last 9 0 R + /Count -2 + /Title (1.2. Registration) + /Dest 189 0 R +>> +endobj + +8 0 obj +<< + /Parent 7 0 R + /Next 9 0 R + /Title (1.2.1. Server) + /Dest 187 0 R +>> +endobj + +9 0 obj +<< + /Parent 7 0 R + /Prev 8 0 R + /Title (1.2.2. Device) + /Dest 188 0 R +>> +endobj + +10 0 obj +<< + /Parent 3 0 R + /Next 13 0 R + /Prev 7 0 R + /First 11 0 R + /Last 12 0 R + /Count -2 + /Title (1.3. Authentication) + /Dest 192 0 R +>> +endobj + +11 0 obj +<< + /Parent 10 0 R + /Next 12 0 R + /Title (1.3.1. Server) + /Dest 190 0 R +>> +endobj + +12 0 obj +<< + /Parent 10 0 R + /Prev 11 0 R + /Title (1.3.2. Device) + /Dest 191 0 R +>> +endobj + +13 0 obj +<< + /Parent 3 0 R + /Prev 10 0 R + /First 14 0 R + /Last 15 0 R + /Count -2 + /Title (1.4. Session) + /Dest 195 0 R +>> +endobj + +14 0 obj +<< + /Parent 13 0 R + /Next 15 0 R + /Title (1.4.1. Server) + /Dest 193 0 R +>> +endobj + +15 0 obj +<< + /Parent 13 0 R + /Prev 14 0 R + /Title (1.4.2. Device) + /Dest 194 0 R +>> +endobj + +16 0 obj +<< + /Parent 2 0 R + /Prev 3 0 R + /Title (2. General flow) + /Dest 197 0 R +>> +endobj + +17 0 obj +<< + /Type /StructTreeRoot + /RoleMap << + /Datetime /Span + /Terms /Part + /Title /P + /Strong /Span + /Em /Span + >> + /K [22 0 R] + /ParentTree << + /Nums [0 18 0 R 1 160 0 R 2 156 0 R 3 152 0 R 4 148 0 R 5 143 0 R 6 139 0 R 7 135 0 R 8 130 0 R 9 126 0 R 10 122 0 R 11 117 0 R 12 113 0 R 13 109 0 R 14 103 0 R 15 19 0 R 16 20 0 R 17 52 0 R 18 50 0 R 19 48 0 R 20 46 0 R 21 44 0 R 22 42 0 R 23 40 0 R 24 38 0 R 25 36 0 R 26 34 0 R 27 32 0 R 28 30 0 R 29 28 0 R 30 26 0 R 31 24 0 R 32 21 0 R] + >> + /ParentTreeNextKey 33 +>> +endobj + +18 0 obj +[167 0 R 165 0 R 164 0 R 164 0 R 163 0 R] +endobj + +19 0 obj +[162 0 R 161 0 R 160 0 R 160 0 R 157 0 R 156 0 R 156 0 R 153 0 R 152 0 R 152 0 R 149 0 R 148 0 R 148 0 R 144 0 R 143 0 R 143 0 R 140 0 R 139 0 R 139 0 R 136 0 R 135 0 R 135 0 R 131 0 R 130 0 R 130 0 R 127 0 R 126 0 R 126 0 R 123 0 R 122 0 R 122 0 R 118 0 R 117 0 R 117 0 R 114 0 R 113 0 R 113 0 R 110 0 R 109 0 R 109 0 R 104 0 R 103 0 R 103 0 R] +endobj + +20 0 obj +[99 0 R 99 0 R 98 0 R 98 0 R 97 0 R 97 0 R 96 0 R 96 0 R 96 0 R 96 0 R 96 0 R 96 0 R 96 0 R 96 0 R 96 0 R 96 0 R 94 0 R 94 0 R 94 0 R 94 0 R 94 0 R 94 0 R 94 0 R 94 0 R 94 0 R 94 0 R 94 0 R 94 0 R 94 0 R 94 0 R 94 0 R 94 0 R 94 0 R 94 0 R 92 0 R 92 0 R 91 0 R 91 0 R 91 0 R 91 0 R 91 0 R 91 0 R 91 0 R 91 0 R 91 0 R 91 0 R 89 0 R 89 0 R 88 0 R 88 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 85 0 R 85 0 R 85 0 R 85 0 R 85 0 R 85 0 R 85 0 R 85 0 R 85 0 R 85 0 R 83 0 R 83 0 R 82 0 R 82 0 R 82 0 R 82 0 R 82 0 R 82 0 R 82 0 R 82 0 R 82 0 R 82 0 R 80 0 R 80 0 R 79 0 R 79 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 78 0 R 76 0 R 76 0 R 76 0 R 76 0 R 76 0 R 76 0 R 76 0 R 76 0 R 76 0 R 76 0 R 74 0 R 74 0 R 74 0 R 74 0 R 74 0 R 74 0 R 74 0 R 74 0 R 74 0 R 74 0 R 74 0 R 74 0 R 74 0 R 74 0 R 74 0 R 74 0 R 74 0 R 74 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 68 0 R 68 0 R 67 0 R 67 0 R 67 0 R 67 0 R 67 0 R 67 0 R 67 0 R 67 0 R 67 0 R 67 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 63 0 R 63 0 R 62 0 R 62 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 59 0 R 59 0 R 59 0 R 59 0 R 59 0 R 59 0 R 59 0 R 59 0 R 59 0 R 59 0 R 57 0 R 57 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R] +endobj + +21 0 obj +[54 0 R 54 0 R 23 0 R 23 0 R 53 0 R 51 0 R 49 0 R 47 0 R 45 0 R 23 0 R 43 0 R 41 0 R 39 0 R 37 0 R 35 0 R 33 0 R 23 0 R 31 0 R 29 0 R 27 0 R 25 0 R] +endobj + +22 0 obj +<< + /Type /StructElem + /S /Document + /P 17 0 R + /K [166 0 R 165 0 R 164 0 R 163 0 R 162 0 R 100 0 R 99 0 R 98 0 R 97 0 R 95 0 R 93 0 R 92 0 R 90 0 R 89 0 R 88 0 R 86 0 R 84 0 R 83 0 R 81 0 R 80 0 R 79 0 R 77 0 R 75 0 R 73 0 R 71 0 R 69 0 R 68 0 R 66 0 R 64 0 R 63 0 R 62 0 R 60 0 R 58 0 R 57 0 R 55 0 R 54 0 R 23 0 R] +>> +endobj + +23 0 obj +<< + /Type /StructElem + /S /P + /P 22 0 R + /K [2 3 52 0 R 50 0 R 48 0 R 46 0 R 44 0 R 9 42 0 R 40 0 R 38 0 R 36 0 R 34 0 R 32 0 R 16 30 0 R 28 0 R 26 0 R 24 0 R] + /Pg 240 0 R +>> +endobj + +24 0 obj +<< + /Type /StructElem + /S /Link + /P 23 0 R + /K [25 0 R << + /Type /OBJR + /Pg 240 0 R + /Obj 239 0 R + >>] +>> +endobj + +25 0 obj +<< + /Type /StructElem + /S /Span + /P 24 0 R + /A [<< + /O /Layout + /TextDecorationType /Underline + >>] + /K [20] + /Pg 240 0 R +>> +endobj + +26 0 obj +<< + /Type /StructElem + /S /Link + /P 23 0 R + /K [27 0 R << + /Type /OBJR + /Pg 240 0 R + /Obj 238 0 R + >>] +>> +endobj + +27 0 obj +<< + /Type /StructElem + /S /Span + /P 26 0 R + /A [<< + /O /Layout + /TextDecorationType /Underline + >>] + /K [19] + /Pg 240 0 R +>> +endobj + +28 0 obj +<< + /Type /StructElem + /S /Link + /P 23 0 R + /K [29 0 R << + /Type /OBJR + /Pg 240 0 R + /Obj 237 0 R + >>] +>> +endobj + +29 0 obj +<< + /Type /StructElem + /S /Span + /P 28 0 R + /A [<< + /O /Layout + /TextDecorationType /Underline + >>] + /K [18] + /Pg 240 0 R +>> +endobj + +30 0 obj +<< + /Type /StructElem + /S /Link + /P 23 0 R + /K [31 0 R << + /Type /OBJR + /Pg 240 0 R + /Obj 236 0 R + >>] +>> +endobj + +31 0 obj +<< + /Type /StructElem + /S /Span + /P 30 0 R + /A [<< + /O /Layout + /TextDecorationType /Underline + >>] + /K [17] + /Pg 240 0 R +>> +endobj + +32 0 obj +<< + /Type /StructElem + /S /Link + /P 23 0 R + /K [33 0 R << + /Type /OBJR + /Pg 240 0 R + /Obj 235 0 R + >>] +>> +endobj + +33 0 obj +<< + /Type /StructElem + /S /Span + /P 32 0 R + /A [<< + /O /Layout + /TextDecorationType /Underline + >>] + /K [15] + /Pg 240 0 R +>> +endobj + +34 0 obj +<< + /Type /StructElem + /S /Link + /P 23 0 R + /K [35 0 R << + /Type /OBJR + /Pg 240 0 R + /Obj 234 0 R + >>] +>> +endobj + +35 0 obj +<< + /Type /StructElem + /S /Span + /P 34 0 R + /A [<< + /O /Layout + /TextDecorationType /Underline + >>] + /K [14] + /Pg 240 0 R +>> +endobj + +36 0 obj +<< + /Type /StructElem + /S /Link + /P 23 0 R + /K [37 0 R << + /Type /OBJR + /Pg 240 0 R + /Obj 233 0 R + >>] +>> +endobj + +37 0 obj +<< + /Type /StructElem + /S /Span + /P 36 0 R + /A [<< + /O /Layout + /TextDecorationType /Underline + >>] + /K [13] + /Pg 240 0 R +>> +endobj + +38 0 obj +<< + /Type /StructElem + /S /Link + /P 23 0 R + /K [39 0 R << + /Type /OBJR + /Pg 240 0 R + /Obj 232 0 R + >>] +>> +endobj + +39 0 obj +<< + /Type /StructElem + /S /Span + /P 38 0 R + /A [<< + /O /Layout + /TextDecorationType /Underline + >>] + /K [12] + /Pg 240 0 R +>> +endobj + +40 0 obj +<< + /Type /StructElem + /S /Link + /P 23 0 R + /K [41 0 R << + /Type /OBJR + /Pg 240 0 R + /Obj 231 0 R + >>] +>> +endobj + +41 0 obj +<< + /Type /StructElem + /S /Span + /P 40 0 R + /A [<< + /O /Layout + /TextDecorationType /Underline + >>] + /K [11] + /Pg 240 0 R +>> +endobj + +42 0 obj +<< + /Type /StructElem + /S /Link + /P 23 0 R + /K [43 0 R << + /Type /OBJR + /Pg 240 0 R + /Obj 230 0 R + >>] +>> +endobj + +43 0 obj +<< + /Type /StructElem + /S /Span + /P 42 0 R + /A [<< + /O /Layout + /TextDecorationType /Underline + >>] + /K [10] + /Pg 240 0 R +>> +endobj + +44 0 obj +<< + /Type /StructElem + /S /Link + /P 23 0 R + /K [45 0 R << + /Type /OBJR + /Pg 240 0 R + /Obj 229 0 R + >>] +>> +endobj + +45 0 obj +<< + /Type /StructElem + /S /Span + /P 44 0 R + /A [<< + /O /Layout + /TextDecorationType /Underline + >>] + /K [8] + /Pg 240 0 R +>> +endobj + +46 0 obj +<< + /Type /StructElem + /S /Link + /P 23 0 R + /K [47 0 R << + /Type /OBJR + /Pg 240 0 R + /Obj 228 0 R + >>] +>> +endobj + +47 0 obj +<< + /Type /StructElem + /S /Span + /P 46 0 R + /A [<< + /O /Layout + /TextDecorationType /Underline + >>] + /K [7] + /Pg 240 0 R +>> +endobj + +48 0 obj +<< + /Type /StructElem + /S /Link + /P 23 0 R + /K [49 0 R << + /Type /OBJR + /Pg 240 0 R + /Obj 227 0 R + >>] +>> +endobj + +49 0 obj +<< + /Type /StructElem + /S /Span + /P 48 0 R + /A [<< + /O /Layout + /TextDecorationType /Underline + >>] + /K [6] + /Pg 240 0 R +>> +endobj + +50 0 obj +<< + /Type /StructElem + /S /Link + /P 23 0 R + /K [51 0 R << + /Type /OBJR + /Pg 240 0 R + /Obj 226 0 R + >>] +>> +endobj + +51 0 obj +<< + /Type /StructElem + /S /Span + /P 50 0 R + /A [<< + /O /Layout + /TextDecorationType /Underline + >>] + /K [5] + /Pg 240 0 R +>> +endobj + +52 0 obj +<< + /Type /StructElem + /S /Link + /P 23 0 R + /K [53 0 R << + /Type /OBJR + /Pg 240 0 R + /Obj 225 0 R + >>] +>> +endobj + +53 0 obj +<< + /Type /StructElem + /S /Span + /P 52 0 R + /A [<< + /O /Layout + /TextDecorationType /Underline + >>] + /K [4] + /Pg 240 0 R +>> +endobj + +54 0 obj +<< + /Type /StructElem + /S /H1 + /P 22 0 R + /T (General flow) + /K [0 1] + /Pg 240 0 R +>> +endobj + +55 0 obj +<< + /Type /StructElem + /S /Code + /P 22 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [56 0 R] +>> +endobj + +56 0 obj +<< + /Type /StructElem + /S /P + /P 55 0 R + /K [283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310] + /Pg 223 0 R +>> +endobj + +57 0 obj +<< + /Type /StructElem + /S /H3 + /P 22 0 R + /T (Device) + /K [281 282] + /Pg 223 0 R +>> +endobj + +58 0 obj +<< + /Type /StructElem + /S /Code + /P 22 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [59 0 R] +>> +endobj + +59 0 obj +<< + /Type /StructElem + /S /P + /P 58 0 R + /K [271 272 273 274 275 276 277 278 279 280] + /Pg 223 0 R +>> +endobj + +60 0 obj +<< + /Type /StructElem + /S /Code + /P 22 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [61 0 R] +>> +endobj + +61 0 obj +<< + /Type /StructElem + /S /P + /P 60 0 R + /K [244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270] + /Pg 223 0 R +>> +endobj + +62 0 obj +<< + /Type /StructElem + /S /H3 + /P 22 0 R + /T (Server) + /K [242 243] + /Pg 223 0 R +>> +endobj + +63 0 obj +<< + /Type /StructElem + /S /H2 + /P 22 0 R + /T (Session) + /K [240 241] + /Pg 223 0 R +>> +endobj + +64 0 obj +<< + /Type /StructElem + /S /Code + /P 22 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [65 0 R] +>> +endobj + +65 0 obj +<< + /Type /StructElem + /S /P + /P 64 0 R + /K [213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239] + /Pg 223 0 R +>> +endobj + +66 0 obj +<< + /Type /StructElem + /S /Code + /P 22 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [67 0 R] +>> +endobj + +67 0 obj +<< + /Type /StructElem + /S /P + /P 66 0 R + /K [203 204 205 206 207 208 209 210 211 212] + /Pg 223 0 R +>> +endobj + +68 0 obj +<< + /Type /StructElem + /S /H3 + /P 22 0 R + /T (Device) + /K [201 202] + /Pg 223 0 R +>> +endobj + +69 0 obj +<< + /Type /StructElem + /S /Code + /P 22 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [70 0 R] +>> +endobj + +70 0 obj +<< + /Type /StructElem + /S /P + /P 69 0 R + /K [180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200] + /Pg 223 0 R +>> +endobj + +71 0 obj +<< + /Type /StructElem + /S /Code + /P 22 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [72 0 R] +>> +endobj + +72 0 obj +<< + /Type /StructElem + /S /P + /P 71 0 R + /K [159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179] + /Pg 223 0 R +>> +endobj + +73 0 obj +<< + /Type /StructElem + /S /Code + /P 22 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [74 0 R] +>> +endobj + +74 0 obj +<< + /Type /StructElem + /S /P + /P 73 0 R + /K [141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158] + /Pg 223 0 R +>> +endobj + +75 0 obj +<< + /Type /StructElem + /S /Code + /P 22 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [76 0 R] +>> +endobj + +76 0 obj +<< + /Type /StructElem + /S /P + /P 75 0 R + /K [131 132 133 134 135 136 137 138 139 140] + /Pg 223 0 R +>> +endobj + +77 0 obj +<< + /Type /StructElem + /S /Code + /P 22 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [78 0 R] +>> +endobj + +78 0 obj +<< + /Type /StructElem + /S /P + /P 77 0 R + /K [104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130] + /Pg 223 0 R +>> +endobj + +79 0 obj +<< + /Type /StructElem + /S /H3 + /P 22 0 R + /T (Server) + /K [102 103] + /Pg 223 0 R +>> +endobj + +80 0 obj +<< + /Type /StructElem + /S /H2 + /P 22 0 R + /T (Authentication) + /K [100 101] + /Pg 223 0 R +>> +endobj + +81 0 obj +<< + /Type /StructElem + /S /Code + /P 22 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [82 0 R] +>> +endobj + +82 0 obj +<< + /Type /StructElem + /S /P + /P 81 0 R + /K [90 91 92 93 94 95 96 97 98 99] + /Pg 223 0 R +>> +endobj + +83 0 obj +<< + /Type /StructElem + /S /H3 + /P 22 0 R + /T (Device) + /K [88 89] + /Pg 223 0 R +>> +endobj + +84 0 obj +<< + /Type /StructElem + /S /Code + /P 22 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [85 0 R] +>> +endobj + +85 0 obj +<< + /Type /StructElem + /S /P + /P 84 0 R + /K [78 79 80 81 82 83 84 85 86 87] + /Pg 223 0 R +>> +endobj + +86 0 obj +<< + /Type /StructElem + /S /Code + /P 22 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [87 0 R] +>> +endobj + +87 0 obj +<< + /Type /StructElem + /S /P + /P 86 0 R + /K [50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77] + /Pg 223 0 R +>> +endobj + +88 0 obj +<< + /Type /StructElem + /S /H3 + /P 22 0 R + /T (Server) + /K [48 49] + /Pg 223 0 R +>> +endobj + +89 0 obj +<< + /Type /StructElem + /S /H2 + /P 22 0 R + /T (Registration) + /K [46 47] + /Pg 223 0 R +>> +endobj + +90 0 obj +<< + /Type /StructElem + /S /Code + /P 22 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [91 0 R] +>> +endobj + +91 0 obj +<< + /Type /StructElem + /S /P + /P 90 0 R + /K [36 37 38 39 40 41 42 43 44 45] + /Pg 223 0 R +>> +endobj + +92 0 obj +<< + /Type /StructElem + /S /H3 + /P 22 0 R + /T (Device) + /K [34 35] + /Pg 223 0 R +>> +endobj + +93 0 obj +<< + /Type /StructElem + /S /Code + /P 22 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [94 0 R] +>> +endobj + +94 0 obj +<< + /Type /StructElem + /S /P + /P 93 0 R + /K [16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33] + /Pg 223 0 R +>> +endobj + +95 0 obj +<< + /Type /StructElem + /S /Code + /P 22 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [96 0 R] +>> +endobj + +96 0 obj +<< + /Type /StructElem + /S /P + /P 95 0 R + /K [6 7 8 9 10 11 12 13 14 15] + /Pg 223 0 R +>> +endobj + +97 0 obj +<< + /Type /StructElem + /S /H3 + /P 22 0 R + /T (Server) + /K [4 5] + /Pg 223 0 R +>> +endobj + +98 0 obj +<< + /Type /StructElem + /S /H2 + /P 22 0 R + /T (Heartbeat) + /K [2 3] + /Pg 223 0 R +>> +endobj + +99 0 obj +<< + /Type /StructElem + /S /H1 + /P 22 0 R + /T (Messages) + /K [0 1] + /Pg 223 0 R +>> +endobj + +100 0 obj +<< + /Type /StructElem + /S /TOC + /P 22 0 R + /K [158 0 R 105 0 R 101 0 R] +>> +endobj + +101 0 obj +<< + /Type /StructElem + /S /TOCI + /P 100 0 R + /K [102 0 R] +>> +endobj + +102 0 obj +<< + /Type /StructElem + /S /Reference + /P 101 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [103 0 R] +>> +endobj + +103 0 obj +<< + /Type /StructElem + /S /Link + /P 102 0 R + /K [104 0 R 41 42 << + /Type /OBJR + /Pg 221 0 R + /Obj 220 0 R + >>] + /Pg 221 0 R +>> +endobj + +104 0 obj +<< + /Type /StructElem + /S /Lbl + /P 103 0 R + /K [40] + /Pg 221 0 R +>> +endobj + +105 0 obj +<< + /Type /StructElem + /S /TOC + /P 100 0 R + /K [154 0 R 145 0 R 141 0 R 132 0 R 128 0 R 119 0 R 115 0 R 106 0 R] +>> +endobj + +106 0 obj +<< + /Type /StructElem + /S /TOC + /P 105 0 R + /K [111 0 R 107 0 R] +>> +endobj + +107 0 obj +<< + /Type /StructElem + /S /TOCI + /P 106 0 R + /K [108 0 R] +>> +endobj + +108 0 obj +<< + /Type /StructElem + /S /Reference + /P 107 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [109 0 R] +>> +endobj + +109 0 obj +<< + /Type /StructElem + /S /Link + /P 108 0 R + /K [110 0 R 38 39 << + /Type /OBJR + /Pg 221 0 R + /Obj 219 0 R + >>] + /Pg 221 0 R +>> +endobj + +110 0 obj +<< + /Type /StructElem + /S /Lbl + /P 109 0 R + /K [37] + /Pg 221 0 R +>> +endobj + +111 0 obj +<< + /Type /StructElem + /S /TOCI + /P 106 0 R + /K [112 0 R] +>> +endobj + +112 0 obj +<< + /Type /StructElem + /S /Reference + /P 111 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [113 0 R] +>> +endobj + +113 0 obj +<< + /Type /StructElem + /S /Link + /P 112 0 R + /K [114 0 R 35 36 << + /Type /OBJR + /Pg 221 0 R + /Obj 218 0 R + >>] + /Pg 221 0 R +>> +endobj + +114 0 obj +<< + /Type /StructElem + /S /Lbl + /P 113 0 R + /K [34] + /Pg 221 0 R +>> +endobj + +115 0 obj +<< + /Type /StructElem + /S /TOCI + /P 105 0 R + /K [116 0 R] +>> +endobj + +116 0 obj +<< + /Type /StructElem + /S /Reference + /P 115 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [117 0 R] +>> +endobj + +117 0 obj +<< + /Type /StructElem + /S /Link + /P 116 0 R + /K [118 0 R 32 33 << + /Type /OBJR + /Pg 221 0 R + /Obj 217 0 R + >>] + /Pg 221 0 R +>> +endobj + +118 0 obj +<< + /Type /StructElem + /S /Lbl + /P 117 0 R + /K [31] + /Pg 221 0 R +>> +endobj + +119 0 obj +<< + /Type /StructElem + /S /TOC + /P 105 0 R + /K [124 0 R 120 0 R] +>> +endobj + +120 0 obj +<< + /Type /StructElem + /S /TOCI + /P 119 0 R + /K [121 0 R] +>> +endobj + +121 0 obj +<< + /Type /StructElem + /S /Reference + /P 120 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [122 0 R] +>> +endobj + +122 0 obj +<< + /Type /StructElem + /S /Link + /P 121 0 R + /K [123 0 R 29 30 << + /Type /OBJR + /Pg 221 0 R + /Obj 216 0 R + >>] + /Pg 221 0 R +>> +endobj + +123 0 obj +<< + /Type /StructElem + /S /Lbl + /P 122 0 R + /K [28] + /Pg 221 0 R +>> +endobj + +124 0 obj +<< + /Type /StructElem + /S /TOCI + /P 119 0 R + /K [125 0 R] +>> +endobj + +125 0 obj +<< + /Type /StructElem + /S /Reference + /P 124 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [126 0 R] +>> +endobj + +126 0 obj +<< + /Type /StructElem + /S /Link + /P 125 0 R + /K [127 0 R 26 27 << + /Type /OBJR + /Pg 221 0 R + /Obj 215 0 R + >>] + /Pg 221 0 R +>> +endobj + +127 0 obj +<< + /Type /StructElem + /S /Lbl + /P 126 0 R + /K [25] + /Pg 221 0 R +>> +endobj + +128 0 obj +<< + /Type /StructElem + /S /TOCI + /P 105 0 R + /K [129 0 R] +>> +endobj + +129 0 obj +<< + /Type /StructElem + /S /Reference + /P 128 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [130 0 R] +>> +endobj + +130 0 obj +<< + /Type /StructElem + /S /Link + /P 129 0 R + /K [131 0 R 23 24 << + /Type /OBJR + /Pg 221 0 R + /Obj 214 0 R + >>] + /Pg 221 0 R +>> +endobj + +131 0 obj +<< + /Type /StructElem + /S /Lbl + /P 130 0 R + /K [22] + /Pg 221 0 R +>> +endobj + +132 0 obj +<< + /Type /StructElem + /S /TOC + /P 105 0 R + /K [137 0 R 133 0 R] +>> +endobj + +133 0 obj +<< + /Type /StructElem + /S /TOCI + /P 132 0 R + /K [134 0 R] +>> +endobj + +134 0 obj +<< + /Type /StructElem + /S /Reference + /P 133 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [135 0 R] +>> +endobj + +135 0 obj +<< + /Type /StructElem + /S /Link + /P 134 0 R + /K [136 0 R 20 21 << + /Type /OBJR + /Pg 221 0 R + /Obj 213 0 R + >>] + /Pg 221 0 R +>> +endobj + +136 0 obj +<< + /Type /StructElem + /S /Lbl + /P 135 0 R + /K [19] + /Pg 221 0 R +>> +endobj + +137 0 obj +<< + /Type /StructElem + /S /TOCI + /P 132 0 R + /K [138 0 R] +>> +endobj + +138 0 obj +<< + /Type /StructElem + /S /Reference + /P 137 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [139 0 R] +>> +endobj + +139 0 obj +<< + /Type /StructElem + /S /Link + /P 138 0 R + /K [140 0 R 17 18 << + /Type /OBJR + /Pg 221 0 R + /Obj 212 0 R + >>] + /Pg 221 0 R +>> +endobj + +140 0 obj +<< + /Type /StructElem + /S /Lbl + /P 139 0 R + /K [16] + /Pg 221 0 R +>> +endobj + +141 0 obj +<< + /Type /StructElem + /S /TOCI + /P 105 0 R + /K [142 0 R] +>> +endobj + +142 0 obj +<< + /Type /StructElem + /S /Reference + /P 141 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [143 0 R] +>> +endobj + +143 0 obj +<< + /Type /StructElem + /S /Link + /P 142 0 R + /K [144 0 R 14 15 << + /Type /OBJR + /Pg 221 0 R + /Obj 211 0 R + >>] + /Pg 221 0 R +>> +endobj + +144 0 obj +<< + /Type /StructElem + /S /Lbl + /P 143 0 R + /K [13] + /Pg 221 0 R +>> +endobj + +145 0 obj +<< + /Type /StructElem + /S /TOC + /P 105 0 R + /K [150 0 R 146 0 R] +>> +endobj + +146 0 obj +<< + /Type /StructElem + /S /TOCI + /P 145 0 R + /K [147 0 R] +>> +endobj + +147 0 obj +<< + /Type /StructElem + /S /Reference + /P 146 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [148 0 R] +>> +endobj + +148 0 obj +<< + /Type /StructElem + /S /Link + /P 147 0 R + /K [149 0 R 11 12 << + /Type /OBJR + /Pg 221 0 R + /Obj 210 0 R + >>] + /Pg 221 0 R +>> +endobj + +149 0 obj +<< + /Type /StructElem + /S /Lbl + /P 148 0 R + /K [10] + /Pg 221 0 R +>> +endobj + +150 0 obj +<< + /Type /StructElem + /S /TOCI + /P 145 0 R + /K [151 0 R] +>> +endobj + +151 0 obj +<< + /Type /StructElem + /S /Reference + /P 150 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [152 0 R] +>> +endobj + +152 0 obj +<< + /Type /StructElem + /S /Link + /P 151 0 R + /K [153 0 R 8 9 << + /Type /OBJR + /Pg 221 0 R + /Obj 209 0 R + >>] + /Pg 221 0 R +>> +endobj + +153 0 obj +<< + /Type /StructElem + /S /Lbl + /P 152 0 R + /K [7] + /Pg 221 0 R +>> +endobj + +154 0 obj +<< + /Type /StructElem + /S /TOCI + /P 105 0 R + /K [155 0 R] +>> +endobj + +155 0 obj +<< + /Type /StructElem + /S /Reference + /P 154 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [156 0 R] +>> +endobj + +156 0 obj +<< + /Type /StructElem + /S /Link + /P 155 0 R + /K [157 0 R 5 6 << + /Type /OBJR + /Pg 221 0 R + /Obj 208 0 R + >>] + /Pg 221 0 R +>> +endobj + +157 0 obj +<< + /Type /StructElem + /S /Lbl + /P 156 0 R + /K [4] + /Pg 221 0 R +>> +endobj + +158 0 obj +<< + /Type /StructElem + /S /TOCI + /P 100 0 R + /K [159 0 R] +>> +endobj + +159 0 obj +<< + /Type /StructElem + /S /Reference + /P 158 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [160 0 R] +>> +endobj + +160 0 obj +<< + /Type /StructElem + /S /Link + /P 159 0 R + /K [161 0 R 2 3 << + /Type /OBJR + /Pg 221 0 R + /Obj 207 0 R + >>] + /Pg 221 0 R +>> +endobj + +161 0 obj +<< + /Type /StructElem + /S /Lbl + /P 160 0 R + /K [1] + /Pg 221 0 R +>> +endobj + +162 0 obj +<< + /Type /StructElem + /S /H1 + /P 22 0 R + /T (Contents) + /K [0] + /Pg 221 0 R +>> +endobj + +163 0 obj +<< + /Type /StructElem + /S /P + /P 22 0 R + /K [4] + /Pg 205 0 R +>> +endobj + +164 0 obj +<< + /Type /StructElem + /S /P + /P 22 0 R + /K [2 3] + /Pg 205 0 R +>> +endobj + +165 0 obj +<< + /Type /StructElem + /S /P + /P 22 0 R + /K [1] + /Pg 205 0 R +>> +endobj + +166 0 obj +<< + /Type /StructElem + /S /P + /P 22 0 R + /K [167 0 R] +>> +endobj + +167 0 obj +<< + /Type /StructElem + /S /Strong + /P 166 0 R + /K [0] + /Pg 205 0 R +>> +endobj + +168 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /BGRVFD+LibertinusSerif-Regular-Identity-H + /Encoding /Identity-H + /DescendantFonts [169 0 R] + /ToUnicode 172 0 R +>> +endobj + +169 0 obj +<< + /Type /Font + /Subtype /CIDFontType0 + /BaseFont /BGRVFD+LibertinusSerif-Regular + /CIDSystemInfo << + /Registry (Adobe) + /Ordering (Identity) + /Supplement 0 + >> + /FontDescriptor 171 0 R + /DW 0 + /W [0 0 500 1 1 322 2 2 531 3 3 372 4 4 542 5 5 250 6 6 951 7 7 493 8 8 447 9 9 390 10 10 504 11 11 428 12 12 512 13 13 316 14 14 790 15 15 271 16 16 457 17 17 747 18 18 538 19 19 485 20 20 264 21 21 588 22 22 490 23 23 505.99997 24 24 497 25 25 220 26 26 699 27 28 465 29 29 220 30 32 465 33 33 839 34 34 500 35 35 465 36 36 730 37 37 701 38 38 587 39 39 695 40 40 465 41 41 685 42 42 540 43 43 277 44 44 336 45 45 236 46 46 519 47 47 277 48 48 310 49 49 541 50 50 486 51 51 323 52 52 297 53 53 190 54 54 528 55 55 646 56 56 702 57 57 435 58 58 652 59 59 557 60 60 515] +>> +endobj + +170 0 obj +<< + /Length 13 + /Filter /FlateDecode +>> +stream +x ~# +endstream +endobj + +171 0 obj +<< + /Type /FontDescriptor + /FontName /BGRVFD+LibertinusSerif-Regular + /Flags 131078 + /FontBBox [-68 -238 1002 707] + /ItalicAngle 0 + /Ascent 894 + /Descent -246 + /CapHeight 658 + /StemV 95.4 + /CIDSet 170 0 R + /FontFile3 173 0 R +>> +endobj + +172 0 obj +<< + /Length 1450 + /Type /CMap + /WMode 0 +>> +stream +%!PS-Adobe-3.0 Resource-CMap +%%DocumentNeededResources: procset CIDInit +%%IncludeResource: procset CIDInit +%%BeginResource: CMap Custom +%%Title: (Custom Adobe Identity 0) +%%Version: 1 +%%EndComments +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo 3 dict dup begin + /Registry (Adobe) def + /Ordering (Identity) def + /Supplement 0 def +end def +/CMapName /Custom def +/CMapVersion 1 def +/CMapType 0 def +/WMode 0 def +1 begincodespacerange +<0000> +endcodespacerange +60 beginbfchar +<0001> <004A> +<0002> <0075> +<0003> <0072> +<0004> <006E> +<0005> <0020> +<0006> <0057> +<0007> <0062> +<0008> <0065> +<0009> <0073> +<000A> <006F> +<000B> <0063> +<000C> <006B> +<000D> <0074> +<000E> <006D> +<000F> <0069> +<0010> <0061> +<0011> <0077> +<0012> <0068> +<0013> <0053> +<0014> <006C> +<0015> <0042> +<0016> <0078> +<0017> <0064> +<0018> <0076> +<0019> <002E> +<001A> <004E> +<001B> <0030> +<001C> <0037> +<001D> <002C> +<001E> <0032> +<001F> <0035> +<0020> <0031> +<0021> <004D> +<0022> <0067> +<0023> <0033> +<0024> <0048> +<0025> <0044> +<0026> <0052> +<0027> <0041> +<0028> <0034> +<0029> <0047> +<002A> <0066006C> +<002B> <007B> +<002C> <0022> +<002D> <003A> +<002E> <0070> +<002F> <007D> +<0030> <0066> +<0031> <0050> +<0032> <005F> +<0033> <002F> +<0034> <0049> +<0035> <0027> +<0036> <004C> +<0037> <0043> +<0038> <0051> +<0039> <003F> +<003A> <0056> +<003B> <0045> +<003C> <0079> +endbfchar +endcmap +CMapName currentdict /CMap defineresource pop +end +end +%%EndResource +%%EOF +endstream +endobj + +173 0 obj +<< + /Length 6859 + /Filter /FlateDecode + /Subtype /CIDFontType0C +>> +stream +xyxSuc0jђ+ + +bEY?dCY-нIw4fI:R袌RdU"[x} yirϹ{|>2|Fa0~cB#RbS7EDNn/jb>h\y:ⷹ}xާ0F?;?;ѯc'y;Ǘ`q?X2<"!-&-sqbRfJLTtK#?6GG4KSc#^Z: | Zh_>;yا|_<#5{oly_x>;w~׷qQ̕B Gy%cO:936dn= Ozgl<5"{>Ls NP 9h5'-^ M/=W3V_;b}`>0dѽ|; d6 p> sNp +RqFQJ9ʼn -rsT*f ײክbfK Sxazԡ̪Fh9v,Ieuh6tx ³7ZRѥb4@RZQU.>a(M|`lөt +LA9{Ș +W +NPc{"#SE7p(īp3{cŏ*;?H'H!X~=DAZW&ˤj6[+VXp+{Vr{MO;Q"ug#5j[VbvPY-6QіWګkjp>LEBuحs=,MF{!UU9z>_' +$DAAKAW:[; MG' C:UF<l6Pb+ZHYJ83+:Y +32Hlh-6`'\..C$'&Fۮr9ܵJH`Ԣ1Wz0rRklޣJCRS$ rTm6%tڡjO0'2UR_`0(m(EY&FiRNFCFcnw 3#pcan@O.|vfFRo)bܗ$AXd\W}o#"7Q!p36#e g@,榢gN=~~}Ѓ,rC>Ɂ`0ϘhkpT\8KT םϞ90~.(DXH4)ڈ-_~<óGU ڛ]U ++(yIQĪkֶNRg ,ڊ.\"g=ra`G0C P7+,IyÙw +}~W)Rш֧"Er;kq5ܹ]/5|-ﰋ4E ;Y؆VlblD懶9gٶ&cVL+fN4i+akLPW(2r!Ҩg҈xV.{'5^+a#ySXXvXJĮpi\Ht:lO*$ q&%=('_ GYzҊJS۔f1ő˲$yhօW`⼺EglLW7U Z: +Z[]Y)S)Ulr#g(aj>cerLnO4vVv/ǹ ,9F0W0ĀѾ`7=pD4D&@* +^R&5#3 ~$sb +/3%CD!d JIBnL'IQj +*~Z!Èn-l.͋UyMЌG7Ct}D ?$Aqz_E~X|-NTJ& A:[q[m6qRponFl]իG5++04=z!+_VU|-:ᒀa##IC +))ץv.q]q_Bhq ?̞X:|60\ {QZҼ8d!GO~o},|! ^p' ̆)͟U9 0 +H +OsNãC'pCA Ө +Ұ`& ۖV{t 9D*諚>g Jzl;0[G5LNŽ ?%E Nm74iD||HƂUjL$ nwl?**H@^ܒj[~ C?|-Se24];=" N^Pm!m-yz?4NA6}=[)Ļ*暼 +(['p7q[ < '+|9p_vBw1Qh"66~[ɍs/䅨Hyqkɱ1dpR=ߣ Ԇ!՞qdAH:y짧G2Cdgh2eNYK!}n>#J ϒ/ Iګ#1KS>d4&*N/ŐNfPZm8ϾQJ1D*IDYr/qnF5qdH_S>CkSh%}zWn旖61}(Z CNDW' +kt)I$ ̧`9kprI懴0 +Ԏ˶1Yb}&"4*+jUY+ArP.ǁ xtab\LKiaέyD+3ʰc=gǓ0mt^Zxa5:rgV:ʪLjJmĐsjl6k>i[ׯ.b"7^9mbVSZ\ rCV,JB2VOi{Ѿ} ;s0]6{^0S@n`KET`yYB4##Kz%(xkpTpTWLeKuvXrZg"[(.̊Cfԁ`j'}^Q}A}<- j%PX/19]UT9ZK{Vcl&؉P \iLWF-t>xYs (UCBzHkDQTzxzуzDRQ`R06CӯԲdMt!vg]iP4p{+=eLGP(78Z D B@Fkz!˲>b%~_^VVQQ#*MQ +'H{pbjvp "6COؓ3X0뤋>M95 v)|)"gU8#!hBtѾ +Vem~έKpcEQ!j4\,J(r~:<58 uEh^"oK& Ox;jfi!*:?-(#rgj>v휅=b^9mב,'濖0eBu|6dqIۤex$&BŒI{`n[o -C̞ZUGnE!oZDvY~Vsr!|/h1]pdRÙ]( |6p f"ض=ӵn8:y?'l@pNli˵\EbܻB>ud?:֖_NړkT0nƗlV4]}ip|j;0E\фqFt@K!v}U>}<'\ jr-.,H&ή׾d@$s_7 +zڣ\XgY$Dd&[[a>.2p4|vIx d5ܟa\0A{1"Lo dfQ:b"bn!ȶ֑c>FC~?iN8AgxaZI:{!]|@0?]_I5L/C 4*b"ȟ:Y6 Sk{X2\Wχ8-2'GG%9Pkg&x8Mjk%ӱC/Tw g,JJw@;M_F$͠ofܡ'\񥟺 +΅ 0 `}i\lVaK- nST" zTӧS TX X`,ޭŭUk5*B=aQb =[֎ww}}own!rRCX8H~Sm=ٷ2g'L2 %LI5 *vl+¸qwsIAYb\O9|L%.獘L LI'7lr>h>S)a)+2B.T !qg,埠}.Q]ehT\&,˒uitO/2Oz{D鷐+d:yTØϖUUnc|/X/ C"><J#}? "gS´:1]u0t/F + +424&fŠtCYPf; -㽊 6M;Ƞl!:,>|8twi>b UZ[z-X,Efgi?F""ȝ%vto%FM_p_F׍ӸY!%㦡\>܉=VXwkqҢRIǰm>$.`=rmؔp] +؃qkPwlI'}(KC.> Q $N{.SѪ p9p1p4"2Y0Rd)r+ fXF ]8s?Ƴʘ+oGV~9|/; l?^1{tuze9,؏mݸ*('!,[^>X-3L&Έu3VTr]u n<>C.l MIS蚂 +[uR0ҠȀcL?<s`/^I@~JAv*> +endobj + +175 0 obj +<< + /Type /Font + /Subtype /CIDFontType0 + /BaseFont /TZMEYV+LibertinusSerif-Bold + /CIDSystemInfo << + /Registry (Adobe) + /Ordering (Identity) + /Supplement 0 + >> + /FontDescriptor 177 0 R + /DW 0 + /W [0 0 500 1 1 504 2 2 456 3 3 619 4 4 551 5 5 325 6 6 654 7 7 730 8 8 718 9 9 250 10 10 1028 11 11 706 12 12 616 13 13 358 14 14 489 15 15 427 16 16 514 17 17 244 18 18 899 19 19 505.99997 20 20 521 21 21 817 22 22 428 23 23 542 24 24 529 25 25 514 26 26 734 27 27 322 28 28 716 29 29 514 30 30 740 31 31 598 32 32 514 33 33 732 34 34 680 35 35 777] +>> +endobj + +176 0 obj +<< + /Length 13 + /Filter /FlateDecode +>> +stream +x +endstream +endobj + +177 0 obj +<< + /Type /FontDescriptor + /FontName /TZMEYV+LibertinusSerif-Bold + /Flags 131078 + /FontBBox [0 -238 1024 700] + /ItalicAngle 0 + /Ascent 894 + /Descent -246 + /CapHeight 645 + /StemV 168.6 + /CIDSet 176 0 R + /FontFile3 179 0 R +>> +endobj + +178 0 obj +<< + /Length 1100 + /Type /CMap + /WMode 0 +>> +stream +%!PS-Adobe-3.0 Resource-CMap +%%DocumentNeededResources: procset CIDInit +%%IncludeResource: procset CIDInit +%%BeginResource: CMap Custom +%%Title: (Custom Adobe Identity 0) +%%Version: 1 +%%EndComments +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo 3 dict dup begin + /Registry (Adobe) def + /Ordering (Identity) def + /Supplement 0 def +end def +/CMapName /Custom def +/CMapVersion 1 def +/CMapType 0 def +/WMode 0 def +1 begincodespacerange +<0000> +endcodespacerange +35 beginbfchar +<0001> <0053> +<0002> <0063> +<0003> <0068> +<0004> <006F> +<0005> <006C> +<0006> <0042> +<0007> <004F> +<0008> <0058> +<0009> <0020> +<000A> <0057> +<000B> <0043> +<000C> <006E> +<000D> <0074> +<000E> <0065> +<000F> <0073> +<0010> <0031> +<0011> <002E> +<0012> <004D> +<0013> <0061> +<0014> <0067> +<0015> <0048> +<0016> <0072> +<0017> <0062> +<0018> <0076> +<0019> <0032> +<001A> <0044> +<001B> <0069> +<001C> <0052> +<001D> <0033> +<001E> <0041> +<001F> <0075> +<0020> <0034> +<0021> <0047> +<0022> <0066006C> +<0023> <0077> +endbfchar +endcmap +CMapName currentdict /CMap defineresource pop +end +end +%%EndResource +%%EOF +endstream +endobj + +179 0 obj +<< + /Length 4353 + /Filter /FlateDecode + /Subtype /CIDFontType0C +>> +stream +xXwxME3L\f`&D A(Rj64RI6lݝ-f!!$Q4<6+ȱ˹g%\w~~\Ό.ztoDrt+ G]/$;_A <8,=zdx 89 8p8gŮӷK8\._))&$f$GGFx߿Z+VZ>yJNxoNMJH>qp9 J-eeilQAފ1S11 fvwp9g+:V +3iObI_7\M5n&3H^6>SX*4S5>;h 8?9^s"=+avvkJ_ +7gO+亃L7e@őnETn`#xbϝٸuz%+':%>DDAq^PH['ҳYlad/RYCPSU=tw[;Ԯ*޶fxgȍ ;2U&U+QW;+DSOI%]gF{c tXZ;^6mE=z~O f_&O8ziѥj+ +Rm/vm8[i +" =Zʦ0PҼy|SbJL.XUSM)TR Ɔژfm, 5d& 49;JHGW(XU]74vvm!!ȝ,7oq횞~jdq_}-[NEg"(0-@>07ާE(Zvȱo$ +?ͅN:!#x&^ Ob,l3 ^K˕TR8nV#%Zw{,~K_u'ic48F W(:觉%'лe>O;^@b?ey &h1GaxƲb{"xMdRy/Ɠ/lMY#/z9Ko7} 7`~7r[vAɛ|NȁE5:lvg,{)u>9>bZ])ePCMztqjRY$l7wZIc1)):VN˳bs 0Wڣ7Lc$vFFRJZQ&AʒuH*N* RM֪;q+w!|99{ES"q`qK4S|`wtU6׈M=)V$yXyGq0o/)$W'K[Q2KWk4<.SxbU9YZfаڷ'D3Qa -IEf;y"X!?^wݝ}B߾9xVYOe}k$> a<9̅@ .QE +ƄA4DW#wӇ46)pv=!D8s8jHGC-KHG]V-QrH/gkFO+cE=,oԩl~or$!Bo?OI0b쇋V<'[K tzYʠ([tm^]@]hnK<;%MV02n" +fuHexz(P~Cx,7s~:Ye jzh숦Deͳ +rW*NzX̃ū[|^A3Bw$u753c4v]o%+av_9%bkoW-ڛ:(lXAd.ӢXT/zA֫,xDy?`l$K%=I-cil`Ԟ!!:,)1q(7I O# yl +;m))Q +CdҒcTb% 4<ا޵cTS8zڲH;*eZ^[˴XNkOn֎*;i(:X%k$ϼZxJAg9 w*{FA yIWGV;Y%j\4ne'=Ba`8f{W¼H$]b#CwUp\q4r!8IA>o%mzZa]^wSvRNڊ VRYXO4:Z#"vU|Mk)-ac +9d`FO?( |˝2v廃Uuu] iTv\UR.&Ke*a\ 0`?2OOG8Bqx]G<' _O)OEGm2vk̑vx.Ϩ,Y^BoU*&lkLcU~ s(}>Чф8\,%5Z R@i2R.R( +~{ a.0{Onik3i,jR[bkphMGY yX/-s ) y colps4"~~b +-ں—A~];!g"x1(#!v&`6ή5t:2Z^G\ߍ%OPVݓwՒ.  ǵTq9J__¾5DxLCc5;40%6Z3WNtEFRi\"ǔqL](v:Ii:,ʹbgyyDl|>G敚q$2S*% LWGW]_8sb&cl(Mْ|㊂~Tc" ~!p OUFkHYב'_eiܛk˝<6 5b`Ҙu/Ñ +Z +ZNN%h2HIC^#RdЅh /?ji?GZ"Og-*#{&lzFc7W%\xdq eug _.yqM>QFUTuɖBd4𚄿.CSh`hg0N/e%v9F0`k0PN(%A0 5_Vz_sC<׽rb7g08gޥ"k13]fe6kfaDHw~KKY)c)(wV_Cy'DM?*jJ bCSY} +aQ @&RM)iv hEz^Z]J+ 5V㕽hR$ oʔ~h7Z-V)u*Po x +endstream +endobj + +180 0 obj +[/ICCBased 182 0 R] +endobj + +181 0 obj +[/ICCBased 183 0 R] +endobj + +182 0 obj +<< + /Length 258 + /N 1 + /Range [0 1] + /Filter /FlateDecode +>> +stream +xuJPFOUvDD@`]\ +FMkIRB|&إnऋ(HrTų9` ըa&ʺ:l +3Ŭ*ުnh)&C|>b纝黓AvCƫ+ y') +̵8+/> +stream +x}Kq?UX 94%MQKSN#ԦQvBˡhFk ! +ՠZP~xx^ޗQx"^P c!H0 + 0l+ߣy7;׫;Q?V._tF3LEK)y z80eIPkT/%[p:8+%d"G `d_{ٹ֖gzm\8rSif1\CU` S] @o _ +endstream +endobj + +184 0 obj +[223 0 R /XYZ 70.86614 738.84607 0] +endobj + +185 0 obj +[223 0 R /XYZ 70.86614 675.262 0] +endobj + +186 0 obj +[223 0 R /XYZ 70.86614 762.70416 0] +endobj + +187 0 obj +[223 0 R /XYZ 70.86614 605.89185 0] +endobj + +188 0 obj +[223 0 R /XYZ 70.86614 542.30774 0] +endobj + +189 0 obj +[223 0 R /XYZ 70.86614 629.74994 0] +endobj + +190 0 obj +[223 0 R /XYZ 70.86614 472.93762 0] +endobj + +191 0 obj +[223 0 R /XYZ 70.86614 355.13754 0] +endobj + +192 0 obj +[223 0 R /XYZ 70.86614 496.7957 0] +endobj + +193 0 obj +[223 0 R /XYZ 70.86614 267.69537 0] +endobj + +194 0 obj +[223 0 R /XYZ 70.86614 204.11133 0] +endobj + +195 0 obj +[223 0 R /XYZ 70.86614 291.55347 0] +endobj + +196 0 obj +[223 0 R /XYZ 70.86614 788.1102 0] +endobj + +197 0 obj +[240 0 R /XYZ 70.86614 788.1102 0] +endobj + +198 0 obj +[223 0 R /XYZ 70.86614 583.5818 0] +endobj + +199 0 obj +[223 0 R /XYZ 70.86614 432.55554 0] +endobj + +200 0 obj +[223 0 R /XYZ 70.86614 414.48352 0] +endobj + +201 0 obj +[223 0 R /XYZ 70.86614 332.82745 0] +endobj + +202 0 obj +[223 0 R /XYZ 70.86614 450.62753 0] +endobj + +203 0 obj +[223 0 R /XYZ 70.86614 245.38531 0] +endobj + +204 0 obj +[223 0 R /XYZ 70.86614 396.41153 0] +endobj + +205 0 obj +<< + /Type /Page + /Resources << + /ProcSet [/PDF /Text /ImageC /ImageB] + /ColorSpace << + /c0 180 0 R + >> + /Font << + /f0 174 0 R + /f1 168 0 R + >> + >> + /MediaBox [0 0 595.2756 841.8898] + /StructParents 0 + /Parent 1 0 R + /Contents 206 0 R +>> +endobj + +206 0 obj +<< + /Length 437 + /Filter /FlateDecode +>> +stream +xT=O0+E?b QpP܉" ݱNM&Qxˇ@{:;ܽvOVQY@@h,D4]ց `ͽj7gq'n8@}_^;B+D+H,442 z ?_!П^U+uڪ4rybE L\rXC m=j:9>ZuACby$`RJ)>7/Ū슆`]7083&@0>ٶT#!Ehs, YE/el0& +J|ƩD_ra!\u􆑗o5ע?<3 […f̻ET3| U rl_c|h;˓Q&"7K~8O_dKM +endstream +endobj + +207 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [70.86614 744.80817 524.4094 752.70416] + /Border [0 0 0] + /Dest 196 0 R + /F 4 + /StructParent 1 + /Contents +>> +endobj + +208 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [70.86614 728.51215 524.4094 736.40814] + /Border [0 0 0] + /Dest 186 0 R + /F 4 + /StructParent 2 + /Contents +>> +endobj + +209 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [70.86614 712.2162 524.4094 720.1122] + /Border [0 0 0] + /Dest (ping) + /F 4 + /StructParent 3 + /Contents +>> +endobj + +210 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [70.86614 695.92017 524.4094 703.81616] + /Border [0 0 0] + /Dest (pong) + /F 4 + /StructParent 4 + /Contents +>> +endobj + +211 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [70.86614 679.62415 524.4094 687.52014] + /Border [0 0 0] + /Dest 189 0 R + /F 4 + /StructParent 5 + /Contents +>> +endobj + +212 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [70.86614 663.3282 524.4094 671.2242] + /Border [0 0 0] + /Dest (reg_pin) + /F 4 + /StructParent 6 + /Contents +>> +endobj + +213 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [70.86614 647.03217 524.4094 654.92816] + /Border [0 0 0] + /Dest (reg_start) + /F 4 + /StructParent 7 + /Contents +>> +endobj + +214 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [70.86614 630.73615 524.4094 638.6322] + /Border [0 0 0] + /Dest 192 0 R + /F 4 + /StructParent 8 + /Contents +>> +endobj + +215 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [70.86614 614.4402 524.4094 622.3362] + /Border [0 0 0] + /Dest (auth_nonce) + /F 4 + /StructParent 9 + /Contents +>> +endobj + +216 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [70.86614 598.14417 524.4094 606.04016] + /Border [0 0 0] + /Dest (auth_start) + /F 4 + /StructParent 10 + /Contents +>> +endobj + +217 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [70.86614 581.84814 524.4094 589.74414] + /Border [0 0 0] + /Dest 195 0 R + /F 4 + /StructParent 11 + /Contents +>> +endobj + +218 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [70.86614 565.5521 524.4094 573.4481] + /Border [0 0 0] + /Dest (session_start) + /F 4 + /StructParent 12 + /Contents +>> +endobj + +219 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [70.86614 549.25616 524.4094 557.15216] + /Border [0 0 0] + /Dest (session_vote) + /F 4 + /StructParent 13 + /Contents +>> +endobj + +220 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [70.86614 532.9602 524.4094 540.8562] + /Border [0 0 0] + /Dest 197 0 R + /F 4 + /StructParent 14 + /Contents +>> +endobj + +221 0 obj +<< + /Type /Page + /Resources << + /ProcSet [/PDF /Text /ImageC /ImageB] + /ColorSpace << + /c0 180 0 R + >> + /Font << + /f0 174 0 R + /f1 168 0 R + >> + >> + /MediaBox [0 0 595.2756 841.8898] + /StructParents 15 + /Tabs /S + /Parent 1 0 R + /Contents 222 0 R + /Annots [207 0 R 208 0 R 209 0 R 210 0 R 211 0 R 212 0 R 213 0 R 214 0 R 215 0 R 216 0 R 217 0 R 218 0 R 219 0 R 220 0 R] +>> +endobj + +222 0 obj +<< + /Length 7108 + /Filter /FlateDecode +>> +stream +x՝[duFWt\4InÀ@!ȼe y"OܮQRiH=ӋUs^_/oh-cor\_W|?~o>o>S?h5ot>AjZ#9mdo䢧zXT tX%#$IMFmW/~={_q4/?(_yqq5LʩޞN}aPɻ|QX%ν~?=uMEC-1̋98 +hd4鱆cС,H6[Ҏǘ~}٘a37iDd/6ftdVTN!)ۨ*u+8Fz͊v8FqkY2*if8FROn I321ZԎ=ѬEѓ%-ID8pYO]qJ>2Q$ųU? + C+餚HZIE@FY![=R:)2.Zbc"v9Fh)ZJȨFRD4sѴN -C{1h<)ZJgU:8(fK2 R\tt(zrU ddO,Ck*z:({UEBtC`"?O Ck#1B԰tHPwѴNhFɋҔ[=ۈ!PqZJt뽡'/r/tB+OG"~/gɋ2^ɋk#'/CʖSwN^|R c42,IĴ:QD0=I1tX"#"2csYtWC׳ϏB^סf[Sq Q] 0`!1U=qzL=a*(Z!º+wa%ba)QEZzݒO`Jͼ'1Dv1}!y_UOokNB!L@)P%(0Xq(M^ +T?r7Yz~WmVGx}l ۇWO7?}MÈ'ԉ[FZ,(cetU[ cf&$3!:r7,Yɨևs.wC.FI2šV(cZ +TXs#C62tjd4e!JXF{$+,cZ7̑XưTKA=[QYFWӎ2FTv#fv()#9St9?$Gd 9ġ{E84G\*;8tuAFe͑9/Ӣ< Ȑa&vΥqr QDWv)^+'\oːán-gռKB2U5 8ι,Q9aNveqιr':ơ:JɨzE8~xa5Ԍd0+;9y(9ɡ%verHs\$cZϝsFf\*9aF.elOI\# R !ʑ pտc<&:O6@ܙrQ;_ \O YP Zֲw |R Gn_A}!xpo.'>=m](ny Zm5D(j(c'A =끆@4<ʨ6JO4̤:!1ɘj^ +Pu(:DK@C+AKXs z+zy(Hj(U 1-Xqi9‘f^{F\a$"L2f}4\eL$CYQ +\8 Or:,ھ58kQJ2$zJ2T5m <U518< eqfqSuy#Q!yBW GAF+Q_$[45QJ1-)^tc(ŐGB\) "n C!סCԆs{jRK2(03C+b)+V)D/#€~ppr6 ],< 0ܗr%^0\O ЮZ%?7_M3nFaFۍ"Cl7Xnt#Fۍ"Cl7Xn b@F~ˍ!D,7nb@r#pF7H8r#FD,7nb@r#FˍC,7HXn a8v#Fˍ!D,7Xnpq#pF 7F8 b8v#Fˍ!D\a@ōD\a@r#Fۍ"Cl7Xn FˍD,78 b8ę+2@`^OD7/^rF>A)GnG8Gۏ1N?~̏2c~ c8Gۏ1N?~q@#pӏ2dl?8 c8Gۏ1N?~q@#G c8Gۏ1N?~q@#Gd\a@#pӏ2c~ c8Gۏ1N?~̏2c~ c8Gۏ1N?~q@#pӏ2dl?8 c8Gۏ1N?~q@#G c8-/v-6 ~U%[둇7oK ?H ^25ae?j7jCEucLB9fQBN#ʓj%7 @ƴޓNusSגd k(1:`MuG,m-s2U+,e4ГLJjt'(ݪW"sbjAn58$)QD/j2ME>]=$am<#bjqQ\B=R 8*ӆR$#r2ѥ[R]GCѵ[iټ怌f1\Ǎ9Fw ЗՅ52śLAq }fľ٭9ͣid4y9FrȨVYU>>\߳k7yRkMTUڂ]Z_k7Ug>Q̣6Ș6Ehf4*L?<+ 2J{0 ]T_SzeAcq cڨ3QG?G>Џ2}/z~ez "<߹Lw^ٷoh8b+0ĩ[!B$A7;?>%aԮk7! ?n{z}͌2BN]2QHF/֎8nfre etsuJ&3YCLB8Bv)33F%/">IF*6Fqt>ҰRAU1-c+((d4qpCGJ*dLk9%tʫvr CnjC/VsFoV[}@FO6kGW=7 gA߫Q ]YATg)z#ׇJ<29j]tt +Dl2BR\IDڢ]ܜ}T&%2lD(Eemz͂-ާjQ%+>Eoj2(tti'i@VQ&%yKltL,C}Y^U-"(2B'2)E+ Y(cXI wS&|)薣bʤTXD4խIJ"4Y 1\зN㒿hHP5#U(Q 3θ[J)2jAKG%UŐKci*ɐ ]< ܗr.\\O SZ9;^M=.na[s"ClX 4\[s"ClX 5 bi.@ġ~Ks!D,ؚ 4bk.@\pHh.8\D,ؚ 4bk.@\KsC,HX 4 ai.8\Ks!D,X p\p F85 bi.8\Ks!D\4ak.@EsD\4ak.@\[s"ClX 4 ᢹKsD,85 bi.8ę+s2@_Ǵ\[jDS<e\<sq(?s1N؞ qz.@\`g =\s1N؞ qz.@\ps2c = c{.8s1N؞ qz.@\ps2dlxs1N؞ qz.@\ps2dl8= s"C =\s1N؞ qz.@\`g =\s1N؞ qz.@\ps2c = c{.8s1N؞ qz.@\ps2dlxs1`}/d!ţ+~ThwSq]qP| ZK o+ RZO#1riw)]'9*#tK\)Ѫzqf)rݤG#=$IC!ȅD&Q x:d܉8:HUsЕ``y$TZq]m(A.GY㮈/^ )+#yW w +endstream +endobj + +223 0 obj +<< + /Type /Page + /Resources << + /ProcSet [/PDF /Text /ImageC /ImageB] + /ColorSpace << + /c0 180 0 R + /c1 181 0 R + >> + /Font << + /f0 174 0 R + /f1 168 0 R + >> + >> + /MediaBox [0 0 595.2756 841.8898] + /StructParents 16 + /Parent 1 0 R + /Contents 224 0 R +>> +endobj + +224 0 obj +<< + /Length 4120 + /Filter /FlateDecode +>> +stream +x]ێ}߯ EZV| x,?H8Wf3=={Q7BѮVfXaw~>O_wϻ/_7ܩNu/sl:<7?ܽUߨonQ;ձݿ~O_)^)QO77ۯn΅a L䌲 #OvO?}4?W^4 e7diZj \̈́s<|xv/Yu~,;LVq!k5n5ۈL.i Jb;`;(X)ʛ w܋=Z:|i&;)c|ȧO宐JL:rR E$%v_1 ++!<˫eimEBuگQBN_2QSdu_ + $;x+Yty{f!6vo]BΖحY'킐5RIsKnrn`ޔ$्rL.xiҐJnZ.iG^傛\ڋɝ$N>lPJ:]]E ޹ߛKNFeeHL=/3$y(DU)́B YA>ŐM܏FőKUjcfU'%,K4 +q_v/PJ(d{ gY.ucq֓h^ j1,FGyRړ+%:ot>s(Eg!=fJk*OYV. ~,6YhG$ΣhXX!l_ RxҲqـȊh|fgUp56c*6\}WgmĖ0 T~M4d aXGl ˹|dxj%ԔlA>bu.Um&R>bm.Y|ĺ\>U>m\zrMoz^P_aHS఻1(ÈR 8i&eg ԣ Vv%/D{t gUe銊Uar<ms`o4ژ4#eB A>P[&*!z -M5;MϗN9?_zl+nr<E{·=Rw}Iŧ%[WO. +!㨈[ګCw\ۘ tP&*A>mk0t>f]Yᖌ}2oy# QM|b& Z1 >WomCMî,ҢJ4,r1,wUql% xKRģ =( +J+%!֋!뼷%o ]1+C[Wy~z[8}MіP3@#+-)c_HX=ܙV@-c ;2Y,yE;Jךaѵk1PM2Y~|cdlU;Yq6;jQ=;$.ijc0 +f󪺢t!7j~"ZN3=@k;%ܪU i䪝5ë$HW5xa|NbUM=ä^4gCLJbONw'w\7\ѵϐL,"$.}!#$?} IS#Z]+)/aBv֔B~8O~WU1@ +\~I4)VWe**翐*<-6)}P翕[bnQL^ 3c*i +a֒nw`ٽ] +[eh͚4։6i8ZC/1PЩwAYbR!XFe!ǣ36JmQ18t|l ͳzBD=URNȰwC iS%5_;Y[UʕAOԾ3JjQŝ+/)Jej(Hdʨ;eԮ2OʨJ­+ W/j$HR>)X<$#Qpߐ|RFՒ`nJ^LܙsjQ+y60_WqA"%#r|šIYL+x59O>E'JJTHZ{gֲqԞ[HeGQY*UicE;_36[֔mAϳ`Z|yU_QyK +oNTB0){y&U3]ҺYk>cN#q8×njAY|cY_U%geZ*?ڛuk_949uՄbҫY-Q$) T`[$ol/*cUdZնr|Na_/0"OxYyGdŴ2nȃ'?[=:{Et$rEaim;O)@:4i_zфGӝozфlaKZ-Oֵs__~~4J-giӫ![ H'}Fv9Znp=kIIj>$zxDɱ寝-Mvd6' +鯂BMh]<òٯ[Zg@I$㴮5@ |7N |jʶ Wukba\~I&7Y %ܬ8I#hKL[7ޛG:b鑂ZF0u~m&Eڪݽf[Msr$(#aSLWyJ/J]hI`ƍv4I;S[tZp25[V#PjYХ@vEGEʤV&sOIf3t$ b|$`#{jK"> MfibL S?[Я(ڒ:Ƨ:We绮bD_SvƯ$6%~T6Q9!]:ߨC:,zLsg_A :BԭR=TkERȚ##dTlKb)[tgeHZU1bM.$BN4i=j}x@JmmĤ( tsL6XM &iH&2ѶBSS9 sHwNTYyu40"2n2~ JDS(4n_}Urmr?4Op4̳1gdN94Θ J `|x|O/?=鿿ӷ?=~pII4GACm@o>%-: +endstream +endobj + +225 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [487.2558 731.60815 509.2398 747.9042] + /Border [0 0 0] + /Dest (ping) + /F 4 + /StructParent 17 + /Contents (Section 1.1.1) +>> +endobj + +226 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [485.8158 675.71216 510.6798 692.0082] + /Border [0 0 0] + /Dest (pong) + /F 4 + /StructParent 18 + /Contents (Section 1.1.2) +>> +endobj + +227 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [94.33379 675.71216 138.1098 692.0082] + /Border [0 0 0] + /Dest (reg_start) + /F 4 + /StructParent 19 + /Contents (Section 1.2.2) +>> +endobj + +228 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [97.44779 619.81616 134.99579 636.1122] + /Border [0 0 0] + /Dest (reg_pin) + /F 4 + /StructParent 20 + /Contents (Section 1.2.1) +>> +endobj + +229 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [99.343796 563.92017 133.0998 580.2162] + /Border [0 0 0] + /Dest 198 0 R + /F 4 + /StructParent 21 + /Contents (page 3) +>> +endobj + +230 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [365.0718 675.71216 415.2198 692.0082] + /Border [0 0 0] + /Dest (auth_start) + /F 4 + /StructParent 22 + /Contents (Section 1.3.2) +>> +endobj + +231 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [214.0938 675.71216 276.2298 692.0082] + /Border [0 0 0] + /Dest 199 0 R + /F 4 + /StructParent 23 + /Contents (page 3) +>> +endobj + +232 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [361.39978 619.81616 418.89178 636.1122] + /Border [0 0 0] + /Dest (auth_nonce) + /F 4 + /StructParent 24 + /Contents (Section 1.3.1) +>> +endobj + +233 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [195.8478 563.92017 294.4758 580.2162] + /Border [0 0 0] + /Dest 200 0 R + /F 4 + /StructParent 25 + /Contents (page 3) +>> +endobj + +234 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [356.8878 563.92017 423.4038 580.2162] + /Border [0 0 0] + /Dest 201 0 R + /F 4 + /StructParent 26 + /Contents (page 3) +>> +endobj + +235 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [370.0818 508.02417 410.2098 524.3202] + /Border [0 0 0] + /Dest 202 0 R + /F 4 + /StructParent 27 + /Contents (page 3) +>> +endobj + +236 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [84.595795 396.23218 147.8478 412.52817] + /Border [0 0 0] + /Dest (session_start) + /F 4 + /StructParent 28 + /Contents (Section 1.4.1) +>> +endobj + +237 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [85.165794 340.33615 147.2778 356.63217] + /Border [0 0 0] + /Dest (session_vote) + /F 4 + /StructParent 29 + /Contents (Section 1.4.2) +>> +endobj + +238 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [85.3278 284.4402 147.1158 300.73615] + /Border [0 0 0] + /Dest 203 0 R + /F 4 + /StructParent 30 + /Contents (page 3) +>> +endobj + +239 0 obj +<< + /Type /Annot + /Subtype /Link + /Rect [342.4758 396.23218 437.8158 412.52817] + /Border [0 0 0] + /Dest 204 0 R + /F 4 + /StructParent 31 + /Contents (page 3) +>> +endobj + +240 0 obj +<< + /Type /Page + /Resources << + /ProcSet [/PDF /Text /ImageC /ImageB] + /ColorSpace << + /c0 180 0 R + /c1 181 0 R + >> + /Font << + /f0 174 0 R + /f1 168 0 R + >> + >> + /MediaBox [0 0 595.2756 841.8898] + /StructParents 32 + /Tabs /S + /Parent 1 0 R + /Contents 241 0 R + /Annots [225 0 R 226 0 R 227 0 R 228 0 R 229 0 R 230 0 R 231 0 R 232 0 R 233 0 R 234 0 R 235 0 R 236 0 R 237 0 R 238 0 R 239 0 R] +>> +endobj + +241 0 obj +<< + /Length 2910 + /Filter /FlateDecode +>> +stream +x\K`l*Ջ"bd 7im#ofg~}sK&aW7/u0azJdŀMY%:L]^u/:Lg0QOC5 + LO~Hu^t}{vs21w(a&a&Tw;-W_uإO~o2_޽N_0Ձ<;RhWW/!d+?xCIݫd +Y2d{”A ג>t$L;ƫ'wډZ}&ii⭴6̈́7DU@KH+pfJ(n#$T}yR:\;\QfɤBu0Q.f4!pL Y[X^JbF`T|4DdMdǙQRjiпy. _7(È%:G#*Sj(W*rZ Y_(EP%1W.[.. 1v_o0XQ(sKOY pbMQգbhAA*I)&PiI?+JOKVULRT@Xּ"À4(0K$QySyUTZW1D՘!kݣ~kAԘcOTcPcigQp`@F3#c^z[^zNj&B(NuVp%P`WlXiI>ђl˒l몶(g:>X%)n##&p&KTiVQHke}yfW5}CP{lcYjRd@9l5e.sU+JcM˙<Q,zPޕ>,HS{wc;tk5i$r"bGaQQ:q'\ +ZWڟz26alEiq :`=] +@Rڧu@9S:M#uZzU+NX[eeZc'4T{}ⷎKijgJ/ɑp+}۾Vg,)W|vI5s;S{E}^7&;GJ3 +׍}*96#=JBG2gC>vƒ8vG}f0vwpx?+AQ@ۻ h&POVY Ǚ$#1jM'*P#׍ރ\b{١Oe('&W3yL@2M;(zn&\|ɥqf Hf0*{ArQֵTwPo)5q%ݝKǽj:-;Y=^eNInxLj`\QIfT(7$-"o>U[ecTקO]|{uJfK .l]qF9D٘}Of0i=ݎ 08øshH~ >#" T%EEۛrWw.zIMľx.9 h +endstream +endobj + +242 0 obj +<< + /Title (SchoolBOX WS) + /Author (Jurn Wubben) + /Creator (Typst 0.14.0) + /ModDate (D:20251107151730+01'00) + /CreationDate (D:20251107151730+01'00) +>> +endobj + +243 0 obj +<< + /Length 1158 + /Type /Metadata + /Subtype /XML +>> +stream +SchoolBOX WSJurn WubbenTypst 0.14.0en2025-11-07T15:17:30+01:002025-11-07T15:17:30+01:004application/pdfEsiFnDBrn7E+8Igy9xxIdQ==GpZRDYKXljiVVkByDsdVpw==proof1.7 +endstream +endobj + +244 0 obj +<< + /Type /Catalog + /Pages 1 0 R + /Metadata 243 0 R + /Lang (en) + /StructTreeRoot 17 0 R + /MarkInfo << + /Marked true + /Suspects false + >> + /ViewerPreferences << + /Direction /L2R + >> + /Outlines 2 0 R + /Names << + /Dests << + /Names [(ping) 184 0 R (pong) 185 0 R (reg_pin) 187 0 R (reg_start) 188 0 R (auth_nonce) 190 0 R (auth_start) 191 0 R (session_start) 193 0 R (session_vote) 194 0 R] + >> + >> +>> +endobj + +xref +0 245 +0000000000 65535 f +0000000016 00000 n +0000000106 00000 n +0000000187 00000 n +0000000321 00000 n +0000000456 00000 n +0000000549 00000 n +0000000642 00000 n +0000000795 00000 n +0000000888 00000 n +0000000981 00000 n +0000001139 00000 n +0000001235 00000 n +0000001331 00000 n +0000001468 00000 n +0000001564 00000 n +0000001660 00000 n +0000001756 00000 n +0000002311 00000 n +0000002370 00000 n +0000002733 00000 n +0000004929 00000 n +0000005095 00000 n +0000005437 00000 n +0000005635 00000 n +0000005772 00000 n +0000005927 00000 n +0000006064 00000 n +0000006219 00000 n +0000006356 00000 n +0000006511 00000 n +0000006648 00000 n +0000006803 00000 n +0000006940 00000 n +0000007095 00000 n +0000007232 00000 n +0000007387 00000 n +0000007524 00000 n +0000007679 00000 n +0000007816 00000 n +0000007971 00000 n +0000008108 00000 n +0000008263 00000 n +0000008400 00000 n +0000008555 00000 n +0000008692 00000 n +0000008846 00000 n +0000008983 00000 n +0000009137 00000 n +0000009274 00000 n +0000009428 00000 n +0000009565 00000 n +0000009719 00000 n +0000009856 00000 n +0000010010 00000 n +0000010119 00000 n +0000010251 00000 n +0000010447 00000 n +0000010554 00000 n +0000010686 00000 n +0000010810 00000 n +0000010942 00000 n +0000011134 00000 n +0000011241 00000 n +0000011349 00000 n +0000011481 00000 n +0000011673 00000 n +0000011805 00000 n +0000011929 00000 n +0000012036 00000 n +0000012168 00000 n +0000012336 00000 n +0000012468 00000 n +0000012636 00000 n +0000012768 00000 n +0000012924 00000 n +0000013056 00000 n +0000013180 00000 n +0000013312 00000 n +0000013504 00000 n +0000013611 00000 n +0000013726 00000 n +0000013858 00000 n +0000013972 00000 n +0000014077 00000 n +0000014209 00000 n +0000014323 00000 n +0000014455 00000 n +0000014623 00000 n +0000014728 00000 n +0000014839 00000 n +0000014971 00000 n +0000015085 00000 n +0000015190 00000 n +0000015322 00000 n +0000015460 00000 n +0000015592 00000 n +0000015702 00000 n +0000015805 00000 n +0000015911 00000 n +0000016016 00000 n +0000016113 00000 n +0000016196 00000 n +0000016336 00000 n +0000016496 00000 n +0000016587 00000 n +0000016725 00000 n +0000016815 00000 n +0000016898 00000 n +0000017038 00000 n +0000017198 00000 n +0000017289 00000 n +0000017372 00000 n +0000017512 00000 n +0000017672 00000 n +0000017763 00000 n +0000017846 00000 n +0000017986 00000 n +0000018146 00000 n +0000018237 00000 n +0000018327 00000 n +0000018410 00000 n +0000018550 00000 n +0000018710 00000 n +0000018801 00000 n +0000018884 00000 n +0000019024 00000 n +0000019184 00000 n +0000019275 00000 n +0000019358 00000 n +0000019498 00000 n +0000019658 00000 n +0000019749 00000 n +0000019839 00000 n +0000019922 00000 n +0000020062 00000 n +0000020222 00000 n +0000020313 00000 n +0000020396 00000 n +0000020536 00000 n +0000020696 00000 n +0000020787 00000 n +0000020870 00000 n +0000021010 00000 n +0000021170 00000 n +0000021261 00000 n +0000021351 00000 n +0000021434 00000 n +0000021574 00000 n +0000021734 00000 n +0000021825 00000 n +0000021908 00000 n +0000022048 00000 n +0000022206 00000 n +0000022296 00000 n +0000022379 00000 n +0000022519 00000 n +0000022677 00000 n +0000022767 00000 n +0000022850 00000 n +0000022990 00000 n +0000023148 00000 n +0000023238 00000 n +0000023342 00000 n +0000023429 00000 n +0000023518 00000 n +0000023605 00000 n +0000023684 00000 n +0000023777 00000 n +0000023962 00000 n +0000024766 00000 n +0000024857 00000 n +0000025114 00000 n +0000026646 00000 n +0000033611 00000 n +0000033793 00000 n +0000034375 00000 n +0000034466 00000 n +0000034719 00000 n +0000035901 00000 n +0000040360 00000 n +0000040398 00000 n +0000040436 00000 n +0000040795 00000 n +0000041218 00000 n +0000041272 00000 n +0000041324 00000 n +0000041378 00000 n +0000041432 00000 n +0000041486 00000 n +0000041540 00000 n +0000041594 00000 n +0000041648 00000 n +0000041701 00000 n +0000041755 00000 n +0000041809 00000 n +0000041863 00000 n +0000041916 00000 n +0000041969 00000 n +0000042022 00000 n +0000042076 00000 n +0000042130 00000 n +0000042184 00000 n +0000042238 00000 n +0000042292 00000 n +0000042346 00000 n +0000042638 00000 n +0000043154 00000 n +0000043416 00000 n +0000043690 00000 n +0000043957 00000 n +0000044226 00000 n +0000044512 00000 n +0000044782 00000 n +0000045056 00000 n +0000045349 00000 n +0000045622 00000 n +0000045898 00000 n +0000046165 00000 n +0000046442 00000 n +0000046720 00000 n +0000046997 00000 n +0000047425 00000 n +0000054613 00000 n +0000054924 00000 n +0000059124 00000 n +0000059314 00000 n +0000059504 00000 n +0000059699 00000 n +0000059893 00000 n +0000060078 00000 n +0000060274 00000 n +0000060458 00000 n +0000060656 00000 n +0000060840 00000 n +0000061024 00000 n +0000061208 00000 n +0000061409 00000 n +0000061609 00000 n +0000061792 00000 n +0000061977 00000 n +0000062431 00000 n +0000065421 00000 n +0000065596 00000 n +0000066845 00000 n +trailer +<< + /Size 245 + /Root 244 0 R + /Info 242 0 R + /ID [(GpZRDYKXljiVVkByDsdVpw==) (EsiFnDBrn7E+8Igy9xxIdQ==)] +>> +startxref +67293 +%%EOF \ No newline at end of file diff --git a/manual/manual.typ b/manual/manual.typ new file mode 100644 index 0000000..82b38cd --- /dev/null +++ b/manual/manual.typ @@ -0,0 +1,165 @@ +#import "@preview/ilm:1.4.1": * +#import "@preview/fletcher:0.5.8" as fletcher: diagram, node, edge, shapes + +#show link: underline +#show link: set text(fill: blue) + +#set text(lang: "en") + +#show: ilm.with( + title: [SchoolBOX WS], + author: "Jurn Wubben", + date: datetime.today(), + abstract: [Websocket comminucation between the SchoolBox device and the associated server.], + figure-index: (enabled: false), + table-index: (enabled: false), + listing-index: (enabled: false) +) +// #show link: set text(stroke: blue) + +// #show: mantys( +// name: "SchoolBOX WS", +// version: "0.0.1", +// authors: ( +// "Jurn Wubben", +// ), +// license: "MIT", +// description: "Websocket comminucation between the SchoolBox device and the associated server.", +// repository: "https://git.jsw.tf/jsw/schoolbox-ws", + +// title: "SchoolBox WS", +// date: datetime.today(), +// ) + += Messages +== Heartbeat +=== Server +```json +{"c": "ping"} +``` +```json +{"e": 0, "info": "Pong missed"} +``` + +=== Device +```json +{"c": "pong"} +``` + +== Registration +=== Server +```json +{"c": "reg_pin", "d": {"pin": 1234}} // Pin is an integer. +``` +```json +{"c": "reg_ok"} +``` + +=== Device +```json +{"c": "reg_start"} +``` + + +== Authentication +=== Server +```json +{"c": "auth_nonce", "d": {"nonce": "random_string"}} +``` +```json +{"c": "auth_ok"} +``` +```json +{"e": 1, "info": "Invalid packet, wrong ID."} +``` +```json +{"e": 2, "info": "Invalid signature."} // the info doesn't matter +``` +```json +{"e": 3, "info": "Logged in at other place."} // the info doesn't matter +``` + +=== Device +```json +{"c": "auth_start"} +``` +```json +{"c": "auth_validate", "d": {"signature": "HMAC hash of nonce"}} +``` + +== Session +=== Server +```json +{"c": "session_start", "d": {"text": "Question?"}} +``` +```json +{"c": "session_stop"} +``` + +=== Device +```json +{"c": "session_vote", "d": {"vote": 1}} // Vote is an integer in the range of 1..5 +``` + + += General flow +#let arrLine = (arr) => { + for (i, el) in arr.enumerate() { + if i == 0 or i == arr.len() { + continue + } + edge(arr.at(i - 1), el, "-|>") + } +} + +#let l = link; + +#align(center, diagram( + node-stroke: 1pt, + + node((1,0), [New connection], corner-radius: 2pt, extrude: (0, 3), name: ), + + node((3, 0), l()[ping], name: ), + node((3, 1), l()[pong], stroke: blue, name: ), + + node((0,1), l()[reg_start], name: , stroke: blue), + node((0,2), l()[reg_pin], name: ), + node((0,3), l()[reg_ok], name: ), + node((0,4), [Disconnect], name: , corner-radius: 2pt, extrude: (0, 3)), + + node((2,1), l()[auth_start], name: , stroke: blue), + node((1,1), l()[auth error id], name: ), + node((2,2), l()[auth_nonce], name: ), + node((1,3), l()[auth error signature], name: ), + node((2,3), l()[auth_validate], name: , stroke: blue), + node((2,4), l()[auth_ok], name: ), + node((1,5), [Logged in], corner-radius: 2pt, extrude: (0, 3), name: ), + + edge(, , "<|-|>", label: [Every 30s]), + + edge(, "l", , "-|>"), + edge(, "r", , "-|>"), + edge(, , "-|>"), + edge(, , "-|>", bend: 18deg), + edge(, , "-|>"), + edge(, , "-|>", bend: 23deg), + edge(, "d", , "-|>"), + + arrLine((, , , )), + arrLine((, , , )), + + node((0,6), l()[session_start], name: ), + node((0,7), l()[session_vote], name: ), + node((0,8), l()[session_stop], name: ), + + node((2, 6), l()[auth takeover error], corner-radius: 2pt, extrude: (0, 3), name: ), + + edge(, "l", , "-|>"), + edge(, , "-|>"), + edge(, , "-|>"), + edge((0, 7), (0, 7), "--|>", bend: 300deg, loop-angle: 200deg), + edge(, "r", , "-|>"), + + edge(, "r", , "-|>") + +)) diff --git a/src/device.ts b/src/device.ts index 3f10667..495e274 100644 --- a/src/device.ts +++ b/src/device.ts @@ -26,7 +26,7 @@ export class Device { } connect(socket: WebSocket) { if (this._socket !== undefined) { - this._socket.send(buildError(4, "Logged in at other place.")) + this._socket.send(buildError(3, "Logged in at other place.")) this._socket.close(); } this._socket = socket; diff --git a/static/index.html b/static/index.html index b1f94d6..6bc5a55 100644 --- a/static/index.html +++ b/static/index.html @@ -156,7 +156,6 @@ } case "auth_nonce": { const signature = await generateHMAC(pass.value, data.d.nonce) - console.log(pass.value, data.value, signature) socket.sendln(JSON.stringify({c: "auth_validate", d: {signature}})); break }