├── .gitignore ├── .vscode ├── init.sh └── settings.json ├── LICENSE ├── README.md ├── css ├── h1-blue.css ├── h1-green.css ├── h1-red.css ├── style.card.css └── style.css ├── html ├── incremental.html ├── no-script-dcl.html ├── parser-blocking.html ├── render-blocking.html ├── rendering.html └── script-blocking.html ├── js ├── common.js ├── main.js ├── sample.js └── vendor.js ├── lib ├── crp.png ├── cssom.png ├── dom.png └── render-tree.png ├── package-lock.json ├── package.json ├── res └── nature.jpg └── server.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /.vscode/init.sh: -------------------------------------------------------------------------------- 1 | export PS1='🔥 ' 2 | 3 | # commit alias 4 | commit() { 5 | git add -A && git commit -m "$*" 6 | } -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | // integrated terminal settings 3 | "terminal.integrated.shell.osx": "/bin/bash", 4 | "terminal.integrated.shellArgs.osx": [ 5 | "--init-file", ".vscode/init.sh" 6 | ], 7 | 8 | // VSCode UI settings 9 | "workbench.activityBar.visible": false, 10 | "workbench.statusBar.visible": false, 11 | "window.title": "${activeEditorShort}", 12 | "editor.foldingHighlight": false, 13 | "editor.renderLineHighlight": "none", 14 | "editor.occurrencesHighlight": false, 15 | "editor.selectionHighlight": false, 16 | "editor.matchBrackets": "never", 17 | "editor.minimap.enabled": false, 18 | 19 | // disable git 20 | "git.enabled": false, 21 | "gitlens.mode.active": "zen", 22 | "gitlens.codeLens.enabled": false, 23 | 24 | // custom CSS plugin config 25 | // https://marketplace.visualstudio.com/items?itemName=iocave.customize-ui 26 | "customizeUI.stylesheet": { 27 | ".tabs-and-actions-container .editor-actions": "display: none !important;", 28 | ".split-view-container .split-view-view:nth-child(2) .part.panel.bottom .composite.title .title-actions": "display: none !important", 29 | ".monaco-workbench .part.titlebar > .window-title": "display: none !important", 30 | ".monaco-workbench .part.titlebar": "background-color: rgb(37, 37, 38) !important", 31 | ".decorationsOverviewRuler": "opacity: 0 !important", 32 | ".monaco-scrollable-element>.visible": "opacity: 0 !important", 33 | ".monaco-workbench .monaco-scrollable-element > .scrollbar > .slider": "opacity: 0 !important", 34 | ".editor-container": "margin-top: 10px !important;", 35 | ".monaco-editor .scroll-decoration": "box-shadow: unset !important;", 36 | ".monaco-workbench .part.editor>.content .editor-group-container>.title .tabs-container>.tab": "background-color: transparent !important;", 37 | ".monaco-workbench .part.panel.bottom .composite.title": "margin-bottom: 10px !important;", 38 | } 39 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Uday Hiwarale 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # browser-rendering-test 2 | Sample code base to test how a browser renders a webpage. 3 | 4 | ## Web Server 5 | ## Start Server 6 | ``` 7 | node server.js 8 | ``` 9 | 10 | ## Access a file 11 | ``` 12 | http://localhost:8088/directory/file 13 | http://localhost:8088/delay-in-ms/directory/file 14 | 15 | Example: 16 | http://localhost:8088/html/incremental.html 17 | http://localhost:8088/10000/html/incremental.html 18 | ``` -------------------------------------------------------------------------------- /css/h1-blue.css: -------------------------------------------------------------------------------- 1 | h1 { 2 | color: blue; 3 | } -------------------------------------------------------------------------------- /css/h1-green.css: -------------------------------------------------------------------------------- 1 | h1 { 2 | color: green; 3 | } -------------------------------------------------------------------------------- /css/h1-red.css: -------------------------------------------------------------------------------- 1 | h1 { 2 | color: red; 3 | } -------------------------------------------------------------------------------- /css/style.card.css: -------------------------------------------------------------------------------- 1 | html, body { 2 | font-size: 14px; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; 4 | padding: 0; 5 | margin: 0; 6 | text-align: center; 7 | } 8 | 9 | * { 10 | box-sizing: border-box; 11 | line-height: 1; 12 | margin: 0; 13 | } 14 | 15 | .container { 16 | margin: 20px; 17 | padding: 30px; 18 | width: 500px; 19 | height: 300px; 20 | border-radius: 10px; 21 | background: linear-gradient(-30deg, #6227b0, #3F51B5); 22 | 23 | display: inline-flex; 24 | box-shadow: 2px 2px 10px rgba(0,0,0,0.5); 25 | flex-direction: column; 26 | justify-content: center; 27 | align-items: center; 28 | 29 | color: white; 30 | } 31 | 32 | .container > h1 { 33 | text-transform: uppercase; 34 | letter-spacing: 1px; 35 | margin-bottom: 20px; 36 | color: #42e699; 37 | } 38 | 39 | .container > p { 40 | font-size: 16px; 41 | font-weight: 100; 42 | font-family: monospace; 43 | } -------------------------------------------------------------------------------- /css/style.css: -------------------------------------------------------------------------------- 1 | html { 2 | padding: 0; 3 | margin: 0; 4 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; 5 | } 6 | 7 | body { 8 | font-size: 14px; 9 | } 10 | 11 | img { 12 | height: 100px; 13 | } 14 | 15 | h1 { color: #3b23b5; } 16 | h2 { color: #7d23b5; } 17 | h3 { color: #a0116c; } -------------------------------------------------------------------------------- /html/incremental.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Incremental Parsing 7 | 8 | 9 | 10 |

🍏 apple: 1

11 |

🍏 apple: 2

12 |

🍏 apple: 3

13 |

🍏 apple: 4

14 |

🍏 apple: 5

15 |

🍏 apple: 6

16 |

🍏 apple: 7

17 |

🍏 apple: 8

18 |

🍏 apple: 9

19 |

🍏 apple: 10

20 |

🍏 apple: 11

21 |

🍏 apple: 12

22 |

🍏 apple: 13

23 |

🍏 apple: 14

24 |

🍏 apple: 15

25 |

🍏 apple: 16

26 |

🍏 apple: 17

27 |

🍏 apple: 18

28 |

🍏 apple: 19

29 |

🍏 apple: 20

30 |

🍏 apple: 21

31 |

🍏 apple: 22

32 |

🍏 apple: 23

33 |

🍏 apple: 24

34 |

🍏 apple: 25

35 |

🍏 apple: 26

36 |

🍏 apple: 27

37 |

🍏 apple: 28

38 |

🍏 apple: 29

39 |

🍏 apple: 30

40 |

🍏 apple: 31

41 |

🍏 apple: 32

42 |

🍏 apple: 33

43 |

🍏 apple: 34

44 |

🍏 apple: 35

45 |

🍏 apple: 36

46 |

🍏 apple: 37

47 |

🍏 apple: 38

48 |

🍏 apple: 39

49 |

🍏 apple: 40

50 |

🍏 apple: 41

51 |

🍏 apple: 42

52 |

🍏 apple: 43

53 |

🍏 apple: 44

54 |

🍏 apple: 45

55 |

🍏 apple: 46

56 |

🍏 apple: 47

57 |

🍏 apple: 48

58 |

🍏 apple: 49

59 |

🍏 apple: 50

60 |

🍏 apple: 51

61 |

🍏 apple: 52

62 |

🍏 apple: 53

63 |

🍏 apple: 54

64 |

🍏 apple: 55

65 |

🍏 apple: 56

66 |

🍏 apple: 57

67 |

🍏 apple: 58

68 |

🍏 apple: 59

69 |

🍏 apple: 60

70 |

🍏 apple: 61

71 |

🍏 apple: 62

72 |

🍏 apple: 63

73 |

🍏 apple: 64

74 |

🍏 apple: 65

75 |

🍏 apple: 66

76 |

🍏 apple: 67

77 |

🍏 apple: 68

78 |

🍏 apple: 69

79 |

🍏 apple: 70

80 |

🍏 apple: 71

81 |

🍏 apple: 72

82 |

🍏 apple: 73

83 |

🍏 apple: 74

84 |

🍏 apple: 75

85 |

🍏 apple: 76

86 |

🍏 apple: 77

87 |

🍏 apple: 78

88 |

🍏 apple: 79

89 |

🍏 apple: 80

90 |

🍏 apple: 81

91 |

🍏 apple: 82

92 |

🍏 apple: 83

93 |

🍏 apple: 84

94 |

🍏 apple: 85

95 |

🍏 apple: 86

96 |

🍏 apple: 87

97 |

🍏 apple: 88

98 |

🍏 apple: 89

99 |

🍏 apple: 90

100 |

🍏 apple: 91

101 |

🍏 apple: 92

102 |

🍏 apple: 93

103 |

🍏 apple: 94

104 |

🍏 apple: 95

105 |

🍏 apple: 96

106 |

🍏 apple: 97

107 |

🍏 apple: 98

108 |

🍏 apple: 99

109 |

🍏 apple: 100

110 |

🍏 apple: 101

111 |

🍏 apple: 102

112 |

🍏 apple: 103

113 |

🍏 apple: 104

114 |

🍏 apple: 105

115 |

🍏 apple: 106

116 |

🍏 apple: 107

117 |

🍏 apple: 108

118 |

🍏 apple: 109

119 |

🍏 apple: 110

120 |

🍏 apple: 111

121 |

🍏 apple: 112

122 |

🍏 apple: 113

123 |

🍏 apple: 114

124 |

🍏 apple: 115

125 |

🍏 apple: 116

126 |

🍏 apple: 117

127 |

🍏 apple: 118

128 |

🍏 apple: 119

129 |

🍏 apple: 120

130 |

🍏 apple: 121

131 |

🍏 apple: 122

132 |

🍏 apple: 123

133 |

🍏 apple: 124

134 |

🍏 apple: 125

135 |

🍏 apple: 126

136 |

🍏 apple: 127

137 |

🍏 apple: 128

138 |

🍏 apple: 129

139 |

🍏 apple: 130

140 |

🍏 apple: 131

141 |

🍏 apple: 132

142 |

🍏 apple: 133

143 |

🍏 apple: 134

144 |

🍏 apple: 135

145 |

🍏 apple: 136

146 |

🍏 apple: 137

147 |

🍏 apple: 138

148 |

🍏 apple: 139

149 |

🍏 apple: 140

150 |

🍏 apple: 141

151 |

🍏 apple: 142

152 |

🍏 apple: 143

153 |

🍏 apple: 144

154 |

🍏 apple: 145

155 |

🍏 apple: 146

156 |

🍏 apple: 147

157 |

🍏 apple: 148

158 |

🍏 apple: 149

159 |

🍏 apple: 150

160 |

🍏 apple: 151

161 |

🍏 apple: 152

162 |

🍏 apple: 153

163 |

🍏 apple: 154

164 |

🍏 apple: 155

165 |

🍏 apple: 156

166 |

🍏 apple: 157

167 |

🍏 apple: 158

168 |

🍏 apple: 159

169 |

🍏 apple: 160

170 |

