| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903 |
- <!doctype html>
- <html lang="en">
- <head>
- <title>Code coverage report for lib/json3.js</title>
- <meta charset="utf-8">
- <link rel="stylesheet" href="../prettify.css">
- <style>
- body, html {
- margin:0; padding: 0;
- }
- body {
- font-family: Helvetica Neue, Helvetica,Arial;
- font-size: 10pt;
- }
- div.header, div.footer {
- background: #eee;
- padding: 1em;
- }
- div.header {
- z-index: 100;
- position: fixed;
- top: 0;
- border-bottom: 1px solid #666;
- width: 100%;
- }
- div.footer {
- border-top: 1px solid #666;
- }
- div.body {
- margin-top: 10em;
- }
- div.meta {
- font-size: 90%;
- text-align: center;
- }
- h1, h2, h3 {
- font-weight: normal;
- }
- h1 {
- font-size: 12pt;
- }
- h2 {
- font-size: 10pt;
- }
- pre {
- font-family: Consolas, Menlo, Monaco, monospace;
- margin: 0;
- padding: 0;
- line-height: 14px;
- font-size: 14px;
- -moz-tab-size: 2;
- -o-tab-size: 2;
- tab-size: 2;
- }
- div.path { font-size: 110%; }
- div.path a:link, div.path a:visited { color: #000; }
- table.coverage { border-collapse: collapse; margin:0; padding: 0 }
- table.coverage td {
- margin: 0;
- padding: 0;
- color: #111;
- vertical-align: top;
- }
- table.coverage td.line-count {
- width: 50px;
- text-align: right;
- padding-right: 5px;
- }
- table.coverage td.line-coverage {
- color: #777 !important;
- text-align: right;
- border-left: 1px solid #666;
- border-right: 1px solid #666;
- }
- table.coverage td.text {
- }
- table.coverage td span.cline-any {
- display: inline-block;
- padding: 0 5px;
- width: 40px;
- }
- table.coverage td span.cline-neutral {
- background: #eee;
- }
- table.coverage td span.cline-yes {
- background: #b5d592;
- color: #999;
- }
- table.coverage td span.cline-no {
- background: #fc8c84;
- }
- .cstat-yes { color: #111; }
- .cstat-no { background: #fc8c84; color: #111; }
- .fstat-no { background: #ffc520; color: #111 !important; }
- .cbranch-no { background: yellow !important; color: #111; }
- .missing-if-branch {
- display: inline-block;
- margin-right: 10px;
- position: relative;
- padding: 0 4px;
- background: black;
- color: yellow;
- xtext-decoration: line-through;
- }
- .missing-if-branch .typ {
- color: inherit !important;
- }
- .entity, .metric { font-weight: bold; }
- .metric { display: inline-block; border: 1px solid #333; padding: 0.3em; background: white; }
- .metric small { font-size: 80%; font-weight: normal; color: #666; }
- div.coverage-summary table { border-collapse: collapse; margin: 3em; font-size: 110%; }
- div.coverage-summary td, div.coverage-summary table th { margin: 0; padding: 0.25em 1em; border-top: 1px solid #666; border-bottom: 1px solid #666; }
- div.coverage-summary th { text-align: left; border: 1px solid #666; background: #eee; font-weight: normal; }
- div.coverage-summary th.file { border-right: none !important; }
- div.coverage-summary th.pic { border-left: none !important; text-align: right; }
- div.coverage-summary th.pct { border-right: none !important; }
- div.coverage-summary th.abs { border-left: none !important; text-align: right; }
- div.coverage-summary td.pct { text-align: right; border-left: 1px solid #666; }
- div.coverage-summary td.abs { text-align: right; font-size: 90%; color: #444; border-right: 1px solid #666; }
- div.coverage-summary td.file { text-align: right; border-left: 1px solid #666; white-space: nowrap; }
- div.coverage-summary td.pic { min-width: 120px !important; }
- div.coverage-summary a:link { text-decoration: none; color: #000; }
- div.coverage-summary a:visited { text-decoration: none; color: #333; }
- div.coverage-summary a:hover { text-decoration: underline; }
- div.coverage-summary tfoot td { border-top: 1px solid #666; }
- div.coverage-summary .yui3-datatable-sort-indicator, div.coverage-summary .dummy-sort-indicator {
- height: 10px;
- width: 7px;
- display: inline-block;
- margin-left: 0.5em;
- }
- div.coverage-summary .yui3-datatable-sort-indicator {
- background: url("http://yui.yahooapis.com/3.6.0/build/datatable-sort/assets/skins/sam/sort-arrow-sprite.png") no-repeat scroll 0 0 transparent;
- }
- div.coverage-summary .yui3-datatable-sorted .yui3-datatable-sort-indicator {
- background-position: 0 -20px;
- }
- div.coverage-summary .yui3-datatable-sorted-desc .yui3-datatable-sort-indicator {
- background-position: 0 -10px;
- }
- .high { background: #b5d592 !important; }
- .medium { background: #ffe87c !important; }
- .low { background: #fc8c84 !important; }
- span.cover-fill, span.cover-empty {
- display:inline-block;
- border:1px solid #444;
- background: white;
- height: 12px;
- }
- span.cover-fill {
- background: #ccc;
- border-right: 1px solid #444;
- }
- span.cover-empty {
- background: white;
- border-left: none;
- }
- span.cover-full {
- border-right: none !important;
- }
- pre.prettyprint {
- border: none !important;
- padding: 0 !important;
- margin: 0 !important;
- }
- .com { color: #999 !important; }
- </style>
- </head>
- <body>
- <div class="header low">
- <h1>Code coverage report for <span class="entity">lib/json3.js</span></h1>
- <h2>
-
- Statements: <span class="metric">13.77% <small>(50 / 363)</small></span>
-
-
- Branches: <span class="metric">15.32% <small>(59 / 385)</small></span>
-
-
- Functions: <span class="metric">11.54% <small>(3 / 26)</small></span>
-
-
- Lines: <span class="metric">13.77% <small>(50 / 363)</small></span>
-
- </h2>
- <div class="path"><a href="../index.html">All files</a> » <a href="index.html">lib/</a> » json3.js</div>
- </div>
- <div class="body">
- <pre><table class="coverage">
- <tr><td class="line-count">1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 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
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 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
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 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
- 240
- 241
- 242
- 243
- 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
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 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
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867</td><td class="line-coverage"><span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-yes">3</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">3</span>
- <span class="cline-any cline-yes">3</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-yes">3</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">2</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">2</span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-yes">4</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">2</span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">3</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-yes">1</span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-no"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span>
- <span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/*! JSON v3.2.5 | http://bestiejs.github.io/json3 | Copyright 2012-2013, Kit Cambridge | http://kit.mit-license.org */
- ;(function (window) {
- // Convenience aliases.
- var getClass = {}.toString, isProperty, forEach, undef;
-
- // Detect the `define` function exposed by asynchronous module loaders. The
- // strict `define` check is necessary for compatibility with `r.js`.
- var isLoader = typeof define === "function" && <span class="branch-1 cbranch-no" title="branch not covered" >define.amd;</span>
-
- // Detect native implementations.
- var nativeJSON = typeof JSON == "object" && JSON;
-
- // Set up the JSON 3 namespace, preferring the CommonJS `exports` object if
- // available.
- var JSON3 = typeof exports == "object" && exports && !exports.nodeType && exports;
-
- <span class="missing-if-branch" title="else path not taken"" >E</span>if (JSON3 && nativeJSON) {
- // Explicitly delegate to the native `stringify` and `parse`
- // implementations in CommonJS environments.
- JSON3.stringify = nativeJSON.stringify;
- JSON3.parse = nativeJSON.parse;
- } else {
- // Export for web browsers, JavaScript engines, and asynchronous module
- // loaders, using the global `JSON` object if available.
- <span class="cstat-no" title="statement not covered" > JSON3 = window.JSON = nativeJSON || {};</span>
- }
-
- // Test the `Date#getUTC*` methods. Based on work by @Yaffle.
- var isExtended = new Date(-3509827334573292);
- try {
- // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical
- // results for certain dates in Opera >= 10.53.
- isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 &&
- // Safari < 2.0.2 stores the internal millisecond time value correctly,
- // but clips the values returned by the date methods to the range of
- // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]).
- isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708;
- } catch (exception) {}
-
- // Internal: Determines whether the native `JSON.stringify` and `parse`
- // implementations are spec-compliant. Based on work by Ken Snyder.
- function has(name) {
- <span class="missing-if-branch" title="if path not taken"" >I</span>if (has[name] != null) {
- // Return cached feature test result.
- <span class="cstat-no" title="statement not covered" > return has[name];</span>
- }
-
- var isSupported;
- <span class="missing-if-branch" title="if path not taken"" >I</span>if (name == "bug-string-char-index") {
- // IE <= 7 doesn't support accessing string characters using square
- // bracket notation. IE 8 only supports this for primitives.
- <span class="cstat-no" title="statement not covered" > isSupported = "a"[0] != "a";</span>
- } else if (name == "json") {
- // Indicates whether both `JSON.stringify` and `JSON.parse` are
- // supported.
- isSupported = has("json-stringify") && has("json-parse");
- } else {
- var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';
- // Test `JSON.stringify`.
- if (name == "json-stringify") {
- var stringify = JSON3.stringify, stringifySupported = typeof stringify == "function" && isExtended;
- <span class="missing-if-branch" title="else path not taken"" >E</span>if (stringifySupported) {
- // A test function object with a custom `toJSON` method.
- (value = function () {
- return 1;
- }).toJSON = value;
- try {
- stringifySupported =
- // Firefox 3.1b1 and b2 serialize string, number, and boolean
- // primitives as object literals.
- stringify(0) === "0" &&
- // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object
- // literals.
- stringify(new Number()) === "0" &&
- stringify(new String()) == '""' &&
- // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or
- // does not define a canonical JSON representation (this applies to
- // objects with `toJSON` properties as well, *unless* they are nested
- // within an object or array).
- stringify(getClass) === undef &&
- // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and
- // FF 3.1b3 pass this test.
- stringify(undef) === undef &&
- // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s,
- // respectively, if the value is omitted entirely.
- stringify() === undef &&
- // FF 3.1b1, 2 throw an error if the given value is not a number,
- // string, array, object, Boolean, or `null` literal. This applies to
- // objects with custom `toJSON` methods as well, unless they are nested
- // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON`
- // methods entirely.
- stringify(value) === "1" &&
- stringify([value]) == "[1]" &&
- // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of
- // `"[null]"`.
- stringify([undef]) == "[null]" &&
- // YUI 3.0.0b1 fails to serialize `null` literals.
- stringify(null) == "null" &&
- // FF 3.1b1, 2 halts serialization if an array contains a function:
- // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3
- // elides non-JSON values from objects and arrays, unless they
- // define custom `toJSON` methods.
- stringify([undef, getClass, null]) == "[null,null,null]" &&
- // Simple serialization test. FF 3.1b1 uses Unicode escape sequences
- // where character escape codes are expected (e.g., `\b` => `\u0008`).
- stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized &&
- // FF 3.1b1 and b2 ignore the `filter` and `width` arguments.
- stringify(null, value) === "1" &&
- stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" &&
- // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly
- // serialize extended years.
- stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' &&
- // The milliseconds are optional in ES 5, but required in 5.1.
- stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' &&
- // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative
- // four-digit years instead of six-digit years. Credits: @Yaffle.
- stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' &&
- // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond
- // values less than 1000. Credits: @Yaffle.
- stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"';
- } catch (exception) {
- <span class="cstat-no" title="statement not covered" > stringifySupported = false;</span>
- }
- }
- isSupported = stringifySupported;
- }
- // Test `JSON.parse`.
- if (name == "json-parse") {
- var parse = JSON3.parse;
- <span class="missing-if-branch" title="else path not taken"" >E</span>if (typeof parse == "function") {
- try {
- // FF 3.1b1, b2 will throw an exception if a bare literal is provided.
- // Conforming implementations should also coerce the initial argument to
- // a string prior to parsing.
- <span class="missing-if-branch" title="else path not taken"" >E</span>if (parse("0") === 0 && !parse(false)) {
- // Simple parsing test.
- value = parse(serialized);
- var parseSupported = value["a"].length == 5 && value["a"][0] === 1;
- <span class="missing-if-branch" title="else path not taken"" >E</span>if (parseSupported) {
- try {
- // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings.
- parseSupported = !parse('"\t"');
- } catch (exception) {}
- <span class="missing-if-branch" title="else path not taken"" >E</span>if (parseSupported) {
- try {
- // FF 4.0 and 4.0.1 allow leading `+` signs and leading
- // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow
- // certain octal literals.
- parseSupported = parse("01") !== 1;
- } catch (exception) {}
- }
- <span class="missing-if-branch" title="else path not taken"" >E</span>if (parseSupported) {
- try {
- // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal
- // points. These environments, along with FF 3.1b1 and 2,
- // also allow trailing commas in JSON objects and arrays.
- parseSupported = parse("1.") !== 1;
- } catch (exception) {}
- }
- }
- }
- } catch (exception) {
- <span class="cstat-no" title="statement not covered" > parseSupported = false;</span>
- }
- }
- isSupported = parseSupported;
- }
- }
- return has[name] = !!isSupported;
- }
- has["bug-string-char-index"] = null;
- has["json"] = null;
- has["json-stringify"] = null;
- has["json-parse"] = null;
-
- <span class="missing-if-branch" title="if path not taken"" >I</span>if (!has("json")) {
- // Common `[[Class]]` name aliases.
- <span class="cstat-no" title="statement not covered" > var functionClass = "[object Function]";</span>
- <span class="cstat-no" title="statement not covered" > var dateClass = "[object Date]";</span>
- <span class="cstat-no" title="statement not covered" > var numberClass = "[object Number]";</span>
- <span class="cstat-no" title="statement not covered" > var stringClass = "[object String]";</span>
- <span class="cstat-no" title="statement not covered" > var arrayClass = "[object Array]";</span>
- <span class="cstat-no" title="statement not covered" > var booleanClass = "[object Boolean]";</span>
-
- // Detect incomplete support for accessing string characters by index.
- <span class="cstat-no" title="statement not covered" > var charIndexBuggy = has("bug-string-char-index");</span>
-
- // Define additional utility methods if the `Date` methods are buggy.
- <span class="cstat-no" title="statement not covered" > if (!isExtended) {</span>
- <span class="cstat-no" title="statement not covered" > var floor = Math.floor;</span>
- // A mapping between the months of the year and the number of days between
- // January 1st and the first of the respective month.
- <span class="cstat-no" title="statement not covered" > var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];</span>
- // Internal: Calculates the number of days between the Unix epoch and the
- // first day of the given month.
- <span class="cstat-no" title="statement not covered" > var getDay = <span class="fstat-no" title="function not covered" >function (year, month) {</span></span>
- <span class="cstat-no" title="statement not covered" > return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400);</span>
- };
- }
-
- // Internal: Determines if a property is a direct property of the given
- // object. Delegates to the native `Object#hasOwnProperty` method.
- <span class="cstat-no" title="statement not covered" > if (!(isProperty = {}.hasOwnProperty)) {</span>
- <span class="cstat-no" title="statement not covered" > isProperty = <span class="fstat-no" title="function not covered" >function (property) {</span></span>
- <span class="cstat-no" title="statement not covered" > var members = {}, constructor;</span>
- <span class="cstat-no" title="statement not covered" > if ((members.__proto__ = null, members.__proto__ = {</span>
- // The *proto* property cannot be set multiple times in recent
- // versions of Firefox and SeaMonkey.
- "toString": 1
- }, members).toString != getClass) {
- // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but
- // supports the mutable *proto* property.
- <span class="cstat-no" title="statement not covered" > isProperty = <span class="fstat-no" title="function not covered" >function (property) {</span></span>
- // Capture and break the object's prototype chain (see section 8.6.2
- // of the ES 5.1 spec). The parenthesized expression prevents an
- // unsafe transformation by the Closure Compiler.
- <span class="cstat-no" title="statement not covered" > var original = this.__proto__, result = property in (this.__proto__ = null, this);</span>
- // Restore the original prototype chain.
- <span class="cstat-no" title="statement not covered" > this.__proto__ = original;</span>
- <span class="cstat-no" title="statement not covered" > return result;</span>
- };
- } else {
- // Capture a reference to the top-level `Object` constructor.
- <span class="cstat-no" title="statement not covered" > constructor = members.constructor;</span>
- // Use the `constructor` property to simulate `Object#hasOwnProperty` in
- // other environments.
- <span class="cstat-no" title="statement not covered" > isProperty = <span class="fstat-no" title="function not covered" >function (property) {</span></span>
- <span class="cstat-no" title="statement not covered" > var parent = (this.constructor || constructor).prototype;</span>
- <span class="cstat-no" title="statement not covered" > return property in this && !(property in parent && this[property] === parent[property]);</span>
- };
- }
- <span class="cstat-no" title="statement not covered" > members = null;</span>
- <span class="cstat-no" title="statement not covered" > return isProperty.call(this, property);</span>
- };
- }
-
- // Internal: A set of primitive types used by `isHostType`.
- <span class="cstat-no" title="statement not covered" > var PrimitiveTypes = {</span>
- 'boolean': 1,
- 'number': 1,
- 'string': 1,
- 'undefined': 1
- };
-
- // Internal: Determines if the given object `property` value is a
- // non-primitive.
- <span class="cstat-no" title="statement not covered" > var isHostType = <span class="fstat-no" title="function not covered" >function (object, property) {</span></span>
- <span class="cstat-no" title="statement not covered" > var type = typeof object[property];</span>
- <span class="cstat-no" title="statement not covered" > return type == 'object' ? !!object[property] : !PrimitiveTypes[type];</span>
- };
-
- // Internal: Normalizes the `for...in` iteration algorithm across
- // environments. Each enumerated key is yielded to a `callback` function.
- <span class="cstat-no" title="statement not covered" > forEach = <span class="fstat-no" title="function not covered" >function (object, callback) {</span></span>
- <span class="cstat-no" title="statement not covered" > var size = 0, Properties, members, property;</span>
-
- // Tests for bugs in the current environment's `for...in` algorithm. The
- // `valueOf` property inherits the non-enumerable flag from
- // `Object.prototype` in older versions of IE, Netscape, and Mozilla.
- <span class="cstat-no" title="statement not covered" > (Properties = <span class="fstat-no" title="function not covered" >function () {</span></span>
- <span class="cstat-no" title="statement not covered" > this.valueOf = 0;</span>
- }).prototype.valueOf = 0;
-
- // Iterate over a new instance of the `Properties` class.
- <span class="cstat-no" title="statement not covered" > members = new Properties();</span>
- <span class="cstat-no" title="statement not covered" > for (property in members) {</span>
- // Ignore all properties inherited from `Object.prototype`.
- <span class="cstat-no" title="statement not covered" > if (isProperty.call(members, property)) {</span>
- <span class="cstat-no" title="statement not covered" > size++;</span>
- }
- }
- <span class="cstat-no" title="statement not covered" > Properties = members = null;</span>
-
- // Normalize the iteration algorithm.
- <span class="cstat-no" title="statement not covered" > if (!size) {</span>
- // A list of non-enumerable properties inherited from `Object.prototype`.
- <span class="cstat-no" title="statement not covered" > members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"];</span>
- // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable
- // properties.
- <span class="cstat-no" title="statement not covered" > forEach = <span class="fstat-no" title="function not covered" >function (object, callback) {</span></span>
- <span class="cstat-no" title="statement not covered" > var isFunction = getClass.call(object) == functionClass, property, length;</span>
- <span class="cstat-no" title="statement not covered" > var hasProperty = !isFunction && typeof object.constructor != 'function' && isHostType(object, 'hasOwnProperty') ? object.hasOwnProperty : isProperty;</span>
- <span class="cstat-no" title="statement not covered" > for (property in object) {</span>
- // Gecko <= 1.0 enumerates the `prototype` property of functions under
- // certain conditions; IE does not.
- <span class="cstat-no" title="statement not covered" > if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) {</span>
- <span class="cstat-no" title="statement not covered" > callback(property);</span>
- }
- }
- // Manually invoke the callback for each non-enumerable property.
- <span class="cstat-no" title="statement not covered" > for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property));</span>
- };
- } else <span class="cstat-no" title="statement not covered" >if (size == 2) {</span>
- // Safari <= 2.0.4 enumerates shadowed properties twice.
- <span class="cstat-no" title="statement not covered" > forEach = <span class="fstat-no" title="function not covered" >function (object, callback) {</span></span>
- // Create a set of iterated properties.
- <span class="cstat-no" title="statement not covered" > var members = {}, isFunction = getClass.call(object) == functionClass, property;</span>
- <span class="cstat-no" title="statement not covered" > for (property in object) {</span>
- // Store each property name to prevent double enumeration. The
- // `prototype` property of functions is not enumerated due to cross-
- // environment inconsistencies.
- <span class="cstat-no" title="statement not covered" > if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) {</span>
- <span class="cstat-no" title="statement not covered" > callback(property);</span>
- }
- }
- };
- } else {
- // No bugs detected; use the standard `for...in` algorithm.
- <span class="cstat-no" title="statement not covered" > forEach = <span class="fstat-no" title="function not covered" >function (object, callback) {</span></span>
- <span class="cstat-no" title="statement not covered" > var isFunction = getClass.call(object) == functionClass, property, isConstructor;</span>
- <span class="cstat-no" title="statement not covered" > for (property in object) {</span>
- <span class="cstat-no" title="statement not covered" > if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) {</span>
- <span class="cstat-no" title="statement not covered" > callback(property);</span>
- }
- }
- // Manually invoke the callback for the `constructor` property due to
- // cross-environment inconsistencies.
- <span class="cstat-no" title="statement not covered" > if (isConstructor || isProperty.call(object, (property = "constructor"))) {</span>
- <span class="cstat-no" title="statement not covered" > callback(property);</span>
- }
- };
- }
- <span class="cstat-no" title="statement not covered" > return forEach(object, callback);</span>
- };
-
- // Public: Serializes a JavaScript `value` as a JSON string. The optional
- // `filter` argument may specify either a function that alters how object and
- // array members are serialized, or an array of strings and numbers that
- // indicates which properties should be serialized. The optional `width`
- // argument may be either a string or number that specifies the indentation
- // level of the output.
- <span class="cstat-no" title="statement not covered" > if (!has("json-stringify")) {</span>
- // Internal: A map of control characters and their escaped equivalents.
- <span class="cstat-no" title="statement not covered" > var Escapes = {</span>
- 92: "\\\\",
- 34: '\\"',
- 8: "\\b",
- 12: "\\f",
- 10: "\\n",
- 13: "\\r",
- 9: "\\t"
- };
-
- // Internal: Converts `value` into a zero-padded string such that its
- // length is at least equal to `width`. The `width` must be <= 6.
- <span class="cstat-no" title="statement not covered" > var leadingZeroes = "000000";</span>
- <span class="cstat-no" title="statement not covered" > var toPaddedString = <span class="fstat-no" title="function not covered" >function (width, value) {</span></span>
- // The `|| 0` expression is necessary to work around a bug in
- // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`.
- <span class="cstat-no" title="statement not covered" > return (leadingZeroes + (value || 0)).slice(-width);</span>
- };
-
- // Internal: Double-quotes a string `value`, replacing all ASCII control
- // characters (characters with code unit values between 0 and 31) with
- // their escaped equivalents. This is an implementation of the
- // `Quote(value)` operation defined in ES 5.1 section 15.12.3.
- <span class="cstat-no" title="statement not covered" > var unicodePrefix = "\\u00";</span>
- <span class="cstat-no" title="statement not covered" > var quote = <span class="fstat-no" title="function not covered" >function (value) {</span></span>
- <span class="cstat-no" title="statement not covered" > var result = '"', index = 0, length = value.length, isLarge = length > 10 && charIndexBuggy, symbols;</span>
- <span class="cstat-no" title="statement not covered" > if (isLarge) {</span>
- <span class="cstat-no" title="statement not covered" > symbols = value.split("");</span>
- }
- <span class="cstat-no" title="statement not covered" > for (; index < length; index++) {</span>
- <span class="cstat-no" title="statement not covered" > var charCode = value.charCodeAt(index);</span>
- // If the character is a control character, append its Unicode or
- // shorthand escape sequence; otherwise, append the character as-is.
- <span class="cstat-no" title="statement not covered" > switch (charCode) {</span>
- case 8: case 9: case 10: case 12: case 13: case 34: case 92:
- <span class="cstat-no" title="statement not covered" > result += Escapes[charCode];</span>
- <span class="cstat-no" title="statement not covered" > break;</span>
- default:
- <span class="cstat-no" title="statement not covered" > if (charCode < 32) {</span>
- <span class="cstat-no" title="statement not covered" > result += unicodePrefix + toPaddedString(2, charCode.toString(16));</span>
- <span class="cstat-no" title="statement not covered" > break;</span>
- }
- <span class="cstat-no" title="statement not covered" > result += isLarge ? symbols[index] : charIndexBuggy ? value.charAt(index) : value[index];</span>
- }
- }
- <span class="cstat-no" title="statement not covered" > return result + '"';</span>
- };
-
- // Internal: Recursively serializes an object. Implements the
- // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations.
- <span class="cstat-no" title="statement not covered" > var serialize = <span class="fstat-no" title="function not covered" >function (property, object, callback, properties, whitespace, indentation, stack) {</span></span>
- <span class="cstat-no" title="statement not covered" > var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, hasMembers, result;</span>
- <span class="cstat-no" title="statement not covered" > try {</span>
- // Necessary for host object support.
- <span class="cstat-no" title="statement not covered" > value = object[property];</span>
- } catch (exception) {}
- <span class="cstat-no" title="statement not covered" > if (typeof value == "object" && value) {</span>
- <span class="cstat-no" title="statement not covered" > className = getClass.call(value);</span>
- <span class="cstat-no" title="statement not covered" > if (className == dateClass && !isProperty.call(value, "toJSON")) {</span>
- <span class="cstat-no" title="statement not covered" > if (value > -1 / 0 && value < 1 / 0) {</span>
- // Dates are serialized according to the `Date#toJSON` method
- // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15
- // for the ISO 8601 date time string format.
- <span class="cstat-no" title="statement not covered" > if (getDay) {</span>
- // Manually compute the year, month, date, hours, minutes,
- // seconds, and milliseconds if the `getUTC*` methods are
- // buggy. Adapted from @Yaffle's `date-shim` project.
- <span class="cstat-no" title="statement not covered" > date = floor(value / 864e5);</span>
- <span class="cstat-no" title="statement not covered" > for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++);</span>
- <span class="cstat-no" title="statement not covered" > for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++);</span>
- <span class="cstat-no" title="statement not covered" > date = 1 + date - getDay(year, month);</span>
- // The `time` value specifies the time within the day (see ES
- // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used
- // to compute `A modulo B`, as the `%` operator does not
- // correspond to the `modulo` operation for negative numbers.
- <span class="cstat-no" title="statement not covered" > time = (value % 864e5 + 864e5) % 864e5;</span>
- // The hours, minutes, seconds, and milliseconds are obtained by
- // decomposing the time within the day. See section 15.9.1.10.
- <span class="cstat-no" title="statement not covered" > hours = floor(time / 36e5) % 24;</span>
- <span class="cstat-no" title="statement not covered" > minutes = floor(time / 6e4) % 60;</span>
- <span class="cstat-no" title="statement not covered" > seconds = floor(time / 1e3) % 60;</span>
- <span class="cstat-no" title="statement not covered" > milliseconds = time % 1e3;</span>
- } else {
- <span class="cstat-no" title="statement not covered" > year = value.getUTCFullYear();</span>
- <span class="cstat-no" title="statement not covered" > month = value.getUTCMonth();</span>
- <span class="cstat-no" title="statement not covered" > date = value.getUTCDate();</span>
- <span class="cstat-no" title="statement not covered" > hours = value.getUTCHours();</span>
- <span class="cstat-no" title="statement not covered" > minutes = value.getUTCMinutes();</span>
- <span class="cstat-no" title="statement not covered" > seconds = value.getUTCSeconds();</span>
- <span class="cstat-no" title="statement not covered" > milliseconds = value.getUTCMilliseconds();</span>
- }
- // Serialize extended years correctly.
- <span class="cstat-no" title="statement not covered" > value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) +</span>
- "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) +
- // Months, dates, hours, minutes, and seconds should have two
- // digits; milliseconds should have three.
- "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) +
- // Milliseconds are optional in ES 5.0, but required in 5.1.
- "." + toPaddedString(3, milliseconds) + "Z";
- } else {
- <span class="cstat-no" title="statement not covered" > value = null;</span>
- }
- } else <span class="cstat-no" title="statement not covered" >if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) {</span>
- // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the
- // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3
- // ignores all `toJSON` methods on these objects unless they are
- // defined directly on an instance.
- <span class="cstat-no" title="statement not covered" > value = value.toJSON(property);</span>
- }
- }
- <span class="cstat-no" title="statement not covered" > if (callback) {</span>
- // If a replacement function was provided, call it to obtain the value
- // for serialization.
- <span class="cstat-no" title="statement not covered" > value = callback.call(object, property, value);</span>
- }
- <span class="cstat-no" title="statement not covered" > if (value === null) {</span>
- <span class="cstat-no" title="statement not covered" > return "null";</span>
- }
- <span class="cstat-no" title="statement not covered" > className = getClass.call(value);</span>
- <span class="cstat-no" title="statement not covered" > if (className == booleanClass) {</span>
- // Booleans are represented literally.
- <span class="cstat-no" title="statement not covered" > return "" + value;</span>
- } else <span class="cstat-no" title="statement not covered" >if (className == numberClass) {</span>
- // JSON numbers must be finite. `Infinity` and `NaN` are serialized as
- // `"null"`.
- <span class="cstat-no" title="statement not covered" > return value > -1 / 0 && value < 1 / 0 ? "" + value : "null";</span>
- } else <span class="cstat-no" title="statement not covered" >if (className == stringClass) {</span>
- // Strings are double-quoted and escaped.
- <span class="cstat-no" title="statement not covered" > return quote("" + value);</span>
- }
- // Recursively serialize objects and arrays.
- <span class="cstat-no" title="statement not covered" > if (typeof value == "object") {</span>
- // Check for cyclic structures. This is a linear search; performance
- // is inversely proportional to the number of unique nested objects.
- <span class="cstat-no" title="statement not covered" > for (length = stack.length; length--;) {</span>
- <span class="cstat-no" title="statement not covered" > if (stack[length] === value) {</span>
- // Cyclic structures cannot be serialized by `JSON.stringify`.
- <span class="cstat-no" title="statement not covered" > throw TypeError();</span>
- }
- }
- // Add the object to the stack of traversed objects.
- <span class="cstat-no" title="statement not covered" > stack.push(value);</span>
- <span class="cstat-no" title="statement not covered" > results = [];</span>
- // Save the current indentation level and indent one additional level.
- <span class="cstat-no" title="statement not covered" > prefix = indentation;</span>
- <span class="cstat-no" title="statement not covered" > indentation += whitespace;</span>
- <span class="cstat-no" title="statement not covered" > if (className == arrayClass) {</span>
- // Recursively serialize array elements.
- <span class="cstat-no" title="statement not covered" > for (index = 0, length = value.length; index < length; hasMembers || (hasMembers = true), index++) {</span>
- <span class="cstat-no" title="statement not covered" > element = serialize(index, value, callback, properties, whitespace, indentation, stack);</span>
- <span class="cstat-no" title="statement not covered" > results.push(element === undef ? "null" : element);</span>
- }
- <span class="cstat-no" title="statement not covered" > result = hasMembers ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]";</span>
- } else {
- // Recursively serialize object members. Members are selected from
- // either a user-specified list of property names, or the object
- // itself.
- <span class="cstat-no" title="statement not covered" > forEach(properties || value, <span class="fstat-no" title="function not covered" >function (property) {</span></span>
- <span class="cstat-no" title="statement not covered" > var element = serialize(property, value, callback, properties, whitespace, indentation, stack);</span>
- <span class="cstat-no" title="statement not covered" > if (element !== undef) {</span>
- // According to ES 5.1 section 15.12.3: "If `gap` {whitespace}
- // is not the empty string, let `member` {quote(property) + ":"}
- // be the concatenation of `member` and the `space` character."
- // The "`space` character" refers to the literal space
- // character, not the `space` {width} argument provided to
- // `JSON.stringify`.
- <span class="cstat-no" title="statement not covered" > results.push(quote(property) + ":" + (whitespace ? " " : "") + element);</span>
- }
- <span class="cstat-no" title="statement not covered" > hasMembers || (hasMembers = true);</span>
- });
- <span class="cstat-no" title="statement not covered" > result = hasMembers ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}";</span>
- }
- // Remove the object from the traversed object stack.
- <span class="cstat-no" title="statement not covered" > stack.pop();</span>
- <span class="cstat-no" title="statement not covered" > return result;</span>
- }
- };
-
- // Public: `JSON.stringify`. See ES 5.1 section 15.12.3.
- <span class="cstat-no" title="statement not covered" > JSON3.stringify = <span class="fstat-no" title="function not covered" >function (source, filter, width) {</span></span>
- <span class="cstat-no" title="statement not covered" > var whitespace, callback, properties, className;</span>
- <span class="cstat-no" title="statement not covered" > if (typeof filter == "function" || typeof filter == "object" && filter) {</span>
- <span class="cstat-no" title="statement not covered" > if ((className = getClass.call(filter)) == functionClass) {</span>
- <span class="cstat-no" title="statement not covered" > callback = filter;</span>
- } else <span class="cstat-no" title="statement not covered" >if (className == arrayClass) {</span>
- // Convert the property names array into a makeshift set.
- <span class="cstat-no" title="statement not covered" > properties = {};</span>
- <span class="cstat-no" title="statement not covered" > for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((getClass.call(value) == stringClass || getClass.call(value) == numberClass) && (properties[value] = 1)));</span>
- }
- }
- <span class="cstat-no" title="statement not covered" > if (width) {</span>
- <span class="cstat-no" title="statement not covered" > if ((className = getClass.call(width)) == numberClass) {</span>
- // Convert the `width` to an integer and create a string containing
- // `width` number of space characters.
- <span class="cstat-no" title="statement not covered" > if ((width -= width % 1) > 0) {</span>
- <span class="cstat-no" title="statement not covered" > for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " ");</span>
- }
- } else <span class="cstat-no" title="statement not covered" >if (className == stringClass) {</span>
- <span class="cstat-no" title="statement not covered" > whitespace = width.length <= 10 ? width : width.slice(0, 10);</span>
- }
- }
- // Opera <= 7.54u2 discards the values associated with empty string keys
- // (`""`) only if they are used directly within an object member list
- // (e.g., `!("" in { "": 1})`).
- <span class="cstat-no" title="statement not covered" > return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []);</span>
- };
- }
-
- // Public: Parses a JSON source string.
- <span class="cstat-no" title="statement not covered" > if (!has("json-parse")) {</span>
- <span class="cstat-no" title="statement not covered" > var fromCharCode = String.fromCharCode;</span>
-
- // Internal: A map of escaped control characters and their unescaped
- // equivalents.
- <span class="cstat-no" title="statement not covered" > var Unescapes = {</span>
- 92: "\\",
- 34: '"',
- 47: "/",
- 98: "\b",
- 116: "\t",
- 110: "\n",
- 102: "\f",
- 114: "\r"
- };
-
- // Internal: Stores the parser state.
- <span class="cstat-no" title="statement not covered" > var Index, Source;</span>
-
- // Internal: Resets the parser state and throws a `SyntaxError`.
- <span class="cstat-no" title="statement not covered" > var abort = <span class="fstat-no" title="function not covered" >function() {</span></span>
- <span class="cstat-no" title="statement not covered" > Index = Source = null;</span>
- <span class="cstat-no" title="statement not covered" > throw SyntaxError();</span>
- };
-
- // Internal: Returns the next token, or `"$"` if the parser has reached
- // the end of the source string. A token may be a string, number, `null`
- // literal, or Boolean literal.
- <span class="cstat-no" title="statement not covered" > var lex = <span class="fstat-no" title="function not covered" >function () {</span></span>
- <span class="cstat-no" title="statement not covered" > var source = Source, length = source.length, value, begin, position, isSigned, charCode;</span>
- <span class="cstat-no" title="statement not covered" > while (Index < length) {</span>
- <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(Index);</span>
- <span class="cstat-no" title="statement not covered" > switch (charCode) {</span>
- case 9: case 10: case 13: case 32:
- // Skip whitespace tokens, including tabs, carriage returns, line
- // feeds, and space characters.
- <span class="cstat-no" title="statement not covered" > Index++;</span>
- <span class="cstat-no" title="statement not covered" > break;</span>
- case 123: case 125: case 91: case 93: case 58: case 44:
- // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at
- // the current position.
- <span class="cstat-no" title="statement not covered" > value = charIndexBuggy ? source.charAt(Index) : source[Index];</span>
- <span class="cstat-no" title="statement not covered" > Index++;</span>
- <span class="cstat-no" title="statement not covered" > return value;</span>
- case 34:
- // `"` delimits a JSON string; advance to the next character and
- // begin parsing the string. String tokens are prefixed with the
- // sentinel `@` character to distinguish them from punctuators and
- // end-of-string tokens.
- <span class="cstat-no" title="statement not covered" > for (value = "@", Index++; Index < length;) {</span>
- <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(Index);</span>
- <span class="cstat-no" title="statement not covered" > if (charCode < 32) {</span>
- // Unescaped ASCII control characters (those with a code unit
- // less than the space character) are not permitted.
- <span class="cstat-no" title="statement not covered" > abort();</span>
- } else <span class="cstat-no" title="statement not covered" >if (charCode == 92) {</span>
- // A reverse solidus (`\`) marks the beginning of an escaped
- // control character (including `"`, `\`, and `/`) or Unicode
- // escape sequence.
- <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(++Index);</span>
- <span class="cstat-no" title="statement not covered" > switch (charCode) {</span>
- case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114:
- // Revive escaped control characters.
- <span class="cstat-no" title="statement not covered" > value += Unescapes[charCode];</span>
- <span class="cstat-no" title="statement not covered" > Index++;</span>
- <span class="cstat-no" title="statement not covered" > break;</span>
- case 117:
- // `\u` marks the beginning of a Unicode escape sequence.
- // Advance to the first character and validate the
- // four-digit code point.
- <span class="cstat-no" title="statement not covered" > begin = ++Index;</span>
- <span class="cstat-no" title="statement not covered" > for (position = Index + 4; Index < position; Index++) {</span>
- <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(Index);</span>
- // A valid sequence comprises four hexdigits (case-
- // insensitive) that form a single hexadecimal value.
- <span class="cstat-no" title="statement not covered" > if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) {</span>
- // Invalid Unicode escape sequence.
- <span class="cstat-no" title="statement not covered" > abort();</span>
- }
- }
- // Revive the escaped character.
- <span class="cstat-no" title="statement not covered" > value += fromCharCode("0x" + source.slice(begin, Index));</span>
- <span class="cstat-no" title="statement not covered" > break;</span>
- default:
- // Invalid escape sequence.
- <span class="cstat-no" title="statement not covered" > abort();</span>
- }
- } else {
- <span class="cstat-no" title="statement not covered" > if (charCode == 34) {</span>
- // An unescaped double-quote character marks the end of the
- // string.
- <span class="cstat-no" title="statement not covered" > break;</span>
- }
- <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(Index);</span>
- <span class="cstat-no" title="statement not covered" > begin = Index;</span>
- // Optimize for the common case where a string is valid.
- <span class="cstat-no" title="statement not covered" > while (charCode >= 32 && charCode != 92 && charCode != 34) {</span>
- <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(++Index);</span>
- }
- // Append the string as-is.
- <span class="cstat-no" title="statement not covered" > value += source.slice(begin, Index);</span>
- }
- }
- <span class="cstat-no" title="statement not covered" > if (source.charCodeAt(Index) == 34) {</span>
- // Advance to the next character and return the revived string.
- <span class="cstat-no" title="statement not covered" > Index++;</span>
- <span class="cstat-no" title="statement not covered" > return value;</span>
- }
- // Unterminated string.
- <span class="cstat-no" title="statement not covered" > abort();</span>
- default:
- // Parse numbers and literals.
- <span class="cstat-no" title="statement not covered" > begin = Index;</span>
- // Advance past the negative sign, if one is specified.
- <span class="cstat-no" title="statement not covered" > if (charCode == 45) {</span>
- <span class="cstat-no" title="statement not covered" > isSigned = true;</span>
- <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(++Index);</span>
- }
- // Parse an integer or floating-point value.
- <span class="cstat-no" title="statement not covered" > if (charCode >= 48 && charCode <= 57) {</span>
- // Leading zeroes are interpreted as octal literals.
- <span class="cstat-no" title="statement not covered" > if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) {</span>
- // Illegal octal literal.
- <span class="cstat-no" title="statement not covered" > abort();</span>
- }
- <span class="cstat-no" title="statement not covered" > isSigned = false;</span>
- // Parse the integer component.
- <span class="cstat-no" title="statement not covered" > for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++);</span>
- // Floats cannot contain a leading decimal point; however, this
- // case is already accounted for by the parser.
- <span class="cstat-no" title="statement not covered" > if (source.charCodeAt(Index) == 46) {</span>
- <span class="cstat-no" title="statement not covered" > position = ++Index;</span>
- // Parse the decimal component.
- <span class="cstat-no" title="statement not covered" > for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++);</span>
- <span class="cstat-no" title="statement not covered" > if (position == Index) {</span>
- // Illegal trailing decimal.
- <span class="cstat-no" title="statement not covered" > abort();</span>
- }
- <span class="cstat-no" title="statement not covered" > Index = position;</span>
- }
- // Parse exponents. The `e` denoting the exponent is
- // case-insensitive.
- <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(Index);</span>
- <span class="cstat-no" title="statement not covered" > if (charCode == 101 || charCode == 69) {</span>
- <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(++Index);</span>
- // Skip past the sign following the exponent, if one is
- // specified.
- <span class="cstat-no" title="statement not covered" > if (charCode == 43 || charCode == 45) {</span>
- <span class="cstat-no" title="statement not covered" > Index++;</span>
- }
- // Parse the exponential component.
- <span class="cstat-no" title="statement not covered" > for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++);</span>
- <span class="cstat-no" title="statement not covered" > if (position == Index) {</span>
- // Illegal empty exponent.
- <span class="cstat-no" title="statement not covered" > abort();</span>
- }
- <span class="cstat-no" title="statement not covered" > Index = position;</span>
- }
- // Coerce the parsed value to a JavaScript number.
- <span class="cstat-no" title="statement not covered" > return +source.slice(begin, Index);</span>
- }
- // A negative sign may only precede numbers.
- <span class="cstat-no" title="statement not covered" > if (isSigned) {</span>
- <span class="cstat-no" title="statement not covered" > abort();</span>
- }
- // `true`, `false`, and `null` literals.
- <span class="cstat-no" title="statement not covered" > if (source.slice(Index, Index + 4) == "true") {</span>
- <span class="cstat-no" title="statement not covered" > Index += 4;</span>
- <span class="cstat-no" title="statement not covered" > return true;</span>
- } else <span class="cstat-no" title="statement not covered" >if (source.slice(Index, Index + 5) == "false") {</span>
- <span class="cstat-no" title="statement not covered" > Index += 5;</span>
- <span class="cstat-no" title="statement not covered" > return false;</span>
- } else <span class="cstat-no" title="statement not covered" >if (source.slice(Index, Index + 4) == "null") {</span>
- <span class="cstat-no" title="statement not covered" > Index += 4;</span>
- <span class="cstat-no" title="statement not covered" > return null;</span>
- }
- // Unrecognized token.
- <span class="cstat-no" title="statement not covered" > abort();</span>
- }
- }
- // Return the sentinel `$` character if the parser has reached the end
- // of the source string.
- <span class="cstat-no" title="statement not covered" > return "$";</span>
- };
-
- // Internal: Parses a JSON `value` token.
- <span class="cstat-no" title="statement not covered" > var get = <span class="fstat-no" title="function not covered" >function (value) {</span></span>
- <span class="cstat-no" title="statement not covered" > var results, hasMembers;</span>
- <span class="cstat-no" title="statement not covered" > if (value == "$") {</span>
- // Unexpected end of input.
- <span class="cstat-no" title="statement not covered" > abort();</span>
- }
- <span class="cstat-no" title="statement not covered" > if (typeof value == "string") {</span>
- <span class="cstat-no" title="statement not covered" > if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") {</span>
- // Remove the sentinel `@` character.
- <span class="cstat-no" title="statement not covered" > return value.slice(1);</span>
- }
- // Parse object and array literals.
- <span class="cstat-no" title="statement not covered" > if (value == "[") {</span>
- // Parses a JSON array, returning a new JavaScript array.
- <span class="cstat-no" title="statement not covered" > results = [];</span>
- <span class="cstat-no" title="statement not covered" > for (;; hasMembers || (hasMembers = true)) {</span>
- <span class="cstat-no" title="statement not covered" > value = lex();</span>
- // A closing square bracket marks the end of the array literal.
- <span class="cstat-no" title="statement not covered" > if (value == "]") {</span>
- <span class="cstat-no" title="statement not covered" > break;</span>
- }
- // If the array literal contains elements, the current token
- // should be a comma separating the previous element from the
- // next.
- <span class="cstat-no" title="statement not covered" > if (hasMembers) {</span>
- <span class="cstat-no" title="statement not covered" > if (value == ",") {</span>
- <span class="cstat-no" title="statement not covered" > value = lex();</span>
- <span class="cstat-no" title="statement not covered" > if (value == "]") {</span>
- // Unexpected trailing `,` in array literal.
- <span class="cstat-no" title="statement not covered" > abort();</span>
- }
- } else {
- // A `,` must separate each array element.
- <span class="cstat-no" title="statement not covered" > abort();</span>
- }
- }
- // Elisions and leading commas are not permitted.
- <span class="cstat-no" title="statement not covered" > if (value == ",") {</span>
- <span class="cstat-no" title="statement not covered" > abort();</span>
- }
- <span class="cstat-no" title="statement not covered" > results.push(get(value));</span>
- }
- <span class="cstat-no" title="statement not covered" > return results;</span>
- } else <span class="cstat-no" title="statement not covered" >if (value == "{") {</span>
- // Parses a JSON object, returning a new JavaScript object.
- <span class="cstat-no" title="statement not covered" > results = {};</span>
- <span class="cstat-no" title="statement not covered" > for (;; hasMembers || (hasMembers = true)) {</span>
- <span class="cstat-no" title="statement not covered" > value = lex();</span>
- // A closing curly brace marks the end of the object literal.
- <span class="cstat-no" title="statement not covered" > if (value == "}") {</span>
- <span class="cstat-no" title="statement not covered" > break;</span>
- }
- // If the object literal contains members, the current token
- // should be a comma separator.
- <span class="cstat-no" title="statement not covered" > if (hasMembers) {</span>
- <span class="cstat-no" title="statement not covered" > if (value == ",") {</span>
- <span class="cstat-no" title="statement not covered" > value = lex();</span>
- <span class="cstat-no" title="statement not covered" > if (value == "}") {</span>
- // Unexpected trailing `,` in object literal.
- <span class="cstat-no" title="statement not covered" > abort();</span>
- }
- } else {
- // A `,` must separate each object member.
- <span class="cstat-no" title="statement not covered" > abort();</span>
- }
- }
- // Leading commas are not permitted, object property names must be
- // double-quoted strings, and a `:` must separate each property
- // name and value.
- <span class="cstat-no" title="statement not covered" > if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") {</span>
- <span class="cstat-no" title="statement not covered" > abort();</span>
- }
- <span class="cstat-no" title="statement not covered" > results[value.slice(1)] = get(lex());</span>
- }
- <span class="cstat-no" title="statement not covered" > return results;</span>
- }
- // Unexpected token encountered.
- <span class="cstat-no" title="statement not covered" > abort();</span>
- }
- <span class="cstat-no" title="statement not covered" > return value;</span>
- };
-
- // Internal: Updates a traversed object member.
- <span class="cstat-no" title="statement not covered" > var update = <span class="fstat-no" title="function not covered" >function(source, property, callback) {</span></span>
- <span class="cstat-no" title="statement not covered" > var element = walk(source, property, callback);</span>
- <span class="cstat-no" title="statement not covered" > if (element === undef) {</span>
- <span class="cstat-no" title="statement not covered" > delete source[property];</span>
- } else {
- <span class="cstat-no" title="statement not covered" > source[property] = element;</span>
- }
- };
-
- // Internal: Recursively traverses a parsed JSON object, invoking the
- // `callback` function for each value. This is an implementation of the
- // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2.
- <span class="cstat-no" title="statement not covered" > var walk = <span class="fstat-no" title="function not covered" >function (source, property, callback) {</span></span>
- <span class="cstat-no" title="statement not covered" > var value = source[property], length;</span>
- <span class="cstat-no" title="statement not covered" > if (typeof value == "object" && value) {</span>
- // `forEach` can't be used to traverse an array in Opera <= 8.54
- // because its `Object#hasOwnProperty` implementation returns `false`
- // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`).
- <span class="cstat-no" title="statement not covered" > if (getClass.call(value) == arrayClass) {</span>
- <span class="cstat-no" title="statement not covered" > for (length = value.length; length--;) {</span>
- <span class="cstat-no" title="statement not covered" > update(value, length, callback);</span>
- }
- } else {
- <span class="cstat-no" title="statement not covered" > forEach(value, <span class="fstat-no" title="function not covered" >function (property) {</span></span>
- <span class="cstat-no" title="statement not covered" > update(value, property, callback);</span>
- });
- }
- }
- <span class="cstat-no" title="statement not covered" > return callback.call(source, property, value);</span>
- };
-
- // Public: `JSON.parse`. See ES 5.1 section 15.12.2.
- <span class="cstat-no" title="statement not covered" > JSON3.parse = <span class="fstat-no" title="function not covered" >function (source, callback) {</span></span>
- <span class="cstat-no" title="statement not covered" > var result, value;</span>
- <span class="cstat-no" title="statement not covered" > Index = 0;</span>
- <span class="cstat-no" title="statement not covered" > Source = "" + source;</span>
- <span class="cstat-no" title="statement not covered" > result = get(lex());</span>
- // If a JSON string contains multiple tokens, it is invalid.
- <span class="cstat-no" title="statement not covered" > if (lex() != "$") {</span>
- <span class="cstat-no" title="statement not covered" > abort();</span>
- }
- // Reset the parser state.
- <span class="cstat-no" title="statement not covered" > Index = Source = null;</span>
- <span class="cstat-no" title="statement not covered" > return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result;</span>
- };
- }
- }
-
- // Export for asynchronous module loaders.
- <span class="missing-if-branch" title="if path not taken"" >I</span>if (isLoader) {
- <span class="cstat-no" title="statement not covered" > define(<span class="fstat-no" title="function not covered" >function () {</span></span>
- <span class="cstat-no" title="statement not covered" > return JSON3;</span>
- });
- }
- }(this));
- </pre></td></tr>
- </table></pre>
- </div>
- <div class="footer">
- <div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Sun Nov 17 2013 14:21:36 GMT-0800 (PST)</div>
- </div>
- <script src="../prettify.js"></script>
- <script src="http://yui.yahooapis.com/3.6.0/build/yui/yui-min.js"></script>
- <script>
- YUI().use('datatable', function (Y) {
- var formatters = {
- pct: function (o) {
- o.className += o.record.get('classes')[o.column.key];
- try {
- return o.value.toFixed(2) + '%';
- } catch (ex) { return o.value + '%'; }
- },
- html: function (o) {
- o.className += o.record.get('classes')[o.column.key];
- return o.record.get(o.column.key + '_html');
- }
- },
- defaultFormatter = function (o) {
- o.className += o.record.get('classes')[o.column.key];
- return o.value;
- };
- function getColumns(theadNode) {
- var colNodes = theadNode.all('tr th'),
- cols = [],
- col;
- colNodes.each(function (colNode) {
- col = {
- key: colNode.getAttribute('data-col'),
- label: colNode.get('innerHTML') || ' ',
- sortable: !colNode.getAttribute('data-nosort'),
- className: colNode.getAttribute('class'),
- type: colNode.getAttribute('data-type'),
- allowHTML: colNode.getAttribute('data-html') === 'true' || colNode.getAttribute('data-fmt') === 'html'
- };
- col.formatter = formatters[colNode.getAttribute('data-fmt')] || defaultFormatter;
- cols.push(col);
- });
- return cols;
- }
- function getRowData(trNode, cols) {
- var tdNodes = trNode.all('td'),
- i,
- row = { classes: {} },
- node,
- name;
- for (i = 0; i < cols.length; i += 1) {
- name = cols[i].key;
- node = tdNodes.item(i);
- row[name] = node.getAttribute('data-value') || node.get('innerHTML');
- row[name + '_html'] = node.get('innerHTML');
- row.classes[name] = node.getAttribute('class');
- //Y.log('Name: ' + name + '; Value: ' + row[name]);
- if (cols[i].type === 'number') { row[name] = row[name] * 1; }
- }
- //Y.log(row);
- return row;
- }
- function getData(tbodyNode, cols) {
- var data = [];
- tbodyNode.all('tr').each(function (trNode) {
- data.push(getRowData(trNode, cols));
- });
- return data;
- }
- function replaceTable(node) {
- if (!node) { return; }
- var cols = getColumns(node.one('thead')),
- data = getData(node.one('tbody'), cols),
- table,
- parent = node.get('parentNode');
- table = new Y.DataTable({
- columns: cols,
- data: data,
- sortBy: 'file'
- });
- parent.set('innerHTML', '');
- table.render(parent);
- }
- Y.on('domready', function () {
- replaceTable(Y.one('div.coverage-summary table'));
- if (typeof prettyPrint === 'function') {
- prettyPrint();
- }
- });
- });
- </script>
- </body>
- </html>
|