From 4558762ee72e704a39ce1fbac32b765e0a46702b Mon Sep 17 00:00:00 2001 From: chrishalcrow Date: Fri, 8 May 2026 10:05:11 +0100 Subject: [PATCH 1/4] remove int cast of imro header_values --- src/probeinterface/neuropixels_tools.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/probeinterface/neuropixels_tools.py b/src/probeinterface/neuropixels_tools.py index 3e9e513..fa7bd63 100644 --- a/src/probeinterface/neuropixels_tools.py +++ b/src/probeinterface/neuropixels_tools.py @@ -486,7 +486,7 @@ def _parse_imro_string(imro_table_string: str, probe_part_number: str) -> dict: # Parse header fields using the catalogue schema imro_header_fields_string = probe_features["z_imro_formats"][imro_format + "_hdr_flds"] imro_header_fields = tuple(imro_header_fields_string.replace("(", "").replace(")", "").split(",")) - header_values = tuple(map(int, header_str[1:].split(","))) + header_values = tuple(header_str[1:].split(",")) # Initialize with parsed header and empty lists for per-entry fields (filled below) imro_per_channel = {"header": dict(zip(imro_header_fields, header_values))} for field in imro_fields: @@ -723,7 +723,7 @@ def read_imro(file_path: str | Path) -> Probe: imro_str = str(f.read()) imro_table_header_str, *imro_table_values_list, _ = imro_str.strip().split(")") - imro_table_header = tuple(map(int, imro_table_header_str[1:].split(","))) + imro_table_header = tuple(imro_table_header_str[1:].split(",")) if len(imro_table_header) == 3: # In older versions of neuropixel arrays (phase 3A), imro tables were structured differently. @@ -733,7 +733,6 @@ def read_imro(file_path: str | Path) -> Probe: imDatPrb_type, _ = imro_table_header else: raise ValueError(f"read_imro error, the header has a strange length: {imro_table_header}") - imDatPrb_type = str(imDatPrb_type) for probe_part_number, probe_type in probe_part_number_to_probe_type.items(): if imDatPrb_type == probe_type: From 5289f7b1852ad06ba7c6a6a3b0e0f05978f70135 Mon Sep 17 00:00:00 2001 From: chrishalcrow Date: Fri, 8 May 2026 10:46:37 +0100 Subject: [PATCH 2/4] add test data and test for 2020 --- src/probeinterface/neuropixels_tools.py | 4 +- .../NP2020_sample_g0_t0.imec0.ap.meta | 81 +++++++++++++++++++ tests/test_io/test_spikeglx.py | 42 ++++++++++ 3 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 tests/data/spikeglx/NP2020_sample_g0_t0.imec0.ap.meta diff --git a/src/probeinterface/neuropixels_tools.py b/src/probeinterface/neuropixels_tools.py index fa7bd63..e4a9642 100644 --- a/src/probeinterface/neuropixels_tools.py +++ b/src/probeinterface/neuropixels_tools.py @@ -813,6 +813,7 @@ def read_spikeglx(file: str | Path) -> Probe: # This creates the complete probe geometry (e.g., 960 contacts for NP1.0) # based on manufacturer specifications full_probe = build_neuropixels_probe(probe_part_number=imDatPrb_pn) + print(f"{full_probe.get_contact_count()=}") # ===== 3. Parse IMRO table to extract recorded electrodes and acquisition settings ===== # IMRO = Imec ReadOut (the configuration table format from IMEC manufacturer) @@ -825,6 +826,7 @@ def read_spikeglx(file: str | Path) -> Probe: active_contact_ids = _get_imro_active_contact_ids(imro_per_channel) contact_id_to_index = {contact_id: idx for idx, contact_id in enumerate(full_probe.contact_ids)} selected_contact_indices = np.array([contact_id_to_index[contact_id] for contact_id in active_contact_ids]) + print(f"{selected_contact_indices=}") probe = full_probe.get_slice(selected_contact_indices) # ===== 5. Store IMRO properties (acquisition settings) as annotations ===== @@ -907,7 +909,7 @@ def parse_spikeglx_snsGeomMap(meta: dict) -> tuple[int, float, float, np.ndarray geom_list = meta["snsGeomMap"].split(sep=")") # first entry is for instance (NP1000,1,0,70) - probe_type, num_shank, shank_pitch, shank_width = geom_list[0][1:].split(",") + _, num_shank, shank_pitch, shank_width = geom_list[0][1:].split(",") num_shank, shank_pitch, shank_width = int(num_shank), float(shank_pitch), float(shank_width) geom_list = geom_list[1:-1] diff --git a/tests/data/spikeglx/NP2020_sample_g0_t0.imec0.ap.meta b/tests/data/spikeglx/NP2020_sample_g0_t0.imec0.ap.meta new file mode 100644 index 0000000..96e4bac --- /dev/null +++ b/tests/data/spikeglx/NP2020_sample_g0_t0.imec0.ap.meta @@ -0,0 +1,81 @@ +acqApLfSy=1536,0,4 +appVersion=20260115 +fileCreateTime=2026-05-06T22:05:09 +fileName=C:/path/to/NP2020_sample_g0_t0.imec0.ap.bin +fileSHA1=ECF8A3AE98269661FD9C31B1F3D1540CA7CCA4B7 +fileSizeBytes=858091080 +fileTimeSecs=9.2867 +firstSample=249578 +gateMode=Immediate +imAiRangeMax=0.62 +imAiRangeMin=-0.62 +imAnyChanFullBand=true +imCalibrated=false +imChan0Ref=ext +imChan0apGain=100 +imColsPerShank=2 +imDatApi=4.1.3 +imDatBs_fw=4.0.240 +imDatBsc_fw=4.0.240 +imDatBsc_hw=4.3 +imDatBsc_pn=NPOB_ACQ_00-04-03 +imDatBsc_sn=21470034 +imDatBsc_tech=std +imDatFx_hw=0.4 +imDatFx_pn=NPM_FLEX_31 +imDatFx_sn=0 +imDatHs_fw=0.0.0 +imDatHs_hw=6.4 +imDatHs_pn=NPM_HS_32 +imDatHs_sn=24420295 +imDatPrb_dock=1 +imDatPrb_pn=NP2020 +imDatPrb_port=1 +imDatPrb_slot=20 +imDatPrb_sn=22053118151 +imDatPrb_sr_mask=15 +imDatPrb_sr_nok=4 +imDatPrb_tech=qb +imDatPrb_type=2020 +imErrFlags0_0_IS_CT_SR_LK_PP_SY_MS=0 0 0 0 0 0 0 +imErrFlags0_1_IS_CT_SR_LK_PP_SY_MS=0 0 0 0 0 0 0 +imErrFlags0_2_IS_CT_SR_LK_PP_SY_MS=0 0 0 0 0 0 0 +imErrFlags0_3_IS_CT_SR_LK_PP_SY_MS=0 0 0 0 0 0 0 +imIsSvyRun=false +imLEDEnable=false +imLowLatency=false +imMaxInt=2048 +imRowsPerShank=640 +imSRAtDetect=true +imSampRate=30000 +imStdby= +imSvyMaxBnk=-1 +imSvyNShanks=1 +imSvySecPerBnk=35 +imSvySettleSec=2 +imTipLength=206 +imTrgRising=true +imTrgSource=0 +imX0EvenRow=27 +imX0OddRow=27 +imXPitch=32 +imZPitch=15 +imroFile= +nDataDirs=1 +nSavedChans=1540 +obErrFlags0_IS_CT_SR_LK_PP_SY_MS=0 0 0 0 0 0 0 +snsApLfSy=1536,0,4 +snsSaveChanSubset=0:1539 +syncImInputSlot=2 +syncSourceIdx=3 +syncSourcePeriod=1 +trigMode=Immediate +typeImEnabled=1 +typeNiEnabled=0 +typeObEnabled=1 +typeThis=imec +userNotes= +~imroTbl=(NP2020,1536)(0 0 0 0 0)(1 0 0 0 1)(2 0 0 0 2)(3 0 0 0 3)(4 0 0 0 4)(5 0 0 0 5)(6 0 0 0 6)(7 0 0 0 7)(8 0 0 0 8)(9 0 0 0 9)(10 0 0 0 10)(11 0 0 0 11)(12 0 0 0 12)(13 0 0 0 13)(14 0 0 0 14)(15 0 0 0 15)(16 0 0 0 16)(17 0 0 0 17)(18 0 0 0 18)(19 0 0 0 19)(20 0 0 0 20)(21 0 0 0 21)(22 0 0 0 22)(23 0 0 0 23)(24 0 0 0 24)(25 0 0 0 25)(26 0 0 0 26)(27 0 0 0 27)(28 0 0 0 28)(29 0 0 0 29)(30 0 0 0 30)(31 0 0 0 31)(32 0 0 0 32)(33 0 0 0 33)(34 0 0 0 34)(35 0 0 0 35)(36 0 0 0 36)(37 0 0 0 37)(38 0 0 0 38)(39 0 0 0 39)(40 0 0 0 40)(41 0 0 0 41)(42 0 0 0 42)(43 0 0 0 43)(44 0 0 0 44)(45 0 0 0 45)(46 0 0 0 46)(47 0 0 0 47)(48 0 0 0 48)(49 0 0 0 49)(50 0 0 0 50)(51 0 0 0 51)(52 0 0 0 52)(53 0 0 0 53)(54 0 0 0 54)(55 0 0 0 55)(56 0 0 0 56)(57 0 0 0 57)(58 0 0 0 58)(59 0 0 0 59)(60 0 0 0 60)(61 0 0 0 61)(62 0 0 0 62)(63 0 0 0 63)(64 0 0 0 64)(65 0 0 0 65)(66 0 0 0 66)(67 0 0 0 67)(68 0 0 0 68)(69 0 0 0 69)(70 0 0 0 70)(71 0 0 0 71)(72 0 0 0 72)(73 0 0 0 73)(74 0 0 0 74)(75 0 0 0 75)(76 0 0 0 76)(77 0 0 0 77)(78 0 0 0 78)(79 0 0 0 79)(80 0 0 0 80)(81 0 0 0 81)(82 0 0 0 82)(83 0 0 0 83)(84 0 0 0 84)(85 0 0 0 85)(86 0 0 0 86)(87 0 0 0 87)(88 0 0 0 88)(89 0 0 0 89)(90 0 0 0 90)(91 0 0 0 91)(92 0 0 0 92)(93 0 0 0 93)(94 0 0 0 94)(95 0 0 0 95)(96 0 0 0 96)(97 0 0 0 97)(98 0 0 0 98)(99 0 0 0 99)(100 0 0 0 100)(101 0 0 0 101)(102 0 0 0 102)(103 0 0 0 103)(104 0 0 0 104)(105 0 0 0 105)(106 0 0 0 106)(107 0 0 0 107)(108 0 0 0 108)(109 0 0 0 109)(110 0 0 0 110)(111 0 0 0 111)(112 0 0 0 112)(113 0 0 0 113)(114 0 0 0 114)(115 0 0 0 115)(116 0 0 0 116)(117 0 0 0 117)(118 0 0 0 118)(119 0 0 0 119)(120 0 0 0 120)(121 0 0 0 121)(122 0 0 0 122)(123 0 0 0 123)(124 0 0 0 124)(125 0 0 0 125)(126 0 0 0 126)(127 0 0 0 127)(128 0 0 0 128)(129 0 0 0 129)(130 0 0 0 130)(131 0 0 0 131)(132 0 0 0 132)(133 0 0 0 133)(134 0 0 0 134)(135 0 0 0 135)(136 0 0 0 136)(137 0 0 0 137)(138 0 0 0 138)(139 0 0 0 139)(140 0 0 0 140)(141 0 0 0 141)(142 0 0 0 142)(143 0 0 0 143)(144 0 0 0 144)(145 0 0 0 145)(146 0 0 0 146)(147 0 0 0 147)(148 0 0 0 148)(149 0 0 0 149)(150 0 0 0 150)(151 0 0 0 151)(152 0 0 0 152)(153 0 0 0 153)(154 0 0 0 154)(155 0 0 0 155)(156 0 0 0 156)(157 0 0 0 157)(158 0 0 0 158)(159 0 0 0 159)(160 0 0 0 160)(161 0 0 0 161)(162 0 0 0 162)(163 0 0 0 163)(164 0 0 0 164)(165 0 0 0 165)(166 0 0 0 166)(167 0 0 0 167)(168 0 0 0 168)(169 0 0 0 169)(170 0 0 0 170)(171 0 0 0 171)(172 0 0 0 172)(173 0 0 0 173)(174 0 0 0 174)(175 0 0 0 175)(176 0 0 0 176)(177 0 0 0 177)(178 0 0 0 178)(179 0 0 0 179)(180 0 0 0 180)(181 0 0 0 181)(182 0 0 0 182)(183 0 0 0 183)(184 0 0 0 184)(185 0 0 0 185)(186 0 0 0 186)(187 0 0 0 187)(188 0 0 0 188)(189 0 0 0 189)(190 0 0 0 190)(191 0 0 0 191)(192 0 0 0 192)(193 0 0 0 193)(194 0 0 0 194)(195 0 0 0 195)(196 0 0 0 196)(197 0 0 0 197)(198 0 0 0 198)(199 0 0 0 199)(200 0 0 0 200)(201 0 0 0 201)(202 0 0 0 202)(203 0 0 0 203)(204 0 0 0 204)(205 0 0 0 205)(206 0 0 0 206)(207 0 0 0 207)(208 0 0 0 208)(209 0 0 0 209)(210 0 0 0 210)(211 0 0 0 211)(212 0 0 0 212)(213 0 0 0 213)(214 0 0 0 214)(215 0 0 0 215)(216 0 0 0 216)(217 0 0 0 217)(218 0 0 0 218)(219 0 0 0 219)(220 0 0 0 220)(221 0 0 0 221)(222 0 0 0 222)(223 0 0 0 223)(224 0 0 0 224)(225 0 0 0 225)(226 0 0 0 226)(227 0 0 0 227)(228 0 0 0 228)(229 0 0 0 229)(230 0 0 0 230)(231 0 0 0 231)(232 0 0 0 232)(233 0 0 0 233)(234 0 0 0 234)(235 0 0 0 235)(236 0 0 0 236)(237 0 0 0 237)(238 0 0 0 238)(239 0 0 0 239)(240 0 0 0 240)(241 0 0 0 241)(242 0 0 0 242)(243 0 0 0 243)(244 0 0 0 244)(245 0 0 0 245)(246 0 0 0 246)(247 0 0 0 247)(248 0 0 0 248)(249 0 0 0 249)(250 0 0 0 250)(251 0 0 0 251)(252 0 0 0 252)(253 0 0 0 253)(254 0 0 0 254)(255 0 0 0 255)(256 0 0 0 256)(257 0 0 0 257)(258 0 0 0 258)(259 0 0 0 259)(260 0 0 0 260)(261 0 0 0 261)(262 0 0 0 262)(263 0 0 0 263)(264 0 0 0 264)(265 0 0 0 265)(266 0 0 0 266)(267 0 0 0 267)(268 0 0 0 268)(269 0 0 0 269)(270 0 0 0 270)(271 0 0 0 271)(272 0 0 0 272)(273 0 0 0 273)(274 0 0 0 274)(275 0 0 0 275)(276 0 0 0 276)(277 0 0 0 277)(278 0 0 0 278)(279 0 0 0 279)(280 0 0 0 280)(281 0 0 0 281)(282 0 0 0 282)(283 0 0 0 283)(284 0 0 0 284)(285 0 0 0 285)(286 0 0 0 286)(287 0 0 0 287)(288 0 0 0 288)(289 0 0 0 289)(290 0 0 0 290)(291 0 0 0 291)(292 0 0 0 292)(293 0 0 0 293)(294 0 0 0 294)(295 0 0 0 295)(296 0 0 0 296)(297 0 0 0 297)(298 0 0 0 298)(299 0 0 0 299)(300 0 0 0 300)(301 0 0 0 301)(302 0 0 0 302)(303 0 0 0 303)(304 0 0 0 304)(305 0 0 0 305)(306 0 0 0 306)(307 0 0 0 307)(308 0 0 0 308)(309 0 0 0 309)(310 0 0 0 310)(311 0 0 0 311)(312 0 0 0 312)(313 0 0 0 313)(314 0 0 0 314)(315 0 0 0 315)(316 0 0 0 316)(317 0 0 0 317)(318 0 0 0 318)(319 0 0 0 319)(320 0 0 0 320)(321 0 0 0 321)(322 0 0 0 322)(323 0 0 0 323)(324 0 0 0 324)(325 0 0 0 325)(326 0 0 0 326)(327 0 0 0 327)(328 0 0 0 328)(329 0 0 0 329)(330 0 0 0 330)(331 0 0 0 331)(332 0 0 0 332)(333 0 0 0 333)(334 0 0 0 334)(335 0 0 0 335)(336 0 0 0 336)(337 0 0 0 337)(338 0 0 0 338)(339 0 0 0 339)(340 0 0 0 340)(341 0 0 0 341)(342 0 0 0 342)(343 0 0 0 343)(344 0 0 0 344)(345 0 0 0 345)(346 0 0 0 346)(347 0 0 0 347)(348 0 0 0 348)(349 0 0 0 349)(350 0 0 0 350)(351 0 0 0 351)(352 0 0 0 352)(353 0 0 0 353)(354 0 0 0 354)(355 0 0 0 355)(356 0 0 0 356)(357 0 0 0 357)(358 0 0 0 358)(359 0 0 0 359)(360 0 0 0 360)(361 0 0 0 361)(362 0 0 0 362)(363 0 0 0 363)(364 0 0 0 364)(365 0 0 0 365)(366 0 0 0 366)(367 0 0 0 367)(368 0 0 0 368)(369 0 0 0 369)(370 0 0 0 370)(371 0 0 0 371)(372 0 0 0 372)(373 0 0 0 373)(374 0 0 0 374)(375 0 0 0 375)(376 0 0 0 376)(377 0 0 0 377)(378 0 0 0 378)(379 0 0 0 379)(380 0 0 0 380)(381 0 0 0 381)(382 0 0 0 382)(383 0 0 0 383)(384 1 0 0 0)(385 1 0 0 1)(386 1 0 0 2)(387 1 0 0 3)(388 1 0 0 4)(389 1 0 0 5)(390 1 0 0 6)(391 1 0 0 7)(392 1 0 0 8)(393 1 0 0 9)(394 1 0 0 10)(395 1 0 0 11)(396 1 0 0 12)(397 1 0 0 13)(398 1 0 0 14)(399 1 0 0 15)(400 1 0 0 16)(401 1 0 0 17)(402 1 0 0 18)(403 1 0 0 19)(404 1 0 0 20)(405 1 0 0 21)(406 1 0 0 22)(407 1 0 0 23)(408 1 0 0 24)(409 1 0 0 25)(410 1 0 0 26)(411 1 0 0 27)(412 1 0 0 28)(413 1 0 0 29)(414 1 0 0 30)(415 1 0 0 31)(416 1 0 0 32)(417 1 0 0 33)(418 1 0 0 34)(419 1 0 0 35)(420 1 0 0 36)(421 1 0 0 37)(422 1 0 0 38)(423 1 0 0 39)(424 1 0 0 40)(425 1 0 0 41)(426 1 0 0 42)(427 1 0 0 43)(428 1 0 0 44)(429 1 0 0 45)(430 1 0 0 46)(431 1 0 0 47)(432 1 0 0 48)(433 1 0 0 49)(434 1 0 0 50)(435 1 0 0 51)(436 1 0 0 52)(437 1 0 0 53)(438 1 0 0 54)(439 1 0 0 55)(440 1 0 0 56)(441 1 0 0 57)(442 1 0 0 58)(443 1 0 0 59)(444 1 0 0 60)(445 1 0 0 61)(446 1 0 0 62)(447 1 0 0 63)(448 1 0 0 64)(449 1 0 0 65)(450 1 0 0 66)(451 1 0 0 67)(452 1 0 0 68)(453 1 0 0 69)(454 1 0 0 70)(455 1 0 0 71)(456 1 0 0 72)(457 1 0 0 73)(458 1 0 0 74)(459 1 0 0 75)(460 1 0 0 76)(461 1 0 0 77)(462 1 0 0 78)(463 1 0 0 79)(464 1 0 0 80)(465 1 0 0 81)(466 1 0 0 82)(467 1 0 0 83)(468 1 0 0 84)(469 1 0 0 85)(470 1 0 0 86)(471 1 0 0 87)(472 1 0 0 88)(473 1 0 0 89)(474 1 0 0 90)(475 1 0 0 91)(476 1 0 0 92)(477 1 0 0 93)(478 1 0 0 94)(479 1 0 0 95)(480 1 0 0 96)(481 1 0 0 97)(482 1 0 0 98)(483 1 0 0 99)(484 1 0 0 100)(485 1 0 0 101)(486 1 0 0 102)(487 1 0 0 103)(488 1 0 0 104)(489 1 0 0 105)(490 1 0 0 106)(491 1 0 0 107)(492 1 0 0 108)(493 1 0 0 109)(494 1 0 0 110)(495 1 0 0 111)(496 1 0 0 112)(497 1 0 0 113)(498 1 0 0 114)(499 1 0 0 115)(500 1 0 0 116)(501 1 0 0 117)(502 1 0 0 118)(503 1 0 0 119)(504 1 0 0 120)(505 1 0 0 121)(506 1 0 0 122)(507 1 0 0 123)(508 1 0 0 124)(509 1 0 0 125)(510 1 0 0 126)(511 1 0 0 127)(512 1 0 0 128)(513 1 0 0 129)(514 1 0 0 130)(515 1 0 0 131)(516 1 0 0 132)(517 1 0 0 133)(518 1 0 0 134)(519 1 0 0 135)(520 1 0 0 136)(521 1 0 0 137)(522 1 0 0 138)(523 1 0 0 139)(524 1 0 0 140)(525 1 0 0 141)(526 1 0 0 142)(527 1 0 0 143)(528 1 0 0 144)(529 1 0 0 145)(530 1 0 0 146)(531 1 0 0 147)(532 1 0 0 148)(533 1 0 0 149)(534 1 0 0 150)(535 1 0 0 151)(536 1 0 0 152)(537 1 0 0 153)(538 1 0 0 154)(539 1 0 0 155)(540 1 0 0 156)(541 1 0 0 157)(542 1 0 0 158)(543 1 0 0 159)(544 1 0 0 160)(545 1 0 0 161)(546 1 0 0 162)(547 1 0 0 163)(548 1 0 0 164)(549 1 0 0 165)(550 1 0 0 166)(551 1 0 0 167)(552 1 0 0 168)(553 1 0 0 169)(554 1 0 0 170)(555 1 0 0 171)(556 1 0 0 172)(557 1 0 0 173)(558 1 0 0 174)(559 1 0 0 175)(560 1 0 0 176)(561 1 0 0 177)(562 1 0 0 178)(563 1 0 0 179)(564 1 0 0 180)(565 1 0 0 181)(566 1 0 0 182)(567 1 0 0 183)(568 1 0 0 184)(569 1 0 0 185)(570 1 0 0 186)(571 1 0 0 187)(572 1 0 0 188)(573 1 0 0 189)(574 1 0 0 190)(575 1 0 0 191)(576 1 0 0 192)(577 1 0 0 193)(578 1 0 0 194)(579 1 0 0 195)(580 1 0 0 196)(581 1 0 0 197)(582 1 0 0 198)(583 1 0 0 199)(584 1 0 0 200)(585 1 0 0 201)(586 1 0 0 202)(587 1 0 0 203)(588 1 0 0 204)(589 1 0 0 205)(590 1 0 0 206)(591 1 0 0 207)(592 1 0 0 208)(593 1 0 0 209)(594 1 0 0 210)(595 1 0 0 211)(596 1 0 0 212)(597 1 0 0 213)(598 1 0 0 214)(599 1 0 0 215)(600 1 0 0 216)(601 1 0 0 217)(602 1 0 0 218)(603 1 0 0 219)(604 1 0 0 220)(605 1 0 0 221)(606 1 0 0 222)(607 1 0 0 223)(608 1 0 0 224)(609 1 0 0 225)(610 1 0 0 226)(611 1 0 0 227)(612 1 0 0 228)(613 1 0 0 229)(614 1 0 0 230)(615 1 0 0 231)(616 1 0 0 232)(617 1 0 0 233)(618 1 0 0 234)(619 1 0 0 235)(620 1 0 0 236)(621 1 0 0 237)(622 1 0 0 238)(623 1 0 0 239)(624 1 0 0 240)(625 1 0 0 241)(626 1 0 0 242)(627 1 0 0 243)(628 1 0 0 244)(629 1 0 0 245)(630 1 0 0 246)(631 1 0 0 247)(632 1 0 0 248)(633 1 0 0 249)(634 1 0 0 250)(635 1 0 0 251)(636 1 0 0 252)(637 1 0 0 253)(638 1 0 0 254)(639 1 0 0 255)(640 1 0 0 256)(641 1 0 0 257)(642 1 0 0 258)(643 1 0 0 259)(644 1 0 0 260)(645 1 0 0 261)(646 1 0 0 262)(647 1 0 0 263)(648 1 0 0 264)(649 1 0 0 265)(650 1 0 0 266)(651 1 0 0 267)(652 1 0 0 268)(653 1 0 0 269)(654 1 0 0 270)(655 1 0 0 271)(656 1 0 0 272)(657 1 0 0 273)(658 1 0 0 274)(659 1 0 0 275)(660 1 0 0 276)(661 1 0 0 277)(662 1 0 0 278)(663 1 0 0 279)(664 1 0 0 280)(665 1 0 0 281)(666 1 0 0 282)(667 1 0 0 283)(668 1 0 0 284)(669 1 0 0 285)(670 1 0 0 286)(671 1 0 0 287)(672 1 0 0 288)(673 1 0 0 289)(674 1 0 0 290)(675 1 0 0 291)(676 1 0 0 292)(677 1 0 0 293)(678 1 0 0 294)(679 1 0 0 295)(680 1 0 0 296)(681 1 0 0 297)(682 1 0 0 298)(683 1 0 0 299)(684 1 0 0 300)(685 1 0 0 301)(686 1 0 0 302)(687 1 0 0 303)(688 1 0 0 304)(689 1 0 0 305)(690 1 0 0 306)(691 1 0 0 307)(692 1 0 0 308)(693 1 0 0 309)(694 1 0 0 310)(695 1 0 0 311)(696 1 0 0 312)(697 1 0 0 313)(698 1 0 0 314)(699 1 0 0 315)(700 1 0 0 316)(701 1 0 0 317)(702 1 0 0 318)(703 1 0 0 319)(704 1 0 0 320)(705 1 0 0 321)(706 1 0 0 322)(707 1 0 0 323)(708 1 0 0 324)(709 1 0 0 325)(710 1 0 0 326)(711 1 0 0 327)(712 1 0 0 328)(713 1 0 0 329)(714 1 0 0 330)(715 1 0 0 331)(716 1 0 0 332)(717 1 0 0 333)(718 1 0 0 334)(719 1 0 0 335)(720 1 0 0 336)(721 1 0 0 337)(722 1 0 0 338)(723 1 0 0 339)(724 1 0 0 340)(725 1 0 0 341)(726 1 0 0 342)(727 1 0 0 343)(728 1 0 0 344)(729 1 0 0 345)(730 1 0 0 346)(731 1 0 0 347)(732 1 0 0 348)(733 1 0 0 349)(734 1 0 0 350)(735 1 0 0 351)(736 1 0 0 352)(737 1 0 0 353)(738 1 0 0 354)(739 1 0 0 355)(740 1 0 0 356)(741 1 0 0 357)(742 1 0 0 358)(743 1 0 0 359)(744 1 0 0 360)(745 1 0 0 361)(746 1 0 0 362)(747 1 0 0 363)(748 1 0 0 364)(749 1 0 0 365)(750 1 0 0 366)(751 1 0 0 367)(752 1 0 0 368)(753 1 0 0 369)(754 1 0 0 370)(755 1 0 0 371)(756 1 0 0 372)(757 1 0 0 373)(758 1 0 0 374)(759 1 0 0 375)(760 1 0 0 376)(761 1 0 0 377)(762 1 0 0 378)(763 1 0 0 379)(764 1 0 0 380)(765 1 0 0 381)(766 1 0 0 382)(767 1 0 0 383)(768 2 0 0 0)(769 2 0 0 1)(770 2 0 0 2)(771 2 0 0 3)(772 2 0 0 4)(773 2 0 0 5)(774 2 0 0 6)(775 2 0 0 7)(776 2 0 0 8)(777 2 0 0 9)(778 2 0 0 10)(779 2 0 0 11)(780 2 0 0 12)(781 2 0 0 13)(782 2 0 0 14)(783 2 0 0 15)(784 2 0 0 16)(785 2 0 0 17)(786 2 0 0 18)(787 2 0 0 19)(788 2 0 0 20)(789 2 0 0 21)(790 2 0 0 22)(791 2 0 0 23)(792 2 0 0 24)(793 2 0 0 25)(794 2 0 0 26)(795 2 0 0 27)(796 2 0 0 28)(797 2 0 0 29)(798 2 0 0 30)(799 2 0 0 31)(800 2 0 0 32)(801 2 0 0 33)(802 2 0 0 34)(803 2 0 0 35)(804 2 0 0 36)(805 2 0 0 37)(806 2 0 0 38)(807 2 0 0 39)(808 2 0 0 40)(809 2 0 0 41)(810 2 0 0 42)(811 2 0 0 43)(812 2 0 0 44)(813 2 0 0 45)(814 2 0 0 46)(815 2 0 0 47)(816 2 0 0 48)(817 2 0 0 49)(818 2 0 0 50)(819 2 0 0 51)(820 2 0 0 52)(821 2 0 0 53)(822 2 0 0 54)(823 2 0 0 55)(824 2 0 0 56)(825 2 0 0 57)(826 2 0 0 58)(827 2 0 0 59)(828 2 0 0 60)(829 2 0 0 61)(830 2 0 0 62)(831 2 0 0 63)(832 2 0 0 64)(833 2 0 0 65)(834 2 0 0 66)(835 2 0 0 67)(836 2 0 0 68)(837 2 0 0 69)(838 2 0 0 70)(839 2 0 0 71)(840 2 0 0 72)(841 2 0 0 73)(842 2 0 0 74)(843 2 0 0 75)(844 2 0 0 76)(845 2 0 0 77)(846 2 0 0 78)(847 2 0 0 79)(848 2 0 0 80)(849 2 0 0 81)(850 2 0 0 82)(851 2 0 0 83)(852 2 0 0 84)(853 2 0 0 85)(854 2 0 0 86)(855 2 0 0 87)(856 2 0 0 88)(857 2 0 0 89)(858 2 0 0 90)(859 2 0 0 91)(860 2 0 0 92)(861 2 0 0 93)(862 2 0 0 94)(863 2 0 0 95)(864 2 0 0 96)(865 2 0 0 97)(866 2 0 0 98)(867 2 0 0 99)(868 2 0 0 100)(869 2 0 0 101)(870 2 0 0 102)(871 2 0 0 103)(872 2 0 0 104)(873 2 0 0 105)(874 2 0 0 106)(875 2 0 0 107)(876 2 0 0 108)(877 2 0 0 109)(878 2 0 0 110)(879 2 0 0 111)(880 2 0 0 112)(881 2 0 0 113)(882 2 0 0 114)(883 2 0 0 115)(884 2 0 0 116)(885 2 0 0 117)(886 2 0 0 118)(887 2 0 0 119)(888 2 0 0 120)(889 2 0 0 121)(890 2 0 0 122)(891 2 0 0 123)(892 2 0 0 124)(893 2 0 0 125)(894 2 0 0 126)(895 2 0 0 127)(896 2 0 0 128)(897 2 0 0 129)(898 2 0 0 130)(899 2 0 0 131)(900 2 0 0 132)(901 2 0 0 133)(902 2 0 0 134)(903 2 0 0 135)(904 2 0 0 136)(905 2 0 0 137)(906 2 0 0 138)(907 2 0 0 139)(908 2 0 0 140)(909 2 0 0 141)(910 2 0 0 142)(911 2 0 0 143)(912 2 0 0 144)(913 2 0 0 145)(914 2 0 0 146)(915 2 0 0 147)(916 2 0 0 148)(917 2 0 0 149)(918 2 0 0 150)(919 2 0 0 151)(920 2 0 0 152)(921 2 0 0 153)(922 2 0 0 154)(923 2 0 0 155)(924 2 0 0 156)(925 2 0 0 157)(926 2 0 0 158)(927 2 0 0 159)(928 2 0 0 160)(929 2 0 0 161)(930 2 0 0 162)(931 2 0 0 163)(932 2 0 0 164)(933 2 0 0 165)(934 2 0 0 166)(935 2 0 0 167)(936 2 0 0 168)(937 2 0 0 169)(938 2 0 0 170)(939 2 0 0 171)(940 2 0 0 172)(941 2 0 0 173)(942 2 0 0 174)(943 2 0 0 175)(944 2 0 0 176)(945 2 0 0 177)(946 2 0 0 178)(947 2 0 0 179)(948 2 0 0 180)(949 2 0 0 181)(950 2 0 0 182)(951 2 0 0 183)(952 2 0 0 184)(953 2 0 0 185)(954 2 0 0 186)(955 2 0 0 187)(956 2 0 0 188)(957 2 0 0 189)(958 2 0 0 190)(959 2 0 0 191)(960 2 0 0 192)(961 2 0 0 193)(962 2 0 0 194)(963 2 0 0 195)(964 2 0 0 196)(965 2 0 0 197)(966 2 0 0 198)(967 2 0 0 199)(968 2 0 0 200)(969 2 0 0 201)(970 2 0 0 202)(971 2 0 0 203)(972 2 0 0 204)(973 2 0 0 205)(974 2 0 0 206)(975 2 0 0 207)(976 2 0 0 208)(977 2 0 0 209)(978 2 0 0 210)(979 2 0 0 211)(980 2 0 0 212)(981 2 0 0 213)(982 2 0 0 214)(983 2 0 0 215)(984 2 0 0 216)(985 2 0 0 217)(986 2 0 0 218)(987 2 0 0 219)(988 2 0 0 220)(989 2 0 0 221)(990 2 0 0 222)(991 2 0 0 223)(992 2 0 0 224)(993 2 0 0 225)(994 2 0 0 226)(995 2 0 0 227)(996 2 0 0 228)(997 2 0 0 229)(998 2 0 0 230)(999 2 0 0 231)(1000 2 0 0 232)(1001 2 0 0 233)(1002 2 0 0 234)(1003 2 0 0 235)(1004 2 0 0 236)(1005 2 0 0 237)(1006 2 0 0 238)(1007 2 0 0 239)(1008 2 0 0 240)(1009 2 0 0 241)(1010 2 0 0 242)(1011 2 0 0 243)(1012 2 0 0 244)(1013 2 0 0 245)(1014 2 0 0 246)(1015 2 0 0 247)(1016 2 0 0 248)(1017 2 0 0 249)(1018 2 0 0 250)(1019 2 0 0 251)(1020 2 0 0 252)(1021 2 0 0 253)(1022 2 0 0 254)(1023 2 0 0 255)(1024 2 0 0 256)(1025 2 0 0 257)(1026 2 0 0 258)(1027 2 0 0 259)(1028 2 0 0 260)(1029 2 0 0 261)(1030 2 0 0 262)(1031 2 0 0 263)(1032 2 0 0 264)(1033 2 0 0 265)(1034 2 0 0 266)(1035 2 0 0 267)(1036 2 0 0 268)(1037 2 0 0 269)(1038 2 0 0 270)(1039 2 0 0 271)(1040 2 0 0 272)(1041 2 0 0 273)(1042 2 0 0 274)(1043 2 0 0 275)(1044 2 0 0 276)(1045 2 0 0 277)(1046 2 0 0 278)(1047 2 0 0 279)(1048 2 0 0 280)(1049 2 0 0 281)(1050 2 0 0 282)(1051 2 0 0 283)(1052 2 0 0 284)(1053 2 0 0 285)(1054 2 0 0 286)(1055 2 0 0 287)(1056 2 0 0 288)(1057 2 0 0 289)(1058 2 0 0 290)(1059 2 0 0 291)(1060 2 0 0 292)(1061 2 0 0 293)(1062 2 0 0 294)(1063 2 0 0 295)(1064 2 0 0 296)(1065 2 0 0 297)(1066 2 0 0 298)(1067 2 0 0 299)(1068 2 0 0 300)(1069 2 0 0 301)(1070 2 0 0 302)(1071 2 0 0 303)(1072 2 0 0 304)(1073 2 0 0 305)(1074 2 0 0 306)(1075 2 0 0 307)(1076 2 0 0 308)(1077 2 0 0 309)(1078 2 0 0 310)(1079 2 0 0 311)(1080 2 0 0 312)(1081 2 0 0 313)(1082 2 0 0 314)(1083 2 0 0 315)(1084 2 0 0 316)(1085 2 0 0 317)(1086 2 0 0 318)(1087 2 0 0 319)(1088 2 0 0 320)(1089 2 0 0 321)(1090 2 0 0 322)(1091 2 0 0 323)(1092 2 0 0 324)(1093 2 0 0 325)(1094 2 0 0 326)(1095 2 0 0 327)(1096 2 0 0 328)(1097 2 0 0 329)(1098 2 0 0 330)(1099 2 0 0 331)(1100 2 0 0 332)(1101 2 0 0 333)(1102 2 0 0 334)(1103 2 0 0 335)(1104 2 0 0 336)(1105 2 0 0 337)(1106 2 0 0 338)(1107 2 0 0 339)(1108 2 0 0 340)(1109 2 0 0 341)(1110 2 0 0 342)(1111 2 0 0 343)(1112 2 0 0 344)(1113 2 0 0 345)(1114 2 0 0 346)(1115 2 0 0 347)(1116 2 0 0 348)(1117 2 0 0 349)(1118 2 0 0 350)(1119 2 0 0 351)(1120 2 0 0 352)(1121 2 0 0 353)(1122 2 0 0 354)(1123 2 0 0 355)(1124 2 0 0 356)(1125 2 0 0 357)(1126 2 0 0 358)(1127 2 0 0 359)(1128 2 0 0 360)(1129 2 0 0 361)(1130 2 0 0 362)(1131 2 0 0 363)(1132 2 0 0 364)(1133 2 0 0 365)(1134 2 0 0 366)(1135 2 0 0 367)(1136 2 0 0 368)(1137 2 0 0 369)(1138 2 0 0 370)(1139 2 0 0 371)(1140 2 0 0 372)(1141 2 0 0 373)(1142 2 0 0 374)(1143 2 0 0 375)(1144 2 0 0 376)(1145 2 0 0 377)(1146 2 0 0 378)(1147 2 0 0 379)(1148 2 0 0 380)(1149 2 0 0 381)(1150 2 0 0 382)(1151 2 0 0 383)(1152 3 0 0 0)(1153 3 0 0 1)(1154 3 0 0 2)(1155 3 0 0 3)(1156 3 0 0 4)(1157 3 0 0 5)(1158 3 0 0 6)(1159 3 0 0 7)(1160 3 0 0 8)(1161 3 0 0 9)(1162 3 0 0 10)(1163 3 0 0 11)(1164 3 0 0 12)(1165 3 0 0 13)(1166 3 0 0 14)(1167 3 0 0 15)(1168 3 0 0 16)(1169 3 0 0 17)(1170 3 0 0 18)(1171 3 0 0 19)(1172 3 0 0 20)(1173 3 0 0 21)(1174 3 0 0 22)(1175 3 0 0 23)(1176 3 0 0 24)(1177 3 0 0 25)(1178 3 0 0 26)(1179 3 0 0 27)(1180 3 0 0 28)(1181 3 0 0 29)(1182 3 0 0 30)(1183 3 0 0 31)(1184 3 0 0 32)(1185 3 0 0 33)(1186 3 0 0 34)(1187 3 0 0 35)(1188 3 0 0 36)(1189 3 0 0 37)(1190 3 0 0 38)(1191 3 0 0 39)(1192 3 0 0 40)(1193 3 0 0 41)(1194 3 0 0 42)(1195 3 0 0 43)(1196 3 0 0 44)(1197 3 0 0 45)(1198 3 0 0 46)(1199 3 0 0 47)(1200 3 0 0 48)(1201 3 0 0 49)(1202 3 0 0 50)(1203 3 0 0 51)(1204 3 0 0 52)(1205 3 0 0 53)(1206 3 0 0 54)(1207 3 0 0 55)(1208 3 0 0 56)(1209 3 0 0 57)(1210 3 0 0 58)(1211 3 0 0 59)(1212 3 0 0 60)(1213 3 0 0 61)(1214 3 0 0 62)(1215 3 0 0 63)(1216 3 0 0 64)(1217 3 0 0 65)(1218 3 0 0 66)(1219 3 0 0 67)(1220 3 0 0 68)(1221 3 0 0 69)(1222 3 0 0 70)(1223 3 0 0 71)(1224 3 0 0 72)(1225 3 0 0 73)(1226 3 0 0 74)(1227 3 0 0 75)(1228 3 0 0 76)(1229 3 0 0 77)(1230 3 0 0 78)(1231 3 0 0 79)(1232 3 0 0 80)(1233 3 0 0 81)(1234 3 0 0 82)(1235 3 0 0 83)(1236 3 0 0 84)(1237 3 0 0 85)(1238 3 0 0 86)(1239 3 0 0 87)(1240 3 0 0 88)(1241 3 0 0 89)(1242 3 0 0 90)(1243 3 0 0 91)(1244 3 0 0 92)(1245 3 0 0 93)(1246 3 0 0 94)(1247 3 0 0 95)(1248 3 0 0 96)(1249 3 0 0 97)(1250 3 0 0 98)(1251 3 0 0 99)(1252 3 0 0 100)(1253 3 0 0 101)(1254 3 0 0 102)(1255 3 0 0 103)(1256 3 0 0 104)(1257 3 0 0 105)(1258 3 0 0 106)(1259 3 0 0 107)(1260 3 0 0 108)(1261 3 0 0 109)(1262 3 0 0 110)(1263 3 0 0 111)(1264 3 0 0 112)(1265 3 0 0 113)(1266 3 0 0 114)(1267 3 0 0 115)(1268 3 0 0 116)(1269 3 0 0 117)(1270 3 0 0 118)(1271 3 0 0 119)(1272 3 0 0 120)(1273 3 0 0 121)(1274 3 0 0 122)(1275 3 0 0 123)(1276 3 0 0 124)(1277 3 0 0 125)(1278 3 0 0 126)(1279 3 0 0 127)(1280 3 0 0 128)(1281 3 0 0 129)(1282 3 0 0 130)(1283 3 0 0 131)(1284 3 0 0 132)(1285 3 0 0 133)(1286 3 0 0 134)(1287 3 0 0 135)(1288 3 0 0 136)(1289 3 0 0 137)(1290 3 0 0 138)(1291 3 0 0 139)(1292 3 0 0 140)(1293 3 0 0 141)(1294 3 0 0 142)(1295 3 0 0 143)(1296 3 0 0 144)(1297 3 0 0 145)(1298 3 0 0 146)(1299 3 0 0 147)(1300 3 0 0 148)(1301 3 0 0 149)(1302 3 0 0 150)(1303 3 0 0 151)(1304 3 0 0 152)(1305 3 0 0 153)(1306 3 0 0 154)(1307 3 0 0 155)(1308 3 0 0 156)(1309 3 0 0 157)(1310 3 0 0 158)(1311 3 0 0 159)(1312 3 0 0 160)(1313 3 0 0 161)(1314 3 0 0 162)(1315 3 0 0 163)(1316 3 0 0 164)(1317 3 0 0 165)(1318 3 0 0 166)(1319 3 0 0 167)(1320 3 0 0 168)(1321 3 0 0 169)(1322 3 0 0 170)(1323 3 0 0 171)(1324 3 0 0 172)(1325 3 0 0 173)(1326 3 0 0 174)(1327 3 0 0 175)(1328 3 0 0 176)(1329 3 0 0 177)(1330 3 0 0 178)(1331 3 0 0 179)(1332 3 0 0 180)(1333 3 0 0 181)(1334 3 0 0 182)(1335 3 0 0 183)(1336 3 0 0 184)(1337 3 0 0 185)(1338 3 0 0 186)(1339 3 0 0 187)(1340 3 0 0 188)(1341 3 0 0 189)(1342 3 0 0 190)(1343 3 0 0 191)(1344 3 0 0 192)(1345 3 0 0 193)(1346 3 0 0 194)(1347 3 0 0 195)(1348 3 0 0 196)(1349 3 0 0 197)(1350 3 0 0 198)(1351 3 0 0 199)(1352 3 0 0 200)(1353 3 0 0 201)(1354 3 0 0 202)(1355 3 0 0 203)(1356 3 0 0 204)(1357 3 0 0 205)(1358 3 0 0 206)(1359 3 0 0 207)(1360 3 0 0 208)(1361 3 0 0 209)(1362 3 0 0 210)(1363 3 0 0 211)(1364 3 0 0 212)(1365 3 0 0 213)(1366 3 0 0 214)(1367 3 0 0 215)(1368 3 0 0 216)(1369 3 0 0 217)(1370 3 0 0 218)(1371 3 0 0 219)(1372 3 0 0 220)(1373 3 0 0 221)(1374 3 0 0 222)(1375 3 0 0 223)(1376 3 0 0 224)(1377 3 0 0 225)(1378 3 0 0 226)(1379 3 0 0 227)(1380 3 0 0 228)(1381 3 0 0 229)(1382 3 0 0 230)(1383 3 0 0 231)(1384 3 0 0 232)(1385 3 0 0 233)(1386 3 0 0 234)(1387 3 0 0 235)(1388 3 0 0 236)(1389 3 0 0 237)(1390 3 0 0 238)(1391 3 0 0 239)(1392 3 0 0 240)(1393 3 0 0 241)(1394 3 0 0 242)(1395 3 0 0 243)(1396 3 0 0 244)(1397 3 0 0 245)(1398 3 0 0 246)(1399 3 0 0 247)(1400 3 0 0 248)(1401 3 0 0 249)(1402 3 0 0 250)(1403 3 0 0 251)(1404 3 0 0 252)(1405 3 0 0 253)(1406 3 0 0 254)(1407 3 0 0 255)(1408 3 0 0 256)(1409 3 0 0 257)(1410 3 0 0 258)(1411 3 0 0 259)(1412 3 0 0 260)(1413 3 0 0 261)(1414 3 0 0 262)(1415 3 0 0 263)(1416 3 0 0 264)(1417 3 0 0 265)(1418 3 0 0 266)(1419 3 0 0 267)(1420 3 0 0 268)(1421 3 0 0 269)(1422 3 0 0 270)(1423 3 0 0 271)(1424 3 0 0 272)(1425 3 0 0 273)(1426 3 0 0 274)(1427 3 0 0 275)(1428 3 0 0 276)(1429 3 0 0 277)(1430 3 0 0 278)(1431 3 0 0 279)(1432 3 0 0 280)(1433 3 0 0 281)(1434 3 0 0 282)(1435 3 0 0 283)(1436 3 0 0 284)(1437 3 0 0 285)(1438 3 0 0 286)(1439 3 0 0 287)(1440 3 0 0 288)(1441 3 0 0 289)(1442 3 0 0 290)(1443 3 0 0 291)(1444 3 0 0 292)(1445 3 0 0 293)(1446 3 0 0 294)(1447 3 0 0 295)(1448 3 0 0 296)(1449 3 0 0 297)(1450 3 0 0 298)(1451 3 0 0 299)(1452 3 0 0 300)(1453 3 0 0 301)(1454 3 0 0 302)(1455 3 0 0 303)(1456 3 0 0 304)(1457 3 0 0 305)(1458 3 0 0 306)(1459 3 0 0 307)(1460 3 0 0 308)(1461 3 0 0 309)(1462 3 0 0 310)(1463 3 0 0 311)(1464 3 0 0 312)(1465 3 0 0 313)(1466 3 0 0 314)(1467 3 0 0 315)(1468 3 0 0 316)(1469 3 0 0 317)(1470 3 0 0 318)(1471 3 0 0 319)(1472 3 0 0 320)(1473 3 0 0 321)(1474 3 0 0 322)(1475 3 0 0 323)(1476 3 0 0 324)(1477 3 0 0 325)(1478 3 0 0 326)(1479 3 0 0 327)(1480 3 0 0 328)(1481 3 0 0 329)(1482 3 0 0 330)(1483 3 0 0 331)(1484 3 0 0 332)(1485 3 0 0 333)(1486 3 0 0 334)(1487 3 0 0 335)(1488 3 0 0 336)(1489 3 0 0 337)(1490 3 0 0 338)(1491 3 0 0 339)(1492 3 0 0 340)(1493 3 0 0 341)(1494 3 0 0 342)(1495 3 0 0 343)(1496 3 0 0 344)(1497 3 0 0 345)(1498 3 0 0 346)(1499 3 0 0 347)(1500 3 0 0 348)(1501 3 0 0 349)(1502 3 0 0 350)(1503 3 0 0 351)(1504 3 0 0 352)(1505 3 0 0 353)(1506 3 0 0 354)(1507 3 0 0 355)(1508 3 0 0 356)(1509 3 0 0 357)(1510 3 0 0 358)(1511 3 0 0 359)(1512 3 0 0 360)(1513 3 0 0 361)(1514 3 0 0 362)(1515 3 0 0 363)(1516 3 0 0 364)(1517 3 0 0 365)(1518 3 0 0 366)(1519 3 0 0 367)(1520 3 0 0 368)(1521 3 0 0 369)(1522 3 0 0 370)(1523 3 0 0 371)(1524 3 0 0 372)(1525 3 0 0 373)(1526 3 0 0 374)(1527 3 0 0 375)(1528 3 0 0 376)(1529 3 0 0 377)(1530 3 0 0 378)(1531 3 0 0 379)(1532 3 0 0 380)(1533 3 0 0 381)(1534 3 0 0 382)(1535 3 0 0 383) +~muxTbl=(96,16)(0 1 32 33 64 65 96 97 128 129 160 161 192 193 224 225 256 257 288 289 320 321 352 353 384 385 416 417 448 449 480 481 512 513 544 545 576 577 608 609 640 641 672 673 704 705 736 737 768 769 800 801 832 833 864 865 896 897 928 929 960 961 992 993 1024 1025 1056 1057 1088 1089 1120 1121 1152 1153 1184 1185 1216 1217 1248 1249 1280 1281 1312 1313 1344 1345 1376 1377 1408 1409 1440 1441 1472 1473 1504 1505)(2 3 34 35 66 67 98 99 130 131 162 163 194 195 226 227 258 259 290 291 322 323 354 355 386 387 418 419 450 451 482 483 514 515 546 547 578 579 610 611 642 643 674 675 706 707 738 739 770 771 802 803 834 835 866 867 898 899 930 931 962 963 994 995 1026 1027 1058 1059 1090 1091 1122 1123 1154 1155 1186 1187 1218 1219 1250 1251 1282 1283 1314 1315 1346 1347 1378 1379 1410 1411 1442 1443 1474 1475 1506 1507)(4 5 36 37 68 69 100 101 132 133 164 165 196 197 228 229 260 261 292 293 324 325 356 357 388 389 420 421 452 453 484 485 516 517 548 549 580 581 612 613 644 645 676 677 708 709 740 741 772 773 804 805 836 837 868 869 900 901 932 933 964 965 996 997 1028 1029 1060 1061 1092 1093 1124 1125 1156 1157 1188 1189 1220 1221 1252 1253 1284 1285 1316 1317 1348 1349 1380 1381 1412 1413 1444 1445 1476 1477 1508 1509)(6 7 38 39 70 71 102 103 134 135 166 167 198 199 230 231 262 263 294 295 326 327 358 359 390 391 422 423 454 455 486 487 518 519 550 551 582 583 614 615 646 647 678 679 710 711 742 743 774 775 806 807 838 839 870 871 902 903 934 935 966 967 998 999 1030 1031 1062 1063 1094 1095 1126 1127 1158 1159 1190 1191 1222 1223 1254 1255 1286 1287 1318 1319 1350 1351 1382 1383 1414 1415 1446 1447 1478 1479 1510 1511)(8 9 40 41 72 73 104 105 136 137 168 169 200 201 232 233 264 265 296 297 328 329 360 361 392 393 424 425 456 457 488 489 520 521 552 553 584 585 616 617 648 649 680 681 712 713 744 745 776 777 808 809 840 841 872 873 904 905 936 937 968 969 1000 1001 1032 1033 1064 1065 1096 1097 1128 1129 1160 1161 1192 1193 1224 1225 1256 1257 1288 1289 1320 1321 1352 1353 1384 1385 1416 1417 1448 1449 1480 1481 1512 1513)(10 11 42 43 74 75 106 107 138 139 170 171 202 203 234 235 266 267 298 299 330 331 362 363 394 395 426 427 458 459 490 491 522 523 554 555 586 587 618 619 650 651 682 683 714 715 746 747 778 779 810 811 842 843 874 875 906 907 938 939 970 971 1002 1003 1034 1035 1066 1067 1098 1099 1130 1131 1162 1163 1194 1195 1226 1227 1258 1259 1290 1291 1322 1323 1354 1355 1386 1387 1418 1419 1450 1451 1482 1483 1514 1515)(12 13 44 45 76 77 108 109 140 141 172 173 204 205 236 237 268 269 300 301 332 333 364 365 396 397 428 429 460 461 492 493 524 525 556 557 588 589 620 621 652 653 684 685 716 717 748 749 780 781 812 813 844 845 876 877 908 909 940 941 972 973 1004 1005 1036 1037 1068 1069 1100 1101 1132 1133 1164 1165 1196 1197 1228 1229 1260 1261 1292 1293 1324 1325 1356 1357 1388 1389 1420 1421 1452 1453 1484 1485 1516 1517)(14 15 46 47 78 79 110 111 142 143 174 175 206 207 238 239 270 271 302 303 334 335 366 367 398 399 430 431 462 463 494 495 526 527 558 559 590 591 622 623 654 655 686 687 718 719 750 751 782 783 814 815 846 847 878 879 910 911 942 943 974 975 1006 1007 1038 1039 1070 1071 1102 1103 1134 1135 1166 1167 1198 1199 1230 1231 1262 1263 1294 1295 1326 1327 1358 1359 1390 1391 1422 1423 1454 1455 1486 1487 1518 1519)(16 17 48 49 80 81 112 113 144 145 176 177 208 209 240 241 272 273 304 305 336 337 368 369 400 401 432 433 464 465 496 497 528 529 560 561 592 593 624 625 656 657 688 689 720 721 752 753 784 785 816 817 848 849 880 881 912 913 944 945 976 977 1008 1009 1040 1041 1072 1073 1104 1105 1136 1137 1168 1169 1200 1201 1232 1233 1264 1265 1296 1297 1328 1329 1360 1361 1392 1393 1424 1425 1456 1457 1488 1489 1520 1521)(18 19 50 51 82 83 114 115 146 147 178 179 210 211 242 243 274 275 306 307 338 339 370 371 402 403 434 435 466 467 498 499 530 531 562 563 594 595 626 627 658 659 690 691 722 723 754 755 786 787 818 819 850 851 882 883 914 915 946 947 978 979 1010 1011 1042 1043 1074 1075 1106 1107 1138 1139 1170 1171 1202 1203 1234 1235 1266 1267 1298 1299 1330 1331 1362 1363 1394 1395 1426 1427 1458 1459 1490 1491 1522 1523)(20 21 52 53 84 85 116 117 148 149 180 181 212 213 244 245 276 277 308 309 340 341 372 373 404 405 436 437 468 469 500 501 532 533 564 565 596 597 628 629 660 661 692 693 724 725 756 757 788 789 820 821 852 853 884 885 916 917 948 949 980 981 1012 1013 1044 1045 1076 1077 1108 1109 1140 1141 1172 1173 1204 1205 1236 1237 1268 1269 1300 1301 1332 1333 1364 1365 1396 1397 1428 1429 1460 1461 1492 1493 1524 1525)(22 23 54 55 86 87 118 119 150 151 182 183 214 215 246 247 278 279 310 311 342 343 374 375 406 407 438 439 470 471 502 503 534 535 566 567 598 599 630 631 662 663 694 695 726 727 758 759 790 791 822 823 854 855 886 887 918 919 950 951 982 983 1014 1015 1046 1047 1078 1079 1110 1111 1142 1143 1174 1175 1206 1207 1238 1239 1270 1271 1302 1303 1334 1335 1366 1367 1398 1399 1430 1431 1462 1463 1494 1495 1526 1527)(24 25 56 57 88 89 120 121 152 153 184 185 216 217 248 249 280 281 312 313 344 345 376 377 408 409 440 441 472 473 504 505 536 537 568 569 600 601 632 633 664 665 696 697 728 729 760 761 792 793 824 825 856 857 888 889 920 921 952 953 984 985 1016 1017 1048 1049 1080 1081 1112 1113 1144 1145 1176 1177 1208 1209 1240 1241 1272 1273 1304 1305 1336 1337 1368 1369 1400 1401 1432 1433 1464 1465 1496 1497 1528 1529)(26 27 58 59 90 91 122 123 154 155 186 187 218 219 250 251 282 283 314 315 346 347 378 379 410 411 442 443 474 475 506 507 538 539 570 571 602 603 634 635 666 667 698 699 730 731 762 763 794 795 826 827 858 859 890 891 922 923 954 955 986 987 1018 1019 1050 1051 1082 1083 1114 1115 1146 1147 1178 1179 1210 1211 1242 1243 1274 1275 1306 1307 1338 1339 1370 1371 1402 1403 1434 1435 1466 1467 1498 1499 1530 1531)(28 29 60 61 92 93 124 125 156 157 188 189 220 221 252 253 284 285 316 317 348 349 380 381 412 413 444 445 476 477 508 509 540 541 572 573 604 605 636 637 668 669 700 701 732 733 764 765 796 797 828 829 860 861 892 893 924 925 956 957 988 989 1020 1021 1052 1053 1084 1085 1116 1117 1148 1149 1180 1181 1212 1213 1244 1245 1276 1277 1308 1309 1340 1341 1372 1373 1404 1405 1436 1437 1468 1469 1500 1501 1532 1533)(30 31 62 63 94 95 126 127 158 159 190 191 222 223 254 255 286 287 318 319 350 351 382 383 414 415 446 447 478 479 510 511 542 543 574 575 606 607 638 639 670 671 702 703 734 735 766 767 798 799 830 831 862 863 894 895 926 927 958 959 990 991 1022 1023 1054 1055 1086 1087 1118 1119 1150 1151 1182 1183 1214 1215 1246 1247 1278 1279 1310 1311 1342 1343 1374 1375 1406 1407 1438 1439 1470 1471 1502 1503 1534 1535) +~snsChanMap=(1536,0,4)(AP0;0:0)(AP1;1:1)(AP2;2:2)(AP3;3:3)(AP4;4:4)(AP5;5:5)(AP6;6:6)(AP7;7:7)(AP8;8:8)(AP9;9:9)(AP10;10:10)(AP11;11:11)(AP12;12:12)(AP13;13:13)(AP14;14:14)(AP15;15:15)(AP16;16:16)(AP17;17:17)(AP18;18:18)(AP19;19:19)(AP20;20:20)(AP21;21:21)(AP22;22:22)(AP23;23:23)(AP24;24:24)(AP25;25:25)(AP26;26:26)(AP27;27:27)(AP28;28:28)(AP29;29:29)(AP30;30:30)(AP31;31:31)(AP32;32:32)(AP33;33:33)(AP34;34:34)(AP35;35:35)(AP36;36:36)(AP37;37:37)(AP38;38:38)(AP39;39:39)(AP40;40:40)(AP41;41:41)(AP42;42:42)(AP43;43:43)(AP44;44:44)(AP45;45:45)(AP46;46:46)(AP47;47:47)(AP48;48:48)(AP49;49:49)(AP50;50:50)(AP51;51:51)(AP52;52:52)(AP53;53:53)(AP54;54:54)(AP55;55:55)(AP56;56:56)(AP57;57:57)(AP58;58:58)(AP59;59:59)(AP60;60:60)(AP61;61:61)(AP62;62:62)(AP63;63:63)(AP64;64:64)(AP65;65:65)(AP66;66:66)(AP67;67:67)(AP68;68:68)(AP69;69:69)(AP70;70:70)(AP71;71:71)(AP72;72:72)(AP73;73:73)(AP74;74:74)(AP75;75:75)(AP76;76:76)(AP77;77:77)(AP78;78:78)(AP79;79:79)(AP80;80:80)(AP81;81:81)(AP82;82:82)(AP83;83:83)(AP84;84:84)(AP85;85:85)(AP86;86:86)(AP87;87:87)(AP88;88:88)(AP89;89:89)(AP90;90:90)(AP91;91:91)(AP92;92:92)(AP93;93:93)(AP94;94:94)(AP95;95:95)(AP96;96:96)(AP97;97:97)(AP98;98:98)(AP99;99:99)(AP100;100:100)(AP101;101:101)(AP102;102:102)(AP103;103:103)(AP104;104:104)(AP105;105:105)(AP106;106:106)(AP107;107:107)(AP108;108:108)(AP109;109:109)(AP110;110:110)(AP111;111:111)(AP112;112:112)(AP113;113:113)(AP114;114:114)(AP115;115:115)(AP116;116:116)(AP117;117:117)(AP118;118:118)(AP119;119:119)(AP120;120:120)(AP121;121:121)(AP122;122:122)(AP123;123:123)(AP124;124:124)(AP125;125:125)(AP126;126:126)(AP127;127:127)(AP128;128:128)(AP129;129:129)(AP130;130:130)(AP131;131:131)(AP132;132:132)(AP133;133:133)(AP134;134:134)(AP135;135:135)(AP136;136:136)(AP137;137:137)(AP138;138:138)(AP139;139:139)(AP140;140:140)(AP141;141:141)(AP142;142:142)(AP143;143:143)(AP144;144:144)(AP145;145:145)(AP146;146:146)(AP147;147:147)(AP148;148:148)(AP149;149:149)(AP150;150:150)(AP151;151:151)(AP152;152:152)(AP153;153:153)(AP154;154:154)(AP155;155:155)(AP156;156:156)(AP157;157:157)(AP158;158:158)(AP159;159:159)(AP160;160:160)(AP161;161:161)(AP162;162:162)(AP163;163:163)(AP164;164:164)(AP165;165:165)(AP166;166:166)(AP167;167:167)(AP168;168:168)(AP169;169:169)(AP170;170:170)(AP171;171:171)(AP172;172:172)(AP173;173:173)(AP174;174:174)(AP175;175:175)(AP176;176:176)(AP177;177:177)(AP178;178:178)(AP179;179:179)(AP180;180:180)(AP181;181:181)(AP182;182:182)(AP183;183:183)(AP184;184:184)(AP185;185:185)(AP186;186:186)(AP187;187:187)(AP188;188:188)(AP189;189:189)(AP190;190:190)(AP191;191:191)(AP192;192:192)(AP193;193:193)(AP194;194:194)(AP195;195:195)(AP196;196:196)(AP197;197:197)(AP198;198:198)(AP199;199:199)(AP200;200:200)(AP201;201:201)(AP202;202:202)(AP203;203:203)(AP204;204:204)(AP205;205:205)(AP206;206:206)(AP207;207:207)(AP208;208:208)(AP209;209:209)(AP210;210:210)(AP211;211:211)(AP212;212:212)(AP213;213:213)(AP214;214:214)(AP215;215:215)(AP216;216:216)(AP217;217:217)(AP218;218:218)(AP219;219:219)(AP220;220:220)(AP221;221:221)(AP222;222:222)(AP223;223:223)(AP224;224:224)(AP225;225:225)(AP226;226:226)(AP227;227:227)(AP228;228:228)(AP229;229:229)(AP230;230:230)(AP231;231:231)(AP232;232:232)(AP233;233:233)(AP234;234:234)(AP235;235:235)(AP236;236:236)(AP237;237:237)(AP238;238:238)(AP239;239:239)(AP240;240:240)(AP241;241:241)(AP242;242:242)(AP243;243:243)(AP244;244:244)(AP245;245:245)(AP246;246:246)(AP247;247:247)(AP248;248:248)(AP249;249:249)(AP250;250:250)(AP251;251:251)(AP252;252:252)(AP253;253:253)(AP254;254:254)(AP255;255:255)(AP256;256:256)(AP257;257:257)(AP258;258:258)(AP259;259:259)(AP260;260:260)(AP261;261:261)(AP262;262:262)(AP263;263:263)(AP264;264:264)(AP265;265:265)(AP266;266:266)(AP267;267:267)(AP268;268:268)(AP269;269:269)(AP270;270:270)(AP271;271:271)(AP272;272:272)(AP273;273:273)(AP274;274:274)(AP275;275:275)(AP276;276:276)(AP277;277:277)(AP278;278:278)(AP279;279:279)(AP280;280:280)(AP281;281:281)(AP282;282:282)(AP283;283:283)(AP284;284:284)(AP285;285:285)(AP286;286:286)(AP287;287:287)(AP288;288:288)(AP289;289:289)(AP290;290:290)(AP291;291:291)(AP292;292:292)(AP293;293:293)(AP294;294:294)(AP295;295:295)(AP296;296:296)(AP297;297:297)(AP298;298:298)(AP299;299:299)(AP300;300:300)(AP301;301:301)(AP302;302:302)(AP303;303:303)(AP304;304:304)(AP305;305:305)(AP306;306:306)(AP307;307:307)(AP308;308:308)(AP309;309:309)(AP310;310:310)(AP311;311:311)(AP312;312:312)(AP313;313:313)(AP314;314:314)(AP315;315:315)(AP316;316:316)(AP317;317:317)(AP318;318:318)(AP319;319:319)(AP320;320:320)(AP321;321:321)(AP322;322:322)(AP323;323:323)(AP324;324:324)(AP325;325:325)(AP326;326:326)(AP327;327:327)(AP328;328:328)(AP329;329:329)(AP330;330:330)(AP331;331:331)(AP332;332:332)(AP333;333:333)(AP334;334:334)(AP335;335:335)(AP336;336:336)(AP337;337:337)(AP338;338:338)(AP339;339:339)(AP340;340:340)(AP341;341:341)(AP342;342:342)(AP343;343:343)(AP344;344:344)(AP345;345:345)(AP346;346:346)(AP347;347:347)(AP348;348:348)(AP349;349:349)(AP350;350:350)(AP351;351:351)(AP352;352:352)(AP353;353:353)(AP354;354:354)(AP355;355:355)(AP356;356:356)(AP357;357:357)(AP358;358:358)(AP359;359:359)(AP360;360:360)(AP361;361:361)(AP362;362:362)(AP363;363:363)(AP364;364:364)(AP365;365:365)(AP366;366:366)(AP367;367:367)(AP368;368:368)(AP369;369:369)(AP370;370:370)(AP371;371:371)(AP372;372:372)(AP373;373:373)(AP374;374:374)(AP375;375:375)(AP376;376:376)(AP377;377:377)(AP378;378:378)(AP379;379:379)(AP380;380:380)(AP381;381:381)(AP382;382:382)(AP383;383:383)(AP384;384:384)(AP385;385:385)(AP386;386:386)(AP387;387:387)(AP388;388:388)(AP389;389:389)(AP390;390:390)(AP391;391:391)(AP392;392:392)(AP393;393:393)(AP394;394:394)(AP395;395:395)(AP396;396:396)(AP397;397:397)(AP398;398:398)(AP399;399:399)(AP400;400:400)(AP401;401:401)(AP402;402:402)(AP403;403:403)(AP404;404:404)(AP405;405:405)(AP406;406:406)(AP407;407:407)(AP408;408:408)(AP409;409:409)(AP410;410:410)(AP411;411:411)(AP412;412:412)(AP413;413:413)(AP414;414:414)(AP415;415:415)(AP416;416:416)(AP417;417:417)(AP418;418:418)(AP419;419:419)(AP420;420:420)(AP421;421:421)(AP422;422:422)(AP423;423:423)(AP424;424:424)(AP425;425:425)(AP426;426:426)(AP427;427:427)(AP428;428:428)(AP429;429:429)(AP430;430:430)(AP431;431:431)(AP432;432:432)(AP433;433:433)(AP434;434:434)(AP435;435:435)(AP436;436:436)(AP437;437:437)(AP438;438:438)(AP439;439:439)(AP440;440:440)(AP441;441:441)(AP442;442:442)(AP443;443:443)(AP444;444:444)(AP445;445:445)(AP446;446:446)(AP447;447:447)(AP448;448:448)(AP449;449:449)(AP450;450:450)(AP451;451:451)(AP452;452:452)(AP453;453:453)(AP454;454:454)(AP455;455:455)(AP456;456:456)(AP457;457:457)(AP458;458:458)(AP459;459:459)(AP460;460:460)(AP461;461:461)(AP462;462:462)(AP463;463:463)(AP464;464:464)(AP465;465:465)(AP466;466:466)(AP467;467:467)(AP468;468:468)(AP469;469:469)(AP470;470:470)(AP471;471:471)(AP472;472:472)(AP473;473:473)(AP474;474:474)(AP475;475:475)(AP476;476:476)(AP477;477:477)(AP478;478:478)(AP479;479:479)(AP480;480:480)(AP481;481:481)(AP482;482:482)(AP483;483:483)(AP484;484:484)(AP485;485:485)(AP486;486:486)(AP487;487:487)(AP488;488:488)(AP489;489:489)(AP490;490:490)(AP491;491:491)(AP492;492:492)(AP493;493:493)(AP494;494:494)(AP495;495:495)(AP496;496:496)(AP497;497:497)(AP498;498:498)(AP499;499:499)(AP500;500:500)(AP501;501:501)(AP502;502:502)(AP503;503:503)(AP504;504:504)(AP505;505:505)(AP506;506:506)(AP507;507:507)(AP508;508:508)(AP509;509:509)(AP510;510:510)(AP511;511:511)(AP512;512:512)(AP513;513:513)(AP514;514:514)(AP515;515:515)(AP516;516:516)(AP517;517:517)(AP518;518:518)(AP519;519:519)(AP520;520:520)(AP521;521:521)(AP522;522:522)(AP523;523:523)(AP524;524:524)(AP525;525:525)(AP526;526:526)(AP527;527:527)(AP528;528:528)(AP529;529:529)(AP530;530:530)(AP531;531:531)(AP532;532:532)(AP533;533:533)(AP534;534:534)(AP535;535:535)(AP536;536:536)(AP537;537:537)(AP538;538:538)(AP539;539:539)(AP540;540:540)(AP541;541:541)(AP542;542:542)(AP543;543:543)(AP544;544:544)(AP545;545:545)(AP546;546:546)(AP547;547:547)(AP548;548:548)(AP549;549:549)(AP550;550:550)(AP551;551:551)(AP552;552:552)(AP553;553:553)(AP554;554:554)(AP555;555:555)(AP556;556:556)(AP557;557:557)(AP558;558:558)(AP559;559:559)(AP560;560:560)(AP561;561:561)(AP562;562:562)(AP563;563:563)(AP564;564:564)(AP565;565:565)(AP566;566:566)(AP567;567:567)(AP568;568:568)(AP569;569:569)(AP570;570:570)(AP571;571:571)(AP572;572:572)(AP573;573:573)(AP574;574:574)(AP575;575:575)(AP576;576:576)(AP577;577:577)(AP578;578:578)(AP579;579:579)(AP580;580:580)(AP581;581:581)(AP582;582:582)(AP583;583:583)(AP584;584:584)(AP585;585:585)(AP586;586:586)(AP587;587:587)(AP588;588:588)(AP589;589:589)(AP590;590:590)(AP591;591:591)(AP592;592:592)(AP593;593:593)(AP594;594:594)(AP595;595:595)(AP596;596:596)(AP597;597:597)(AP598;598:598)(AP599;599:599)(AP600;600:600)(AP601;601:601)(AP602;602:602)(AP603;603:603)(AP604;604:604)(AP605;605:605)(AP606;606:606)(AP607;607:607)(AP608;608:608)(AP609;609:609)(AP610;610:610)(AP611;611:611)(AP612;612:612)(AP613;613:613)(AP614;614:614)(AP615;615:615)(AP616;616:616)(AP617;617:617)(AP618;618:618)(AP619;619:619)(AP620;620:620)(AP621;621:621)(AP622;622:622)(AP623;623:623)(AP624;624:624)(AP625;625:625)(AP626;626:626)(AP627;627:627)(AP628;628:628)(AP629;629:629)(AP630;630:630)(AP631;631:631)(AP632;632:632)(AP633;633:633)(AP634;634:634)(AP635;635:635)(AP636;636:636)(AP637;637:637)(AP638;638:638)(AP639;639:639)(AP640;640:640)(AP641;641:641)(AP642;642:642)(AP643;643:643)(AP644;644:644)(AP645;645:645)(AP646;646:646)(AP647;647:647)(AP648;648:648)(AP649;649:649)(AP650;650:650)(AP651;651:651)(AP652;652:652)(AP653;653:653)(AP654;654:654)(AP655;655:655)(AP656;656:656)(AP657;657:657)(AP658;658:658)(AP659;659:659)(AP660;660:660)(AP661;661:661)(AP662;662:662)(AP663;663:663)(AP664;664:664)(AP665;665:665)(AP666;666:666)(AP667;667:667)(AP668;668:668)(AP669;669:669)(AP670;670:670)(AP671;671:671)(AP672;672:672)(AP673;673:673)(AP674;674:674)(AP675;675:675)(AP676;676:676)(AP677;677:677)(AP678;678:678)(AP679;679:679)(AP680;680:680)(AP681;681:681)(AP682;682:682)(AP683;683:683)(AP684;684:684)(AP685;685:685)(AP686;686:686)(AP687;687:687)(AP688;688:688)(AP689;689:689)(AP690;690:690)(AP691;691:691)(AP692;692:692)(AP693;693:693)(AP694;694:694)(AP695;695:695)(AP696;696:696)(AP697;697:697)(AP698;698:698)(AP699;699:699)(AP700;700:700)(AP701;701:701)(AP702;702:702)(AP703;703:703)(AP704;704:704)(AP705;705:705)(AP706;706:706)(AP707;707:707)(AP708;708:708)(AP709;709:709)(AP710;710:710)(AP711;711:711)(AP712;712:712)(AP713;713:713)(AP714;714:714)(AP715;715:715)(AP716;716:716)(AP717;717:717)(AP718;718:718)(AP719;719:719)(AP720;720:720)(AP721;721:721)(AP722;722:722)(AP723;723:723)(AP724;724:724)(AP725;725:725)(AP726;726:726)(AP727;727:727)(AP728;728:728)(AP729;729:729)(AP730;730:730)(AP731;731:731)(AP732;732:732)(AP733;733:733)(AP734;734:734)(AP735;735:735)(AP736;736:736)(AP737;737:737)(AP738;738:738)(AP739;739:739)(AP740;740:740)(AP741;741:741)(AP742;742:742)(AP743;743:743)(AP744;744:744)(AP745;745:745)(AP746;746:746)(AP747;747:747)(AP748;748:748)(AP749;749:749)(AP750;750:750)(AP751;751:751)(AP752;752:752)(AP753;753:753)(AP754;754:754)(AP755;755:755)(AP756;756:756)(AP757;757:757)(AP758;758:758)(AP759;759:759)(AP760;760:760)(AP761;761:761)(AP762;762:762)(AP763;763:763)(AP764;764:764)(AP765;765:765)(AP766;766:766)(AP767;767:767)(AP768;768:768)(AP769;769:769)(AP770;770:770)(AP771;771:771)(AP772;772:772)(AP773;773:773)(AP774;774:774)(AP775;775:775)(AP776;776:776)(AP777;777:777)(AP778;778:778)(AP779;779:779)(AP780;780:780)(AP781;781:781)(AP782;782:782)(AP783;783:783)(AP784;784:784)(AP785;785:785)(AP786;786:786)(AP787;787:787)(AP788;788:788)(AP789;789:789)(AP790;790:790)(AP791;791:791)(AP792;792:792)(AP793;793:793)(AP794;794:794)(AP795;795:795)(AP796;796:796)(AP797;797:797)(AP798;798:798)(AP799;799:799)(AP800;800:800)(AP801;801:801)(AP802;802:802)(AP803;803:803)(AP804;804:804)(AP805;805:805)(AP806;806:806)(AP807;807:807)(AP808;808:808)(AP809;809:809)(AP810;810:810)(AP811;811:811)(AP812;812:812)(AP813;813:813)(AP814;814:814)(AP815;815:815)(AP816;816:816)(AP817;817:817)(AP818;818:818)(AP819;819:819)(AP820;820:820)(AP821;821:821)(AP822;822:822)(AP823;823:823)(AP824;824:824)(AP825;825:825)(AP826;826:826)(AP827;827:827)(AP828;828:828)(AP829;829:829)(AP830;830:830)(AP831;831:831)(AP832;832:832)(AP833;833:833)(AP834;834:834)(AP835;835:835)(AP836;836:836)(AP837;837:837)(AP838;838:838)(AP839;839:839)(AP840;840:840)(AP841;841:841)(AP842;842:842)(AP843;843:843)(AP844;844:844)(AP845;845:845)(AP846;846:846)(AP847;847:847)(AP848;848:848)(AP849;849:849)(AP850;850:850)(AP851;851:851)(AP852;852:852)(AP853;853:853)(AP854;854:854)(AP855;855:855)(AP856;856:856)(AP857;857:857)(AP858;858:858)(AP859;859:859)(AP860;860:860)(AP861;861:861)(AP862;862:862)(AP863;863:863)(AP864;864:864)(AP865;865:865)(AP866;866:866)(AP867;867:867)(AP868;868:868)(AP869;869:869)(AP870;870:870)(AP871;871:871)(AP872;872:872)(AP873;873:873)(AP874;874:874)(AP875;875:875)(AP876;876:876)(AP877;877:877)(AP878;878:878)(AP879;879:879)(AP880;880:880)(AP881;881:881)(AP882;882:882)(AP883;883:883)(AP884;884:884)(AP885;885:885)(AP886;886:886)(AP887;887:887)(AP888;888:888)(AP889;889:889)(AP890;890:890)(AP891;891:891)(AP892;892:892)(AP893;893:893)(AP894;894:894)(AP895;895:895)(AP896;896:896)(AP897;897:897)(AP898;898:898)(AP899;899:899)(AP900;900:900)(AP901;901:901)(AP902;902:902)(AP903;903:903)(AP904;904:904)(AP905;905:905)(AP906;906:906)(AP907;907:907)(AP908;908:908)(AP909;909:909)(AP910;910:910)(AP911;911:911)(AP912;912:912)(AP913;913:913)(AP914;914:914)(AP915;915:915)(AP916;916:916)(AP917;917:917)(AP918;918:918)(AP919;919:919)(AP920;920:920)(AP921;921:921)(AP922;922:922)(AP923;923:923)(AP924;924:924)(AP925;925:925)(AP926;926:926)(AP927;927:927)(AP928;928:928)(AP929;929:929)(AP930;930:930)(AP931;931:931)(AP932;932:932)(AP933;933:933)(AP934;934:934)(AP935;935:935)(AP936;936:936)(AP937;937:937)(AP938;938:938)(AP939;939:939)(AP940;940:940)(AP941;941:941)(AP942;942:942)(AP943;943:943)(AP944;944:944)(AP945;945:945)(AP946;946:946)(AP947;947:947)(AP948;948:948)(AP949;949:949)(AP950;950:950)(AP951;951:951)(AP952;952:952)(AP953;953:953)(AP954;954:954)(AP955;955:955)(AP956;956:956)(AP957;957:957)(AP958;958:958)(AP959;959:959)(AP960;960:960)(AP961;961:961)(AP962;962:962)(AP963;963:963)(AP964;964:964)(AP965;965:965)(AP966;966:966)(AP967;967:967)(AP968;968:968)(AP969;969:969)(AP970;970:970)(AP971;971:971)(AP972;972:972)(AP973;973:973)(AP974;974:974)(AP975;975:975)(AP976;976:976)(AP977;977:977)(AP978;978:978)(AP979;979:979)(AP980;980:980)(AP981;981:981)(AP982;982:982)(AP983;983:983)(AP984;984:984)(AP985;985:985)(AP986;986:986)(AP987;987:987)(AP988;988:988)(AP989;989:989)(AP990;990:990)(AP991;991:991)(AP992;992:992)(AP993;993:993)(AP994;994:994)(AP995;995:995)(AP996;996:996)(AP997;997:997)(AP998;998:998)(AP999;999:999)(AP1000;1000:1000)(AP1001;1001:1001)(AP1002;1002:1002)(AP1003;1003:1003)(AP1004;1004:1004)(AP1005;1005:1005)(AP1006;1006:1006)(AP1007;1007:1007)(AP1008;1008:1008)(AP1009;1009:1009)(AP1010;1010:1010)(AP1011;1011:1011)(AP1012;1012:1012)(AP1013;1013:1013)(AP1014;1014:1014)(AP1015;1015:1015)(AP1016;1016:1016)(AP1017;1017:1017)(AP1018;1018:1018)(AP1019;1019:1019)(AP1020;1020:1020)(AP1021;1021:1021)(AP1022;1022:1022)(AP1023;1023:1023)(AP1024;1024:1024)(AP1025;1025:1025)(AP1026;1026:1026)(AP1027;1027:1027)(AP1028;1028:1028)(AP1029;1029:1029)(AP1030;1030:1030)(AP1031;1031:1031)(AP1032;1032:1032)(AP1033;1033:1033)(AP1034;1034:1034)(AP1035;1035:1035)(AP1036;1036:1036)(AP1037;1037:1037)(AP1038;1038:1038)(AP1039;1039:1039)(AP1040;1040:1040)(AP1041;1041:1041)(AP1042;1042:1042)(AP1043;1043:1043)(AP1044;1044:1044)(AP1045;1045:1045)(AP1046;1046:1046)(AP1047;1047:1047)(AP1048;1048:1048)(AP1049;1049:1049)(AP1050;1050:1050)(AP1051;1051:1051)(AP1052;1052:1052)(AP1053;1053:1053)(AP1054;1054:1054)(AP1055;1055:1055)(AP1056;1056:1056)(AP1057;1057:1057)(AP1058;1058:1058)(AP1059;1059:1059)(AP1060;1060:1060)(AP1061;1061:1061)(AP1062;1062:1062)(AP1063;1063:1063)(AP1064;1064:1064)(AP1065;1065:1065)(AP1066;1066:1066)(AP1067;1067:1067)(AP1068;1068:1068)(AP1069;1069:1069)(AP1070;1070:1070)(AP1071;1071:1071)(AP1072;1072:1072)(AP1073;1073:1073)(AP1074;1074:1074)(AP1075;1075:1075)(AP1076;1076:1076)(AP1077;1077:1077)(AP1078;1078:1078)(AP1079;1079:1079)(AP1080;1080:1080)(AP1081;1081:1081)(AP1082;1082:1082)(AP1083;1083:1083)(AP1084;1084:1084)(AP1085;1085:1085)(AP1086;1086:1086)(AP1087;1087:1087)(AP1088;1088:1088)(AP1089;1089:1089)(AP1090;1090:1090)(AP1091;1091:1091)(AP1092;1092:1092)(AP1093;1093:1093)(AP1094;1094:1094)(AP1095;1095:1095)(AP1096;1096:1096)(AP1097;1097:1097)(AP1098;1098:1098)(AP1099;1099:1099)(AP1100;1100:1100)(AP1101;1101:1101)(AP1102;1102:1102)(AP1103;1103:1103)(AP1104;1104:1104)(AP1105;1105:1105)(AP1106;1106:1106)(AP1107;1107:1107)(AP1108;1108:1108)(AP1109;1109:1109)(AP1110;1110:1110)(AP1111;1111:1111)(AP1112;1112:1112)(AP1113;1113:1113)(AP1114;1114:1114)(AP1115;1115:1115)(AP1116;1116:1116)(AP1117;1117:1117)(AP1118;1118:1118)(AP1119;1119:1119)(AP1120;1120:1120)(AP1121;1121:1121)(AP1122;1122:1122)(AP1123;1123:1123)(AP1124;1124:1124)(AP1125;1125:1125)(AP1126;1126:1126)(AP1127;1127:1127)(AP1128;1128:1128)(AP1129;1129:1129)(AP1130;1130:1130)(AP1131;1131:1131)(AP1132;1132:1132)(AP1133;1133:1133)(AP1134;1134:1134)(AP1135;1135:1135)(AP1136;1136:1136)(AP1137;1137:1137)(AP1138;1138:1138)(AP1139;1139:1139)(AP1140;1140:1140)(AP1141;1141:1141)(AP1142;1142:1142)(AP1143;1143:1143)(AP1144;1144:1144)(AP1145;1145:1145)(AP1146;1146:1146)(AP1147;1147:1147)(AP1148;1148:1148)(AP1149;1149:1149)(AP1150;1150:1150)(AP1151;1151:1151)(AP1152;1152:1152)(AP1153;1153:1153)(AP1154;1154:1154)(AP1155;1155:1155)(AP1156;1156:1156)(AP1157;1157:1157)(AP1158;1158:1158)(AP1159;1159:1159)(AP1160;1160:1160)(AP1161;1161:1161)(AP1162;1162:1162)(AP1163;1163:1163)(AP1164;1164:1164)(AP1165;1165:1165)(AP1166;1166:1166)(AP1167;1167:1167)(AP1168;1168:1168)(AP1169;1169:1169)(AP1170;1170:1170)(AP1171;1171:1171)(AP1172;1172:1172)(AP1173;1173:1173)(AP1174;1174:1174)(AP1175;1175:1175)(AP1176;1176:1176)(AP1177;1177:1177)(AP1178;1178:1178)(AP1179;1179:1179)(AP1180;1180:1180)(AP1181;1181:1181)(AP1182;1182:1182)(AP1183;1183:1183)(AP1184;1184:1184)(AP1185;1185:1185)(AP1186;1186:1186)(AP1187;1187:1187)(AP1188;1188:1188)(AP1189;1189:1189)(AP1190;1190:1190)(AP1191;1191:1191)(AP1192;1192:1192)(AP1193;1193:1193)(AP1194;1194:1194)(AP1195;1195:1195)(AP1196;1196:1196)(AP1197;1197:1197)(AP1198;1198:1198)(AP1199;1199:1199)(AP1200;1200:1200)(AP1201;1201:1201)(AP1202;1202:1202)(AP1203;1203:1203)(AP1204;1204:1204)(AP1205;1205:1205)(AP1206;1206:1206)(AP1207;1207:1207)(AP1208;1208:1208)(AP1209;1209:1209)(AP1210;1210:1210)(AP1211;1211:1211)(AP1212;1212:1212)(AP1213;1213:1213)(AP1214;1214:1214)(AP1215;1215:1215)(AP1216;1216:1216)(AP1217;1217:1217)(AP1218;1218:1218)(AP1219;1219:1219)(AP1220;1220:1220)(AP1221;1221:1221)(AP1222;1222:1222)(AP1223;1223:1223)(AP1224;1224:1224)(AP1225;1225:1225)(AP1226;1226:1226)(AP1227;1227:1227)(AP1228;1228:1228)(AP1229;1229:1229)(AP1230;1230:1230)(AP1231;1231:1231)(AP1232;1232:1232)(AP1233;1233:1233)(AP1234;1234:1234)(AP1235;1235:1235)(AP1236;1236:1236)(AP1237;1237:1237)(AP1238;1238:1238)(AP1239;1239:1239)(AP1240;1240:1240)(AP1241;1241:1241)(AP1242;1242:1242)(AP1243;1243:1243)(AP1244;1244:1244)(AP1245;1245:1245)(AP1246;1246:1246)(AP1247;1247:1247)(AP1248;1248:1248)(AP1249;1249:1249)(AP1250;1250:1250)(AP1251;1251:1251)(AP1252;1252:1252)(AP1253;1253:1253)(AP1254;1254:1254)(AP1255;1255:1255)(AP1256;1256:1256)(AP1257;1257:1257)(AP1258;1258:1258)(AP1259;1259:1259)(AP1260;1260:1260)(AP1261;1261:1261)(AP1262;1262:1262)(AP1263;1263:1263)(AP1264;1264:1264)(AP1265;1265:1265)(AP1266;1266:1266)(AP1267;1267:1267)(AP1268;1268:1268)(AP1269;1269:1269)(AP1270;1270:1270)(AP1271;1271:1271)(AP1272;1272:1272)(AP1273;1273:1273)(AP1274;1274:1274)(AP1275;1275:1275)(AP1276;1276:1276)(AP1277;1277:1277)(AP1278;1278:1278)(AP1279;1279:1279)(AP1280;1280:1280)(AP1281;1281:1281)(AP1282;1282:1282)(AP1283;1283:1283)(AP1284;1284:1284)(AP1285;1285:1285)(AP1286;1286:1286)(AP1287;1287:1287)(AP1288;1288:1288)(AP1289;1289:1289)(AP1290;1290:1290)(AP1291;1291:1291)(AP1292;1292:1292)(AP1293;1293:1293)(AP1294;1294:1294)(AP1295;1295:1295)(AP1296;1296:1296)(AP1297;1297:1297)(AP1298;1298:1298)(AP1299;1299:1299)(AP1300;1300:1300)(AP1301;1301:1301)(AP1302;1302:1302)(AP1303;1303:1303)(AP1304;1304:1304)(AP1305;1305:1305)(AP1306;1306:1306)(AP1307;1307:1307)(AP1308;1308:1308)(AP1309;1309:1309)(AP1310;1310:1310)(AP1311;1311:1311)(AP1312;1312:1312)(AP1313;1313:1313)(AP1314;1314:1314)(AP1315;1315:1315)(AP1316;1316:1316)(AP1317;1317:1317)(AP1318;1318:1318)(AP1319;1319:1319)(AP1320;1320:1320)(AP1321;1321:1321)(AP1322;1322:1322)(AP1323;1323:1323)(AP1324;1324:1324)(AP1325;1325:1325)(AP1326;1326:1326)(AP1327;1327:1327)(AP1328;1328:1328)(AP1329;1329:1329)(AP1330;1330:1330)(AP1331;1331:1331)(AP1332;1332:1332)(AP1333;1333:1333)(AP1334;1334:1334)(AP1335;1335:1335)(AP1336;1336:1336)(AP1337;1337:1337)(AP1338;1338:1338)(AP1339;1339:1339)(AP1340;1340:1340)(AP1341;1341:1341)(AP1342;1342:1342)(AP1343;1343:1343)(AP1344;1344:1344)(AP1345;1345:1345)(AP1346;1346:1346)(AP1347;1347:1347)(AP1348;1348:1348)(AP1349;1349:1349)(AP1350;1350:1350)(AP1351;1351:1351)(AP1352;1352:1352)(AP1353;1353:1353)(AP1354;1354:1354)(AP1355;1355:1355)(AP1356;1356:1356)(AP1357;1357:1357)(AP1358;1358:1358)(AP1359;1359:1359)(AP1360;1360:1360)(AP1361;1361:1361)(AP1362;1362:1362)(AP1363;1363:1363)(AP1364;1364:1364)(AP1365;1365:1365)(AP1366;1366:1366)(AP1367;1367:1367)(AP1368;1368:1368)(AP1369;1369:1369)(AP1370;1370:1370)(AP1371;1371:1371)(AP1372;1372:1372)(AP1373;1373:1373)(AP1374;1374:1374)(AP1375;1375:1375)(AP1376;1376:1376)(AP1377;1377:1377)(AP1378;1378:1378)(AP1379;1379:1379)(AP1380;1380:1380)(AP1381;1381:1381)(AP1382;1382:1382)(AP1383;1383:1383)(AP1384;1384:1384)(AP1385;1385:1385)(AP1386;1386:1386)(AP1387;1387:1387)(AP1388;1388:1388)(AP1389;1389:1389)(AP1390;1390:1390)(AP1391;1391:1391)(AP1392;1392:1392)(AP1393;1393:1393)(AP1394;1394:1394)(AP1395;1395:1395)(AP1396;1396:1396)(AP1397;1397:1397)(AP1398;1398:1398)(AP1399;1399:1399)(AP1400;1400:1400)(AP1401;1401:1401)(AP1402;1402:1402)(AP1403;1403:1403)(AP1404;1404:1404)(AP1405;1405:1405)(AP1406;1406:1406)(AP1407;1407:1407)(AP1408;1408:1408)(AP1409;1409:1409)(AP1410;1410:1410)(AP1411;1411:1411)(AP1412;1412:1412)(AP1413;1413:1413)(AP1414;1414:1414)(AP1415;1415:1415)(AP1416;1416:1416)(AP1417;1417:1417)(AP1418;1418:1418)(AP1419;1419:1419)(AP1420;1420:1420)(AP1421;1421:1421)(AP1422;1422:1422)(AP1423;1423:1423)(AP1424;1424:1424)(AP1425;1425:1425)(AP1426;1426:1426)(AP1427;1427:1427)(AP1428;1428:1428)(AP1429;1429:1429)(AP1430;1430:1430)(AP1431;1431:1431)(AP1432;1432:1432)(AP1433;1433:1433)(AP1434;1434:1434)(AP1435;1435:1435)(AP1436;1436:1436)(AP1437;1437:1437)(AP1438;1438:1438)(AP1439;1439:1439)(AP1440;1440:1440)(AP1441;1441:1441)(AP1442;1442:1442)(AP1443;1443:1443)(AP1444;1444:1444)(AP1445;1445:1445)(AP1446;1446:1446)(AP1447;1447:1447)(AP1448;1448:1448)(AP1449;1449:1449)(AP1450;1450:1450)(AP1451;1451:1451)(AP1452;1452:1452)(AP1453;1453:1453)(AP1454;1454:1454)(AP1455;1455:1455)(AP1456;1456:1456)(AP1457;1457:1457)(AP1458;1458:1458)(AP1459;1459:1459)(AP1460;1460:1460)(AP1461;1461:1461)(AP1462;1462:1462)(AP1463;1463:1463)(AP1464;1464:1464)(AP1465;1465:1465)(AP1466;1466:1466)(AP1467;1467:1467)(AP1468;1468:1468)(AP1469;1469:1469)(AP1470;1470:1470)(AP1471;1471:1471)(AP1472;1472:1472)(AP1473;1473:1473)(AP1474;1474:1474)(AP1475;1475:1475)(AP1476;1476:1476)(AP1477;1477:1477)(AP1478;1478:1478)(AP1479;1479:1479)(AP1480;1480:1480)(AP1481;1481:1481)(AP1482;1482:1482)(AP1483;1483:1483)(AP1484;1484:1484)(AP1485;1485:1485)(AP1486;1486:1486)(AP1487;1487:1487)(AP1488;1488:1488)(AP1489;1489:1489)(AP1490;1490:1490)(AP1491;1491:1491)(AP1492;1492:1492)(AP1493;1493:1493)(AP1494;1494:1494)(AP1495;1495:1495)(AP1496;1496:1496)(AP1497;1497:1497)(AP1498;1498:1498)(AP1499;1499:1499)(AP1500;1500:1500)(AP1501;1501:1501)(AP1502;1502:1502)(AP1503;1503:1503)(AP1504;1504:1504)(AP1505;1505:1505)(AP1506;1506:1506)(AP1507;1507:1507)(AP1508;1508:1508)(AP1509;1509:1509)(AP1510;1510:1510)(AP1511;1511:1511)(AP1512;1512:1512)(AP1513;1513:1513)(AP1514;1514:1514)(AP1515;1515:1515)(AP1516;1516:1516)(AP1517;1517:1517)(AP1518;1518:1518)(AP1519;1519:1519)(AP1520;1520:1520)(AP1521;1521:1521)(AP1522;1522:1522)(AP1523;1523:1523)(AP1524;1524:1524)(AP1525;1525:1525)(AP1526;1526:1526)(AP1527;1527:1527)(AP1528;1528:1528)(AP1529;1529:1529)(AP1530;1530:1530)(AP1531;1531:1531)(AP1532;1532:1532)(AP1533;1533:1533)(AP1534;1534:1534)(AP1535;1535:1535)(SY0;1536:1536)(SY1;1537:1537)(SY2;1538:1538)(SY3;1539:1539) +~snsGeomMap=(NP2020,4,250,70)(0:27:0:1)(0:59:0:1)(0:27:15:1)(0:59:15:1)(0:27:30:1)(0:59:30:1)(0:27:45:1)(0:59:45:1)(0:27:60:1)(0:59:60:1)(0:27:75:1)(0:59:75:1)(0:27:90:1)(0:59:90:1)(0:27:105:1)(0:59:105:1)(0:27:120:1)(0:59:120:1)(0:27:135:1)(0:59:135:1)(0:27:150:1)(0:59:150:1)(0:27:165:1)(0:59:165:1)(0:27:180:1)(0:59:180:1)(0:27:195:1)(0:59:195:1)(0:27:210:1)(0:59:210:1)(0:27:225:1)(0:59:225:1)(0:27:240:1)(0:59:240:1)(0:27:255:1)(0:59:255:1)(0:27:270:1)(0:59:270:1)(0:27:285:1)(0:59:285:1)(0:27:300:1)(0:59:300:1)(0:27:315:1)(0:59:315:1)(0:27:330:1)(0:59:330:1)(0:27:345:1)(0:59:345:1)(0:27:360:1)(0:59:360:1)(0:27:375:1)(0:59:375:1)(0:27:390:1)(0:59:390:1)(0:27:405:1)(0:59:405:1)(0:27:420:1)(0:59:420:1)(0:27:435:1)(0:59:435:1)(0:27:450:1)(0:59:450:1)(0:27:465:1)(0:59:465:1)(0:27:480:1)(0:59:480:1)(0:27:495:1)(0:59:495:1)(0:27:510:1)(0:59:510:1)(0:27:525:1)(0:59:525:1)(0:27:540:1)(0:59:540:1)(0:27:555:1)(0:59:555:1)(0:27:570:1)(0:59:570:1)(0:27:585:1)(0:59:585:1)(0:27:600:1)(0:59:600:1)(0:27:615:1)(0:59:615:1)(0:27:630:1)(0:59:630:1)(0:27:645:1)(0:59:645:1)(0:27:660:1)(0:59:660:1)(0:27:675:1)(0:59:675:1)(0:27:690:1)(0:59:690:1)(0:27:705:1)(0:59:705:1)(0:27:720:1)(0:59:720:1)(0:27:735:1)(0:59:735:1)(0:27:750:1)(0:59:750:1)(0:27:765:1)(0:59:765:1)(0:27:780:1)(0:59:780:1)(0:27:795:1)(0:59:795:1)(0:27:810:1)(0:59:810:1)(0:27:825:1)(0:59:825:1)(0:27:840:1)(0:59:840:1)(0:27:855:1)(0:59:855:1)(0:27:870:1)(0:59:870:1)(0:27:885:1)(0:59:885:1)(0:27:900:1)(0:59:900:1)(0:27:915:1)(0:59:915:1)(0:27:930:1)(0:59:930:1)(0:27:945:1)(0:59:945:1)(0:27:960:1)(0:59:960:1)(0:27:975:1)(0:59:975:1)(0:27:990:1)(0:59:990:1)(0:27:1005:1)(0:59:1005:1)(0:27:1020:1)(0:59:1020:1)(0:27:1035:1)(0:59:1035:1)(0:27:1050:1)(0:59:1050:1)(0:27:1065:1)(0:59:1065:1)(0:27:1080:1)(0:59:1080:1)(0:27:1095:1)(0:59:1095:1)(0:27:1110:1)(0:59:1110:1)(0:27:1125:1)(0:59:1125:1)(0:27:1140:1)(0:59:1140:1)(0:27:1155:1)(0:59:1155:1)(0:27:1170:1)(0:59:1170:1)(0:27:1185:1)(0:59:1185:1)(0:27:1200:1)(0:59:1200:1)(0:27:1215:1)(0:59:1215:1)(0:27:1230:1)(0:59:1230:1)(0:27:1245:1)(0:59:1245:1)(0:27:1260:1)(0:59:1260:1)(0:27:1275:1)(0:59:1275:1)(0:27:1290:1)(0:59:1290:1)(0:27:1305:1)(0:59:1305:1)(0:27:1320:1)(0:59:1320:1)(0:27:1335:1)(0:59:1335:1)(0:27:1350:1)(0:59:1350:1)(0:27:1365:1)(0:59:1365:1)(0:27:1380:1)(0:59:1380:1)(0:27:1395:1)(0:59:1395:1)(0:27:1410:1)(0:59:1410:1)(0:27:1425:1)(0:59:1425:1)(0:27:1440:1)(0:59:1440:1)(0:27:1455:1)(0:59:1455:1)(0:27:1470:1)(0:59:1470:1)(0:27:1485:1)(0:59:1485:1)(0:27:1500:1)(0:59:1500:1)(0:27:1515:1)(0:59:1515:1)(0:27:1530:1)(0:59:1530:1)(0:27:1545:1)(0:59:1545:1)(0:27:1560:1)(0:59:1560:1)(0:27:1575:1)(0:59:1575:1)(0:27:1590:1)(0:59:1590:1)(0:27:1605:1)(0:59:1605:1)(0:27:1620:1)(0:59:1620:1)(0:27:1635:1)(0:59:1635:1)(0:27:1650:1)(0:59:1650:1)(0:27:1665:1)(0:59:1665:1)(0:27:1680:1)(0:59:1680:1)(0:27:1695:1)(0:59:1695:1)(0:27:1710:1)(0:59:1710:1)(0:27:1725:1)(0:59:1725:1)(0:27:1740:1)(0:59:1740:1)(0:27:1755:1)(0:59:1755:1)(0:27:1770:1)(0:59:1770:1)(0:27:1785:1)(0:59:1785:1)(0:27:1800:1)(0:59:1800:1)(0:27:1815:1)(0:59:1815:1)(0:27:1830:1)(0:59:1830:1)(0:27:1845:1)(0:59:1845:1)(0:27:1860:1)(0:59:1860:1)(0:27:1875:1)(0:59:1875:1)(0:27:1890:1)(0:59:1890:1)(0:27:1905:1)(0:59:1905:1)(0:27:1920:1)(0:59:1920:1)(0:27:1935:1)(0:59:1935:1)(0:27:1950:1)(0:59:1950:1)(0:27:1965:1)(0:59:1965:1)(0:27:1980:1)(0:59:1980:1)(0:27:1995:1)(0:59:1995:1)(0:27:2010:1)(0:59:2010:1)(0:27:2025:1)(0:59:2025:1)(0:27:2040:1)(0:59:2040:1)(0:27:2055:1)(0:59:2055:1)(0:27:2070:1)(0:59:2070:1)(0:27:2085:1)(0:59:2085:1)(0:27:2100:1)(0:59:2100:1)(0:27:2115:1)(0:59:2115:1)(0:27:2130:1)(0:59:2130:1)(0:27:2145:1)(0:59:2145:1)(0:27:2160:1)(0:59:2160:1)(0:27:2175:1)(0:59:2175:1)(0:27:2190:1)(0:59:2190:1)(0:27:2205:1)(0:59:2205:1)(0:27:2220:1)(0:59:2220:1)(0:27:2235:1)(0:59:2235:1)(0:27:2250:1)(0:59:2250:1)(0:27:2265:1)(0:59:2265:1)(0:27:2280:1)(0:59:2280:1)(0:27:2295:1)(0:59:2295:1)(0:27:2310:1)(0:59:2310:1)(0:27:2325:1)(0:59:2325:1)(0:27:2340:1)(0:59:2340:1)(0:27:2355:1)(0:59:2355:1)(0:27:2370:1)(0:59:2370:1)(0:27:2385:1)(0:59:2385:1)(0:27:2400:1)(0:59:2400:1)(0:27:2415:1)(0:59:2415:1)(0:27:2430:1)(0:59:2430:1)(0:27:2445:1)(0:59:2445:1)(0:27:2460:1)(0:59:2460:1)(0:27:2475:1)(0:59:2475:1)(0:27:2490:1)(0:59:2490:1)(0:27:2505:1)(0:59:2505:1)(0:27:2520:1)(0:59:2520:1)(0:27:2535:1)(0:59:2535:1)(0:27:2550:1)(0:59:2550:1)(0:27:2565:1)(0:59:2565:1)(0:27:2580:1)(0:59:2580:1)(0:27:2595:1)(0:59:2595:1)(0:27:2610:1)(0:59:2610:1)(0:27:2625:1)(0:59:2625:1)(0:27:2640:1)(0:59:2640:1)(0:27:2655:1)(0:59:2655:1)(0:27:2670:1)(0:59:2670:1)(0:27:2685:1)(0:59:2685:1)(0:27:2700:1)(0:59:2700:1)(0:27:2715:1)(0:59:2715:1)(0:27:2730:1)(0:59:2730:1)(0:27:2745:1)(0:59:2745:1)(0:27:2760:1)(0:59:2760:1)(0:27:2775:1)(0:59:2775:1)(0:27:2790:1)(0:59:2790:1)(0:27:2805:1)(0:59:2805:1)(0:27:2820:1)(0:59:2820:1)(0:27:2835:1)(0:59:2835:1)(0:27:2850:1)(0:59:2850:1)(0:27:2865:1)(0:59:2865:1)(1:27:0:1)(1:59:0:1)(1:27:15:1)(1:59:15:1)(1:27:30:1)(1:59:30:1)(1:27:45:1)(1:59:45:1)(1:27:60:1)(1:59:60:1)(1:27:75:1)(1:59:75:1)(1:27:90:1)(1:59:90:1)(1:27:105:1)(1:59:105:1)(1:27:120:1)(1:59:120:1)(1:27:135:1)(1:59:135:1)(1:27:150:1)(1:59:150:1)(1:27:165:1)(1:59:165:1)(1:27:180:1)(1:59:180:1)(1:27:195:1)(1:59:195:1)(1:27:210:1)(1:59:210:1)(1:27:225:1)(1:59:225:1)(1:27:240:1)(1:59:240:1)(1:27:255:1)(1:59:255:1)(1:27:270:1)(1:59:270:1)(1:27:285:1)(1:59:285:1)(1:27:300:1)(1:59:300:1)(1:27:315:1)(1:59:315:1)(1:27:330:1)(1:59:330:1)(1:27:345:1)(1:59:345:1)(1:27:360:1)(1:59:360:1)(1:27:375:1)(1:59:375:1)(1:27:390:1)(1:59:390:1)(1:27:405:1)(1:59:405:1)(1:27:420:1)(1:59:420:1)(1:27:435:1)(1:59:435:1)(1:27:450:1)(1:59:450:1)(1:27:465:1)(1:59:465:1)(1:27:480:1)(1:59:480:1)(1:27:495:1)(1:59:495:1)(1:27:510:1)(1:59:510:1)(1:27:525:1)(1:59:525:1)(1:27:540:1)(1:59:540:1)(1:27:555:1)(1:59:555:1)(1:27:570:1)(1:59:570:1)(1:27:585:1)(1:59:585:1)(1:27:600:1)(1:59:600:1)(1:27:615:1)(1:59:615:1)(1:27:630:1)(1:59:630:1)(1:27:645:1)(1:59:645:1)(1:27:660:1)(1:59:660:1)(1:27:675:1)(1:59:675:1)(1:27:690:1)(1:59:690:1)(1:27:705:1)(1:59:705:1)(1:27:720:1)(1:59:720:1)(1:27:735:1)(1:59:735:1)(1:27:750:1)(1:59:750:1)(1:27:765:1)(1:59:765:1)(1:27:780:1)(1:59:780:1)(1:27:795:1)(1:59:795:1)(1:27:810:1)(1:59:810:1)(1:27:825:1)(1:59:825:1)(1:27:840:1)(1:59:840:1)(1:27:855:1)(1:59:855:1)(1:27:870:1)(1:59:870:1)(1:27:885:1)(1:59:885:1)(1:27:900:1)(1:59:900:1)(1:27:915:1)(1:59:915:1)(1:27:930:1)(1:59:930:1)(1:27:945:1)(1:59:945:1)(1:27:960:1)(1:59:960:1)(1:27:975:1)(1:59:975:1)(1:27:990:1)(1:59:990:1)(1:27:1005:1)(1:59:1005:1)(1:27:1020:1)(1:59:1020:1)(1:27:1035:1)(1:59:1035:1)(1:27:1050:1)(1:59:1050:1)(1:27:1065:1)(1:59:1065:1)(1:27:1080:1)(1:59:1080:1)(1:27:1095:1)(1:59:1095:1)(1:27:1110:1)(1:59:1110:1)(1:27:1125:1)(1:59:1125:1)(1:27:1140:1)(1:59:1140:1)(1:27:1155:1)(1:59:1155:1)(1:27:1170:1)(1:59:1170:1)(1:27:1185:1)(1:59:1185:1)(1:27:1200:1)(1:59:1200:1)(1:27:1215:1)(1:59:1215:1)(1:27:1230:1)(1:59:1230:1)(1:27:1245:1)(1:59:1245:1)(1:27:1260:1)(1:59:1260:1)(1:27:1275:1)(1:59:1275:1)(1:27:1290:1)(1:59:1290:1)(1:27:1305:1)(1:59:1305:1)(1:27:1320:1)(1:59:1320:1)(1:27:1335:1)(1:59:1335:1)(1:27:1350:1)(1:59:1350:1)(1:27:1365:1)(1:59:1365:1)(1:27:1380:1)(1:59:1380:1)(1:27:1395:1)(1:59:1395:1)(1:27:1410:1)(1:59:1410:1)(1:27:1425:1)(1:59:1425:1)(1:27:1440:1)(1:59:1440:1)(1:27:1455:1)(1:59:1455:1)(1:27:1470:1)(1:59:1470:1)(1:27:1485:1)(1:59:1485:1)(1:27:1500:1)(1:59:1500:1)(1:27:1515:1)(1:59:1515:1)(1:27:1530:1)(1:59:1530:1)(1:27:1545:1)(1:59:1545:1)(1:27:1560:1)(1:59:1560:1)(1:27:1575:1)(1:59:1575:1)(1:27:1590:1)(1:59:1590:1)(1:27:1605:1)(1:59:1605:1)(1:27:1620:1)(1:59:1620:1)(1:27:1635:1)(1:59:1635:1)(1:27:1650:1)(1:59:1650:1)(1:27:1665:1)(1:59:1665:1)(1:27:1680:1)(1:59:1680:1)(1:27:1695:1)(1:59:1695:1)(1:27:1710:1)(1:59:1710:1)(1:27:1725:1)(1:59:1725:1)(1:27:1740:1)(1:59:1740:1)(1:27:1755:1)(1:59:1755:1)(1:27:1770:1)(1:59:1770:1)(1:27:1785:1)(1:59:1785:1)(1:27:1800:1)(1:59:1800:1)(1:27:1815:1)(1:59:1815:1)(1:27:1830:1)(1:59:1830:1)(1:27:1845:1)(1:59:1845:1)(1:27:1860:1)(1:59:1860:1)(1:27:1875:1)(1:59:1875:1)(1:27:1890:1)(1:59:1890:1)(1:27:1905:1)(1:59:1905:1)(1:27:1920:1)(1:59:1920:1)(1:27:1935:1)(1:59:1935:1)(1:27:1950:1)(1:59:1950:1)(1:27:1965:1)(1:59:1965:1)(1:27:1980:1)(1:59:1980:1)(1:27:1995:1)(1:59:1995:1)(1:27:2010:1)(1:59:2010:1)(1:27:2025:1)(1:59:2025:1)(1:27:2040:1)(1:59:2040:1)(1:27:2055:1)(1:59:2055:1)(1:27:2070:1)(1:59:2070:1)(1:27:2085:1)(1:59:2085:1)(1:27:2100:1)(1:59:2100:1)(1:27:2115:1)(1:59:2115:1)(1:27:2130:1)(1:59:2130:1)(1:27:2145:1)(1:59:2145:1)(1:27:2160:1)(1:59:2160:1)(1:27:2175:1)(1:59:2175:1)(1:27:2190:1)(1:59:2190:1)(1:27:2205:1)(1:59:2205:1)(1:27:2220:1)(1:59:2220:1)(1:27:2235:1)(1:59:2235:1)(1:27:2250:1)(1:59:2250:1)(1:27:2265:1)(1:59:2265:1)(1:27:2280:1)(1:59:2280:1)(1:27:2295:1)(1:59:2295:1)(1:27:2310:1)(1:59:2310:1)(1:27:2325:1)(1:59:2325:1)(1:27:2340:1)(1:59:2340:1)(1:27:2355:1)(1:59:2355:1)(1:27:2370:1)(1:59:2370:1)(1:27:2385:1)(1:59:2385:1)(1:27:2400:1)(1:59:2400:1)(1:27:2415:1)(1:59:2415:1)(1:27:2430:1)(1:59:2430:1)(1:27:2445:1)(1:59:2445:1)(1:27:2460:1)(1:59:2460:1)(1:27:2475:1)(1:59:2475:1)(1:27:2490:1)(1:59:2490:1)(1:27:2505:1)(1:59:2505:1)(1:27:2520:1)(1:59:2520:1)(1:27:2535:1)(1:59:2535:1)(1:27:2550:1)(1:59:2550:1)(1:27:2565:1)(1:59:2565:1)(1:27:2580:1)(1:59:2580:1)(1:27:2595:1)(1:59:2595:1)(1:27:2610:1)(1:59:2610:1)(1:27:2625:1)(1:59:2625:1)(1:27:2640:1)(1:59:2640:1)(1:27:2655:1)(1:59:2655:1)(1:27:2670:1)(1:59:2670:1)(1:27:2685:1)(1:59:2685:1)(1:27:2700:1)(1:59:2700:1)(1:27:2715:1)(1:59:2715:1)(1:27:2730:1)(1:59:2730:1)(1:27:2745:1)(1:59:2745:1)(1:27:2760:1)(1:59:2760:1)(1:27:2775:1)(1:59:2775:1)(1:27:2790:1)(1:59:2790:1)(1:27:2805:1)(1:59:2805:1)(1:27:2820:1)(1:59:2820:1)(1:27:2835:1)(1:59:2835:1)(1:27:2850:1)(1:59:2850:1)(1:27:2865:1)(1:59:2865:1)(2:27:0:1)(2:59:0:1)(2:27:15:1)(2:59:15:1)(2:27:30:1)(2:59:30:1)(2:27:45:1)(2:59:45:1)(2:27:60:1)(2:59:60:1)(2:27:75:1)(2:59:75:1)(2:27:90:1)(2:59:90:1)(2:27:105:1)(2:59:105:1)(2:27:120:1)(2:59:120:1)(2:27:135:1)(2:59:135:1)(2:27:150:1)(2:59:150:1)(2:27:165:1)(2:59:165:1)(2:27:180:1)(2:59:180:1)(2:27:195:1)(2:59:195:1)(2:27:210:1)(2:59:210:1)(2:27:225:1)(2:59:225:1)(2:27:240:1)(2:59:240:1)(2:27:255:1)(2:59:255:1)(2:27:270:1)(2:59:270:1)(2:27:285:1)(2:59:285:1)(2:27:300:1)(2:59:300:1)(2:27:315:1)(2:59:315:1)(2:27:330:1)(2:59:330:1)(2:27:345:1)(2:59:345:1)(2:27:360:1)(2:59:360:1)(2:27:375:1)(2:59:375:1)(2:27:390:1)(2:59:390:1)(2:27:405:1)(2:59:405:1)(2:27:420:1)(2:59:420:1)(2:27:435:1)(2:59:435:1)(2:27:450:1)(2:59:450:1)(2:27:465:1)(2:59:465:1)(2:27:480:1)(2:59:480:1)(2:27:495:1)(2:59:495:1)(2:27:510:1)(2:59:510:1)(2:27:525:1)(2:59:525:1)(2:27:540:1)(2:59:540:1)(2:27:555:1)(2:59:555:1)(2:27:570:1)(2:59:570:1)(2:27:585:1)(2:59:585:1)(2:27:600:1)(2:59:600:1)(2:27:615:1)(2:59:615:1)(2:27:630:1)(2:59:630:1)(2:27:645:1)(2:59:645:1)(2:27:660:1)(2:59:660:1)(2:27:675:1)(2:59:675:1)(2:27:690:1)(2:59:690:1)(2:27:705:1)(2:59:705:1)(2:27:720:1)(2:59:720:1)(2:27:735:1)(2:59:735:1)(2:27:750:1)(2:59:750:1)(2:27:765:1)(2:59:765:1)(2:27:780:1)(2:59:780:1)(2:27:795:1)(2:59:795:1)(2:27:810:1)(2:59:810:1)(2:27:825:1)(2:59:825:1)(2:27:840:1)(2:59:840:1)(2:27:855:1)(2:59:855:1)(2:27:870:1)(2:59:870:1)(2:27:885:1)(2:59:885:1)(2:27:900:1)(2:59:900:1)(2:27:915:1)(2:59:915:1)(2:27:930:1)(2:59:930:1)(2:27:945:1)(2:59:945:1)(2:27:960:1)(2:59:960:1)(2:27:975:1)(2:59:975:1)(2:27:990:1)(2:59:990:1)(2:27:1005:1)(2:59:1005:1)(2:27:1020:1)(2:59:1020:1)(2:27:1035:1)(2:59:1035:1)(2:27:1050:1)(2:59:1050:1)(2:27:1065:1)(2:59:1065:1)(2:27:1080:1)(2:59:1080:1)(2:27:1095:1)(2:59:1095:1)(2:27:1110:1)(2:59:1110:1)(2:27:1125:1)(2:59:1125:1)(2:27:1140:1)(2:59:1140:1)(2:27:1155:1)(2:59:1155:1)(2:27:1170:1)(2:59:1170:1)(2:27:1185:1)(2:59:1185:1)(2:27:1200:1)(2:59:1200:1)(2:27:1215:1)(2:59:1215:1)(2:27:1230:1)(2:59:1230:1)(2:27:1245:1)(2:59:1245:1)(2:27:1260:1)(2:59:1260:1)(2:27:1275:1)(2:59:1275:1)(2:27:1290:1)(2:59:1290:1)(2:27:1305:1)(2:59:1305:1)(2:27:1320:1)(2:59:1320:1)(2:27:1335:1)(2:59:1335:1)(2:27:1350:1)(2:59:1350:1)(2:27:1365:1)(2:59:1365:1)(2:27:1380:1)(2:59:1380:1)(2:27:1395:1)(2:59:1395:1)(2:27:1410:1)(2:59:1410:1)(2:27:1425:1)(2:59:1425:1)(2:27:1440:1)(2:59:1440:1)(2:27:1455:1)(2:59:1455:1)(2:27:1470:1)(2:59:1470:1)(2:27:1485:1)(2:59:1485:1)(2:27:1500:1)(2:59:1500:1)(2:27:1515:1)(2:59:1515:1)(2:27:1530:1)(2:59:1530:1)(2:27:1545:1)(2:59:1545:1)(2:27:1560:1)(2:59:1560:1)(2:27:1575:1)(2:59:1575:1)(2:27:1590:1)(2:59:1590:1)(2:27:1605:1)(2:59:1605:1)(2:27:1620:1)(2:59:1620:1)(2:27:1635:1)(2:59:1635:1)(2:27:1650:1)(2:59:1650:1)(2:27:1665:1)(2:59:1665:1)(2:27:1680:1)(2:59:1680:1)(2:27:1695:1)(2:59:1695:1)(2:27:1710:1)(2:59:1710:1)(2:27:1725:1)(2:59:1725:1)(2:27:1740:1)(2:59:1740:1)(2:27:1755:1)(2:59:1755:1)(2:27:1770:1)(2:59:1770:1)(2:27:1785:1)(2:59:1785:1)(2:27:1800:1)(2:59:1800:1)(2:27:1815:1)(2:59:1815:1)(2:27:1830:1)(2:59:1830:1)(2:27:1845:1)(2:59:1845:1)(2:27:1860:1)(2:59:1860:1)(2:27:1875:1)(2:59:1875:1)(2:27:1890:1)(2:59:1890:1)(2:27:1905:1)(2:59:1905:1)(2:27:1920:1)(2:59:1920:1)(2:27:1935:1)(2:59:1935:1)(2:27:1950:1)(2:59:1950:1)(2:27:1965:1)(2:59:1965:1)(2:27:1980:1)(2:59:1980:1)(2:27:1995:1)(2:59:1995:1)(2:27:2010:1)(2:59:2010:1)(2:27:2025:1)(2:59:2025:1)(2:27:2040:1)(2:59:2040:1)(2:27:2055:1)(2:59:2055:1)(2:27:2070:1)(2:59:2070:1)(2:27:2085:1)(2:59:2085:1)(2:27:2100:1)(2:59:2100:1)(2:27:2115:1)(2:59:2115:1)(2:27:2130:1)(2:59:2130:1)(2:27:2145:1)(2:59:2145:1)(2:27:2160:1)(2:59:2160:1)(2:27:2175:1)(2:59:2175:1)(2:27:2190:1)(2:59:2190:1)(2:27:2205:1)(2:59:2205:1)(2:27:2220:1)(2:59:2220:1)(2:27:2235:1)(2:59:2235:1)(2:27:2250:1)(2:59:2250:1)(2:27:2265:1)(2:59:2265:1)(2:27:2280:1)(2:59:2280:1)(2:27:2295:1)(2:59:2295:1)(2:27:2310:1)(2:59:2310:1)(2:27:2325:1)(2:59:2325:1)(2:27:2340:1)(2:59:2340:1)(2:27:2355:1)(2:59:2355:1)(2:27:2370:1)(2:59:2370:1)(2:27:2385:1)(2:59:2385:1)(2:27:2400:1)(2:59:2400:1)(2:27:2415:1)(2:59:2415:1)(2:27:2430:1)(2:59:2430:1)(2:27:2445:1)(2:59:2445:1)(2:27:2460:1)(2:59:2460:1)(2:27:2475:1)(2:59:2475:1)(2:27:2490:1)(2:59:2490:1)(2:27:2505:1)(2:59:2505:1)(2:27:2520:1)(2:59:2520:1)(2:27:2535:1)(2:59:2535:1)(2:27:2550:1)(2:59:2550:1)(2:27:2565:1)(2:59:2565:1)(2:27:2580:1)(2:59:2580:1)(2:27:2595:1)(2:59:2595:1)(2:27:2610:1)(2:59:2610:1)(2:27:2625:1)(2:59:2625:1)(2:27:2640:1)(2:59:2640:1)(2:27:2655:1)(2:59:2655:1)(2:27:2670:1)(2:59:2670:1)(2:27:2685:1)(2:59:2685:1)(2:27:2700:1)(2:59:2700:1)(2:27:2715:1)(2:59:2715:1)(2:27:2730:1)(2:59:2730:1)(2:27:2745:1)(2:59:2745:1)(2:27:2760:1)(2:59:2760:1)(2:27:2775:1)(2:59:2775:1)(2:27:2790:1)(2:59:2790:1)(2:27:2805:1)(2:59:2805:1)(2:27:2820:1)(2:59:2820:1)(2:27:2835:1)(2:59:2835:1)(2:27:2850:1)(2:59:2850:1)(2:27:2865:1)(2:59:2865:1)(3:27:0:1)(3:59:0:1)(3:27:15:1)(3:59:15:1)(3:27:30:1)(3:59:30:1)(3:27:45:1)(3:59:45:1)(3:27:60:1)(3:59:60:1)(3:27:75:1)(3:59:75:1)(3:27:90:1)(3:59:90:1)(3:27:105:1)(3:59:105:1)(3:27:120:1)(3:59:120:1)(3:27:135:1)(3:59:135:1)(3:27:150:1)(3:59:150:1)(3:27:165:1)(3:59:165:1)(3:27:180:1)(3:59:180:1)(3:27:195:1)(3:59:195:1)(3:27:210:1)(3:59:210:1)(3:27:225:1)(3:59:225:1)(3:27:240:1)(3:59:240:1)(3:27:255:1)(3:59:255:1)(3:27:270:1)(3:59:270:1)(3:27:285:1)(3:59:285:1)(3:27:300:1)(3:59:300:1)(3:27:315:1)(3:59:315:1)(3:27:330:1)(3:59:330:1)(3:27:345:1)(3:59:345:1)(3:27:360:1)(3:59:360:1)(3:27:375:1)(3:59:375:1)(3:27:390:1)(3:59:390:1)(3:27:405:1)(3:59:405:1)(3:27:420:1)(3:59:420:1)(3:27:435:1)(3:59:435:1)(3:27:450:1)(3:59:450:1)(3:27:465:1)(3:59:465:1)(3:27:480:1)(3:59:480:1)(3:27:495:1)(3:59:495:1)(3:27:510:1)(3:59:510:1)(3:27:525:1)(3:59:525:1)(3:27:540:1)(3:59:540:1)(3:27:555:1)(3:59:555:1)(3:27:570:1)(3:59:570:1)(3:27:585:1)(3:59:585:1)(3:27:600:1)(3:59:600:1)(3:27:615:1)(3:59:615:1)(3:27:630:1)(3:59:630:1)(3:27:645:1)(3:59:645:1)(3:27:660:1)(3:59:660:1)(3:27:675:1)(3:59:675:1)(3:27:690:1)(3:59:690:1)(3:27:705:1)(3:59:705:1)(3:27:720:1)(3:59:720:1)(3:27:735:1)(3:59:735:1)(3:27:750:1)(3:59:750:1)(3:27:765:1)(3:59:765:1)(3:27:780:1)(3:59:780:1)(3:27:795:1)(3:59:795:1)(3:27:810:1)(3:59:810:1)(3:27:825:1)(3:59:825:1)(3:27:840:1)(3:59:840:1)(3:27:855:1)(3:59:855:1)(3:27:870:1)(3:59:870:1)(3:27:885:1)(3:59:885:1)(3:27:900:1)(3:59:900:1)(3:27:915:1)(3:59:915:1)(3:27:930:1)(3:59:930:1)(3:27:945:1)(3:59:945:1)(3:27:960:1)(3:59:960:1)(3:27:975:1)(3:59:975:1)(3:27:990:1)(3:59:990:1)(3:27:1005:1)(3:59:1005:1)(3:27:1020:1)(3:59:1020:1)(3:27:1035:1)(3:59:1035:1)(3:27:1050:1)(3:59:1050:1)(3:27:1065:1)(3:59:1065:1)(3:27:1080:1)(3:59:1080:1)(3:27:1095:1)(3:59:1095:1)(3:27:1110:1)(3:59:1110:1)(3:27:1125:1)(3:59:1125:1)(3:27:1140:1)(3:59:1140:1)(3:27:1155:1)(3:59:1155:1)(3:27:1170:1)(3:59:1170:1)(3:27:1185:1)(3:59:1185:1)(3:27:1200:1)(3:59:1200:1)(3:27:1215:1)(3:59:1215:1)(3:27:1230:1)(3:59:1230:1)(3:27:1245:1)(3:59:1245:1)(3:27:1260:1)(3:59:1260:1)(3:27:1275:1)(3:59:1275:1)(3:27:1290:1)(3:59:1290:1)(3:27:1305:1)(3:59:1305:1)(3:27:1320:1)(3:59:1320:1)(3:27:1335:1)(3:59:1335:1)(3:27:1350:1)(3:59:1350:1)(3:27:1365:1)(3:59:1365:1)(3:27:1380:1)(3:59:1380:1)(3:27:1395:1)(3:59:1395:1)(3:27:1410:1)(3:59:1410:1)(3:27:1425:1)(3:59:1425:1)(3:27:1440:1)(3:59:1440:1)(3:27:1455:1)(3:59:1455:1)(3:27:1470:1)(3:59:1470:1)(3:27:1485:1)(3:59:1485:1)(3:27:1500:1)(3:59:1500:1)(3:27:1515:1)(3:59:1515:1)(3:27:1530:1)(3:59:1530:1)(3:27:1545:1)(3:59:1545:1)(3:27:1560:1)(3:59:1560:1)(3:27:1575:1)(3:59:1575:1)(3:27:1590:1)(3:59:1590:1)(3:27:1605:1)(3:59:1605:1)(3:27:1620:1)(3:59:1620:1)(3:27:1635:1)(3:59:1635:1)(3:27:1650:1)(3:59:1650:1)(3:27:1665:1)(3:59:1665:1)(3:27:1680:1)(3:59:1680:1)(3:27:1695:1)(3:59:1695:1)(3:27:1710:1)(3:59:1710:1)(3:27:1725:1)(3:59:1725:1)(3:27:1740:1)(3:59:1740:1)(3:27:1755:1)(3:59:1755:1)(3:27:1770:1)(3:59:1770:1)(3:27:1785:1)(3:59:1785:1)(3:27:1800:1)(3:59:1800:1)(3:27:1815:1)(3:59:1815:1)(3:27:1830:1)(3:59:1830:1)(3:27:1845:1)(3:59:1845:1)(3:27:1860:1)(3:59:1860:1)(3:27:1875:1)(3:59:1875:1)(3:27:1890:1)(3:59:1890:1)(3:27:1905:1)(3:59:1905:1)(3:27:1920:1)(3:59:1920:1)(3:27:1935:1)(3:59:1935:1)(3:27:1950:1)(3:59:1950:1)(3:27:1965:1)(3:59:1965:1)(3:27:1980:1)(3:59:1980:1)(3:27:1995:1)(3:59:1995:1)(3:27:2010:1)(3:59:2010:1)(3:27:2025:1)(3:59:2025:1)(3:27:2040:1)(3:59:2040:1)(3:27:2055:1)(3:59:2055:1)(3:27:2070:1)(3:59:2070:1)(3:27:2085:1)(3:59:2085:1)(3:27:2100:1)(3:59:2100:1)(3:27:2115:1)(3:59:2115:1)(3:27:2130:1)(3:59:2130:1)(3:27:2145:1)(3:59:2145:1)(3:27:2160:1)(3:59:2160:1)(3:27:2175:1)(3:59:2175:1)(3:27:2190:1)(3:59:2190:1)(3:27:2205:1)(3:59:2205:1)(3:27:2220:1)(3:59:2220:1)(3:27:2235:1)(3:59:2235:1)(3:27:2250:1)(3:59:2250:1)(3:27:2265:1)(3:59:2265:1)(3:27:2280:1)(3:59:2280:1)(3:27:2295:1)(3:59:2295:1)(3:27:2310:1)(3:59:2310:1)(3:27:2325:1)(3:59:2325:1)(3:27:2340:1)(3:59:2340:1)(3:27:2355:1)(3:59:2355:1)(3:27:2370:1)(3:59:2370:1)(3:27:2385:1)(3:59:2385:1)(3:27:2400:1)(3:59:2400:1)(3:27:2415:1)(3:59:2415:1)(3:27:2430:1)(3:59:2430:1)(3:27:2445:1)(3:59:2445:1)(3:27:2460:1)(3:59:2460:1)(3:27:2475:1)(3:59:2475:1)(3:27:2490:1)(3:59:2490:1)(3:27:2505:1)(3:59:2505:1)(3:27:2520:1)(3:59:2520:1)(3:27:2535:1)(3:59:2535:1)(3:27:2550:1)(3:59:2550:1)(3:27:2565:1)(3:59:2565:1)(3:27:2580:1)(3:59:2580:1)(3:27:2595:1)(3:59:2595:1)(3:27:2610:1)(3:59:2610:1)(3:27:2625:1)(3:59:2625:1)(3:27:2640:1)(3:59:2640:1)(3:27:2655:1)(3:59:2655:1)(3:27:2670:1)(3:59:2670:1)(3:27:2685:1)(3:59:2685:1)(3:27:2700:1)(3:59:2700:1)(3:27:2715:1)(3:59:2715:1)(3:27:2730:1)(3:59:2730:1)(3:27:2745:1)(3:59:2745:1)(3:27:2760:1)(3:59:2760:1)(3:27:2775:1)(3:59:2775:1)(3:27:2790:1)(3:59:2790:1)(3:27:2805:1)(3:59:2805:1)(3:27:2820:1)(3:59:2820:1)(3:27:2835:1)(3:59:2835:1)(3:27:2850:1)(3:59:2850:1)(3:27:2865:1)(3:59:2865:1) diff --git a/tests/test_io/test_spikeglx.py b/tests/test_io/test_spikeglx.py index 6dce501..916f63f 100644 --- a/tests/test_io/test_spikeglx.py +++ b/tests/test_io/test_spikeglx.py @@ -495,6 +495,48 @@ def test_NP1110_probes(): sns_map_positions = np.column_stack((x_pos, y_pos)) - sns_channel_offset np.testing.assert_array_equal(probe.contact_positions, sns_map_positions) +def test_NP2020_probes(): + + sns_channel_offset = np.array([27.0, 0.0]) + # For bank0, all electrodes are packet at the tip, in an 48x8 grid + expected_electrode_columns = 8 + expected_electode_rows = 192 + distance_between_shanks = 250 + meta_file = data_path / "NP2020_sample_g0_t0.imec0.ap.meta" + probe = read_spikeglx(meta_file) + + assert probe.manufacturer == "imec" + assert probe.model_name == "NP2020" + assert "adc_group" in probe.contact_annotations + assert "adc_sample_order" in probe.contact_annotations + + # Test contact geometry + contact_width = 12.0 + contact_shape = "square" + + assert np.all(probe.contact_shape_params == {"width": contact_width}) + assert np.all(probe.contact_shapes == contact_shape) + + # Check contact positions are within expected bounds + contact_positions = probe.contact_positions + x = contact_positions[:, 0] + y = contact_positions[:, 1] + + unique_x_values = np.unique(x) + assert unique_x_values.size == expected_electrode_columns + unique_y_values = np.unique(y) + assert unique_y_values.size == expected_electode_rows + + # Test against snsGeomMap parsing for the same file, which should give the same result + meta = parse_spikeglx_meta(meta_file) + _, _, _, _, x_pos, y_pos, _ = parse_spikeglx_snsGeomMap(meta) + for shank_id, contact_position, sns_x_position, sns_y_position in zip(probe.shank_ids, probe.contact_positions, x_pos, y_pos): + assert contact_position[1] == sns_y_position + assert contact_position[0] == sns_x_position - 27.0 + int(shank_id)*distance_between_shanks + + x_shift_per_shank = probe.shank_ids.astype(int)*distance_between_shanks + np.testing.assert_array_equal(probe.contact_positions[:,1], y_pos - sns_channel_offset[1]) + np.testing.assert_array_equal(probe.contact_positions[:,0], x_pos - sns_channel_offset[0] + x_shift_per_shank) def test_CatGT_NP1(): probe = read_spikeglx(data_path / "catgt.meta") From c40cfddb468ec2306ccb295fa8f82b537357363b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 8 May 2026 09:52:14 +0000 Subject: [PATCH 3/4] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- tests/test_io/test_spikeglx.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/test_io/test_spikeglx.py b/tests/test_io/test_spikeglx.py index 916f63f..f0a6998 100644 --- a/tests/test_io/test_spikeglx.py +++ b/tests/test_io/test_spikeglx.py @@ -495,6 +495,7 @@ def test_NP1110_probes(): sns_map_positions = np.column_stack((x_pos, y_pos)) - sns_channel_offset np.testing.assert_array_equal(probe.contact_positions, sns_map_positions) + def test_NP2020_probes(): sns_channel_offset = np.array([27.0, 0.0]) @@ -530,13 +531,16 @@ def test_NP2020_probes(): # Test against snsGeomMap parsing for the same file, which should give the same result meta = parse_spikeglx_meta(meta_file) _, _, _, _, x_pos, y_pos, _ = parse_spikeglx_snsGeomMap(meta) - for shank_id, contact_position, sns_x_position, sns_y_position in zip(probe.shank_ids, probe.contact_positions, x_pos, y_pos): + for shank_id, contact_position, sns_x_position, sns_y_position in zip( + probe.shank_ids, probe.contact_positions, x_pos, y_pos + ): assert contact_position[1] == sns_y_position - assert contact_position[0] == sns_x_position - 27.0 + int(shank_id)*distance_between_shanks + assert contact_position[0] == sns_x_position - 27.0 + int(shank_id) * distance_between_shanks + + x_shift_per_shank = probe.shank_ids.astype(int) * distance_between_shanks + np.testing.assert_array_equal(probe.contact_positions[:, 1], y_pos - sns_channel_offset[1]) + np.testing.assert_array_equal(probe.contact_positions[:, 0], x_pos - sns_channel_offset[0] + x_shift_per_shank) - x_shift_per_shank = probe.shank_ids.astype(int)*distance_between_shanks - np.testing.assert_array_equal(probe.contact_positions[:,1], y_pos - sns_channel_offset[1]) - np.testing.assert_array_equal(probe.contact_positions[:,0], x_pos - sns_channel_offset[0] + x_shift_per_shank) def test_CatGT_NP1(): probe = read_spikeglx(data_path / "catgt.meta") From 18ed51bebb8f5e66a0a1caddb44cf207ca5b46df Mon Sep 17 00:00:00 2001 From: chrishalcrow Date: Fri, 8 May 2026 10:52:33 +0100 Subject: [PATCH 4/4] oups - remove prints --- src/probeinterface/neuropixels_tools.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/probeinterface/neuropixels_tools.py b/src/probeinterface/neuropixels_tools.py index e4a9642..855133c 100644 --- a/src/probeinterface/neuropixels_tools.py +++ b/src/probeinterface/neuropixels_tools.py @@ -813,7 +813,6 @@ def read_spikeglx(file: str | Path) -> Probe: # This creates the complete probe geometry (e.g., 960 contacts for NP1.0) # based on manufacturer specifications full_probe = build_neuropixels_probe(probe_part_number=imDatPrb_pn) - print(f"{full_probe.get_contact_count()=}") # ===== 3. Parse IMRO table to extract recorded electrodes and acquisition settings ===== # IMRO = Imec ReadOut (the configuration table format from IMEC manufacturer) @@ -826,7 +825,6 @@ def read_spikeglx(file: str | Path) -> Probe: active_contact_ids = _get_imro_active_contact_ids(imro_per_channel) contact_id_to_index = {contact_id: idx for idx, contact_id in enumerate(full_probe.contact_ids)} selected_contact_indices = np.array([contact_id_to_index[contact_id] for contact_id in active_contact_ids]) - print(f"{selected_contact_indices=}") probe = full_probe.get_slice(selected_contact_indices) # ===== 5. Store IMRO properties (acquisition settings) as annotations =====