🍏 apple: 161

171 |

🍏 apple: 162

172 |

🍏 apple: 163

173 |

🍏 apple: 164

174 |

🍏 apple: 165

175 |

🍏 apple: 166

176 |

🍏 apple: 167

177 |

🍏 apple: 168

178 |

🍏 apple: 169

179 |

🍏 apple: 170

180 |

🍏 apple: 171

181 |

🍏 apple: 172

182 |

🍏 apple: 173

183 |

🍏 apple: 174

184 |

🍏 apple: 175

185 |

🍏 apple: 176

186 |

🍏 apple: 177

187 |

🍏 apple: 178

188 |

🍏 apple: 179

189 |

🍏 apple: 180

190 |

🍏 apple: 181

191 |

🍏 apple: 182

192 |

🍏 apple: 183

193 |

🍏 apple: 184

194 |

🍏 apple: 185

195 |

🍏 apple: 186

196 |

🍏 apple: 187

197 |

🍏 apple: 188

198 |

🍏 apple: 189

199 |

🍏 apple: 190

200 |

🍏 apple: 191

201 |

🍏 apple: 192

202 |

🍏 apple: 193

203 |

🍏 apple: 194

204 |

🍏 apple: 195

205 |

🍏 apple: 196

206 |

🍏 apple: 197

207 |

🍏 apple: 198

208 |

🍏 apple: 199

209 |

🍏 apple: 200

210 |

🍏 apple: 201

211 |

🍏 apple: 202

212 |

🍏 apple: 203

213 |

🍏 apple: 204

214 |

🍏 apple: 205

215 |

🍏 apple: 206

216 |

🍏 apple: 207

217 |

🍏 apple: 208

218 |

🍏 apple: 209

219 |

🍏 apple: 210

220 |

🍏 apple: 211

221 |

🍏 apple: 212

222 |

🍏 apple: 213

223 |

🍏 apple: 214

224 |

🍏 apple: 215

225 |

🍏 apple: 216

226 |

🍏 apple: 217

227 |

🍏 apple: 218

228 |

🍏 apple: 219

229 |

🍏 apple: 220

230 |

🍏 apple: 221

231 |

🍏 apple: 222

232 |

🍏 apple: 223

233 |

🍏 apple: 224

234 |

🍏 apple: 225

235 |

🍏 apple: 226

236 |

🍏 apple: 227

237 |

🍏 apple: 228

238 |

🍏 apple: 229

239 |

🍏 apple: 230

240 |

🍏 apple: 231

241 |

🍏 apple: 232

242 |

🍏 apple: 233

243 |

🍏 apple: 234

244 |

🍏 apple: 235

245 |

🍏 apple: 236

246 |

🍏 apple: 237

247 |

🍏 apple: 238

248 |

🍏 apple: 239

249 |

🍏 apple: 240

250 |

🍏 apple: 241

251 |

🍏 apple: 242

252 |

🍏 apple: 243

253 |

🍏 apple: 244

254 |

🍏 apple: 245

255 |

🍏 apple: 246

256 |

🍏 apple: 247

257 |

🍏 apple: 248

258 |

🍏 apple: 249

259 |

🍏 apple: 250

260 |

🍏 apple: 251

261 |

🍏 apple: 252

262 |

🍏 apple: 253

263 |

🍏 apple: 254

264 |

🍏 apple: 255

265 |

🍏 apple: 256

266 |

🍏 apple: 257

267 |

🍏 apple: 258

268 |

🍏 apple: 259

269 |

🍏 apple: 260

270 |

🍏 apple: 261

271 |

🍏 apple: 262

272 |

🍏 apple: 263

273 |

🍏 apple: 264

274 |

🍏 apple: 265

275 |

🍏 apple: 266

276 |

🍏 apple: 267

277 |

🍏 apple: 268

278 |

🍏 apple: 269

279 |

🍏 apple: 270

280 |

🍏 apple: 271

281 |

🍏 apple: 272

282 |

🍏 apple: 273

283 |

🍏 apple: 274

284 |

🍏 apple: 275

285 |

🍏 apple: 276

286 |

🍏 apple: 277

287 |

🍏 apple: 278

288 |

🍏 apple: 279

289 |

🍏 apple: 280

290 |

🍏 apple: 281

291 |

🍏 apple: 282

292 |

🍏 apple: 283

293 |

🍏 apple: 284

294 |

🍏 apple: 285

295 |

🍏 apple: 286

296 |

🍏 apple: 287

297 |

🍏 apple: 288

298 |

🍏 apple: 289

299 |

🍏 apple: 290

300 |

🍏 apple: 291

301 |

🍏 apple: 292

302 |

🍏 apple: 293

303 |

🍏 apple: 294

304 |

🍏 apple: 295

305 |

🍏 apple: 296

306 |

🍏 apple: 297

307 |

🍏 apple: 298

308 |

🍏 apple: 299

309 |

🍏 apple: 300

310 |

🍏 apple: 301

311 |

🍏 apple: 302

312 |

🍏 apple: 303

313 |

🍏 apple: 304

314 |

🍏 apple: 305

315 |

🍏 apple: 306

316 |

🍏 apple: 307

317 |

🍏 apple: 308

318 |

🍏 apple: 309

319 |

🍏 apple: 310

320 |

🍏 apple: 311

321 |

🍏 apple: 312

322 |

🍏 apple: 313

323 |

🍏 apple: 314

324 |

🍏 apple: 315

325 |

🍏 apple: 316

326 |

🍏 apple: 317

327 |

🍏 apple: 318

328 |

🍏 apple: 319

329 |

🍏 apple: 320

330 |

🍏 apple: 321

331 |

🍏 apple: 322

332 |

🍏 apple: 323

333 |

🍏 apple: 324

334 |

🍏 apple: 325

335 |

🍏 apple: 326

336 |

🍏 apple: 327

337 |

🍏 apple: 328

338 |

🍏 apple: 329

339 |

🍏 apple: 330

340 |

🍏 apple: 331

341 |

🍏 apple: 332

342 |

🍏 apple: 333

343 |

🍏 apple: 334

344 |

🍏 apple: 335

345 |

🍏 apple: 336

346 |

🍏 apple: 337

347 |

🍏 apple: 338

348 |

🍏 apple: 339

349 |

🍏 apple: 340

350 |

🍏 apple: 341

351 |

🍏 apple: 342

352 |

🍏 apple: 343

353 |

🍏 apple: 344

354 |

🍏 apple: 345

355 |

🍏 apple: 346

356 |

🍏 apple: 347

357 |

🍏 apple: 348

358 |

🍏 apple: 349

359 |

🍏 apple: 350

360 |

🍏 apple: 351

361 |

🍏 apple: 352

362 |

🍏 apple: 353

363 |

🍏 apple: 354

364 |

🍏 apple: 355

365 |

🍏 apple: 356

366 |

🍏 apple: 357

367 |

🍏 apple: 358

368 |

🍏 apple: 359

369 |

🍏 apple: 360

370 |

🍏 apple: 361

371 |

🍏 apple: 362

372 |

🍏 apple: 363

373 |

🍏 apple: 364

374 |

🍏 apple: 365

375 |

🍏 apple: 366

376 |

🍏 apple: 367

377 |

🍏 apple: 368

378 |

🍏 apple: 369

379 |

🍏 apple: 370

380 |

🍏 apple: 371

381 |

🍏 apple: 372

382 |

🍏 apple: 373

383 |

🍏 apple: 374

384 |

🍏 apple: 375

385 |

🍏 apple: 376

386 |

🍏 apple: 377

387 |

🍏 apple: 378

388 |

🍏 apple: 379

389 |

🍏 apple: 380

390 |

🍏 apple: 381

391 |

🍏 apple: 382

392 |

🍏 apple: 383

393 |

🍏 apple: 384

394 |

🍏 apple: 385

395 |

🍏 apple: 386

396 |

🍏 apple: 387

397 |

🍏 apple: 388

398 |

🍏 apple: 389

399 |

🍏 apple: 390

400 |

🍏 apple: 391

401 |

🍏 apple: 392

402 |

🍏 apple: 393

403 |

🍏 apple: 394

404 |

🍏 apple: 395

405 |

🍏 apple: 396

406 |

🍏 apple: 397

407 |

🍏 apple: 398

408 |

🍏 apple: 399

409 |

🍏 apple: 400

410 |

🍏 apple: 401

411 |

🍏 apple: 402

412 |

🍏 apple: 403

413 |

🍏 apple: 404

414 |

🍏 apple: 405

415 |

🍏 apple: 406

416 |

🍏 apple: 407

417 |

🍏 apple: 408

418 |

🍏 apple: 409

419 |

🍏 apple: 410

420 |

🍏 apple: 411

421 |

🍏 apple: 412

422 |

🍏 apple: 413

423 |

🍏 apple: 414

424 |

🍏 apple: 415

425 |

🍏 apple: 416

426 |

🍏 apple: 417

427 |

🍏 apple: 418

428 |

🍏 apple: 419

429 |

🍏 apple: 420

430 |

🍏 apple: 421

431 |

🍏 apple: 422

432 |

🍏 apple: 423

433 |

🍏 apple: 424

434 |

🍏 apple: 425

435 |

🍏 apple: 426

436 |

🍏 apple: 427

437 |

🍏 apple: 428

438 |

🍏 apple: 429

439 |

🍏 apple: 430

440 |

🍏 apple: 431

441 |

🍏 apple: 432

442 |

🍏 apple: 433

443 |

🍏 apple: 434

444 |

🍏 apple: 435

445 |

🍏 apple: 436

446 |

🍏 apple: 437

447 |

🍏 apple: 438

448 |

🍏 apple: 439

449 |

🍏 apple: 440

450 |

🍏 apple: 441

451 |

🍏 apple: 442

452 |

🍏 apple: 443

453 |

🍏 apple: 444

454 |

🍏 apple: 445

455 |

🍏 apple: 446

456 |

🍏 apple: 447

457 |

🍏 apple: 448

458 |

🍏 apple: 449

459 |

🍏 apple: 450

460 |

🍏 apple: 451

461 |

🍏 apple: 452

462 |

🍏 apple: 453

463 |

🍏 apple: 454

464 |

🍏 apple: 455

465 |

🍏 apple: 456

466 |

🍏 apple: 457

467 |

🍏 apple: 458

468 |

🍏 apple: 459

469 |

🍏 apple: 460

470 |

🍏 apple: 461

471 |

🍏 apple: 462

472 |

🍏 apple: 463

473 |

🍏 apple: 464

474 |

🍏 apple: 465

475 |

🍏 apple: 466

476 |

🍏 apple: 467

477 |

🍏 apple: 468

478 |

🍏 apple: 469

479 |

🍏 apple: 470

480 |

🍏 apple: 471

481 |

🍏 apple: 472

482 |

🍏 apple: 473

483 |

🍏 apple: 474

484 |

🍏 apple: 475

485 |

🍏 apple: 476

486 |

🍏 apple: 477

487 |

🍏 apple: 478

488 |

🍏 apple: 479

489 |

🍏 apple: 480

490 |

🍏 apple: 481

491 |

🍏 apple: 482

492 |

🍏 apple: 483

493 |

🍏 apple: 484

494 |

🍏 apple: 485

495 |

🍏 apple: 486

496 |

🍏 apple: 487

497 |

🍏 apple: 488

498 |

🍏 apple: 489

499 |

🍏 apple: 490

500 |

🍏 apple: 491

501 |

🍏 apple: 492

502 |

🍏 apple: 493

503 |

🍏 apple: 494

504 |

🍏 apple: 495

505 |

🍏 apple: 496

506 |

🍏 apple: 497

507 |

🍏 apple: 498

508 |

🍏 apple: 499

509 |

🍏 apple: 500

510 |

🍏 apple: 501

511 |

🍏 apple: 502

512 |

🍏 apple: 503

513 |

🍏 apple: 504

514 |

🍏 apple: 505

515 |

🍏 apple: 506

516 |

🍏 apple: 507

517 |

🍏 apple: 508

518 |

🍏 apple: 509

519 |

🍏 apple: 510

520 |

🍏 apple: 511

521 |

🍏 apple: 512

522 |

🍏 apple: 513

523 |

🍏 apple: 514

524 |

🍏 apple: 515

525 |

🍏 apple: 516

526 |

🍏 apple: 517

527 |

🍏 apple: 518

528 |

🍏 apple: 519

529 |

🍏 apple: 520

530 |

🍏 apple: 521

531 |

🍏 apple: 522

532 |

🍏 apple: 523

533 |

🍏 apple: 524

534 |

🍏 apple: 525

535 |

🍏 apple: 526

536 |

🍏 apple: 527

537 |

🍏 apple: 528

538 |

🍏 apple: 529

539 |

🍏 apple: 530

540 |

🍏 apple: 531

541 |

🍏 apple: 532

542 |

🍏 apple: 533

543 |

🍏 apple: 534

544 |

🍏 apple: 535

545 |

🍏 apple: 536

546 |

🍏 apple: 537

547 |

🍏 apple: 538

548 |

🍏 apple: 539

549 |

🍏 apple: 540

550 |

🍏 apple: 541

551 |

🍏 apple: 542

552 |

🍏 apple: 543

553 |

🍏 apple: 544

554 |

🍏 apple: 545

555 |

🍏 apple: 546

556 |

🍏 apple: 547

557 |

🍏 apple: 548

558 |

🍏 apple: 549

559 |

🍏 apple: 550

560 |

🍏 apple: 551

561 |

🍏 apple: 552

562 |

🍏 apple: 553

563 |

🍏 apple: 554

564 |

🍏 apple: 555

565 |

🍏 apple: 556

566 |

🍏 apple: 557

567 |

🍏 apple: 558

568 |

🍏 apple: 559

569 |

🍏 apple: 560

570 |

🍏 apple: 561

571 |

🍏 apple: 562

572 |

🍏 apple: 563

573 |

🍏 apple: 564

574 |

🍏 apple: 565

575 |

🍏 apple: 566

576 |

🍏 apple: 567

577 |

🍏 apple: 568

578 |

🍏 apple: 569

579 |

🍏 apple: 570

580 |

🍏 apple: 571

581 |

🍏 apple: 572

582 |

🍏 apple: 573

583 |

🍏 apple: 574

584 |

🍏 apple: 575

585 |

🍏 apple: 576

586 |

🍏 apple: 577

587 |

🍏 apple: 578

588 |

🍏 apple: 579

589 |

🍏 apple: 580

590 |

🍏 apple: 581

591 |

🍏 apple: 582

592 |

🍏 apple: 583

593 |

🍏 apple: 584

594 |

🍏 apple: 585

595 |

🍏 apple: 586

596 |

🍏 apple: 587

597 |

🍏 apple: 588

598 |

🍏 apple: 589

599 |

🍏 apple: 590

600 |

🍏 apple: 591

601 |

🍏 apple: 592

602 |

🍏 apple: 593

603 |

🍏 apple: 594

604 |

🍏 apple: 595

605 |

🍏 apple: 596

606 |

🍏 apple: 597

607 |

🍏 apple: 598

608 |

🍏 apple: 599

609 |

🍏 apple: 600

610 |

🍏 apple: 601

611 |

🍏 apple: 602

612 |

🍏 apple: 603

613 |

🍏 apple: 604

614 |

🍏 apple: 605

615 |

🍏 apple: 606

616 |

🍏 apple: 607

617 |

🍏 apple: 608

618 |

🍏 apple: 609

619 |

🍏 apple: 610

620 |

🍏 apple: 611

621 |

🍏 apple: 612

622 |

🍏 apple: 613

623 |

🍏 apple: 614

624 |

🍏 apple: 615

625 |

🍏 apple: 616

626 |

🍏 apple: 617

627 |

🍏 apple: 618

628 |

🍏 apple: 619

629 |

🍏 apple: 620

630 |

🍏 apple: 621

631 |

🍏 apple: 622

632 |

🍏 apple: 623

633 |

🍏 apple: 624

634 |

🍏 apple: 625

635 |

🍏 apple: 626

636 |

🍏 apple: 627

637 |

🍏 apple: 628

638 |

🍏 apple: 629

639 |

🍏 apple: 630

640 |

🍏 apple: 631

641 |

🍏 apple: 632

642 |

🍏 apple: 633

643 |

🍏 apple: 634

644 |

🍏 apple: 635

645 |

🍏 apple: 636

646 |

🍏 apple: 637

647 |

🍏 apple: 638

648 |

🍏 apple: 639

649 |

🍏 apple: 640

650 |

🍏 apple: 641

651 |

🍏 apple: 642

652 |

🍏 apple: 643

653 |

🍏 apple: 644

654 |

🍏 apple: 645

655 |

🍏 apple: 646

656 |

🍏 apple: 647

657 |

🍏 apple: 648

658 |

🍏 apple: 649

659 |

🍏 apple: 650

660 |

🍏 apple: 651

661 |

🍏 apple: 652

662 |

🍏 apple: 653

663 |

🍏 apple: 654

664 |

🍏 apple: 655

665 |

🍏 apple: 656

666 |

🍏 apple: 657

667 |

🍏 apple: 658

668 |

🍏 apple: 659

669 |

🍏 apple: 660

670 |

🍏 apple: 661

671 |

🍏 apple: 662

672 |

🍏 apple: 663

673 |

🍏 apple: 664

674 |

🍏 apple: 665

675 |

🍏 apple: 666

676 |

🍏 apple: 667

677 |

🍏 apple: 668

678 |

🍏 apple: 669

679 |

🍏 apple: 670

680 |

🍏 apple: 671

681 |

🍏 apple: 672

682 |

🍏 apple: 673

683 |

🍏 apple: 674

684 |

🍏 apple: 675

685 |

🍏 apple: 676

686 |

🍏 apple: 677

687 |

🍏 apple: 678

688 |

🍏 apple: 679

689 |

🍏 apple: 680

690 |

🍏 apple: 681

691 |

🍏 apple: 682

692 |

🍏 apple: 683

693 |

🍏 apple: 684

694 |

🍏 apple: 685

695 |

🍏 apple: 686

696 |

🍏 apple: 687

697 |

🍏 apple: 688

698 |

🍏 apple: 689

699 |

🍏 apple: 690

700 |

🍏 apple: 691

701 |

🍏 apple: 692

702 |

🍏 apple: 693

703 |

🍏 apple: 694

704 |

🍏 apple: 695

705 |

🍏 apple: 696

706 |

🍏 apple: 697

707 |

🍏 apple: 698

708 |

🍏 apple: 699

709 |

🍏 apple: 700

710 |

🍏 apple: 701

711 |

🍏 apple: 702

712 |

🍏 apple: 703

713 |

🍏 apple: 704

714 |

🍏 apple: 705

715 |

🍏 apple: 706

716 |

🍏 apple: 707

717 |

🍏 apple: 708

718 |

🍏 apple: 709

719 |

🍏 apple: 710

720 |

🍏 apple: 711

721 |

🍏 apple: 712

722 |

🍏 apple: 713

723 |

🍏 apple: 714

724 |

🍏 apple: 715

725 |

🍏 apple: 716

726 |

🍏 apple: 717

727 |

🍏 apple: 718

728 |

🍏 apple: 719

729 |

🍏 apple: 720

730 |

🍏 apple: 721

731 |

🍏 apple: 722

732 |

🍏 apple: 723

733 |

🍏 apple: 724

734 |

🍏 apple: 725

735 |

🍏 apple: 726

736 |

🍏 apple: 727

737 |

🍏 apple: 728

738 |

🍏 apple: 729

739 |

🍏 apple: 730

740 |

🍏 apple: 731

741 |

🍏 apple: 732

742 |

🍏 apple: 733

743 |

🍏 apple: 734

744 |

🍏 apple: 735

745 |

🍏 apple: 736

746 |

🍏 apple: 737

747 |

🍏 apple: 738

748 |

🍏 apple: 739

749 |

🍏 apple: 740

750 |

🍏 apple: 741

751 |

🍏 apple: 742

752 |

🍏 apple: 743

753 |

🍏 apple: 744

754 |

🍏 apple: 745

755 |

🍏 apple: 746

756 |

🍏 apple: 747

757 |

🍏 apple: 748

758 |

🍏 apple: 749

759 |

🍏 apple: 750

760 |

🍏 apple: 751

761 |

🍏 apple: 752

762 |

🍏 apple: 753

763 |

🍏 apple: 754

764 |

🍏 apple: 755

765 |

🍏 apple: 756

766 |

🍏 apple: 757

767 |

🍏 apple: 758

768 |

🍏 apple: 759

769 |

🍏 apple: 760

770 |

🍏 apple: 761

771 |

🍏 apple: 762

772 |

🍏 apple: 763

773 |

🍏 apple: 764

774 |

🍏 apple: 765

775 |

🍏 apple: 766

776 |

🍏 apple: 767

777 |

🍏 apple: 768

778 |

🍏 apple: 769

779 |

🍏 apple: 770

780 |

🍏 apple: 771

781 |

🍏 apple: 772

782 |

🍏 apple: 773

783 |

🍏 apple: 774

784 |

🍏 apple: 775

785 |

🍏 apple: 776

786 |

🍏 apple: 777

787 |

🍏 apple: 778

788 |

🍏 apple: 779

789 |

🍏 apple: 780

790 |

🍏 apple: 781

791 |

🍏 apple: 782

792 |

🍏 apple: 783

793 |

🍏 apple: 784

794 |

🍏 apple: 785

795 |

🍏 apple: 786

796 |

🍏 apple: 787

797 |

🍏 apple: 788

798 |

🍏 apple: 789

799 |

🍏 apple: 790

800 |

🍏 apple: 791

801 |

🍏 apple: 792

802 |

🍏 apple: 793

803 |

🍏 apple: 794

804 |

🍏 apple: 795

805 |

🍏 apple: 796

806 |

🍏 apple: 797

807 |

🍏 apple: 798

808 |

🍏 apple: 799

809 |

🍏 apple: 800

810 |

🍏 apple: 801

811 |

🍏 apple: 802

812 |

🍏 apple: 803

813 |

🍏 apple: 804

814 |

🍏 apple: 805

815 |

🍏 apple: 806

816 |

🍏 apple: 807

817 |

🍏 apple: 808

818 |

🍏 apple: 809

819 |

🍏 apple: 810

820 |

🍏 apple: 811

821 |

🍏 apple: 812

822 |

🍏 apple: 813

823 |

🍏 apple: 814

824 |

🍏 apple: 815

825 |

🍏 apple: 816

826 |

🍏 apple: 817

827 |

🍏 apple: 818

828 |

🍏 apple: 819

829 |

🍏 apple: 820

830 |

🍏 apple: 821

831 |

🍏 apple: 822

832 |

🍏 apple: 823

833 |

🍏 apple: 824

834 |

🍏 apple: 825

835 |

🍏 apple: 826

836 |

🍏 apple: 827

837 |

🍏 apple: 828

838 |

🍏 apple: 829

839 |

🍏 apple: 830

840 |

🍏 apple: 831

841 |

🍏 apple: 832

842 |

🍏 apple: 833

843 |

🍏 apple: 834

844 |

🍏 apple: 835

845 |

🍏 apple: 836

846 |

🍏 apple: 837

847 |

🍏 apple: 838

848 |

🍏 apple: 839

849 |

🍏 apple: 840

850 |

🍏 apple: 841

851 |

🍏 apple: 842

852 |

🍏 apple: 843

853 |

🍏 apple: 844

854 |

🍏 apple: 845

855 |

🍏 apple: 846

856 |

🍏 apple: 847

857 |

🍏 apple: 848

858 |

🍏 apple: 849

859 |

🍏 apple: 850

860 |

🍏 apple: 851

861 |

🍏 apple: 852

862 |

🍏 apple: 853

863 |

🍏 apple: 854

864 |

🍏 apple: 855

865 |

🍏 apple: 856

866 |

🍏 apple: 857

867 |

🍏 apple: 858

868 |

🍏 apple: 859

869 |

🍏 apple: 860

870 |

🍏 apple: 861

871 |

🍏 apple: 862

872 |

🍏 apple: 863

873 |

🍏 apple: 864

874 |

🍏 apple: 865

875 |

🍏 apple: 866

876 |

🍏 apple: 867

877 |

🍏 apple: 868

878 |

🍏 apple: 869

879 |

🍏 apple: 870

880 |

🍏 apple: 871

881 |

🍏 apple: 872

882 |

🍏 apple: 873

883 |

🍏 apple: 874

884 |

🍏 apple: 875

885 |

🍏 apple: 876

886 |

🍏 apple: 877

887 |

🍏 apple: 878

888 |

🍏 apple: 879

889 |

🍏 apple: 880

890 |

🍏 apple: 881

891 |

🍏 apple: 882

892 |

🍏 apple: 883

893 |

🍏 apple: 884

894 |

🍏 apple: 885

895 |

🍏 apple: 886

896 |

🍏 apple: 887

897 |

🍏 apple: 888

898 |

🍏 apple: 889

899 |

🍏 apple: 890

900 |

🍏 apple: 891

901 |

🍏 apple: 892

902 |

🍏 apple: 893

903 |

🍏 apple: 894

904 |

🍏 apple: 895

905 |

🍏 apple: 896

906 |

🍏 apple: 897

907 |

🍏 apple: 898

908 |

🍏 apple: 899

909 |

🍏 apple: 900

910 |

🍏 apple: 901

911 |

🍏 apple: 902

912 |

🍏 apple: 903

913 |

🍏 apple: 904

914 |

🍏 apple: 905

915 |

🍏 apple: 906

916 |

🍏 apple: 907

917 |

🍏 apple: 908

918 |

🍏 apple: 909

919 |

🍏 apple: 910

920 |

🍏 apple: 911

921 |

🍏 apple: 912

922 |

🍏 apple: 913

923 |

🍏 apple: 914

924 |

🍏 apple: 915

925 |

🍏 apple: 916

926 |

🍏 apple: 917

927 |

🍏 apple: 918

928 |

🍏 apple: 919

929 |

🍏 apple: 920

930 |

🍏 apple: 921

931 |

🍏 apple: 922

932 |

🍏 apple: 923

933 |

🍏 apple: 924

934 |

🍏 apple: 925

935 |

🍏 apple: 926

936 |

🍏 apple: 927

937 |

🍏 apple: 928

938 |

🍏 apple: 929

939 |

🍏 apple: 930

940 |

🍏 apple: 931

941 |

🍏 apple: 932

942 |

🍏 apple: 933

943 |

🍏 apple: 934

944 |

🍏 apple: 935

945 |

🍏 apple: 936

946 |

🍏 apple: 937

947 |

🍏 apple: 938

948 |

🍏 apple: 939

949 |

🍏 apple: 940

950 |

🍏 apple: 941

951 |

🍏 apple: 942

952 |

🍏 apple: 943

953 |

🍏 apple: 944

954 |

🍏 apple: 945

955 |

🍏 apple: 946

956 |

🍏 apple: 947

957 |

🍏 apple: 948

958 |

🍏 apple: 949

959 |

🍏 apple: 950

960 |

🍏 apple: 951

961 |

🍏 apple: 952

962 |

🍏 apple: 953

963 |

🍏 apple: 954

964 |

🍏 apple: 955

965 |

🍏 apple: 956

966 |

🍏 apple: 957

967 |

🍏 apple: 958

968 |

🍏 apple: 959

969 |

🍏 apple: 960

970 |

🍏 apple: 961

971 |

🍏 apple: 962

972 |

🍏 apple: 963

973 |

🍏 apple: 964

974 |

🍏 apple: 965

975 |

🍏 apple: 966

976 |

🍏 apple: 967

977 |

🍏 apple: 968

978 |

🍏 apple: 969

979 |

🍏 apple: 970

980 |

🍏 apple: 971

981 |

🍏 apple: 972

982 |

🍏 apple: 973

983 |

🍏 apple: 974

984 |

🍏 apple: 975

985 |

🍏 apple: 976

986 |

🍏 apple: 977

987 |

🍏 apple: 978

988 |

🍏 apple: 979

989 |

🍏 apple: 980

990 |

🍏 apple: 981

991 |

🍏 apple: 982

992 |

🍏 apple: 983

993 |

🍏 apple: 984

994 |

🍏 apple: 985

995 |

🍏 apple: 986

996 |

🍏 apple: 987

997 |

🍏 apple: 988

998 |

🍏 apple: 989

999 |

🍏 apple: 990

1000 |

🍏 apple: 991

1001 |

🍏 apple: 992

1002 |

🍏 apple: 993

1003 |

🍏 apple: 994

1004 |

🍏 apple: 995

1005 |

🍏 apple: 996

1006 |

🍏 apple: 997

1007 |

🍏 apple: 998

1008 |

🍏 apple: 999

1009 |

🍏 apple: 1000

1010 | 1011 | 1012 | -------------------------------------------------------------------------------- /html/no-script-dcl.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | No Script DCL 7 | 8 | 9 | 12 | 13 | 14 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |

🍏 apple: 1

29 |

🍏 apple: 2

30 |

🍏 apple: 3

31 | 32 | 33 | 34 | 35 |

🍏 apple: 4

36 |

🍏 apple: 5

37 |

🍏 apple: 6

38 | 39 | 40 | 41 | 42 |

🍏 apple: 7

43 |

🍏 apple: 8

44 |

🍏 apple: 9

45 |

🍏 apple: 10

46 | 47 | 48 | -------------------------------------------------------------------------------- /html/parser-blocking.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Parser Blocking 7 | 8 | 9 | 10 |

🍏 apple: 1

11 |

🍏 apple: 2

12 |

🍏 apple: 3

13 |

🍏 apple: 4

14 |

🍏 apple: 5

15 |

🍏 apple: 6

16 |

🍏 apple: 7

17 |

🍏 apple: 8

18 |

🍏 apple: 9

19 |

🍏 apple: 10

20 |

🍏 apple: 11

21 |

🍏 apple: 12

22 |

🍏 apple: 13

23 |

🍏 apple: 14

24 |

🍏 apple: 15

25 |

🍏 apple: 16

26 |

🍏 apple: 17

27 |

🍏 apple: 18

28 |

🍏 apple: 19

29 |

🍏 apple: 20

30 |

🍏 apple: 21

31 |

🍏 apple: 22

32 |

🍏 apple: 23

33 |

🍏 apple: 24

34 |

🍏 apple: 25

35 |

🍏 apple: 26

36 |

🍏 apple: 27

37 |

🍏 apple: 28

38 |

🍏 apple: 29

39 |

🍏 apple: 30

40 | 41 | 42 | 43 | 44 |

🍏 apple: 31

45 |

🍏 apple: 32

46 |

🍏 apple: 33

47 |

🍏 apple: 34

48 |

🍏 apple: 35

49 |

🍏 apple: 36

50 |

🍏 apple: 37

51 |

🍏 apple: 38

52 |

🍏 apple: 39

53 |

🍏 apple: 40

54 | 55 | 56 | 57 | 58 |

🍏 apple: 41

59 |

🍏 apple: 42

60 |

🍏 apple: 43

61 |

🍏 apple: 44

62 |

🍏 apple: 45

63 |

🍏 apple: 46

64 |

🍏 apple: 47

65 |

🍏 apple: 48

66 |

🍏 apple: 49

67 |

🍏 apple: 50

68 | 69 |

🍏 apple: 51

70 |

🍏 apple: 52

71 |

🍏 apple: 53

72 |

🍏 apple: 54

73 |

🍏 apple: 55

74 |

🍏 apple: 56

75 |

🍏 apple: 57

76 |

🍏 apple: 58

77 |

🍏 apple: 59

78 |

🍏 apple: 60

79 |

🍏 apple: 61

80 |

🍏 apple: 62

81 |

🍏 apple: 63

82 |

🍏 apple: 64

83 |

🍏 apple: 65

84 |

🍏 apple: 66

85 |

🍏 apple: 67

86 |

🍏 apple: 68

87 |

🍏 apple: 69

88 |

🍏 apple: 70

89 |

🍏 apple: 71

90 |

🍏 apple: 72

91 |

🍏 apple: 73

92 |

🍏 apple: 74

93 |

🍏 apple: 75

94 |

🍏 apple: 76

95 |

🍏 apple: 77

96 |

🍏 apple: 78

97 |

🍏 apple: 79

98 |

🍏 apple: 80

99 |

🍏 apple: 81

100 |

🍏 apple: 82

101 |

🍏 apple: 83

102 |

🍏 apple: 84

103 |

🍏 apple: 85

104 |

🍏 apple: 86

105 |

🍏 apple: 87

106 |

🍏 apple: 88

107 |

🍏 apple: 89

108 |

🍏 apple: 90

109 |

🍏 apple: 91

110 |

🍏 apple: 92

111 |

🍏 apple: 93

112 |

🍏 apple: 94

113 |

🍏 apple: 95

114 |

🍏 apple: 96

115 |

🍏 apple: 97

116 |

🍏 apple: 98

117 |

🍏 apple: 99

118 |

🍏 apple: 100

119 |

🍏 apple: 101

120 |

🍏 apple: 102

121 |

🍏 apple: 103

122 |

🍏 apple: 104

123 |

🍏 apple: 105

124 |

🍏 apple: 106

125 |

🍏 apple: 107

126 |

🍏 apple: 108

127 |

🍏 apple: 109

128 |

🍏 apple: 110

129 |

🍏 apple: 111

130 |

🍏 apple: 112

131 |

🍏 apple: 113

132 |

🍏 apple: 114

133 |

🍏 apple: 115

134 |

🍏 apple: 116

135 |

🍏 apple: 117

136 |

🍏 apple: 118

137 |

🍏 apple: 119

138 |

🍏 apple: 120

139 |

🍏 apple: 121

140 |

🍏 apple: 122

141 |

🍏 apple: 123

142 |

🍏 apple: 124

143 |

🍏 apple: 125

144 |

🍏 apple: 126

145 |

🍏 apple: 127

146 |

🍏 apple: 128

147 |

🍏 apple: 129

148 |

🍏 apple: 130

149 |

🍏 apple: 131

150 |

🍏 apple: 132

151 |

🍏 apple: 133

152 |

🍏 apple: 134

153 |

🍏 apple: 135

154 |

🍏 apple: 136

155 |

🍏 apple: 137

156 |

🍏 apple: 138

157 |

🍏 apple: 139

158 |

🍏 apple: 140

159 |

🍏 apple: 141

160 |

🍏 apple: 142

161 |

🍏 apple: 143

162 |

🍏 apple: 144

163 |

🍏 apple: 145

164 |

🍏 apple: 146

165 |

🍏 apple: 147

166 |

🍏 apple: 148

167 |

🍏 apple: 149

168 |

🍏 apple: 150

169 |

🍏 apple: 151

170 |

🍏 apple: 152

171 |

🍏 apple: 153

172 |

🍏 apple: 154

173 |

🍏 apple: 155

174 |

🍏 apple: 156

175 |

🍏 apple: 157

176 |

🍏 apple: 158

177 |

🍏 apple: 159

178 |

🍏 apple: 160

179 |

🍏 apple: 161

180 |

🍏 apple: 162

181 |

🍏 apple: 163

182 |

🍏 apple: 164

183 |

🍏 apple: 165

184 |

🍏 apple: 166

185 |

🍏 apple: 167

186 |

🍏 apple: 168

187 |

🍏 apple: 169

188 |

🍏 apple: 170

189 |

🍏 apple: 171

190 |

🍏 apple: 172

191 |

🍏 apple: 173

192 |

🍏 apple: 174

193 |

🍏 apple: 175

194 |

🍏 apple: 176

195 |

🍏 apple: 177

196 |

🍏 apple: 178

197 |

🍏 apple: 179

198 |

🍏 apple: 180

199 |

🍏 apple: 181

200 |

🍏 apple: 182

201 |

🍏 apple: 183

202 |

🍏 apple: 184

203 |

🍏 apple: 185

204 |

🍏 apple: 186

205 |

🍏 apple: 187

206 |

🍏 apple: 188

207 |

🍏 apple: 189

208 |

🍏 apple: 190

209 |

🍏 apple: 191

210 |

🍏 apple: 192

211 |

🍏 apple: 193

212 |

🍏 apple: 194

213 |

🍏 apple: 195

214 |

🍏 apple: 196

215 |

🍏 apple: 197

216 |

🍏 apple: 198

217 |

🍏 apple: 199

218 |

🍏 apple: 200

219 |

🍏 apple: 201

220 |

🍏 apple: 202

221 |

🍏 apple: 203

222 |

🍏 apple: 204

223 |

🍏 apple: 205

224 |

🍏 apple: 206

225 |

🍏 apple: 207

226 |

🍏 apple: 208

227 |

🍏 apple: 209

228 |

🍏 apple: 210

229 |

🍏 apple: 211

230 |

🍏 apple: 212

231 |

🍏 apple: 213

232 |

🍏 apple: 214

233 |

🍏 apple: 215

234 |

🍏 apple: 216

235 |

🍏 apple: 217

236 |

🍏 apple: 218

237 |

🍏 apple: 219

238 |

🍏 apple: 220

239 |

🍏 apple: 221

240 |

🍏 apple: 222

241 |

🍏 apple: 223

242 |

🍏 apple: 224

243 |

🍏 apple: 225

244 |

🍏 apple: 226

245 |

🍏 apple: 227

246 |

🍏 apple: 228

247 |

🍏 apple: 229

248 |

🍏 apple: 230

249 |

🍏 apple: 231

250 |

🍏 apple: 232

251 |

🍏 apple: 233

252 |

🍏 apple: 234

253 |

🍏 apple: 235

254 |

🍏 apple: 236

255 |

🍏 apple: 237

256 |

🍏 apple: 238

257 |

🍏 apple: 239

258 |

🍏 apple: 240

259 |

🍏 apple: 241

260 |

🍏 apple: 242

261 |

🍏 apple: 243

262 |

🍏 apple: 244

263 |

🍏 apple: 245

264 |

🍏 apple: 246

265 |

🍏 apple: 247

266 |

🍏 apple: 248

267 |

🍏 apple: 249

268 |

🍏 apple: 250

269 |

🍏 apple: 251

270 |

🍏 apple: 252

271 |

🍏 apple: 253

272 |

🍏 apple: 254

273 |

🍏 apple: 255

274 |

🍏 apple: 256

275 |

🍏 apple: 257

276 |

🍏 apple: 258

277 |

🍏 apple: 259

278 |

🍏 apple: 260

279 |

🍏 apple: 261

280 |

🍏 apple: 262

281 |

🍏 apple: 263

282 |

🍏 apple: 264

283 |

🍏 apple: 265

284 |

🍏 apple: 266

285 |

🍏 apple: 267

286 |

🍏 apple: 268

287 |

🍏 apple: 269

288 |

🍏 apple: 270

289 |

🍏 apple: 271

290 |

🍏 apple: 272

291 |

🍏 apple: 273

292 |

🍏 apple: 274

293 |

🍏 apple: 275

294 |

🍏 apple: 276

295 |

🍏 apple: 277

296 |

🍏 apple: 278

297 |

🍏 apple: 279

298 |

🍏 apple: 280

299 |

🍏 apple: 281

300 |

🍏 apple: 282

301 |

🍏 apple: 283

302 |

🍏 apple: 284

303 |

🍏 apple: 285

304 |

🍏 apple: 286

305 |

🍏 apple: 287

306 |

🍏 apple: 288

307 |

🍏 apple: 289

308 |

🍏 apple: 290

309 |

🍏 apple: 291

310 |

🍏 apple: 292

311 |

🍏 apple: 293

312 |

🍏 apple: 294

313 |

🍏 apple: 295

314 |

🍏 apple: 296

315 |

🍏 apple: 297

316 |

🍏 apple: 298

317 |

🍏 apple: 299

318 |

🍏 apple: 300

319 |

🍏 apple: 301

320 |

🍏 apple: 302

321 |

🍏 apple: 303

322 |

🍏 apple: 304

323 |

🍏 apple: 305

324 |

🍏 apple: 306

325 |

🍏 apple: 307

326 |

🍏 apple: 308

327 |

🍏 apple: 309

328 |

🍏 apple: 310

329 |

🍏 apple: 311

330 |

🍏 apple: 312

331 |

🍏 apple: 313

332 |

🍏 apple: 314

333 |

🍏 apple: 315

334 |

🍏 apple: 316

335 |

🍏 apple: 317

336 |

🍏 apple: 318

337 |

🍏 apple: 319

338 |

🍏 apple: 320

339 |

🍏 apple: 321

340 |

🍏 apple: 322

341 |

🍏 apple: 323

342 |

🍏 apple: 324

343 |

🍏 apple: 325

344 |

🍏 apple: 326

345 |

🍏 apple: 327

346 |

🍏 apple: 328

347 |

🍏 apple: 329

348 |

🍏 apple: 330

349 |

🍏 apple: 331

350 |

🍏 apple: 332

351 |

🍏 apple: 333

352 |

🍏 apple: 334

353 |

🍏 apple: 335

354 |

🍏 apple: 336

355 |

🍏 apple: 337

356 |

🍏 apple: 338

357 |

🍏 apple: 339

358 |

🍏 apple: 340

359 |

🍏 apple: 341

360 |

🍏 apple: 342

361 |

🍏 apple: 343

362 |

🍏 apple: 344

363 |

🍏 apple: 345

364 |

🍏 apple: 346

365 |

🍏 apple: 347

366 |

🍏 apple: 348

367 |

🍏 apple: 349

368 |

🍏 apple: 350

369 |

🍏 apple: 351

370 |

🍏 apple: 352

371 |

🍏 apple: 353

372 |

🍏 apple: 354

373 |

🍏 apple: 355

374 |

🍏 apple: 356

375 |

🍏 apple: 357

376 |

🍏 apple: 358

377 |

🍏 apple: 359

378 |

🍏 apple: 360

379 |

🍏 apple: 361

380 |

🍏 apple: 362

381 |

🍏 apple: 363

382 |

🍏 apple: 364

383 |

🍏 apple: 365

384 |

🍏 apple: 366

385 |

🍏 apple: 367

386 |

🍏 apple: 368

387 |

🍏 apple: 369

388 |

🍏 apple: 370

389 |

🍏 apple: 371

390 |

🍏 apple: 372

391 |

🍏 apple: 373

392 |

🍏 apple: 374

393 |

🍏 apple: 375

394 |

🍏 apple: 376

395 |

🍏 apple: 377

396 |

🍏 apple: 378

397 |

🍏 apple: 379

398 |

🍏 apple: 380

399 |

🍏 apple: 381

400 |

🍏 apple: 382

401 |

🍏 apple: 383

402 |

🍏 apple: 384

403 |

🍏 apple: 385

404 |

🍏 apple: 386

405 |

🍏 apple: 387

406 |

🍏 apple: 388

407 |

🍏 apple: 389

408 |

🍏 apple: 390

409 |

🍏 apple: 391

410 |

🍏 apple: 392

411 |

🍏 apple: 393

412 |

🍏 apple: 394

413 |

🍏 apple: 395

414 |

🍏 apple: 396

415 |

🍏 apple: 397

416 |

🍏 apple: 398

417 |

🍏 apple: 399

418 |

🍏 apple: 400

419 |

🍏 apple: 401

420 |

🍏 apple: 402

421 |

🍏 apple: 403

422 |

🍏 apple: 404

423 |

🍏 apple: 405

424 |

🍏 apple: 406

425 |

🍏 apple: 407

426 |

🍏 apple: 408

427 |

🍏 apple: 409

428 |

🍏 apple: 410

429 |

🍏 apple: 411

430 |

🍏 apple: 412

431 |

🍏 apple: 413

432 |

🍏 apple: 414

433 |

🍏 apple: 415

434 |

🍏 apple: 416

435 |

🍏 apple: 417

436 |

🍏 apple: 418

437 |

🍏 apple: 419

438 |

🍏 apple: 420

439 |

🍏 apple: 421

440 |

🍏 apple: 422

441 |

🍏 apple: 423

442 |

🍏 apple: 424

443 |

🍏 apple: 425

444 |

🍏 apple: 426

445 |

🍏 apple: 427

446 |

🍏 apple: 428

447 |

🍏 apple: 429

448 |

🍏 apple: 430

449 |

🍏 apple: 431

450 |

🍏 apple: 432

451 |

🍏 apple: 433

452 |

🍏 apple: 434

453 |

🍏 apple: 435

454 |

🍏 apple: 436

455 |

🍏 apple: 437

456 |

🍏 apple: 438

457 |

🍏 apple: 439

458 |

🍏 apple: 440

459 |

🍏 apple: 441

460 |

🍏 apple: 442

461 |

🍏 apple: 443

462 |

🍏 apple: 444

463 |

🍏 apple: 445

464 |

🍏 apple: 446

465 |

🍏 apple: 447

466 |

🍏 apple: 448

467 |

🍏 apple: 449

468 |

🍏 apple: 450

469 |

🍏 apple: 451

470 |

🍏 apple: 452

471 |

🍏 apple: 453

472 |

🍏 apple: 454

473 |

🍏 apple: 455

474 |

🍏 apple: 456

475 |

🍏 apple: 457

476 |

🍏 apple: 458

477 |

🍏 apple: 459

478 |

🍏 apple: 460

479 |

🍏 apple: 461

480 |

🍏 apple: 462

481 |

🍏 apple: 463

482 |

🍏 apple: 464

483 |

🍏 apple: 465

484 |

🍏 apple: 466

485 |

🍏 apple: 467

486 |

🍏 apple: 468

487 |

🍏 apple: 469

488 |

🍏 apple: 470

489 |

🍏 apple: 471

490 |

🍏 apple: 472

491 |

🍏 apple: 473

492 |

🍏 apple: 474

493 |

🍏 apple: 475

494 |

🍏 apple: 476

495 |

🍏 apple: 477

496 |

🍏 apple: 478

497 |

🍏 apple: 479

498 |

🍏 apple: 480

499 |

🍏 apple: 481

500 |

🍏 apple: 482

501 |

🍏 apple: 483

502 |

🍏 apple: 484

503 |

🍏 apple: 485

504 |

🍏 apple: 486

505 |

🍏 apple: 487

506 |

🍏 apple: 488

507 |

🍏 apple: 489

508 |

🍏 apple: 490

509 |

🍏 apple: 491

510 |

🍏 apple: 492

511 |

🍏 apple: 493

512 |

🍏 apple: 494

513 |

🍏 apple: 495

514 |

🍏 apple: 496

515 |

🍏 apple: 497

516 |

🍏 apple: 498

517 |

🍏 apple: 499

518 |

🍏 apple: 500

519 |

🍏 apple: 501

520 |

🍏 apple: 502

521 |

🍏 apple: 503

522 |

🍏 apple: 504

523 |

🍏 apple: 505

524 |

🍏 apple: 506

525 |

🍏 apple: 507

526 |

🍏 apple: 508

527 |

🍏 apple: 509

528 |

🍏 apple: 510

529 |

🍏 apple: 511

530 |

🍏 apple: 512

531 |

🍏 apple: 513

532 |

🍏 apple: 514

533 |

🍏 apple: 515

534 |

🍏 apple: 516

535 |

🍏 apple: 517

536 |

🍏 apple: 518

537 |

🍏 apple: 519

538 |

🍏 apple: 520

539 |

🍏 apple: 521

540 |

🍏 apple: 522

541 |

🍏 apple: 523

542 |

🍏 apple: 524

543 |

🍏 apple: 525

544 |

🍏 apple: 526

545 |

🍏 apple: 527

546 |

🍏 apple: 528

547 |

🍏 apple: 529

548 |

🍏 apple: 530

549 |

🍏 apple: 531

550 |

🍏 apple: 532

551 |

🍏 apple: 533

552 |

🍏 apple: 534

553 |

🍏 apple: 535

554 |

🍏 apple: 536

555 |

🍏 apple: 537

556 |

🍏 apple: 538

557 |

🍏 apple: 539

558 |

🍏 apple: 540

559 |

🍏 apple: 541

560 |

🍏 apple: 542

561 |

🍏 apple: 543

562 |

🍏 apple: 544

563 |

🍏 apple: 545

564 |

🍏 apple: 546

565 |

🍏 apple: 547

566 |

🍏 apple: 548

567 |

🍏 apple: 549

568 |

🍏 apple: 550

569 |

🍏 apple: 551

570 |

🍏 apple: 552

571 |

🍏 apple: 553

572 |

🍏 apple: 554

573 |

🍏 apple: 555

574 |

🍏 apple: 556

575 |

🍏 apple: 557

576 |

🍏 apple: 558

577 |

🍏 apple: 559

578 |

🍏 apple: 560

579 |

🍏 apple: 561

580 |

🍏 apple: 562

581 |

🍏 apple: 563

582 |

🍏 apple: 564

583 |

🍏 apple: 565

584 |

🍏 apple: 566

585 |

🍏 apple: 567

586 |

🍏 apple: 568

587 |

🍏 apple: 569

588 |

🍏 apple: 570

589 |

🍏 apple: 571

590 |

🍏 apple: 572

591 |

🍏 apple: 573

592 |

🍏 apple: 574

593 |

🍏 apple: 575

594 |

🍏 apple: 576

595 |

🍏 apple: 577

596 |

🍏 apple: 578

597 |

🍏 apple: 579

598 |

🍏 apple: 580

599 |

🍏 apple: 581

600 |

🍏 apple: 582

601 |

🍏 apple: 583

602 |

🍏 apple: 584

603 |

🍏 apple: 585

604 |

🍏 apple: 586

605 |

🍏 apple: 587

606 |

🍏 apple: 588

607 |

🍏 apple: 589

608 |

🍏 apple: 590

609 |

🍏 apple: 591

610 |

🍏 apple: 592

611 |

🍏 apple: 593

612 |

🍏 apple: 594

613 |

🍏 apple: 595

614 |

🍏 apple: 596

615 |

🍏 apple: 597

616 |

🍏 apple: 598

617 |

🍏 apple: 599

618 |

🍏 apple: 600

619 |

🍏 apple: 601

620 |

🍏 apple: 602

621 |

🍏 apple: 603

622 |

🍏 apple: 604

623 |

🍏 apple: 605

624 |

🍏 apple: 606

625 |

🍏 apple: 607

626 |

🍏 apple: 608

627 |

🍏 apple: 609

628 |

🍏 apple: 610

629 |

🍏 apple: 611

630 |

🍏 apple: 612

631 |

🍏 apple: 613

632 |

🍏 apple: 614

633 |

🍏 apple: 615

634 |

🍏 apple: 616

635 |

🍏 apple: 617

636 |

🍏 apple: 618

637 |

🍏 apple: 619

638 |

🍏 apple: 620

639 |

🍏 apple: 621

640 |

🍏 apple: 622

641 |

🍏 apple: 623

642 |

🍏 apple: 624

643 |

🍏 apple: 625

644 |

🍏 apple: 626

645 |

🍏 apple: 627

646 |

🍏 apple: 628

647 |

🍏 apple: 629

648 |

🍏 apple: 630

649 |

🍏 apple: 631

650 |

🍏 apple: 632

651 |

🍏 apple: 633

652 |

🍏 apple: 634

653 |

🍏 apple: 635

654 |

🍏 apple: 636

655 |

🍏 apple: 637

656 |

🍏 apple: 638

657 |

🍏 apple: 639

658 |

🍏 apple: 640

659 |

🍏 apple: 641

660 |

🍏 apple: 642

661 |

🍏 apple: 643

662 |

🍏 apple: 644

663 |

🍏 apple: 645

664 |

🍏 apple: 646

665 |

🍏 apple: 647

666 |

🍏 apple: 648

667 |

🍏 apple: 649

668 |

🍏 apple: 650

669 |

🍏 apple: 651

670 |

🍏 apple: 652

671 |

🍏 apple: 653

672 |

🍏 apple: 654

673 |

🍏 apple: 655

674 |

🍏 apple: 656

675 |

🍏 apple: 657

676 |

🍏 apple: 658

677 |

🍏 apple: 659

678 |

🍏 apple: 660

679 |

🍏 apple: 661

680 |

🍏 apple: 662

681 |

🍏 apple: 663

682 |

🍏 apple: 664

683 |

🍏 apple: 665

684 |

🍏 apple: 666

685 |

🍏 apple: 667

686 |

🍏 apple: 668

687 |

🍏 apple: 669

688 |

🍏 apple: 670

689 |

🍏 apple: 671

690 |

🍏 apple: 672

691 |

🍏 apple: 673

692 |

🍏 apple: 674

693 |

🍏 apple: 675

694 |

🍏 apple: 676

695 |

🍏 apple: 677

696 |

🍏 apple: 678

697 |

🍏 apple: 679

698 |

🍏 apple: 680

699 |

🍏 apple: 681

700 |

🍏 apple: 682

701 |

🍏 apple: 683

702 |

🍏 apple: 684

703 |

🍏 apple: 685

704 |

🍏 apple: 686

705 |

🍏 apple: 687

706 |

🍏 apple: 688

707 |

🍏 apple: 689

708 |

🍏 apple: 690

709 |

🍏 apple: 691

710 |

🍏 apple: 692

711 |

🍏 apple: 693

712 |

🍏 apple: 694

713 |

🍏 apple: 695

714 |

🍏 apple: 696

715 |

🍏 apple: 697

716 |

🍏 apple: 698

717 |

🍏 apple: 699

718 |

🍏 apple: 700

719 |

🍏 apple: 701

720 |

🍏 apple: 702

721 |

🍏 apple: 703

722 |

🍏 apple: 704

723 |

🍏 apple: 705

724 |

🍏 apple: 706

725 |

🍏 apple: 707

726 |

🍏 apple: 708

727 |

🍏 apple: 709

728 |

🍏 apple: 710

729 |

🍏 apple: 711

730 |

🍏 apple: 712

731 |

🍏 apple: 713

732 |

🍏 apple: 714

733 |

🍏 apple: 715

734 |

🍏 apple: 716

735 |

🍏 apple: 717

736 |

🍏 apple: 718

737 |

🍏 apple: 719

738 |

🍏 apple: 720

739 |

🍏 apple: 721

740 |

🍏 apple: 722

741 |

🍏 apple: 723

742 |

🍏 apple: 724

743 |

🍏 apple: 725

744 |

🍏 apple: 726

745 |

🍏 apple: 727

746 |

🍏 apple: 728

747 |

🍏 apple: 729

748 |

🍏 apple: 730

749 |

🍏 apple: 731

750 |

🍏 apple: 732

751 |

🍏 apple: 733

752 |

🍏 apple: 734

753 |

🍏 apple: 735

754 |

🍏 apple: 736

755 |

🍏 apple: 737

756 |

🍏 apple: 738

757 |

🍏 apple: 739

758 |

🍏 apple: 740

759 |

🍏 apple: 741

760 |

🍏 apple: 742

761 |

🍏 apple: 743

762 |

🍏 apple: 744

763 |

🍏 apple: 745

764 |

🍏 apple: 746

765 |

🍏 apple: 747

766 |

🍏 apple: 748

767 |

🍏 apple: 749

768 |

🍏 apple: 750

769 |

🍏 apple: 751

770 |

🍏 apple: 752

771 |

🍏 apple: 753

772 |

🍏 apple: 754

773 |

🍏 apple: 755

774 |

🍏 apple: 756

775 |

🍏 apple: 757

776 |

🍏 apple: 758

777 |

🍏 apple: 759

778 |

🍏 apple: 760

779 |

🍏 apple: 761

780 |

🍏 apple: 762

781 |

🍏 apple: 763

782 |

🍏 apple: 764

783 |

🍏 apple: 765

784 |

🍏 apple: 766

785 |

🍏 apple: 767

786 |

🍏 apple: 768

787 |

🍏 apple: 769

788 |

🍏 apple: 770

789 |

🍏 apple: 771

790 |

🍏 apple: 772

791 |

🍏 apple: 773

792 |

🍏 apple: 774

793 |

🍏 apple: 775

794 |

🍏 apple: 776

795 |

🍏 apple: 777

796 |

🍏 apple: 778

797 |

🍏 apple: 779

798 |

🍏 apple: 780

799 |

🍏 apple: 781

800 |

🍏 apple: 782

801 |

🍏 apple: 783

802 |

🍏 apple: 784

803 |

🍏 apple: 785

804 |

🍏 apple: 786

805 |

🍏 apple: 787

806 |

🍏 apple: 788

807 |

🍏 apple: 789

808 |

🍏 apple: 790

809 |

🍏 apple: 791

810 |

🍏 apple: 792

811 |

🍏 apple: 793

812 |

🍏 apple: 794

813 |

🍏 apple: 795

814 |

🍏 apple: 796

815 |

🍏 apple: 797

816 |

🍏 apple: 798

817 |

🍏 apple: 799

818 |

🍏 apple: 800

819 |

🍏 apple: 801

820 |

🍏 apple: 802

821 |

🍏 apple: 803

822 |

🍏 apple: 804

823 |

🍏 apple: 805

824 |

🍏 apple: 806

825 |

🍏 apple: 807

826 |

🍏 apple: 808

827 |

🍏 apple: 809

828 |

🍏 apple: 810

829 |

🍏 apple: 811

830 |

🍏 apple: 812

831 |

🍏 apple: 813

832 |

🍏 apple: 814

833 |

🍏 apple: 815

834 |

🍏 apple: 816

835 |

🍏 apple: 817

836 |

🍏 apple: 818

837 |

🍏 apple: 819

838 |

🍏 apple: 820

839 |

🍏 apple: 821

840 |

🍏 apple: 822

841 |

🍏 apple: 823

842 |

🍏 apple: 824

843 |

🍏 apple: 825

844 |

🍏 apple: 826

845 |

🍏 apple: 827

846 |

🍏 apple: 828

847 |

🍏 apple: 829

848 |

🍏 apple: 830

849 |

🍏 apple: 831

850 |

🍏 apple: 832

851 |

🍏 apple: 833

852 |

🍏 apple: 834

853 |

🍏 apple: 835

854 |

🍏 apple: 836

855 |

🍏 apple: 837

856 |

🍏 apple: 838

857 |

🍏 apple: 839

858 |

🍏 apple: 840

859 |

🍏 apple: 841

860 |

🍏 apple: 842

861 |

🍏 apple: 843

862 |

🍏 apple: 844

863 |

🍏 apple: 845

864 |

🍏 apple: 846

865 |

🍏 apple: 847

866 |

🍏 apple: 848

867 |

🍏 apple: 849

868 |

🍏 apple: 850

869 |

🍏 apple: 851

870 |

🍏 apple: 852

871 |

🍏 apple: 853

872 |

🍏 apple: 854

873 |

🍏 apple: 855

874 |

🍏 apple: 856

875 |

🍏 apple: 857

876 |

🍏 apple: 858

877 |

🍏 apple: 859

878 |

🍏 apple: 860

879 |

🍏 apple: 861

880 |

🍏 apple: 862

881 |

🍏 apple: 863

882 |

🍏 apple: 864

883 |

🍏 apple: 865

884 |

🍏 apple: 866

885 |

🍏 apple: 867

886 |

🍏 apple: 868

887 |

🍏 apple: 869

888 |

🍏 apple: 870

889 |

🍏 apple: 871

890 |

🍏 apple: 872

891 |

🍏 apple: 873

892 |

🍏 apple: 874

893 |

🍏 apple: 875

894 |

🍏 apple: 876

895 |

🍏 apple: 877

896 |

🍏 apple: 878

897 |

🍏 apple: 879

898 |

🍏 apple: 880

899 |

🍏 apple: 881

900 |

🍏 apple: 882

901 |

🍏 apple: 883

902 |

🍏 apple: 884

903 |

🍏 apple: 885

904 |

🍏 apple: 886

905 |

🍏 apple: 887

906 |

🍏 apple: 888

907 |

🍏 apple: 889

908 |

🍏 apple: 890

909 |

🍏 apple: 891

910 |

🍏 apple: 892

911 |

🍏 apple: 893

912 |

🍏 apple: 894

913 |

🍏 apple: 895

914 |

🍏 apple: 896

915 |

🍏 apple: 897

916 |

🍏 apple: 898

917 |

🍏 apple: 899

918 |

🍏 apple: 900

919 |

🍏 apple: 901

920 |

🍏 apple: 902

921 |

🍏 apple: 903

922 |

🍏 apple: 904

923 |

🍏 apple: 905

924 |

🍏 apple: 906

925 |

🍏 apple: 907

926 |

🍏 apple: 908

927 |

🍏 apple: 909

928 |

🍏 apple: 910

929 |

🍏 apple: 911

930 |

🍏 apple: 912

931 |

🍏 apple: 913

932 |

🍏 apple: 914

933 |

🍏 apple: 915

934 |

🍏 apple: 916

935 |

🍏 apple: 917

936 |

🍏 apple: 918

937 |

🍏 apple: 919

938 |

🍏 apple: 920

939 |

🍏 apple: 921

940 |

🍏 apple: 922

941 |

🍏 apple: 923

942 |

🍏 apple: 924

943 |

🍏 apple: 925

944 |

🍏 apple: 926

945 |

🍏 apple: 927

946 |

🍏 apple: 928

947 |

🍏 apple: 929

948 |

🍏 apple: 930

949 |

🍏 apple: 931

950 |

🍏 apple: 932

951 |

🍏 apple: 933

952 |

🍏 apple: 934

953 |

🍏 apple: 935

954 |

🍏 apple: 936

955 |

🍏 apple: 937

956 |

🍏 apple: 938

957 |

🍏 apple: 939

958 |

🍏 apple: 940

959 |

🍏 apple: 941

960 |

🍏 apple: 942

961 |

🍏 apple: 943

962 |

🍏 apple: 944

963 |

🍏 apple: 945

964 |

🍏 apple: 946

965 |

🍏 apple: 947

966 |

🍏 apple: 948

967 |

🍏 apple: 949

968 |

🍏 apple: 950

969 |

🍏 apple: 951

970 |

🍏 apple: 952

971 |

🍏 apple: 953

972 |

🍏 apple: 954

973 |

🍏 apple: 955

974 |

🍏 apple: 956

975 |

🍏 apple: 957

976 |

🍏 apple: 958

977 |

🍏 apple: 959

978 |

🍏 apple: 960

979 |

🍏 apple: 961

980 |

🍏 apple: 962

981 |

🍏 apple: 963

982 |

🍏 apple: 964

983 |

🍏 apple: 965

984 |

🍏 apple: 966

985 |

🍏 apple: 967

986 |

🍏 apple: 968

987 |

🍏 apple: 969

988 |

🍏 apple: 970

989 |

🍏 apple: 971

990 |

🍏 apple: 972

991 |

🍏 apple: 973

992 |

🍏 apple: 974

993 |

🍏 apple: 975

994 |

🍏 apple: 976

995 |

🍏 apple: 977

996 |

🍏 apple: 978

997 |

🍏 apple: 979

998 |

🍏 apple: 980

999 |

🍏 apple: 981

1000 |

🍏 apple: 982

1001 |

🍏 apple: 983

1002 |

🍏 apple: 984

1003 |

🍏 apple: 985

1004 |

🍏 apple: 986

1005 |

🍏 apple: 987

1006 |

🍏 apple: 988

1007 |

🍏 apple: 989

1008 |

🍏 apple: 990

1009 |

🍏 apple: 991

1010 |

🍏 apple: 992

1011 |

🍏 apple: 993

1012 |

🍏 apple: 994

1013 |

🍏 apple: 995

1014 |

🍏 apple: 996

1015 |

🍏 apple: 997

1016 |

🍏 apple: 998

1017 |

🍏 apple: 999

1018 |

🍏 apple: 1000

1019 | 1020 | 1021 | -------------------------------------------------------------------------------- /html/render-blocking.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Render Blocking 7 | 8 | 9 | 10 |

🍏 apple: 1

11 |

🍏 apple: 2

12 |

🍏 apple: 3

13 | 14 | 15 | 16 | 17 |

🍏 apple: 4

18 |

🍏 apple: 5

19 |

🍏 apple: 6

20 | 21 | 22 | 23 | 24 |

🍏 apple: 7

25 |

🍏 apple: 8

26 |

🍏 apple: 9

27 |

🍏 apple: 10

28 | 29 | 30 | -------------------------------------------------------------------------------- /html/rendering.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Rendering Test 4 | 5 | 6 | 7 | 8 | 9 |

I am first!

10 | 11 | 12 | 13 |

I am second!

14 | 15 | 16 | 17 |

I am third!

18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /html/script-blocking.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Script Blocking 7 | 8 | 9 | 10 |

🍏 apple: 1

11 |

🍏 apple: 2

12 |

🍏 apple: 3

13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |

🍏 apple: 4

21 |

🍏 apple: 5

22 |

🍏 apple: 6

23 |

🍏 apple: 7

24 |

🍏 apple: 8

25 |

🍏 apple: 9

26 |

🍏 apple: 10

27 | 28 | 29 | -------------------------------------------------------------------------------- /js/common.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/course-one/browser-rendering-test/d09896e6b970c984ffddd9ec5dd7e50349b8923b/js/common.js -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | // start timer 2 | console.time('DOMContentLoaded'); 3 | console.time('window.onload'); 4 | 5 | // log DOMContentLoaded event 6 | document.addEventListener( 'DOMContentLoaded', () => { 7 | console.log( 'DOMContentLoaded' ); 8 | console.timeEnd('DOMContentLoaded'); 9 | } ); 10 | 11 | // log window.onload event 12 | window.addEventListener( 'load', () => { 13 | console.log( 'window.onload' ); 14 | console.timeEnd('window.onload'); 15 | } ); -------------------------------------------------------------------------------- /js/sample.js: -------------------------------------------------------------------------------- 1 | console.log( 'Hello World!' ); -------------------------------------------------------------------------------- /js/vendor.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/course-one/browser-rendering-test/d09896e6b970c984ffddd9ec5dd7e50349b8923b/js/vendor.js -------------------------------------------------------------------------------- /lib/crp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/course-one/browser-rendering-test/d09896e6b970c984ffddd9ec5dd7e50349b8923b/lib/crp.png -------------------------------------------------------------------------------- /lib/cssom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/course-one/browser-rendering-test/d09896e6b970c984ffddd9ec5dd7e50349b8923b/lib/cssom.png -------------------------------------------------------------------------------- /lib/dom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/course-one/browser-rendering-test/d09896e6b970c984ffddd9ec5dd7e50349b8923b/lib/dom.png -------------------------------------------------------------------------------- /lib/render-tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/course-one/browser-rendering-test/d09896e6b970c984ffddd9ec5dd7e50349b8923b/lib/render-tree.png -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "browser-rendering-test", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "accepts": { 8 | "version": "1.3.7", 9 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 10 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 11 | "requires": { 12 | "mime-types": "~2.1.24", 13 | "negotiator": "0.6.2" 14 | } 15 | }, 16 | "array-flatten": { 17 | "version": "1.1.1", 18 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 19 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 20 | }, 21 | "body-parser": { 22 | "version": "1.19.0", 23 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 24 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 25 | "requires": { 26 | "bytes": "3.1.0", 27 | "content-type": "~1.0.4", 28 | "debug": "2.6.9", 29 | "depd": "~1.1.2", 30 | "http-errors": "1.7.2", 31 | "iconv-lite": "0.4.24", 32 | "on-finished": "~2.3.0", 33 | "qs": "6.7.0", 34 | "raw-body": "2.4.0", 35 | "type-is": "~1.6.17" 36 | } 37 | }, 38 | "bytes": { 39 | "version": "3.1.0", 40 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 41 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" 42 | }, 43 | "content-disposition": { 44 | "version": "0.5.3", 45 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 46 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 47 | "requires": { 48 | "safe-buffer": "5.1.2" 49 | } 50 | }, 51 | "content-type": { 52 | "version": "1.0.4", 53 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 54 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 55 | }, 56 | "cookie": { 57 | "version": "0.4.0", 58 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 59 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 60 | }, 61 | "cookie-signature": { 62 | "version": "1.0.6", 63 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 64 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 65 | }, 66 | "debug": { 67 | "version": "2.6.9", 68 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 69 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 70 | "requires": { 71 | "ms": "2.0.0" 72 | } 73 | }, 74 | "depd": { 75 | "version": "1.1.2", 76 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 77 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 78 | }, 79 | "destroy": { 80 | "version": "1.0.4", 81 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 82 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 83 | }, 84 | "ee-first": { 85 | "version": "1.1.1", 86 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 87 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 88 | }, 89 | "encodeurl": { 90 | "version": "1.0.2", 91 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 92 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 93 | }, 94 | "escape-html": { 95 | "version": "1.0.3", 96 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 97 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 98 | }, 99 | "etag": { 100 | "version": "1.8.1", 101 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 102 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 103 | }, 104 | "express": { 105 | "version": "4.17.1", 106 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 107 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 108 | "requires": { 109 | "accepts": "~1.3.7", 110 | "array-flatten": "1.1.1", 111 | "body-parser": "1.19.0", 112 | "content-disposition": "0.5.3", 113 | "content-type": "~1.0.4", 114 | "cookie": "0.4.0", 115 | "cookie-signature": "1.0.6", 116 | "debug": "2.6.9", 117 | "depd": "~1.1.2", 118 | "encodeurl": "~1.0.2", 119 | "escape-html": "~1.0.3", 120 | "etag": "~1.8.1", 121 | "finalhandler": "~1.1.2", 122 | "fresh": "0.5.2", 123 | "merge-descriptors": "1.0.1", 124 | "methods": "~1.1.2", 125 | "on-finished": "~2.3.0", 126 | "parseurl": "~1.3.3", 127 | "path-to-regexp": "0.1.7", 128 | "proxy-addr": "~2.0.5", 129 | "qs": "6.7.0", 130 | "range-parser": "~1.2.1", 131 | "safe-buffer": "5.1.2", 132 | "send": "0.17.1", 133 | "serve-static": "1.14.1", 134 | "setprototypeof": "1.1.1", 135 | "statuses": "~1.5.0", 136 | "type-is": "~1.6.18", 137 | "utils-merge": "1.0.1", 138 | "vary": "~1.1.2" 139 | } 140 | }, 141 | "finalhandler": { 142 | "version": "1.1.2", 143 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 144 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 145 | "requires": { 146 | "debug": "2.6.9", 147 | "encodeurl": "~1.0.2", 148 | "escape-html": "~1.0.3", 149 | "on-finished": "~2.3.0", 150 | "parseurl": "~1.3.3", 151 | "statuses": "~1.5.0", 152 | "unpipe": "~1.0.0" 153 | } 154 | }, 155 | "forwarded": { 156 | "version": "0.1.2", 157 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 158 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" 159 | }, 160 | "fresh": { 161 | "version": "0.5.2", 162 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 163 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 164 | }, 165 | "http-errors": { 166 | "version": "1.7.2", 167 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 168 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 169 | "requires": { 170 | "depd": "~1.1.2", 171 | "inherits": "2.0.3", 172 | "setprototypeof": "1.1.1", 173 | "statuses": ">= 1.5.0 < 2", 174 | "toidentifier": "1.0.0" 175 | } 176 | }, 177 | "iconv-lite": { 178 | "version": "0.4.24", 179 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 180 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 181 | "requires": { 182 | "safer-buffer": ">= 2.1.2 < 3" 183 | } 184 | }, 185 | "inherits": { 186 | "version": "2.0.3", 187 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 188 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 189 | }, 190 | "ipaddr.js": { 191 | "version": "1.9.1", 192 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 193 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 194 | }, 195 | "media-typer": { 196 | "version": "0.3.0", 197 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 198 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 199 | }, 200 | "merge-descriptors": { 201 | "version": "1.0.1", 202 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 203 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 204 | }, 205 | "methods": { 206 | "version": "1.1.2", 207 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 208 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 209 | }, 210 | "mime": { 211 | "version": "1.6.0", 212 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 213 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 214 | }, 215 | "mime-db": { 216 | "version": "1.44.0", 217 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", 218 | "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" 219 | }, 220 | "mime-types": { 221 | "version": "2.1.27", 222 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", 223 | "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", 224 | "requires": { 225 | "mime-db": "1.44.0" 226 | } 227 | }, 228 | "ms": { 229 | "version": "2.0.0", 230 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 231 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 232 | }, 233 | "negotiator": { 234 | "version": "0.6.2", 235 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 236 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" 237 | }, 238 | "on-finished": { 239 | "version": "2.3.0", 240 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 241 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 242 | "requires": { 243 | "ee-first": "1.1.1" 244 | } 245 | }, 246 | "parseurl": { 247 | "version": "1.3.3", 248 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 249 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 250 | }, 251 | "path-to-regexp": { 252 | "version": "0.1.7", 253 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 254 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 255 | }, 256 | "proxy-addr": { 257 | "version": "2.0.6", 258 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", 259 | "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", 260 | "requires": { 261 | "forwarded": "~0.1.2", 262 | "ipaddr.js": "1.9.1" 263 | } 264 | }, 265 | "qs": { 266 | "version": "6.7.0", 267 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 268 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" 269 | }, 270 | "range-parser": { 271 | "version": "1.2.1", 272 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 273 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 274 | }, 275 | "raw-body": { 276 | "version": "2.4.0", 277 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 278 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 279 | "requires": { 280 | "bytes": "3.1.0", 281 | "http-errors": "1.7.2", 282 | "iconv-lite": "0.4.24", 283 | "unpipe": "1.0.0" 284 | } 285 | }, 286 | "safe-buffer": { 287 | "version": "5.1.2", 288 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 289 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 290 | }, 291 | "safer-buffer": { 292 | "version": "2.1.2", 293 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 294 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 295 | }, 296 | "send": { 297 | "version": "0.17.1", 298 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 299 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 300 | "requires": { 301 | "debug": "2.6.9", 302 | "depd": "~1.1.2", 303 | "destroy": "~1.0.4", 304 | "encodeurl": "~1.0.2", 305 | "escape-html": "~1.0.3", 306 | "etag": "~1.8.1", 307 | "fresh": "0.5.2", 308 | "http-errors": "~1.7.2", 309 | "mime": "1.6.0", 310 | "ms": "2.1.1", 311 | "on-finished": "~2.3.0", 312 | "range-parser": "~1.2.1", 313 | "statuses": "~1.5.0" 314 | }, 315 | "dependencies": { 316 | "ms": { 317 | "version": "2.1.1", 318 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 319 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 320 | } 321 | } 322 | }, 323 | "serve-static": { 324 | "version": "1.14.1", 325 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 326 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 327 | "requires": { 328 | "encodeurl": "~1.0.2", 329 | "escape-html": "~1.0.3", 330 | "parseurl": "~1.3.3", 331 | "send": "0.17.1" 332 | } 333 | }, 334 | "setprototypeof": { 335 | "version": "1.1.1", 336 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 337 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 338 | }, 339 | "statuses": { 340 | "version": "1.5.0", 341 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 342 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 343 | }, 344 | "toidentifier": { 345 | "version": "1.0.0", 346 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 347 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" 348 | }, 349 | "type-is": { 350 | "version": "1.6.18", 351 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 352 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 353 | "requires": { 354 | "media-typer": "0.3.0", 355 | "mime-types": "~2.1.24" 356 | } 357 | }, 358 | "unpipe": { 359 | "version": "1.0.0", 360 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 361 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 362 | }, 363 | "utils-merge": { 364 | "version": "1.0.1", 365 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 366 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 367 | }, 368 | "vary": { 369 | "version": "1.1.2", 370 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 371 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 372 | } 373 | } 374 | } 375 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "browser-rendering-test", 3 | "version": "1.0.0", 4 | "description": "Sample code base to test how a browser renders a webpage.", 5 | "private": true, 6 | "dependencies": { 7 | "express": "^4.17.1" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /res/nature.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/course-one/browser-rendering-test/d09896e6b970c984ffddd9ec5dd7e50349b8923b/res/nature.jpg -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | const express = require( 'express' ); 2 | const path = require( 'path' ); 3 | 4 | // create react app 5 | const app = express(); 6 | 7 | // return file immediately (parent directory) 8 | app.get( '/:file', ( req, res ) => { 9 | res.sendFile( path.resolve( __dirname, req.params.file ) ); 10 | } ); 11 | 12 | // return file immediately (nested directory) 13 | app.get( '/:dir/:file', ( req, res ) => { 14 | res.sendFile( path.resolve( __dirname, req.params.dir, req.params.file ) ); 15 | } ); 16 | 17 | // return a file with provided delay 18 | app.get( '/:delay/:dir/:file', ( req, res ) => { 19 | setTimeout( () => { 20 | res.sendFile( path.resolve( __dirname, req.params.dir, req.params.file ) ); 21 | }, Number( req.params.delay ) ); 22 | } ); 23 | 24 | // serve express application 25 | app.listen( 8088, () => console.log( 'Server started on port: 8088' ) ); 26 | --------------------------------------------------------------------------------