File size: 170,393 Bytes
f2fa63a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
<!DOCTYPE html><html lang="C"><head><title>Hello!</title><meta property="og:title" content="Hello!"><meta charset="UTF-8"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1.0"><meta name="apple-mobile-web-app-capable" content="yes"><meta http-equiv="X-UA-Compatible" content="ie=edge"><meta property="og:type" content="website"><meta name="twitter:card" content="summary"><style>@media screen{body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button{appearance:none;background-color:initial;border:0;color:inherit;cursor:pointer;font-size:inherit;opacity:.8;outline:none;padding:0;transition:opacity .2s linear;-webkit-tap-highlight-color:transparent}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:disabled,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button:disabled{cursor:not-allowed;opacity:.15!important}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button:hover{opacity:1}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:active,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button:hover:active{opacity:.6}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:not(:disabled),body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button:hover:not(:disabled){transition:none}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-prev{background:#0000 url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNNjggOTAgMjggNTBsNDAtNDAiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-next{background:#0000 url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJtMzIgOTAgNDAtNDAtNDAtNDAiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen]{background:#0000 url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgeD0iMTAiIHk9IjIwIiBjbGFzcz0iYSIgcng9IjUuNjciLz48cGF0aCBkPSJNNDAgNzBIMjBWNTBtMjAgMEwyMCA3MG00MC00MGgyMHYyMG0tMjAgMCAyMC0yMCIgY2xhc3M9ImEiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen]{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgeD0iMTAiIHk9IjIwIiBjbGFzcz0iYSIgcng9IjUuNjciLz48cGF0aCBkPSJNMjAgNTBoMjB2MjBtLTIwIDAgMjAtMjBtNDAgMEg2MFYzMG0yMCAwTDYwIDUwIiBjbGFzcz0iYSIvPjwvc3ZnPg==")}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter]{background:#0000 url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNODcuOCA0Ny41Qzg5IDUwIDg3LjcgNTIgODUgNTJIMzVhOC43IDguNyAwIDAgMS03LjItNC41bC0xNS42LTMxQzExIDE0IDEyLjIgMTIgMTUgMTJoNTBhOC44IDguOCAwIDAgMSA3LjIgNC41ek02MCA1MnYzNm0tMTAgMGgyME00NSA0MmgyMCIvPjwvc3ZnPg==") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button.bespoke-marp-presenter-note-bigger{background:#0000 url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNMTIgNTBoODBNNTIgOTBWMTAiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button.bespoke-marp-presenter-note-smaller{background:#0000 url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNMTIgNTBoODAiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}}@keyframes __bespoke_marp_transition_reduced_outgoing__{0%{opacity:1}to{opacity:0}}@keyframes __bespoke_marp_transition_reduced_incoming__{0%{mix-blend-mode:plus-lighter;opacity:0}to{mix-blend-mode:plus-lighter;opacity:1}}.bespoke-marp-note,.bespoke-marp-osc,.bespoke-progress-parent{display:none;transition:none}@media screen{::view-transition-group(*){animation-duration:var(--marp-bespoke-transition-animation-duration,.5s);animation-timing-function:ease}::view-transition-new(*),::view-transition-old(*){animation-delay:0s;animation-direction:var(--marp-bespoke-transition-animation-direction,normal);animation-duration:var(--marp-bespoke-transition-animation-duration,.5s);animation-fill-mode:both;animation-name:var(--marp-bespoke-transition-animation-name,var(--marp-bespoke-transition-animation-name-fallback,__bespoke_marp_transition_no_animation__));mix-blend-mode:normal}::view-transition-old(*){--marp-bespoke-transition-animation-name-fallback:__bespoke_marp_transition_reduced_outgoing__;animation-timing-function:ease}::view-transition-new(*){--marp-bespoke-transition-animation-name-fallback:__bespoke_marp_transition_reduced_incoming__;animation-timing-function:ease}::view-transition-new(root),::view-transition-old(root){animation-timing-function:linear}::view-transition-new(__bespoke_marp_transition_osc__),::view-transition-old(__bespoke_marp_transition_osc__){animation-duration:0s!important;animation-name:__bespoke_marp_transition_osc__!important}::view-transition-new(__bespoke_marp_transition_osc__){opacity:0!important}.bespoke-marp-transition-warming-up::view-transition-group(*),.bespoke-marp-transition-warming-up::view-transition-new(*),.bespoke-marp-transition-warming-up::view-transition-old(*){animation-play-state:paused!important}body,html{height:100%;margin:0}body{background:#000;overflow:hidden}svg.bespoke-marp-slide{content-visibility:hidden;opacity:0;pointer-events:none;z-index:-1}svg.bespoke-marp-slide:not(.bespoke-marp-active) *{view-transition-name:none!important}svg.bespoke-marp-slide.bespoke-marp-active{content-visibility:visible;opacity:1;pointer-events:auto;z-index:0}svg.bespoke-marp-slide.bespoke-marp-active.bespoke-marp-active-ready *{animation-name:__bespoke_marp__!important}@supports not (content-visibility:hidden){svg.bespoke-marp-slide[data-bespoke-marp-load=hideable]{display:none}svg.bespoke-marp-slide[data-bespoke-marp-load=hideable].bespoke-marp-active{display:block}}}@media screen and (prefers-reduced-motion:reduce){svg.bespoke-marp-slide *{view-transition-name:none!important}}@media screen{[data-bespoke-marp-fragment=inactive]{visibility:hidden}body[data-bespoke-view=""] .bespoke-marp-parent,body[data-bespoke-view=next] .bespoke-marp-parent{inset:0;position:absolute}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc{background:#000000a6;border-radius:7px;bottom:50px;color:#fff;contain:paint;display:block;font-family:Helvetica,Arial,sans-serif;font-size:16px;left:50%;line-height:0;opacity:1;padding:12px;position:absolute;touch-action:manipulation;transform:translateX(-50%);transition:opacity .2s linear;-webkit-user-select:none;user-select:none;white-space:nowrap;will-change:transform;z-index:1;view-transition-name:__bespoke_marp_transition_osc__}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>*,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>*{margin-left:6px}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>:first-child,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>:first-child{margin-left:0}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>span,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span{opacity:.8}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page]{display:inline-block;min-width:140px;text-align:center}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev]{height:32px;line-height:32px;width:32px}body[data-bespoke-view=""] .bespoke-marp-parent.bespoke-marp-inactive,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive{cursor:none}body[data-bespoke-view=""] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc{opacity:0;pointer-events:none}body[data-bespoke-view=""] svg.bespoke-marp-slide,body[data-bespoke-view=next] svg.bespoke-marp-slide{height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=""] .bespoke-progress-parent{background:#222;display:flex;height:5px;width:100%}body[data-bespoke-view=""] .bespoke-progress-parent+.bespoke-marp-parent{top:5px}body[data-bespoke-view=""] .bespoke-progress-parent .bespoke-progress-bar{background:#0288d1;flex:0 0 0;transition:flex-basis .2s cubic-bezier(0,1,1,1)}body[data-bespoke-view=next]{background:#0000}body[data-bespoke-view=presenter]{background:#161616}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container{display:grid;font-family:Helvetica,Arial,sans-serif;grid-template:"current dragbar next" minmax(140px,1fr) "current dragbar note" 2fr "info    dragbar note" 3em;grid-template-columns:minmax(3px,var(--bespoke-marp-presenter-split-ratio,66%)) 0 minmax(3px,1fr);height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent{grid-area:current;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide{height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide.bespoke-marp-active{filter:drop-shadow(0 3px 10px rgba(0,0,0,.5))}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-dragbar-container{background:#0288d1;cursor:col-resize;grid-area:dragbar;margin-left:-3px;opacity:0;position:relative;transition:opacity .4s linear .1s;width:6px;z-index:10}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-dragbar-container:hover{opacity:1}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-dragbar-container.active{opacity:1;transition-delay:0s}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container{background:#222;cursor:pointer;display:none;grid-area:next;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container iframe.bespoke-marp-presenter-next{background:#0000;border:0;display:block;filter:drop-shadow(0 3px 10px rgba(0,0,0,.5));height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container{background:#222;color:#eee;grid-area:note;position:relative;z-index:1}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button{height:1.5em;line-height:1.5em;width:1.5em}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-presenter-note-wrapper{display:block;inset:0;position:absolute}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-presenter-note-buttons{background:#000000a6;border-radius:4px;bottom:0;display:flex;gap:4px;margin:12px;opacity:0;padding:6px;pointer-events:none;position:absolute;right:0;transition:opacity .2s linear}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-presenter-note-buttons:focus-within,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-presenter-note-wrapper:focus-within+.bespoke-marp-presenter-note-buttons,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container:hover .bespoke-marp-presenter-note-buttons{opacity:1;pointer-events:auto}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note{box-sizing:border-box;font-size:calc(1.1em*var(--bespoke-marp-note-font-scale, 1));height:calc(100% - 40px);margin:20px;overflow:auto;padding-right:3px;white-space:pre-wrap;width:calc(100% - 40px);word-wrap:break-word;scrollbar-color:#eeeeee80 #0000;scrollbar-width:thin}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar{width:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-track{background:#0000}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-thumb{background:#eeeeee80;border-radius:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note:empty{pointer-events:none}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:first-child{margin-top:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:last-child{margin-bottom:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container{align-items:center;box-sizing:border-box;color:#eee;display:flex;flex-wrap:nowrap;grid-area:info;justify-content:center;overflow:hidden;padding:0 10px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{box-sizing:border-box;display:block;padding:0 10px;white-space:nowrap;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button{height:1.5em;line-height:1.5em;width:1.5em}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page{order:2;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page .bespoke-marp-presenter-info-page-text{display:inline-block;min-width:120px;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time{color:#999;order:1;text-align:left}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{color:#999;order:3;text-align:right}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer:hover{cursor:pointer}}@media print{.bespoke-marp-presenter-info-container,.bespoke-marp-presenter-next-container,.bespoke-marp-presenter-note-container{display:none}}</style><style>@import url('https://fonts.cdnfonts.com/css/fira-sans?styles=20119');div#\:\$p > svg > foreignObject > section{width:1280px;height:720px;box-sizing:border-box;overflow:hidden;position:relative;scroll-snap-align:center center;-webkit-text-size-adjust:100%;text-size-adjust:100%}div#\:\$p > svg > foreignObject > section::after{bottom:0;content:attr(data-marpit-pagination);padding:inherit;pointer-events:none;position:absolute;right:0}div#\:\$p > svg > foreignObject > section:not([data-marpit-pagination])::after{display:none}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1){font-size:2em;margin-block:0.67em}div#\:\$p > svg > foreignObject > section video::-webkit-media-controls{will-change:transform}@page {size:1280px 720px;margin:0}@media print{html, body{background-color:#fff;margin:0;page-break-inside:avoid;break-inside:avoid-page}div#\:\$p > svg > foreignObject > section{page-break-before:always;break-before:page}div#\:\$p > svg > foreignObject > section, div#\:\$p > svg > foreignObject > section *{-webkit-print-color-adjust:exact!important;animation-delay:0s!important;animation-duration:0s!important;color-adjust:exact!important;print-color-adjust:exact!important;transition:none!important}div#\:\$p > svg[data-marpit-svg]{display:block;height:100vh;width:100vw}}/*!
 * Marp default theme.
 *
 * @theme default
 * @author Yuki Hattori
 *
 * @auto-scaling true
 * @size 16:9 1280px 720px
 * @size 4:3 960px 720px
 */div#\:\$p > svg > foreignObject > section{--base-size-4:calc(var(--marpit-root-font-size, 1rem) * 0.25);--base-size-8:calc(var(--marpit-root-font-size, 1rem) * 0.5);--base-size-16:calc(var(--marpit-root-font-size, 1rem) * 1);--base-size-24:calc(var(--marpit-root-font-size, 1rem) * 1.5);--base-size-40:calc(var(--marpit-root-font-size, 1rem) * 2.5);--base-text-weight-normal:400;--base-text-weight-medium:500;--base-text-weight-semibold:600;--fontStack-monospace:ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;--fgColor-accent:Highlight;}div#\:\$p > svg > foreignObject > section [data-theme=light],div#\:\$p > svg > foreignObject > section{color-scheme:light;--focus-outlineColor:#0969da;--fgColor-default:#1f2328;--fgColor-muted:#59636e;--fgColor-accent:#0969da;--fgColor-success:#1a7f37;--fgColor-attention:#9a6700;--fgColor-danger:#d1242f;--fgColor-done:#8250df;--bgColor-default:#fff;--bgColor-muted:#f6f8fa;--bgColor-neutral-muted:#818b981f;--bgColor-attention-muted:#fff8c5;--borderColor-default:#d1d9e0;--borderColor-muted:#d1d9e0b3;--borderColor-neutral-muted:#d1d9e0b3;--borderColor-accent-emphasis:#0969da;--borderColor-success-emphasis:#1a7f37;--borderColor-attention-emphasis:#9a6700;--borderColor-danger-emphasis:#cf222e;--borderColor-done-emphasis:#8250df;--color-prettylights-syntax-comment:#59636e;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-prettylights-syntax-entity:#6639ba;--color-prettylights-syntax-storage-modifier-import:#1f2328;--color-prettylights-syntax-entity-tag:#0550ae;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-variable:#953800;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-brackethighlighter-angle:#59636e;--color-prettylights-syntax-invalid-illegal-text:#f6f8fa;--color-prettylights-syntax-invalid-illegal-bg:#82071e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-italic:#1f2328;--color-prettylights-syntax-markup-bold:#1f2328;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-ignored-text:#d1d9e0;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#818b98;}div#\:\$p > svg > foreignObject > section [data-theme=dark],div#\:\$p > svg > foreignObject > section:where(.invert){color-scheme:dark;--focus-outlineColor:#1f6feb;--fgColor-default:#f0f6fc;--fgColor-muted:#9198a1;--fgColor-accent:#4493f8;--fgColor-success:#3fb950;--fgColor-attention:#d29922;--fgColor-danger:#f85149;--fgColor-done:#ab7df8;--bgColor-default:#0d1117;--bgColor-muted:#151b23;--bgColor-neutral-muted:#656c7633;--bgColor-attention-muted:#bb800926;--borderColor-default:#3d444d;--borderColor-muted:#3d444db3;--borderColor-neutral-muted:#3d444db3;--borderColor-accent-emphasis:#1f6feb;--borderColor-success-emphasis:#238636;--borderColor-attention-emphasis:#9e6a03;--borderColor-danger-emphasis:#da3633;--borderColor-done-emphasis:#8957e5;--color-prettylights-syntax-comment:#9198a1;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-constant-other-reference-link:#a5d6ff;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-storage-modifier-import:#f0f6fc;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-variable:#ffa657;--color-prettylights-syntax-brackethighlighter-unmatched:#f85149;--color-prettylights-syntax-brackethighlighter-angle:#9198a1;--color-prettylights-syntax-invalid-illegal-text:#f0f6fc;--color-prettylights-syntax-invalid-illegal-bg:#8e1519;--color-prettylights-syntax-carriage-return-text:#f0f6fc;--color-prettylights-syntax-carriage-return-bg:#b62324;--color-prettylights-syntax-string-regexp:#7ee787;--color-prettylights-syntax-markup-list:#f2cc60;--color-prettylights-syntax-markup-heading:#1f6feb;--color-prettylights-syntax-markup-italic:#f0f6fc;--color-prettylights-syntax-markup-bold:#f0f6fc;--color-prettylights-syntax-markup-deleted-text:#ffdcd7;--color-prettylights-syntax-markup-deleted-bg:#67060c;--color-prettylights-syntax-markup-inserted-text:#aff5b4;--color-prettylights-syntax-markup-inserted-bg:#033a16;--color-prettylights-syntax-markup-changed-text:#ffdfb6;--color-prettylights-syntax-markup-changed-bg:#5a1e02;--color-prettylights-syntax-markup-ignored-text:#f0f6fc;--color-prettylights-syntax-markup-ignored-bg:#1158c7;--color-prettylights-syntax-meta-diff-range:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#3d444d;}div#\:\$p > svg > foreignObject > section{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;background-color:var(--bgColor-default);color:var(--fgColor-default);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5;margin:0;word-wrap:break-word}div#\:\$p > svg > foreignObject > section{--marpit-root-font-size:16px;}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1):hover .anchor .octicon-link:before,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2):hover .anchor .octicon-link:before,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3):hover .anchor .octicon-link:before,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4):hover .anchor .octicon-link:before,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5):hover .anchor .octicon-link:before,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6):hover .anchor .octicon-link:before{background-color:currentColor;content:" ";display:inline-block;height:16px;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0"/></svg>');width:16px}div#\:\$p > svg > foreignObject > section details,div#\:\$p > svg > foreignObject > section figcaption,div#\:\$p > svg > foreignObject > section figure{display:block}div#\:\$p > svg > foreignObject > section summary{display:list-item}div#\:\$p > svg > foreignObject > section [hidden]{display:none!important}div#\:\$p > svg > foreignObject > section a{background-color:transparent;color:var(--fgColor-accent);text-decoration:none}div#\:\$p > svg > foreignObject > section abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}div#\:\$p > svg > foreignObject > section b,div#\:\$p > svg > foreignObject > section strong{font-weight:var(--base-text-weight-semibold, 600)}div#\:\$p > svg > foreignObject > section dfn{font-style:italic}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1){border-bottom:1px solid var(--borderColor-muted);font-size:2em;font-weight:var(--base-text-weight-semibold, 600);margin:.67em 0;padding-bottom:.3em}div#\:\$p > svg > foreignObject > section mark{background-color:var(--bgColor-attention-muted);color:var(--fgColor-default)}div#\:\$p > svg > foreignObject > section small{font-size:90%}div#\:\$p > svg > foreignObject > section sub,div#\:\$p > svg > foreignObject > section sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}div#\:\$p > svg > foreignObject > section sub{bottom:-.25em}div#\:\$p > svg > foreignObject > section sup{top:-.5em}div#\:\$p > svg > foreignObject > section img{border-style:none;box-sizing:content-box;max-width:100%}div#\:\$p > svg > foreignObject > section code,div#\:\$p > svg > foreignObject > section kbd,div#\:\$p > svg > foreignObject > section :is(pre, marp-pre),div#\:\$p > svg > foreignObject > section samp{font-family:monospace;font-size:1em}div#\:\$p > svg > foreignObject > section figure{margin:1em var(--base-size-40)}div#\:\$p > svg > foreignObject > section hr{background:transparent;background-color:var(--borderColor-default);border:0;box-sizing:content-box;height:.25em;margin:var(--base-size-24) 0;overflow:hidden;padding:0}div#\:\$p > svg > foreignObject > section input{font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible}div#\:\$p > svg > foreignObject > section [type=button],div#\:\$p > svg > foreignObject > section [type=reset],div#\:\$p > svg > foreignObject > section [type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}div#\:\$p > svg > foreignObject > section [type=checkbox],div#\:\$p > svg > foreignObject > section [type=radio]{box-sizing:border-box;padding:0}div#\:\$p > svg > foreignObject > section [type=number]::-webkit-inner-spin-button,div#\:\$p > svg > foreignObject > section [type=number]::-webkit-outer-spin-button{height:auto}div#\:\$p > svg > foreignObject > section [type=search]::-webkit-search-cancel-button,div#\:\$p > svg > foreignObject > section [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}div#\:\$p > svg > foreignObject > section ::-webkit-input-placeholder{color:inherit;opacity:.54}div#\:\$p > svg > foreignObject > section ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}div#\:\$p > svg > foreignObject > section a:hover{text-decoration:underline}div#\:\$p > svg > foreignObject > section ::-moz-placeholder{color:var(--fgColor-muted);opacity:1}div#\:\$p > svg > foreignObject > section ::placeholder{color:var(--fgColor-muted);opacity:1}div#\:\$p > svg > foreignObject > section hr:after,div#\:\$p > svg > foreignObject > section hr:before{content:"";display:table}div#\:\$p > svg > foreignObject > section hr:after{clear:both}div#\:\$p > svg > foreignObject > section table{border-collapse:collapse;border-spacing:0;display:block;font-variant:tabular-nums;max-width:100%;overflow:auto;width:-moz-max-content;width:max-content}div#\:\$p > svg > foreignObject > section td,div#\:\$p > svg > foreignObject > section th{padding:0}div#\:\$p > svg > foreignObject > section details summary{cursor:pointer}div#\:\$p > svg > foreignObject > section [role=button]:focus,div#\:\$p > svg > foreignObject > section a:focus,div#\:\$p > svg > foreignObject > section input[type=checkbox]:focus,div#\:\$p > svg > foreignObject > section input[type=radio]:focus{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:-2px}div#\:\$p > svg > foreignObject > section [role=button]:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section a:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section input[type=checkbox]:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section input[type=radio]:focus:not(:focus-visible){outline:1px solid transparent}div#\:\$p > svg > foreignObject > section [role=button]:focus-visible,div#\:\$p > svg > foreignObject > section a:focus-visible,div#\:\$p > svg > foreignObject > section input[type=checkbox]:focus-visible,div#\:\$p > svg > foreignObject > section input[type=radio]:focus-visible{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:-2px}div#\:\$p > svg > foreignObject > section a:not([class]):focus,div#\:\$p > svg > foreignObject > section a:not([class]):focus-visible,div#\:\$p > svg > foreignObject > section input[type=checkbox]:focus,div#\:\$p > svg > foreignObject > section input[type=checkbox]:focus-visible,div#\:\$p > svg > foreignObject > section input[type=radio]:focus,div#\:\$p > svg > foreignObject > section input[type=radio]:focus-visible{outline-offset:0}div#\:\$p > svg > foreignObject > section kbd{background-color:var(--bgColor-muted);border-bottom-color:var(--borderColor-neutral-muted);border:1px solid var(--borderColor-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--borderColor-neutral-muted);color:var(--fgColor-default);display:inline-block;font:11px var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);line-height:10px;padding:var(--base-size-4);vertical-align:middle}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1),div#\:\$p > svg > foreignObject > section :is(h2, marp-h2),div#\:\$p > svg > foreignObject > section :is(h3, marp-h3),div#\:\$p > svg > foreignObject > section :is(h4, marp-h4),div#\:\$p > svg > foreignObject > section :is(h5, marp-h5),div#\:\$p > svg > foreignObject > section :is(h6, marp-h6){font-weight:var(--base-text-weight-semibold, 600);line-height:1.25;margin-bottom:var(--base-size-16);margin-top:var(--base-size-24)}div#\:\$p > svg > foreignObject > section :is(h2, marp-h2){border-bottom:1px solid var(--borderColor-muted);font-size:1.5em;padding-bottom:.3em}div#\:\$p > svg > foreignObject > section :is(h2, marp-h2),div#\:\$p > svg > foreignObject > section :is(h3, marp-h3){font-weight:var(--base-text-weight-semibold, 600)}div#\:\$p > svg > foreignObject > section :is(h3, marp-h3){font-size:1.25em}div#\:\$p > svg > foreignObject > section :is(h4, marp-h4){font-size:1em}div#\:\$p > svg > foreignObject > section :is(h4, marp-h4),div#\:\$p > svg > foreignObject > section :is(h5, marp-h5){font-weight:var(--base-text-weight-semibold, 600)}div#\:\$p > svg > foreignObject > section :is(h5, marp-h5){font-size:.875em}div#\:\$p > svg > foreignObject > section :is(h6, marp-h6){color:var(--fgColor-muted);font-size:.85em;font-weight:var(--base-text-weight-semibold, 600)}div#\:\$p > svg > foreignObject > section p{margin-bottom:10px;margin-top:0}div#\:\$p > svg > foreignObject > section blockquote{border-left:.25em solid var(--borderColor-default);color:var(--fgColor-muted);margin:0;padding:0 1em}div#\:\$p > svg > foreignObject > section ol,div#\:\$p > svg > foreignObject > section ul{margin-bottom:0;margin-top:0;padding-left:2em}div#\:\$p > svg > foreignObject > section ol ol,div#\:\$p > svg > foreignObject > section ul ol{list-style-type:lower-roman}div#\:\$p > svg > foreignObject > section ol ol ol,div#\:\$p > svg > foreignObject > section ol ul ol,div#\:\$p > svg > foreignObject > section ul ol ol,div#\:\$p > svg > foreignObject > section ul ul ol{list-style-type:lower-alpha}div#\:\$p > svg > foreignObject > section dd{margin-left:0}div#\:\$p > svg > foreignObject > section code,div#\:\$p > svg > foreignObject > section :is(pre, marp-pre),div#\:\$p > svg > foreignObject > section samp,div#\:\$p > svg > foreignObject > section tt{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre){margin-bottom:0;margin-top:0;word-wrap:normal}div#\:\$p > svg > foreignObject > section .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}div#\:\$p > svg > foreignObject > section input::-webkit-inner-spin-button,div#\:\$p > svg > foreignObject > section input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}div#\:\$p > svg > foreignObject > section .mr-2{margin-right:var(--base-size-8, 8px)!important}div#\:\$p > svg > foreignObject > section:after,div#\:\$p > svg > foreignObject > section:before{display:table}div#\:\$p > svg > foreignObject > section:after{clear:both}div#\:\$p > svg > foreignObject > section>:first-child{margin-top:0!important}div#\:\$p > svg > foreignObject > section>:last-child{margin-bottom:0!important}div#\:\$p > svg > foreignObject > section a:not([href]){color:inherit;text-decoration:none}div#\:\$p > svg > foreignObject > section .absent{color:var(--fgColor-danger)}div#\:\$p > svg > foreignObject > section .anchor{float:left;line-height:1;margin-left:-20px;padding-right:var(--base-size-4)}div#\:\$p > svg > foreignObject > section .anchor:focus{outline:none}div#\:\$p > svg > foreignObject > section blockquote,div#\:\$p > svg > foreignObject > section details,div#\:\$p > svg > foreignObject > section dl,div#\:\$p > svg > foreignObject > section ol,div#\:\$p > svg > foreignObject > section p,div#\:\$p > svg > foreignObject > section :is(pre, marp-pre),div#\:\$p > svg > foreignObject > section table,div#\:\$p > svg > foreignObject > section ul{margin-bottom:var(--base-size-16);margin-top:0}div#\:\$p > svg > foreignObject > section blockquote>:first-child{margin-top:0}div#\:\$p > svg > foreignObject > section blockquote>:last-child{margin-bottom:0}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1) .octicon-link,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2) .octicon-link,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3) .octicon-link,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4) .octicon-link,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5) .octicon-link,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6) .octicon-link{color:var(--fgColor-default);vertical-align:middle;visibility:hidden}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1):hover .anchor,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2):hover .anchor,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3):hover .anchor,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4):hover .anchor,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5):hover .anchor,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6):hover .anchor{text-decoration:none}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1):hover .anchor .octicon-link,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2):hover .anchor .octicon-link,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3):hover .anchor .octicon-link,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4):hover .anchor .octicon-link,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5):hover .anchor .octicon-link,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6):hover .anchor .octicon-link{visibility:visible}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1) code,div#\:\$p > svg > foreignObject > section :is(h1, marp-h1) tt,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2) code,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2) tt,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3) code,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3) tt,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4) code,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4) tt,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5) code,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5) tt,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6) code,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6) tt{font-size:inherit;padding:0 .2em}div#\:\$p > svg > foreignObject > section summary :is(h1, marp-h1),div#\:\$p > svg > foreignObject > section summary :is(h2, marp-h2),div#\:\$p > svg > foreignObject > section summary :is(h3, marp-h3),div#\:\$p > svg > foreignObject > section summary :is(h4, marp-h4),div#\:\$p > svg > foreignObject > section summary :is(h5, marp-h5),div#\:\$p > svg > foreignObject > section summary :is(h6, marp-h6){display:inline-block}div#\:\$p > svg > foreignObject > section summary :is(h1, marp-h1) .anchor,div#\:\$p > svg > foreignObject > section summary :is(h2, marp-h2) .anchor,div#\:\$p > svg > foreignObject > section summary :is(h3, marp-h3) .anchor,div#\:\$p > svg > foreignObject > section summary :is(h4, marp-h4) .anchor,div#\:\$p > svg > foreignObject > section summary :is(h5, marp-h5) .anchor,div#\:\$p > svg > foreignObject > section summary :is(h6, marp-h6) .anchor{margin-left:-40px}div#\:\$p > svg > foreignObject > section summary :is(h1, marp-h1),div#\:\$p > svg > foreignObject > section summary :is(h2, marp-h2){border-bottom:0;padding-bottom:0}div#\:\$p > svg > foreignObject > section ol.no-list,div#\:\$p > svg > foreignObject > section ul.no-list{list-style-type:none;padding:0}div#\:\$p > svg > foreignObject > section ol[type="a s"]{list-style-type:lower-alpha}div#\:\$p > svg > foreignObject > section ol[type="A s"]{list-style-type:upper-alpha}div#\:\$p > svg > foreignObject > section ol[type="i s"]{list-style-type:lower-roman}div#\:\$p > svg > foreignObject > section ol[type="I s"]{list-style-type:upper-roman}div#\:\$p > svg > foreignObject > section div>ol:not([type]),div#\:\$p > svg > foreignObject > section ol[type="1"]{list-style-type:decimal}div#\:\$p > svg > foreignObject > section ol ol,div#\:\$p > svg > foreignObject > section ol ul,div#\:\$p > svg > foreignObject > section ul ol,div#\:\$p > svg > foreignObject > section ul ul{margin-bottom:0;margin-top:0}div#\:\$p > svg > foreignObject > section li>p{margin-top:var(--base-size-16)}div#\:\$p > svg > foreignObject > section li+li{margin-top:.25em}div#\:\$p > svg > foreignObject > section dl{padding:0}div#\:\$p > svg > foreignObject > section dl dt{font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold, 600);margin-top:var(--base-size-16);padding:0}div#\:\$p > svg > foreignObject > section dl dd{margin-bottom:var(--base-size-16);padding:0 var(--base-size-16)}div#\:\$p > svg > foreignObject > section table th{font-weight:var(--base-text-weight-semibold, 600)}div#\:\$p > svg > foreignObject > section table td,div#\:\$p > svg > foreignObject > section table th{border:1px solid var(--borderColor-default);padding:6px 13px}div#\:\$p > svg > foreignObject > section table td>:last-child{margin-bottom:0}div#\:\$p > svg > foreignObject > section table tr{background-color:var(--bgColor-default);border-top:1px solid var(--borderColor-muted)}div#\:\$p > svg > foreignObject > section table tr:nth-child(2n){background-color:var(--bgColor-muted)}div#\:\$p > svg > foreignObject > section table img{background-color:transparent}div#\:\$p > svg > foreignObject > section img[align=right]{padding-left:20px}div#\:\$p > svg > foreignObject > section img[align=left]{padding-right:20px}div#\:\$p > svg > foreignObject > section .emoji{background-color:transparent;max-width:none;vertical-align:text-top}div#\:\$p > svg > foreignObject > section :is(span, marp-span).frame,div#\:\$p > svg > foreignObject > section :is(span, marp-span).frame>:is(span, marp-span){display:block;overflow:hidden}div#\:\$p > svg > foreignObject > section :is(span, marp-span).frame>:is(span, marp-span){border:1px solid var(--borderColor-default);float:left;margin:13px 0 0;padding:7px;width:auto}div#\:\$p > svg > foreignObject > section :is(span, marp-span).frame :is(span, marp-span) img{display:block;float:left}div#\:\$p > svg > foreignObject > section :is(span, marp-span).frame :is(span, marp-span) :is(span, marp-span){clear:both;color:var(--fgColor-default);display:block;padding:5px 0 0}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-center{clear:both;display:block;overflow:hidden}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-center>:is(span, marp-span){display:block;margin:13px auto 0;overflow:hidden;text-align:center}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-center :is(span, marp-span) img{margin:0 auto;text-align:center}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-right{clear:both;display:block;overflow:hidden}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-right>:is(span, marp-span){display:block;margin:13px 0 0;overflow:hidden;text-align:right}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-right :is(span, marp-span) img{margin:0;text-align:right}div#\:\$p > svg > foreignObject > section :is(span, marp-span).float-left{display:block;float:left;margin-right:13px;overflow:hidden}div#\:\$p > svg > foreignObject > section :is(span, marp-span).float-left :is(span, marp-span){margin:13px 0 0}div#\:\$p > svg > foreignObject > section :is(span, marp-span).float-right{display:block;float:right;margin-left:13px;overflow:hidden}div#\:\$p > svg > foreignObject > section :is(span, marp-span).float-right>:is(span, marp-span){display:block;margin:13px auto 0;overflow:hidden;text-align:right}div#\:\$p > svg > foreignObject > section code,div#\:\$p > svg > foreignObject > section tt{background-color:var(--bgColor-neutral-muted);border-radius:6px;font-size:85%;margin:0;padding:.2em .4em;white-space:break-spaces}div#\:\$p > svg > foreignObject > section code br,div#\:\$p > svg > foreignObject > section tt br{display:none}div#\:\$p > svg > foreignObject > section del code{text-decoration:inherit}div#\:\$p > svg > foreignObject > section samp{font-size:85%}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) code{font-size:100%}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre)>code{background:transparent;border:0;margin:0;padding:0;white-space:pre;word-break:normal}div#\:\$p > svg > foreignObject > section .highlight{margin-bottom:var(--base-size-16)}div#\:\$p > svg > foreignObject > section .highlight :is(pre, marp-pre){margin-bottom:0;word-break:normal}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre){background-color:var(--bgColor-muted);border-radius:6px;color:var(--fgColor-default);font-size:85%;line-height:1.45;overflow:auto;padding:var(--base-size-16)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) code,div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) tt{display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0;word-wrap:normal;background-color:transparent;border:0}div#\:\$p > svg > foreignObject > section .csv-data td,div#\:\$p > svg > foreignObject > section .csv-data th{font-size:12px;line-height:1;overflow:hidden;padding:5px;text-align:left;white-space:nowrap}div#\:\$p > svg > foreignObject > section .csv-data .blob-num{background:var(--bgColor-default);border:0;padding:10px var(--base-size-8) 9px;text-align:right}div#\:\$p > svg > foreignObject > section .csv-data tr{border-top:0}div#\:\$p > svg > foreignObject > section .csv-data th{background:var(--bgColor-muted);border-top:0;font-weight:var(--base-text-weight-semibold, 600)}div#\:\$p > svg > foreignObject > section [data-footnote-ref]:before{content:"["}div#\:\$p > svg > foreignObject > section [data-footnote-ref]:after{content:"]"}div#\:\$p > svg > foreignObject > section .footnotes{border-top:1px solid var(--borderColor-default);color:var(--fgColor-muted);font-size:12px}div#\:\$p > svg > foreignObject > section div#\:\$p > svg > foreignObject > section section.footnotes{--marpit-root-font-size:12px;}div#\:\$p > svg > foreignObject > section .footnotes ol,div#\:\$p > svg > foreignObject > section .footnotes ol ul{padding-left:var(--base-size-16)}div#\:\$p > svg > foreignObject > section .footnotes ol ul{display:inline-block;margin-top:var(--base-size-16)}div#\:\$p > svg > foreignObject > section .footnotes li{position:relative}div#\:\$p > svg > foreignObject > section .footnotes li:target:before{border:2px solid var(--borderColor-accent-emphasis);border-radius:6px;bottom:calc(var(--base-size-8)*-1);content:"";left:calc(var(--base-size-24)*-1);pointer-events:none;position:absolute;right:calc(var(--base-size-8)*-1);top:calc(var(--base-size-8)*-1)}div#\:\$p > svg > foreignObject > section .footnotes li:target{color:var(--fgColor-default)}div#\:\$p > svg > foreignObject > section .footnotes .data-footnote-backref g-emoji{font-family:monospace}div#\:\$p > svg > foreignObject > section body:has(:modal){padding-right:var(--dialog-scrollgutter)!important}div#\:\$p > svg > foreignObject > section .pl-c{color:var(--color-prettylights-syntax-comment)}div#\:\$p > svg > foreignObject > section .pl-c1,div#\:\$p > svg > foreignObject > section .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}div#\:\$p > svg > foreignObject > section .pl-e,div#\:\$p > svg > foreignObject > section .pl-en{color:var(--color-prettylights-syntax-entity)}div#\:\$p > svg > foreignObject > section .pl-s .pl-s1,div#\:\$p > svg > foreignObject > section .pl-smi{color:var(--color-prettylights-syntax-storage-modifier-import)}div#\:\$p > svg > foreignObject > section .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}div#\:\$p > svg > foreignObject > section .pl-k{color:var(--color-prettylights-syntax-keyword)}div#\:\$p > svg > foreignObject > section .pl-pds,div#\:\$p > svg > foreignObject > section .pl-s,div#\:\$p > svg > foreignObject > section .pl-s .pl-pse .pl-s1,div#\:\$p > svg > foreignObject > section .pl-sr,div#\:\$p > svg > foreignObject > section .pl-sr .pl-cce,div#\:\$p > svg > foreignObject > section .pl-sr .pl-sra,div#\:\$p > svg > foreignObject > section .pl-sr .pl-sre{color:var(--color-prettylights-syntax-string)}div#\:\$p > svg > foreignObject > section .pl-smw,div#\:\$p > svg > foreignObject > section .pl-v{color:var(--color-prettylights-syntax-variable)}div#\:\$p > svg > foreignObject > section .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}div#\:\$p > svg > foreignObject > section .pl-ii{background-color:var(--color-prettylights-syntax-invalid-illegal-bg);color:var(--color-prettylights-syntax-invalid-illegal-text)}div#\:\$p > svg > foreignObject > section .pl-c2{background-color:var(--color-prettylights-syntax-carriage-return-bg);color:var(--color-prettylights-syntax-carriage-return-text)}div#\:\$p > svg > foreignObject > section .pl-sr .pl-cce{color:var(--color-prettylights-syntax-string-regexp);font-weight:700}div#\:\$p > svg > foreignObject > section .pl-ml{color:var(--color-prettylights-syntax-markup-list)}div#\:\$p > svg > foreignObject > section .pl-mh,div#\:\$p > svg > foreignObject > section .pl-mh .pl-en,div#\:\$p > svg > foreignObject > section .pl-ms{color:var(--color-prettylights-syntax-markup-heading);font-weight:700}div#\:\$p > svg > foreignObject > section .pl-mi{color:var(--color-prettylights-syntax-markup-italic);font-style:italic}div#\:\$p > svg > foreignObject > section .pl-mb{color:var(--color-prettylights-syntax-markup-bold);font-weight:700}div#\:\$p > svg > foreignObject > section .pl-md{background-color:var(--color-prettylights-syntax-markup-deleted-bg);color:var(--color-prettylights-syntax-markup-deleted-text)}div#\:\$p > svg > foreignObject > section .pl-mi1{background-color:var(--color-prettylights-syntax-markup-inserted-bg);color:var(--color-prettylights-syntax-markup-inserted-text)}div#\:\$p > svg > foreignObject > section .pl-mc{background-color:var(--color-prettylights-syntax-markup-changed-bg);color:var(--color-prettylights-syntax-markup-changed-text)}div#\:\$p > svg > foreignObject > section .pl-mi2{background-color:var(--color-prettylights-syntax-markup-ignored-bg);color:var(--color-prettylights-syntax-markup-ignored-text)}div#\:\$p > svg > foreignObject > section .pl-mdr{color:var(--color-prettylights-syntax-meta-diff-range);font-weight:700}div#\:\$p > svg > foreignObject > section .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}div#\:\$p > svg > foreignObject > section .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}div#\:\$p > svg > foreignObject > section .pl-corl{color:var(--color-prettylights-syntax-constant-other-reference-link);text-decoration:underline}div#\:\$p > svg > foreignObject > section [role=button]:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section [role=tabpanel][tabindex="0"]:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section a:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section button:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section summary:focus:not(:focus-visible){box-shadow:none;outline:none}div#\:\$p > svg > foreignObject > section [tabindex="0"]:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section details-dialog:focus:not(:focus-visible){outline:none}div#\:\$p > svg > foreignObject > section g-emoji{display:inline-block;font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:var(--base-text-weight-normal, 400);line-height:1;min-width:1ch;vertical-align:-.075em}div#\:\$p > svg > foreignObject > section g-emoji img{height:1em;width:1em}div#\:\$p > svg > foreignObject > section .task-list-item{list-style-type:none}div#\:\$p > svg > foreignObject > section .task-list-item label{font-weight:var(--base-text-weight-normal, 400)}div#\:\$p > svg > foreignObject > section .task-list-item.enabled label{cursor:pointer}div#\:\$p > svg > foreignObject > section .task-list-item+.task-list-item{margin-top:var(--base-size-4)}div#\:\$p > svg > foreignObject > section .task-list-item .handle{display:none}div#\:\$p > svg > foreignObject > section .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}div#\:\$p > svg > foreignObject > section ul:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}div#\:\$p > svg > foreignObject > section ol:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}div#\:\$p > svg > foreignObject > section .contains-task-list:focus-within .task-list-item-convert-container,div#\:\$p > svg > foreignObject > section .contains-task-list:hover .task-list-item-convert-container{display:block;height:24px;overflow:visible;width:auto;clip:auto}div#\:\$p > svg > foreignObject > section ::-webkit-calendar-picker-indicator{filter:invert(50%)}div#\:\$p > svg > foreignObject > section .markdown-alert{border-left:.25em solid var(--borderColor-default);color:inherit;margin-bottom:var(--base-size-16);padding:var(--base-size-8) var(--base-size-16)}div#\:\$p > svg > foreignObject > section .markdown-alert>:first-child{margin-top:0}div#\:\$p > svg > foreignObject > section .markdown-alert>:last-child{margin-bottom:0}div#\:\$p > svg > foreignObject > section .markdown-alert .markdown-alert-title{align-items:center;display:flex;font-weight:var(--base-text-weight-medium, 500);line-height:1}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-note{border-left-color:var(--borderColor-accent-emphasis)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-note .markdown-alert-title{color:var(--fgColor-accent)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-important{border-left-color:var(--borderColor-done-emphasis)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-important .markdown-alert-title{color:var(--fgColor-done)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-warning{border-left-color:var(--borderColor-attention-emphasis)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-warning .markdown-alert-title{color:var(--fgColor-attention)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-tip{border-left-color:var(--borderColor-success-emphasis)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-tip .markdown-alert-title{color:var(--fgColor-success)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-caution{border-left-color:var(--borderColor-danger-emphasis)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-caution .markdown-alert-title{color:var(--fgColor-danger)}div#\:\$p > svg > foreignObject > section>:first-child>.heading-element:first-child{margin-top:0!important}div#\:\$p > svg > foreignObject > section .highlight :is(pre, marp-pre):has(+.zeroclipboard-container){min-height:52px}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1){color:var(--h1-color);font-size:1.6em}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1),div#\:\$p > svg > foreignObject > section :is(h2, marp-h2){border-bottom:none}div#\:\$p > svg > foreignObject > section :is(h2, marp-h2){font-size:1.3em}div#\:\$p > svg > foreignObject > section :is(h3, marp-h3){font-size:1.1em}div#\:\$p > svg > foreignObject > section :is(h4, marp-h4){font-size:1.05em}div#\:\$p > svg > foreignObject > section :is(h5, marp-h5){font-size:1em}div#\:\$p > svg > foreignObject > section :is(h6, marp-h6){font-size:.9em}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1) strong,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2) strong,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3) strong,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4) strong,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5) strong,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6) strong{color:var(--heading-strong-color);font-weight:inherit}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1)::part(auto-scaling),div#\:\$p > svg > foreignObject > section :is(h2, marp-h2)::part(auto-scaling),div#\:\$p > svg > foreignObject > section :is(h3, marp-h3)::part(auto-scaling),div#\:\$p > svg > foreignObject > section :is(h4, marp-h4)::part(auto-scaling),div#\:\$p > svg > foreignObject > section :is(h5, marp-h5)::part(auto-scaling),div#\:\$p > svg > foreignObject > section :is(h6, marp-h6)::part(auto-scaling){max-height:563px}div#\:\$p > svg > foreignObject > section hr{height:0;padding-top:.25em}div#\:\$p > svg > foreignObject > section img{background-color:transparent}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre){border:1px solid var(--borderColor-default);line-height:1.15;overflow:visible}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre)::part(auto-scaling){max-height:529px}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs){color:var(--color-prettylights-syntax-storage-modifier-import)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-doctag),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-keyword),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-meta .hljs-keyword),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-template-tag),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-template-variable),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-type),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-variable.language_){color:var(--color-prettylights-syntax-keyword)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-title),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-title.class_),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-title.class_.inherited__),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-title.function_){color:var(--color-prettylights-syntax-entity)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-attr),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-attribute),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-literal),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-meta),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-number),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-operator),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-selector-attr),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-selector-class),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-selector-id),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-variable){color:var(--color-prettylights-syntax-constant)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-meta .hljs-string),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-regexp),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-string){color:var(--color-prettylights-syntax-string)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-built_in),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-symbol){color:var(--color-prettylights-syntax-variable)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-code),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-comment),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-formula){color:var(--color-prettylights-syntax-comment)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-name),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-quote),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-selector-pseudo),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-selector-tag){color:var(--color-prettylights-syntax-entity-tag)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-subst){color:var(--color-prettylights-syntax-storage-modifier-import)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-section){color:var(--color-prettylights-syntax-markup-heading);font-weight:700}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-bullet){color:var(--color-prettylights-syntax-markup-list)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-emphasis){color:var(--color-prettylights-syntax-markup-italic);font-style:italic}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-strong){color:var(--color-prettylights-syntax-markup-bold);font-weight:700}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-addition){background-color:var(--color-prettylights-syntax-markup-inserted-bg);color:var(--color-prettylights-syntax-markup-inserted-text)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-deletion){background-color:var(--color-prettylights-syntax-markup-deleted-bg);color:var(--color-prettylights-syntax-markup-deleted-text)}div#\:\$p > svg > foreignObject > section footer,div#\:\$p > svg > foreignObject > section header{color:var(--header-footer-color);font-size:18px;left:30px;margin:0;position:absolute}div#\:\$p > svg > foreignObject > section header{top:21px}div#\:\$p > svg > foreignObject > section footer{bottom:21px}div#\:\$p > svg > foreignObject > section{--h1-color:#246;--header-footer-color:hsla(0,0%,40%,.75);--heading-strong-color:#48c;--paginate-color:#777;--base-size-4:4px;--base-size-8:8px;--base-size-16:16px;--base-size-24:24px;--base-size-40:40px;align-items:stretch;display:block;flex-flow:column nowrap;font-size:29px;height:720px;padding:78.5px;place-content:safe center center;width:1280px}div#\:\$p > svg > foreignObject > section{--marpit-root-font-size:29px;}div#\:\$p > svg > foreignObject > section:where(.invert){--h1-color:#cee7ff;--header-footer-color:hsla(0,0%,60%,.75);--heading-strong-color:#7bf;--paginate-color:#999;}div#\:\$p > svg > foreignObject > section>:last-child,div#\:\$p > svg > foreignObject > section[data-footer]>:nth-last-child(2){margin-bottom:0}div#\:\$p > svg > foreignObject > section>:first-child,div#\:\$p > svg > foreignObject > section>header:first-child+*{margin-top:0}div#\:\$p > svg > foreignObject > section:after{bottom:21px;color:var(--paginate-color);font-size:24px;padding:0;position:absolute;right:30px}div#\:\$p > svg > foreignObject > section:after{--marpit-root-font-size:24px;}div#\:\$p > svg > foreignObject > section[data-color] :is(h1, marp-h1),div#\:\$p > svg > foreignObject > section[data-color] :is(h2, marp-h2),div#\:\$p > svg > foreignObject > section[data-color] :is(h3, marp-h3),div#\:\$p > svg > foreignObject > section[data-color] :is(h4, marp-h4),div#\:\$p > svg > foreignObject > section[data-color] :is(h5, marp-h5),div#\:\$p > svg > foreignObject > section[data-color] :is(h6, marp-h6){color:currentcolor}div#\:\$p > svg > foreignObject > :where(section):not([\20 root]){--subtitle-color: #93a1a1;--h1-color: black;--border-color: #e99211;--bold-color: orangered;--italic-color: black;--italic-background-color: rgba(255, 210, 8, 0.713);--background-color: #fdf6e3;--list-item-color: rgb(50, 56, 56);--after-color: rgb(255, 39, 1);--main-color: rgb(207, 77, 17);--darker-color: #246;--lighter-color: #080a0a;--extra-back-color: rgb(175, 172, 173);--letter-spacing: 0.125px;--cool-list-color: orangered;--author-align: right;--blockquote-strong: rgb(255, 1, 1);--table-header-color: rgb(28, 36, 43);--table-header-font-color: white;--table-border-top: rgb(97, 96, 96);--table-border-bottom: rgba(97, 97, 96, 0.315);--table-nth-child-color: #eef1f3;--table-hover-background-color: rgb(252, 11, 11);--table-hover-color: white;}div#\:\$p > svg > foreignObject > section.transition{--transitionpage-color: orangered;}div#\:\$p > svg > foreignObject > section.biblio{--text-color: white;--biblio-background-color: rgb(11, 50, 175);--border-color: darkorange;--bold-color: orange;}div#\:\$p > svg > foreignObject > section.titlepage{--title-size: 150%;--subtitle-size: 110%;--author-size: 110%;--date-size: 110%;--institute-size: 90%;--letter-spacing: 0.125px;--title-font-weight: 600;--subtitle-font-weight: 600;--title-color: #ee0d0d;--title-color: #4d7baf;--title-color: #0a67f1;--title-color: #002b36;--titlepage-color: #242d31;--background-color: #faf7f7;--border-color: #f0cf9e;--border-color: #b5c9ee;--border-color: #8aa6da;--border-color: #6c71c4;--border-color: #e99211;}div#\:\$p > svg > foreignObject > section.cite{--background-color: #fdf6e3;--strong-color: rgb(182, 112, 27);}/*
  ============================================
    Created by Paulo Cunha
    version: 1.75
    
    update: 06.mai.2024
    update: 23.jun.2023 
    update: 12.mai.2022
    update: 30.dez.2021
         
  ============================================

    You may use freely (MIT license) provided  
    due credits are granted to the authors. 

    CLASSES:
        
        <!-- _class: biblio           -->
        <!-- _class: blockquote       -->
        <!-- _class: cite             -->

        <!-- _class: columns          -->
        <!-- _class: columns3         -->
        <!-- _class: columns-center   -->
        <!-- _class: columns3-center  -->
        
        <!-- _class: cool-list        -->
        <!-- _class: cool-list2       -->
        <!-- _class: table            -->
        <!-- _class: transition       -->
        <!-- _class: titlepage        -->

  Credits: https://catalin.red/css3-ordered-list-styles/
           for cool-list anda cool-list2.

*/div#\:\$p > svg > foreignObject > section :is(h1, marp-h1){color:var(--h1-color);border-bottom:1px solid var(--border-color)}div#\:\$p > svg > foreignObject > section p{margin-top:0.5em;margin-bottom:0.25em;line-height:1.3em;font-size:32px}div#\:\$p > svg > foreignObject > section li{margin-top:0.5em;margin-bottom:0.25em;line-height:1.2em;font-size:105%;color:val(--list-item-color)}div#\:\$p > svg > foreignObject > section em{color:var(--italic-color);background:var(--italic-background-color);font-style:normal;font-weight:bold;font-family:sans-serif;padding-top:6px;padding-left:6px;padding-right:6px;padding-bottom:6px}div#\:\$p > svg > foreignObject > section strong{color:var(--bold-color);padding-left:5px;padding-right:5px;font-weight:600}div#\:\$p > svg > foreignObject > section figcaption{font-size:80%;padding-top:16px}div#\:\$p > svg > foreignObject > section::after{color:rgb(51, 59, 77);font-size:0.8em;content:' ' attr(data-marpit-pagination) '/' attr(data-marpit-pagination-total) ' '}div#\:\$p > svg > foreignObject > section::after{--marpit-root-font-size: 0.8em;}div#\:\$p > svg > foreignObject > section .center{text-align:center}div#\:\$p > svg > foreignObject > section .right{text-align:right}div#\:\$p > svg > foreignObject > section .small{font-size:24px}div#\:\$p > svg > foreignObject > section section.small{--marpit-root-font-size: 24px;}div#\:\$p > svg > foreignObject > section table{margin-top:40px;border:0;font-size:24px;margin-right:auto!important;margin-left:auto!important}div#\:\$p > svg > foreignObject > section table th{background-color:var(--table-header-color);color:var(--table-header-font-color);border:1;border-top:var(--table-border-top) solid 2px}div#\:\$p > svg > foreignObject > section table td{border:0}div#\:\$p > svg > foreignObject > section table tr:nth-child(2){background-color:#c4c6c6}div#\:\$p > svg > foreignObject > section table tr:last-child{border-bottom:var(--table-border-bottom) solid 1px}div#\:\$p > svg > foreignObject > section tr:nth-child(even){background-color:var(--table-nth-child-color)!important}div#\:\$p > svg > foreignObject > section tr:hover{color:var(--table-hover-color);background-color:var(--table-hover-background-color);font-weight:bold}div#\:\$p > svg > foreignObject > section blockquote{color:rgb(66, 66, 66);font-size:20px;border-top:0.1em dashed var(--extra-back-color);margin-top:auto}div#\:\$p > svg > foreignObject > section blockquote p{font-size:1.12em!important;letter-spacing:-0.5px!important}div#\:\$p > svg > foreignObject > section blockquote strong{color:var(--blockquote-strong);font-weight:bold;font-size:1.11em!important;letter-spacing:-0.5px!important}div#\:\$p > svg > foreignObject > section .columns{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:calc(var(--marpit-root-font-size, 1rem) * 0.5)}div#\:\$p > svg > foreignObject > section .columns p{margin-top:0.5em;margin-bottom:0.25em;line-height:1.16em;font-size:30px}div#\:\$p > svg > foreignObject > section .columns ol, div#\:\$p > svg > foreignObject > section ul{margin-top:0.15em;margin-bottom:0.25em;line-height:1.73em!important;font-size:26px;color:var()}div#\:\$p > svg > foreignObject > section .columns-center{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:calc(var(--marpit-root-font-size, 1rem) * 1);justify-items:center;justify-content:center;align-items:center}div#\:\$p > svg > foreignObject > section .columns3{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:calc(var(--marpit-root-font-size, 1rem) * 1)}div#\:\$p > svg > foreignObject > section .columns3-center{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:calc(var(--marpit-root-font-size, 1rem) * 1);justify-items:center;justify-content:center;align-items:center}div#\:\$p > svg > foreignObject > section.titlepage{background-color:var(--background-color)}div#\:\$p > svg > foreignObject > section.titlepage .title{font-size:var(--title-size);font-weight:var(--title-font-weight);color:var(--title-color);border-bottom:1px solid var(--border-color);line-height:1.2;padding-bottom:15px}div#\:\$p > svg > foreignObject > section.titlepage div#\:\$p > svg > foreignObject > section section.title{--marpit-root-font-size: var(--title-size);}div#\:\$p > svg > foreignObject > section.titlepage .subtitle{font-size:var(--subtitle-size);font-weight:var(--subtitle-font-weight);line-height:1.2;color:var(--subtitle-color);padding-top:10px;padding-bottom:120px;letter-spacing:var(--letter-spacing)}div#\:\$p > svg > foreignObject > section.titlepage div#\:\$p > svg > foreignObject > section section.subtitle{--marpit-root-font-size: var(--subtitle-size);}div#\:\$p > svg > foreignObject > section.titlepage .author{font-size:var(--author-size)}div#\:\$p > svg > foreignObject > section.titlepage div#\:\$p > svg > foreignObject > section section.author{--marpit-root-font-size: var(--author-size);}div#\:\$p > svg > foreignObject > section.titlepage .date{font-size:var(--date-size)}div#\:\$p > svg > foreignObject > section.titlepage div#\:\$p > svg > foreignObject > section section.date{--marpit-root-font-size: var(--date-size);}div#\:\$p > svg > foreignObject > section.titlepage .organization{font-size:var(--institute-size)}div#\:\$p > svg > foreignObject > section.titlepage div#\:\$p > svg > foreignObject > section section.organization{--marpit-root-font-size: var(--institute-size);}div#\:\$p > svg > foreignObject > section.titlepage .author, div#\:\$p > svg > foreignObject > section.titlepage .date, div#\:\$p > svg > foreignObject > section.titlepage .organization{font-weight:400;text-align:right;color:var(--titlepage-color);line-height:1.25}div#\:\$p > svg > foreignObject > section.titlepage :is(h3, marp-h3), div#\:\$p > svg > foreignObject > section.titlepage :is(h4, marp-h4), div#\:\$p > svg > foreignObject > section.titlepage :is(h5, marp-h5){font-weight:400;text-align:right;color:var(--titlepage-color);line-height:0.45;letter-spacing:var(--letter-spacing)}div#\:\$p > svg > foreignObject > section.titlepage :is(h1, marp-h1){font-size:var(--title-size)!important;font-weight:var(--title-font-weight)!important;text-align:left;color:var(--title-color)!important;border-bottom:1px solid var(--border-color)!important;line-height:1.25}div#\:\$p > svg > foreignObject > section.titlepage :is(h2, marp-h2){font-size:var(--subtitle-size);font-weight:var(--subtitle-font-weight);text-align:left;color:var(--subtitle-color)!important;letter-spacing:var(--letter-spacing);line-height:1.2;margin-top:-0.2em;padding-bottom:95px}div#\:\$p > svg > foreignObject > section.titlepage :is(h3, marp-h3){font-size:var(--author-size)}div#\:\$p > svg > foreignObject > section.titlepage :is(h4, marp-h4){font-size:var(--date-size)}div#\:\$p > svg > foreignObject > section.titlepage :is(h5, marp-h5){font-size:var(--institute-size)}div#\:\$p > svg > foreignObject > section.titlepage footer, div#\:\$p > svg > foreignObject > section.titlepage header, div#\:\$p > svg > foreignObject > section.titlepage:after{display:none}div#\:\$p > svg > foreignObject > section.transition{background-color:var(--transitionpage-color);text-align:center!important;font-weight:bold;color:white;padding-top:auto;padding-buttom:auto}div#\:\$p > svg > foreignObject > section.transition :is(h1, marp-h1), div#\:\$p > svg > foreignObject > section.transition :is(h2, marp-h2), div#\:\$p > svg > foreignObject > section.transition p, div#\:\$p > svg > foreignObject > section.transition a{color:rgb(243, 229, 212);font-size:200%;border-bottom:none}div#\:\$p > svg > foreignObject > section.transition footer, div#\:\$p > svg > foreignObject > section.transition header, div#\:\$p > svg > foreignObject > section.transition:after{display:none}div#\:\$p > svg > foreignObject > section.transition2{background-color:rgb(137, 173, 207);text-align:center!important;font-weight:bold!important;color:rgb(255, 255, 255);padding-top:auto;padding-buttom:auto}div#\:\$p > svg > foreignObject > section.transition2 :is(h1, marp-h1), div#\:\$p > svg > foreignObject > section.transition2 :is(h2, marp-h2), div#\:\$p > svg > foreignObject > section.transition2 p, div#\:\$p > svg > foreignObject > section.transition2 a{color:rgb(217, 235, 247);font-size:200%;border-bottom:none}div#\:\$p > svg > foreignObject > section.transition2 em{background-color:rgb(60, 255, 0)!important}div#\:\$p > svg > foreignObject > section.transition2 footer, div#\:\$p > svg > foreignObject > section.transition2 header, div#\:\$p > svg > foreignObject > section.transition2:after{display:none}div#\:\$p > svg > foreignObject > section.transition3{background-color:rgb(66, 69, 71);text-align:center!important;font-weight:bold!important;color:rgb(255, 255, 255);padding-top:auto;padding-buttom:auto}div#\:\$p > svg > foreignObject > section.transition3 :is(h1, marp-h1), div#\:\$p > svg > foreignObject > section.transition3 :is(h2, marp-h2), div#\:\$p > svg > foreignObject > section.transition3 p, div#\:\$p > svg > foreignObject > section.transition3 a{color:rgb(244, 247, 217);font-size:200%;border-bottom:none}div#\:\$p > svg > foreignObject > section.transition3 em{background-color:rgb(60, 255, 0)!important}div#\:\$p > svg > foreignObject > section.transition3 strong{color:rgb(71, 83, 90)}div#\:\$p > svg > foreignObject > section.transition3 footer, div#\:\$p > svg > foreignObject > section.transition3 header, div#\:\$p > svg > foreignObject > section.transition3:after{display:none}div#\:\$p > svg > foreignObject > section.cite{background-color:var(--background-color)}div#\:\$p > svg > foreignObject > section.cite p{color:black;background-color:;letter-spacing:var(--letter-spacing);font-size:150%;text-align:center;line-height:1.2em;font-family:Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;padding-top:auto;padding-bottom:auto;padding-left:100px;padding-right:100px}div#\:\$p > svg > foreignObject > section.cite strong{color:var(--strong-color)}div#\:\$p > svg > foreignObject > section.cite footer, div#\:\$p > svg > foreignObject > section.cite header, div#\:\$p > svg > foreignObject > section.cite:after{display:none}div#\:\$p > svg > foreignObject > section.biblio{background-color:var(--biblio-background-color)}div#\:\$p > svg > foreignObject > section.biblio p{color:var(--text-color);font-size:80%;font-weight:300;padding-left:5px}div#\:\$p > svg > foreignObject > section.biblio :is(h1, marp-h1){font-size:35px;color:var(--text-color);border-bottom:1px solid var(--border-color)}div#\:\$p > svg > foreignObject > section.biblio strong{color:var(--bold-color)}div#\:\$p > svg > foreignObject > section.biblio a{font-size:31px;font-weight:bold;color:var(--bold-color)}div#\:\$p > svg > foreignObject > section.biblio li{color:var(--text-color)}div#\:\$p > svg > foreignObject > section.biblio footer, div#\:\$p > svg > foreignObject > section.biblio header, div#\:\$p > svg > foreignObject > section.biblio:after{display:none}div#\:\$p > svg > foreignObject > section.cool-list ol{counter-reset:li;list-style:none;padding:0}div#\:\$p > svg > foreignObject > section.cool-list li{margin-bottom:0.1em!important;margin-top:0.1em!important}div#\:\$p > svg > foreignObject > section.cool-list ol>li>em, div#\:\$p > svg > foreignObject > section.cool-list>ol>li>a{position:relative;display:block;padding:0.4em 0.4em 0.4em 2em;margin:0.5em 0;background:#ddd;color:#444;text-decoration:none;border-radius:0.3em;transition:all 0.3s ease-out;font-style:normal}div#\:\$p > svg > foreignObject > section.cool-list ol>li>em:before, div#\:\$p > svg > foreignObject > section.cool-list>ol>li>a:before{content:counter(li);counter-increment:li;position:absolute;left:-1.3em;top:50%;margin-top:-1.3em;background:var(--cool-list-color);height:2em;width:2em;line-height:2em;border:0.3em solid #fff;text-align:center;font-weight:normal;border-radius:2em;transition:all 0.3s ease-out;color:white}div#\:\$p > svg > foreignObject > section.cool-list>ol>li>em:hover, div#\:\$p > svg > foreignObject > section.cool-list>ol>li>a:hover{background:#eee;font-weight:bolder}div#\:\$p > svg > foreignObject > section.cool-list>ol ol{margin:0 0 0 2em;font-size:75%;counter-reset:li2}div#\:\$p > svg > foreignObject > section.cool-list>ol ol>li>em:before, div#\:\$p > svg > foreignObject > section.cool-list>ol ol>li>a:before{content:counter(li2);counter-increment:li2}div#\:\$p > svg > foreignObject > section.cool-list>ol>li>ul{list-style-type:disc;margin:0 0 0 1em;font-size:75%}div#\:\$p > svg > foreignObject > section.cool-list>ol ol>li>em{background:#efefef}div#\:\$p > svg > foreignObject > section.cool-list2 ol{counter-reset:li;list-style:none;padding:0;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5)}div#\:\$p > svg > foreignObject > section.cool-list2 ol ol{margin:0 0 0 2em}div#\:\$p > svg > foreignObject > section.cool-list2 ol li em{position:relative;display:block;padding:0.4em 0.4em 0.4em 0.8em;margin:0.5em 0 0.5em 2.5em;background:#ddd;color:#444;text-decoration:none;transition:all 0.3s ease-out;font-style:normal}div#\:\$p > svg > foreignObject > section.cool-list2 ol li em:hover{background:#eee;font-weight:bolder}div#\:\$p > svg > foreignObject > section.cool-list2 ol li em:before{content:counter(li);counter-increment:li;position:absolute;left:-2.5em;top:50%;margin-top:-1em;background:var(--lighter-color);height:2em;width:2em;line-height:2em;text-align:center;font-weight:bold}div#\:\$p > svg > foreignObject > section.cool-list2 ol li em:after{position:absolute;content:'';border:0.5em solid transparent;left:-1em;top:50%;margin-top:-0.5em;transition:all 0.3s ease-out}div#\:\$p > svg > foreignObject > section.cool-list2 ol li em:hover:after{left:-0.5em;border-left-color:var(--lighter-color)}div#\:\$p > svg > foreignObject > section.cool-list2 ol ol{margin:0 0 0 2em;font-size:75%;counter-reset:li2}div#\:\$p > svg > foreignObject > section.cool-list2 ol ol>li>em:before, div#\:\$p > svg > foreignObject > section.cool-list2 ol ol>li>a:before{content:counter(li2);counter-increment:li2;background:lightgray}div#\:\$p > svg > foreignObject > section.cool-list2 ol ul{list-style-type:disc;margin:0 0 0 1em;font-size:75%}div#\:\$p > svg > foreignObject > section.cool-list2 ol ol em{background:#efefef}div#\:\$p > svg > foreignObject > section.mcp-features table{width:100%;margin-top:calc(var(--marpit-root-font-size, 1rem) * 1.1);table-layout:fixed;border-collapse:collapse;font-size:calc(var(--marpit-root-font-size, 1rem) * 1.02)}div#\:\$p > svg > foreignObject > section:not(.titlepage){padding:64px 72px!important}div#\:\$p > svg > foreignObject > section.mcp-features table thead{display:none}div#\:\$p > svg > foreignObject > section.mcp-features tbody td{padding:calc(var(--marpit-root-font-size, 1rem) * 0.65) calc(var(--marpit-root-font-size, 1rem) * 0.75);border-bottom:1px solid rgba(0, 0, 0, 0.12);vertical-align:top}div#\:\$p > svg > foreignObject > section.mcp-features tbody tr:last-child td{border-bottom:none}div#\:\$p > svg > foreignObject > section.mcp-features table td:first-child, div#\:\$p > svg > foreignObject > section.mcp-features table th:first-child{text-align:center;width:calc(var(--marpit-root-font-size, 1rem) * 5.5)}div#\:\$p > svg > foreignObject > section.mcp-features table td:nth-child(2){font-weight:700}div#\:\$p > svg > foreignObject > section.mcp-features table tr:nth-child(even), div#\:\$p > svg > foreignObject > section.mcp-features table tr:nth-child(odd){background-color:transparent!important}div#\:\$p > svg > foreignObject > section.mcp-features table tr:hover{background-color:var(--table-hover-background-color)!important;color:var(--table-hover-color)!important;font-weight:700}div#\:\$p > svg > foreignObject > section.mcp-features .cell-title{display:inline-block}div#\:\$p > svg > foreignObject > section.mcp-features .feature-icon{display:inline-flex;align-items:center;justify-content:center;width:calc(var(--marpit-root-font-size, 1rem) * 4.5);height:calc(var(--marpit-root-font-size, 1rem) * 4.5);margin:0 auto;border-radius:calc(var(--marpit-root-font-size, 1rem) * 1.2);background-color:rgba(0, 0, 0, 0.06)}div#\:\$p > svg > foreignObject > section.mcp-features .feature-icon img{max-width:68%;max-height:68%;box-shadow:none;border-radius:0}div#\:\$p > svg > foreignObject > section.mcp-features .examples{display:flex;flex-direction:column;gap:calc(var(--marpit-root-font-size, 1rem) * 0.35)}div#\:\$p > svg > foreignObject > section .registry-layout{display:flex;gap:calc(var(--marpit-root-font-size, 1rem) * 3);align-items:center;margin-top:calc(var(--marpit-root-font-size, 1rem) * 1.5);flex-wrap:wrap}div#\:\$p > svg > foreignObject > section .registry-layout .collage-column{flex:1 1 65%;min-width:360px}div#\:\$p > svg > foreignObject > section .registry-layout .text-column{flex:1 1 240px;max-width:320px;line-height:1.4}div#\:\$p > svg > foreignObject > section .registry-layout .text-column :is(h3, marp-h3){margin-top:0;margin-bottom:calc(var(--marpit-root-font-size, 1rem) * 1)}div#\:\$p > svg > foreignObject > section .registry-layout .text-column ul{padding-left:calc(var(--marpit-root-font-size, 1rem) * 1.1);margin:0}div#\:\$p > svg > foreignObject > section .registry-collage{position:relative;height:420px;margin-top:30px}div#\:\$p > svg > foreignObject > section .registry-collage img{position:absolute;width:55%;max-width:520px;border-radius:12px;border:6px solid #fff;box-shadow:0 18px 45px rgba(0, 0, 0, 0.25);transition:transform 160ms ease-in-out}div#\:\$p > svg > foreignObject > section .registry-collage img:hover{transform:scale(1.02) translateY(-4px);z-index:4}div#\:\$p > svg > foreignObject > section .registry-collage .shot-azure{top:0;left:-10px;transform:rotate(-4deg);z-index:3}div#\:\$p > svg > foreignObject > section .registry-collage .shot-claude{top:60px;right:-60px;transform:rotate(3deg);z-index:2}div#\:\$p > svg > foreignObject > section .registry-collage .shot-github{bottom:-30px;left:25%;transform:rotate(-1deg);z-index:1}div#\:\$p > svg > foreignObject > section .social-table{margin:calc(var(--marpit-root-font-size, 1rem) * 2.2) 0 0 auto;border-collapse:collapse;font-size:1.05em;min-width:360px}div#\:\$p > svg > foreignObject > section section.social-table{--marpit-root-font-size: 1.05em;}div#\:\$p > svg > foreignObject > section .social-table td{padding:calc(var(--marpit-root-font-size, 1rem) * 0.45) calc(var(--marpit-root-font-size, 1rem) * 0.25);border:none;vertical-align:middle;color:inherit}div#\:\$p > svg > foreignObject > section .social-table td:first-child{width:54px;text-align:right}div#\:\$p > svg > foreignObject > section .social-table td:first-child img{width:34px;height:34px;object-fit:contain;display:inline-block;box-shadow:none!important;border-radius:0!important}div#\:\$p > svg > foreignObject > section .social-table td:last-child{padding-left:calc(var(--marpit-root-font-size, 1rem) * 0.9)}div#\:\$p > svg > foreignObject > section .social-table a{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:calc(var(--marpit-root-font-size, 1rem) * 0.4)}div#\:\$p > svg > foreignObject > section .social-table a:hover, div#\:\$p > svg > foreignObject > section .social-table a:focus{text-decoration:underline}div#\:\$p > svg > foreignObject > section .social-table tr{background-color:transparent!important}div#\:\$p > svg > foreignObject > section .mcp-magnify{position:relative;display:inline-block;--magnify-image: none;--magnify-scale: 2;--magnify-size: 220px;--magnify-focus-x: 50%;--magnify-focus-y: 50%;--magnify-position-x: 50%;--magnify-position-y: 50%;cursor:zoom-in;isolation:isolate}div#\:\$p > svg > foreignObject > section .mcp-magnify > img{display:block}div#\:\$p > svg > foreignObject > section .mcp-magnify::after{content:"";position:absolute;width:var(--magnify-size);height:var(--magnify-size);left:var(--magnify-position-x);top:var(--magnify-position-y);transform:translate(-50%, -50%) scale(var(--magnify-scale));transform-origin:50% 50%;background-image:var(--magnify-image);background-repeat:no-repeat;background-size:calc(100% * var(--magnify-scale)) calc(100% * var(--magnify-scale));background-position:var(--magnify-focus-x) var(--magnify-focus-y);border-radius:50%;box-shadow:0 10px 24px rgba(0, 0, 0, 0.28);outline:2px solid rgba(0, 0, 0, 0.25);outline-offset:-1px;opacity:0;transition:opacity 140ms ease-in-out;pointer-events:none;z-index:1;will-change:transform, opacity}div#\:\$p > svg > foreignObject > section .mcp-magnify:hover::after, div#\:\$p > svg > foreignObject > section .mcp-magnify:focus-within::after{opacity:1}div#\:\$p > svg > foreignObject > section .mcp-magnify--completion-1{--magnify-image: url('./images/completion-1-lightbox.png');--magnify-scale: 2;--magnify-size: 280px;--magnify-position-x: 50%;--magnify-position-y: 50%;--magnify-focus-x: 85%;--magnify-focus-y: 88%;}div#\:\$p > svg > foreignObject > section .mcp-magnify--completion-2{--magnify-image: url('./images/completion-2-lightbox.png');--magnify-scale: 2;--magnify-size: 280px;--magnify-position-x: 50%;--magnify-position-y: 50%;--magnify-focus-x: 105%;--magnify-focus-y: 105%;}div#\:\$p > svg > foreignObject > section .mcp-magnify--privacy{--magnify-image: url('./images/chatgpt-privacy.png');--magnify-scale: 2.2;--magnify-size: 240px;--magnify-position-x: 78%;--magnify-position-y: 58%;--magnify-focus-x: 78%;--magnify-focus-y: 58%;}div#\:\$p > svg > foreignObject > section .social-table tr:nth-child(odd), div#\:\$p > svg > foreignObject > section .social-table tr:nth-child(even){background-color:transparent!important}div#\:\$p > svg > foreignObject > section .social-table tr:hover, div#\:\$p > svg > foreignObject > section .social-table tr:focus-within{background-color:var(--table-hover-background-color)!important;color:var(--table-hover-color)!important;font-weight:700}div#\:\$p > svg > foreignObject > :where(section){container-type:size}div#\:\$p > svg > foreignObject > section img[data-marp-twemoji]{background:transparent;height:1em;margin:0 .05em 0 .1em;vertical-align:-.1em;width:1em}div#\:\$p > svg > foreignObject > :where(section):not([\20 root]){font-family:'Fira Sans', sans-serif;font-weight:initial;color:#6c6c6c;color:#2b3446;background-color:#727d8b;background-color:#f8b13d;background-color:#435160;background-color:#f5eee6;background-color:#d9dee6;background-color:#f4f4ed;--h1-color                  : #3d09ae;--h1-color                  : #06858e;--border-color              : #a0660387;--bold-color                : rgb(21, 105, 201);--bold-color                : #0d2d58;--italic-color              : rgb(38, 48, 71);--italic-background-color   : rgba(172, 215, 255, 0.713);--list-item-color           : rgb(255, 212, 95);--after-color               : rgb(51, 48, 48);--table-font-color          : black;--table-header-color        : rgb(0, 132, 255);--main-color                : rgb(207, 77, 17);--darker-color              : #246;--lighter-color             : #080a0a;--extra-back-color          : rgb(42, 45, 53);--letter-spacing            : 0.125px;--cool-list-color           : rgb(255, 68, 0);--author-align              : right;}div#\:\$p > svg > foreignObject > section.titlepage .title{border-bottom:1px solid orangered}div#\:\$p > svg > foreignObject > section.titlepage .subtitle{font-weight:300}div#\:\$p > svg > foreignObject > section.titlepage .author, div#\:\$p > svg > foreignObject > section.titlepage .date, div#\:\$p > svg > foreignObject > section.titlepage .organization{text-align:left}div#\:\$p > svg > foreignObject > section.titlepage :is(h1, marp-h1){border-bottom:1px solid orangered}div#\:\$p > svg > foreignObject > section.titlepage :is(h2, marp-h2){font-weight:300}div#\:\$p > svg > foreignObject > section.titlepage :is(h3, marp-h3), div#\:\$p > svg > foreignObject > section.titlepage :is(h4, marp-h4), div#\:\$p > svg > foreignObject > section.titlepage :is(h5, marp-h5){text-align:right}div#\:\$p > svg > foreignObject > section.transition{--transitionpage-color: #247397;}div#\:\$p > svg > foreignObject > section.transition :is(h1, marp-h1) .mcp-model{color:#FF9D00}div#\:\$p > svg > foreignObject > section.transition :is(h1, marp-h1) .mcp-context{color:#6b7280}div#\:\$p > svg > foreignObject > section.transition2{background-color:#c53732}div#\:\$p > svg > foreignObject > section.cite{--background-color: #49454f;--strong-color: rgb(182, 112, 27);}div#\:\$p > svg > foreignObject > section.cite p{color:#fffbfe}div#\:\$p > svg > foreignObject > section.cite strong{color:#f87ca1}div#\:\$p > svg > foreignObject > section img{box-shadow:0 4px 8px rgba(0, 0, 0, 0.15);border-radius:4px}div#\:\$p > svg > foreignObject > section .footprint-bars{display:flex;flex-direction:column;gap:calc(var(--marpit-root-font-size, 1rem) * 1.5);margin-top:calc(var(--marpit-root-font-size, 1rem) * 2)}div#\:\$p > svg > foreignObject > section .footprint-bars .row{display:grid;grid-template-columns:260px 1fr;gap:calc(var(--marpit-root-font-size, 1rem) * 1.5);align-items:center}div#\:\$p > svg > foreignObject > section .footprint-bars .label strong{display:block;font-size:1.05em;color:var(--bold-color)}div#\:\$p > svg > foreignObject > section .footprint-bars .label .meta{font-size:0.8em;color:#475569;margin-top:calc(var(--marpit-root-font-size, 1rem) * 0.25)}div#\:\$p > svg > foreignObject > section .footprint-bars .label div#\:\$p > svg > foreignObject > section section.meta{--marpit-root-font-size: 0.8em;}div#\:\$p > svg > foreignObject > section .footprint-bars .bar{position:relative;height:42px;border-radius:999px;background:rgba(15, 23, 42, 0.12);overflow:hidden}div#\:\$p > svg > foreignObject > section .footprint-bars .bar[data-note]::after{content:attr(data-note);position:absolute;top:calc(100% + 4px);left:0;font-size:0.62em;letter-spacing:0.06em;text-transform:uppercase;color:#64748b}div#\:\$p > svg > foreignObject > section .footprint-bars div#\:\$p > svg > foreignObject > section section.bar[data-note]::after{--marpit-root-font-size: 0.62em;}div#\:\$p > svg > foreignObject > section .footprint-bars .fill{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg, #f97316 0%, #facc15 100%);transform-origin:left center;transform:scaleX(var(--scale, 1))}div#\:\$p > svg > foreignObject > section .footprint-bars .fill :is(span, marp-span){position:absolute;right:16px;top:50%;transform:translateY(-50%);font-weight:600;color:#1f2937;font-size:0.85em}div#\:\$p > svg > foreignObject > section .footprint-bars .fill.is-tiny{background:linear-gradient(90deg, #38bdf8 0%, #0ea5e9 100%)}div#\:\$p > svg > foreignObject > section .footprint-bars .fill.is-tiny :is(span, marp-span){color:#0f172a}div#\:\$p > svg > foreignObject > section .footprint-note{margin-top:calc(var(--marpit-root-font-size, 1rem) * 1.25);font-size:0.72em;color:#475569;letter-spacing:0.04em;text-transform:uppercase}div#\:\$p > svg > foreignObject > section div#\:\$p > svg > foreignObject > section section.footprint-note{--marpit-root-font-size: 0.72em;}div#\:\$p > svg > foreignObject > section .footprint-grid{margin-top:calc(var(--marpit-root-font-size, 1rem) * 2.5);display:grid;grid-template-columns:repeat(12, minmax(0, 1fr));gap:calc(var(--marpit-root-font-size, 1rem) * 1.2);align-items:end}div#\:\$p > svg > foreignObject > section .footprint-grid .panel{position:relative;border-radius:28px;border:3px solid rgba(15, 23, 42, 0.15);background:linear-gradient(145deg, rgba(248, 196, 113, 0.3), rgba(249, 115, 22, 0.65));box-shadow:0 28px 48px rgba(15, 23, 42, 0.18);padding:calc(var(--marpit-root-font-size, 1rem) * 2.2);min-height:clamp(240px, 52vh, 520px);color:#1f2937;overflow:hidden}div#\:\$p > svg > foreignObject > section .footprint-grid .panel small{display:block;font-size:0.78em;text-transform:uppercase;letter-spacing:0.08em;color:rgba(15, 23, 42, 0.65);margin-bottom:calc(var(--marpit-root-font-size, 1rem) * 0.4)}div#\:\$p > svg > foreignObject > section .footprint-grid .panel strong{display:block;font-size:1.75em;color:var(--bold-color)}div#\:\$p > svg > foreignObject > section .footprint-grid .panel p{font-size:0.95em;margin-top:calc(var(--marpit-root-font-size, 1rem) * 1);color:rgba(15, 23, 42, 0.82)}div#\:\$p > svg > foreignObject > section .footprint-grid .panel::after{content:attr(data-caption);position:absolute;right:28px;bottom:26px;font-size:0.78em;text-transform:uppercase;letter-spacing:0.1em;color:rgba(15, 23, 42, 0.55)}div#\:\$p > svg > foreignObject > section .footprint-grid div#\:\$p > svg > foreignObject > section section.panel::after{--marpit-root-font-size: 0.78em;}div#\:\$p > svg > foreignObject > section .footprint-grid .panel.context{grid-column:span 3;min-height:clamp(90px, 16vh, 220px);background:linear-gradient(145deg, rgba(59, 130, 246, 0.35), rgba(14, 165, 233, 0.75));box-shadow:0 20px 32px rgba(14, 165, 233, 0.28)}div#\:\$p > svg > foreignObject > section .footprint-grid .panel.context strong{color:#0f172a}div#\:\$p > svg > foreignObject > section .footprint-grid .panel.context p{color:rgba(15, 23, 42, 0.68)}div#\:\$p > svg > foreignObject > section .footprint-grid .panel.weights{grid-column:span 9}div#\:\$p > svg > foreignObject > section .window-grid{margin-top:calc(var(--marpit-root-font-size, 1rem) * 2);display:grid;grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));gap:calc(var(--marpit-root-font-size, 1rem) * 1.2)}div#\:\$p > svg > foreignObject > section .window-card{background:white;border-radius:18px;border:1px solid rgba(15, 23, 42, 0.08);box-shadow:0 16px 32px rgba(15, 23, 42, 0.12);padding:calc(var(--marpit-root-font-size, 1rem) * 1.6);position:relative;overflow:hidden}div#\:\$p > svg > foreignObject > section .window-card::after{content:attr(data-year);position:absolute;top:18px;right:20px;font-size:0.72em;text-transform:uppercase;letter-spacing:0.12em;color:rgba(15, 23, 42, 0.45)}div#\:\$p > svg > foreignObject > section div#\:\$p > svg > foreignObject > section section.window-card::after{--marpit-root-font-size: 0.72em;}div#\:\$p > svg > foreignObject > section .window-card strong{display:block;font-size:1.2em;color:var(--bold-color)}div#\:\$p > svg > foreignObject > section .window-card .tokens{font-size:1.05em;margin-top:calc(var(--marpit-root-font-size, 1rem) * 0.7);font-weight:600;color:#1e293b}div#\:\$p > svg > foreignObject > section .window-card div#\:\$p > svg > foreignObject > section section.tokens{--marpit-root-font-size: 1.05em;}div#\:\$p > svg > foreignObject > section .window-card .tokens :is(span, marp-span){display:block;font-size:0.7em;font-weight:500;letter-spacing:0.04em;color:#64748b;text-transform:uppercase}div#\:\$p > svg > foreignObject > section .window-card p{font-size:0.82em;line-height:1.35;color:#475569;margin-top:calc(var(--marpit-root-font-size, 1rem) * 1)}div#\:\$p > svg > foreignObject > section .window-card .badge{margin-top:calc(var(--marpit-root-font-size, 1rem) * 1.2);display:inline-flex;align-items:center;gap:calc(var(--marpit-root-font-size, 1rem) * 0.35);padding:calc(var(--marpit-root-font-size, 1rem) * 0.35) calc(var(--marpit-root-font-size, 1rem) * 0.8);border-radius:999px;background:rgba(14, 165, 233, 0.12);color:#0369a1;font-size:0.7em;letter-spacing:0.05em;text-transform:uppercase}div#\:\$p > svg > foreignObject > section .window-card div#\:\$p > svg > foreignObject > section section.badge{--marpit-root-font-size: 0.7em;}div#\:\$p > svg > foreignObject > section .analog-table{margin-top:calc(var(--marpit-root-font-size, 1rem) * 1.8);border-radius:16px;border:1px solid rgba(15, 23, 42, 0.08);overflow:hidden;box-shadow:0 18px 30px rgba(15, 23, 42, 0.1)}div#\:\$p > svg > foreignObject > section .analog-table table{width:100%;border-collapse:collapse;font-size:0.85em}div#\:\$p > svg > foreignObject > section .analog-table th, div#\:\$p > svg > foreignObject > section .analog-table td{padding:calc(var(--marpit-root-font-size, 1rem) * 0.85) calc(var(--marpit-root-font-size, 1rem) * 1);text-align:left}div#\:\$p > svg > foreignObject > section .analog-table tr:nth-child(even){background:rgba(15, 23, 42, 0.04)}div#\:\$p > svg > foreignObject > section .analog-table th{background:rgba(15, 23, 42, 0.08);text-transform:uppercase;font-size:0.72em;letter-spacing:0.08em;color:#1f2937}div#\:\$p > svg > foreignObject > section .analog-notes{margin-top:calc(var(--marpit-root-font-size, 1rem) * 1);font-size:0.72em;color:#475569;letter-spacing:0.04em;text-transform:uppercase}div#\:\$p > svg > foreignObject > section div#\:\$p > svg > foreignObject > section section.analog-notes{--marpit-root-font-size: 0.72em;}div#\:\$p > svg > foreignObject > section .footprint-nesting{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:calc(var(--marpit-root-font-size, 1rem) * 2);margin-top:calc(var(--marpit-root-font-size, 1rem) * 2)}div#\:\$p > svg > foreignObject > section .footprint-nesting .box{position:relative;background:#fff7ed;border:2px solid #fb923c;border-radius:18px;padding:calc(var(--marpit-root-font-size, 1rem) * 1.75);min-height:240px;box-shadow:inset 0 0 0 1px rgba(15, 23, 42, 0.05)}div#\:\$p > svg > foreignObject > section .footprint-nesting .box strong{font-size:1.1em;color:var(--bold-color)}div#\:\$p > svg > foreignObject > section .footprint-nesting .box.emphasis{background:#ecfeff;border-color:#38bdf8}div#\:\$p > svg > foreignObject > section .footprint-nesting .chip{display:inline-flex;align-items:center;gap:calc(var(--marpit-root-font-size, 1rem) * 0.4);padding:calc(var(--marpit-root-font-size, 1rem) * 0.35) calc(var(--marpit-root-font-size, 1rem) * 0.85);border-radius:999px;background:#ffedd5;border:1px solid #f97316;font-size:0.7em;letter-spacing:0.06em;text-transform:uppercase;margin-top:calc(var(--marpit-root-font-size, 1rem) * 1.1)}div#\:\$p > svg > foreignObject > section .footprint-nesting div#\:\$p > svg > foreignObject > section section.chip{--marpit-root-font-size: 0.7em;}div#\:\$p > svg > foreignObject > section .footprint-nesting .box.emphasis .chip{background:#e0f2fe;border-color:#0ea5e9;color:#0369a1}div#\:\$p > svg > foreignObject > section .footprint-nesting .box .inner{position:absolute;bottom:18px;right:18px;width:clamp(60px, 22%, 140px);min-height:clamp(60px, 22%, 120px);background:#0ea5e9;color:white;border-radius:14px;padding:calc(var(--marpit-root-font-size, 1rem) * 0.75);font-size:0.8em;display:flex;align-items:center;justify-content:center;text-align:center;box-shadow:0 10px 18px rgba(14, 165, 233, 0.35)}div#\:\$p > svg > foreignObject > section .footprint-nesting .box div#\:\$p > svg > foreignObject > section section.inner{--marpit-root-font-size: 0.8em;}div#\:\$p > svg > foreignObject > section .footprint-nesting .box .inner::after{content:'magnified';position:absolute;top:-22px;font-size:0.6em;letter-spacing:0.08em;text-transform:uppercase;color:rgba(14, 165, 233, 0.9)}div#\:\$p > svg > foreignObject > section .footprint-nesting .box div#\:\$p > svg > foreignObject > section section.inner::after{--marpit-root-font-size: 0.6em;}div#\:\$p > svg > foreignObject > section .footprint-nesting ul{margin-top:calc(var(--marpit-root-font-size, 1rem) * 1);padding-left:calc(var(--marpit-root-font-size, 1rem) * 1.15);font-size:0.85em;color:#1f2937}div#\:\$p > svg > foreignObject > section .footprint-nesting ul li{margin-bottom:calc(var(--marpit-root-font-size, 1rem) * 0.35)}div#\:\$p > svg > foreignObject > section .cite-author{text-align:right}div#\:\$p > svg > foreignObject > section .cite-author:after{color:orangered;font-size:125%;font-weight:bold;font-family:Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;padding-right:130px}div#\:\$p > svg > foreignObject > section section.cite-author:after{--marpit-root-font-size         : 125%;}div#\:\$p > svg > foreignObject > section .cite-author[data-text]:after{content:" - "attr(data-text) " - "}div#\:\$p > svg > foreignObject > section .cite-author p{padding-bottom:40px}div#\:\$p > svg > foreignObject > section[data-marpit-scope-YKQaPUpm].dataset-makeup table td:first-child{font-weight:700;white-space:nowrap}div#\:\$p > svg > foreignObject > section[data-marpit-scope-YKQaPUpm].dataset-makeup table tr:hover{background-color:var(--table-hover-background-color)!important;color:var(--table-hover-color)!important;font-weight:700}div#\:\$p > svg > foreignObject > section[data-marpit-scope-3RDproA5] iframe.web-embed{width:100%;min-height:520px;border:0;border-radius:18px;box-shadow:0 18px 40px rgba(0, 0, 0, 0.35)}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"]{columns:initial!important;display:block!important;padding:0!important}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"]::before, div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"]::after, div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="content"]::before, div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="content"]::after{display:none!important}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"] > div[data-marpit-advanced-background-container]{all:initial;display:flex;flex-direction:row;height:100%;overflow:hidden;width:100%}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"] > div[data-marpit-advanced-background-container][data-marpit-advanced-background-direction="vertical"]{flex-direction:column}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"][data-marpit-advanced-background-split] > div[data-marpit-advanced-background-container]{width:var(--marpit-advanced-background-split, 50%)}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"][data-marpit-advanced-background-split="right"] > div[data-marpit-advanced-background-container]{margin-left:calc(100% - var(--marpit-advanced-background-split, 50%))}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"] > div[data-marpit-advanced-background-container] > figure{all:initial;background-position:center;background-repeat:no-repeat;background-size:cover;flex:auto;margin:0}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"] > div[data-marpit-advanced-background-container] > figure > figcaption{position:absolute;border:0;clip:rect(0, 0, 0, 0);height:1px;margin:-1px;overflow:hidden;padding:0;white-space:nowrap;width:1px}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="content"], div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="pseudo"]{background:transparent!important}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="pseudo"], div#\:\$p > svg[data-marpit-svg] > foreignObject[data-marpit-advanced-background="pseudo"]{pointer-events:none!important}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background-split]{width:100%;height:100%}
</style></head><body><div class="bespoke-marp-osc"><button data-bespoke-marp-osc="prev" tabindex="-1" title="Previous slide">Previous slide</button><span data-bespoke-marp-osc="page"></span><button data-bespoke-marp-osc="next" tabindex="-1" title="Next slide">Next slide</button><button data-bespoke-marp-osc="fullscreen" tabindex="-1" title="Toggle fullscreen (f)">Toggle fullscreen</button><button data-bespoke-marp-osc="presenter" tabindex="-1" title="Open presenter view (p)">Open presenter view</button></div><div id=":$p"><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="1" data-class="titlepage" data-theme="freud" lang="C" class="titlepage" style="--class:titlepage;--theme:freud;"><div class="title"> Securing the Model Context Protocol</div>
<div class="subtitle"> secureai.se, Stockholm   </div>
<div class="author"> Shaun Smith                       </div>
<div class="date"> September 2025                                    </div>
<table class="social-table">
  <tbody>
    <tr>
      <td><img src="./images/huggingface-mark-logo.svg" alt="Hugging Face" /></td>
      <td><a class="organization" href="https://huggingface.co/evalstate">huggingface.co/evalstate</a></td>
    </tr>
    <tr>
      <td><img src="./images/github-mark.svg" alt="GitHub" /></td>
      <td><a class="organization" href="https://github.com/evalstate">github.com/evalstate</a></td>
    </tr>
    <tr>
      <td><img src="./images/xcom-logo-black.png" alt="X" /></td>
      <td><a class="organization" href="https://x.com/evalstate">x.com/evalstate</a></td>
    </tr>
  </tbody>
</table>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="2" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="hello">Hello!</h1>
<div class="columns">
<div class="center">
<p><img src="./images/greeting_huggy_left.png" alt="" style="width:350px;" /></p>
<h3 id="hugging-face-mcpopen-source-projects">Hugging Face MCP/Open Source Projects</h3>
</div>
<div class="center">
<p><img src="./images/mcp-icon.svg" alt="" style="width:350px;" /></p>
<h3 id="mcp-steering-committee-member">MCP Steering Committee Member</h3>
</div>
</div>
<center> 
<h3 id="httpsfast-agentai"><code>https://fast-agent.ai</code></h3>
</center>

</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="3" data-class="transition" data-theme="freud" lang="C" class="transition" style="--class:transition;--theme:freud;">
<h1 id="span-classmcp-modelmodel-contextspan-span-classmcp-contextprotocolspan"><span class="mcp-model">Model Context</span>  <span class="mcp-context">Protocol</span></h1>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="4" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="large-language-models">Large Language Models</h1>
<div class="columns">
<div class="center"> 
<p><img src="./images/model_parameters.png" alt="" style="width:500px;" /></p>
<h2 id="gpt-3---trained-in-conversation-and-instruction-following"><em>GPT 3</em> - Trained in Conversation and Instruction Following</h2>
</div>
<div>
<ul>
<li>
<p><strong>Scale:</strong> They contain millions, billions, or even hundreds of billions of parameters</p>
</li>
<li>
<p><strong>General capabilities:</strong> They can perform multiple tasks without task-specific training</p>
</li>
<li>
<p><strong>In-context learning:</strong> They can learn from examples provided in the prompt</p>
</li>
<li>
<p><strong>Emergent abilities:</strong> As these models grow in size, they demonstrate capabilities that weren’t explicitly programmed or anticipated</p>
</li>
</ul>
</div> 
</div>
<blockquote>
<p><a href="https://huggingface.co/learn/llm-course/chapter1/2?fw=pt">https://huggingface.co/learn/llm-course/chapter1/2?fw=pt</a></p>
</blockquote>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="5" data-marpit-scope-YKQaPUpm="" data-class="dataset-makeup" data-theme="freud" lang="C" class="dataset-makeup" style="--class:dataset-makeup;--theme:freud;">
<h1 id="training-data-composition-meta-llama-2023">Training Data Composition <strong>Meta Llama 2023</strong></h1>
<table>
<thead>
<tr>
<th>Source</th>
<th>Content</th>
<th>Weighting</th>
<th style="text-align:right">Size (GB)</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong><img class="emoji" draggable="false" alt="🌐" src="https://cdn.jsdelivr.net/gh/jdecked/twemoji@16.0.1/assets/svg/1f310.svg" data-marp-twemoji=""/> English CommonCrawl</strong></td>
<td>English language web content</td>
<td>Very High (73.7%)</td>
<td style="text-align:right">3,379</td>
</tr>
<tr>
<td><strong><img class="emoji" draggable="false" alt="🌐" src="https://cdn.jsdelivr.net/gh/jdecked/twemoji@16.0.1/assets/svg/1f310.svg" data-marp-twemoji=""/> C4</strong></td>
<td>Cleaned web pages</td>
<td>High (15.9%)</td>
<td style="text-align:right">783</td>
</tr>
<tr>
<td><strong><img class="emoji" draggable="false" alt="💻" src="https://cdn.jsdelivr.net/gh/jdecked/twemoji@16.0.1/assets/svg/1f4bb.svg" data-marp-twemoji=""/> GitHub</strong></td>
<td>Open-source code</td>
<td>Medium (2.9%)</td>
<td style="text-align:right">328</td>
</tr>
<tr>
<td><strong><img class="emoji" draggable="false" alt="📚" src="https://cdn.jsdelivr.net/gh/jdecked/twemoji@16.0.1/assets/svg/1f4da.svg" data-marp-twemoji=""/> Wikipedia</strong></td>
<td>Encyclopedia articles in 20 languages</td>
<td>Medium (11.0%)</td>
<td style="text-align:right">83</td>
</tr>
<tr>
<td><strong><img class="emoji" draggable="false" alt="📘" src="https://cdn.jsdelivr.net/gh/jdecked/twemoji@16.0.1/assets/svg/1f4d8.svg" data-marp-twemoji=""/> Books</strong></td>
<td>Project Gutenberg and Books3 collection</td>
<td>Medium (10.0%)</td>
<td style="text-align:right">85</td>
</tr>
<tr>
<td><strong><img class="emoji" draggable="false" alt="🧪" src="https://cdn.jsdelivr.net/gh/jdecked/twemoji@16.0.1/assets/svg/1f9ea.svg" data-marp-twemoji=""/> ArXiv</strong></td>
<td>Scientific papers</td>
<td>Low (2.7%)</td>
<td style="text-align:right">92</td>
</tr>
<tr>
<td><strong><img class="emoji" draggable="false" alt="💬" src="https://cdn.jsdelivr.net/gh/jdecked/twemoji@16.0.1/assets/svg/1f4ac.svg" data-marp-twemoji=""/> Stack Exchange</strong></td>
<td>Q&amp;A from various domains</td>
<td>Low (2.1%)</td>
<td style="text-align:right">78</td>
</tr>
</tbody>
</table>
<p class="small">Sizes normalized to gigabytes for straightforward comparisons.</p>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="6" data-marpit-scope-3RDproA5="" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="token-prediction">Token Prediction</h1>
(Embedded  presentation of Token Prediction and Selection behaviour)
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="7" data-class="completions-zoom" data-theme="freud" lang="C" class="completions-zoom" style="--class:completions-zoom;--theme:freud;">
<h1 id="completions01">Completions[0..1]</h1>
<h2 id="identical-prompt-identical-model-two-generations">Identical Prompt, Identical Model, Two Generations...</h2>
<div class="columns">
  <div class="center">
    <span class="mcp-magnify mcp-magnify--completion-1">
      <img src="./images/completion-1-lightbox.png" alt="First completion screenshot" width="600" />
    </span>
  </div>
  <div class="center">
    <span class="mcp-magnify mcp-magnify--completion-2">
      <img src="./images/completion-2-lightbox.png" alt="Second completion screenshot" width="600" />
    </span>
  </div>
</div>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="8" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="guardrails-and-prompt-engineering">Guardrails (and Prompt Engineering)</h1>
<center>
<p><em>Excerpt from the Anthropic System Prompt for Opus 4.1</em></p>
<p><img src="./images/guardrail.png" alt="" style="width:700px;" /></p>
</center>
<blockquote>
<p><a href="https://docs.claude.com/en/release-notes/system-prompts#august-5-2025">https://docs.claude.com/en/release-notes/system-prompts#august-5-2025</a></p>
</blockquote>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="9" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="privacy-and-content">Privacy and Content</h1>
<div class="columns">
<div class="center">
<span class="mcp-magnify mcp-magnify--privacy">
  <img src="./images/chatgpt-privacy.png" alt="ChatGPT privacy modal" width="600" />
</span>
</div>
<div>
<ul>
<li>
<h2 id="data-privacy-and-sovereignty-are-important-considerations-for-llm-systems-integration">Data Privacy and Sovereignty are important considerations for LLM Systems Integration.</h2>
</li>
<li>
<h2 id="is-model-training-and-alignment-in-line-with-your-requirements">Is Model Training and Alignment in line with <em>your</em> requirements?</h2>
</li>
<li>
<h2 id="will-it-stay-that-way">Will it stay that way?</h2>
</li>
</ul>
</div>
</div>

</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="10" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="context---openai-gpt-oss-120b">Context - OpenAI GPT-OSS-120B</h1>
<div class="footprint-nesting">
  <div class="box">
    <strong>Model Parameters</strong>
    <div class="chip">model weights</div>
<h2 id="60gb">60GB</h2>
  </div>
  <div class="box emphasis">
    <strong>Context Window</strong>
    <div class="chip">conversation</div>
<h2 id="512kb">512kb</h2>
  </div>
</div>
<center>
<h2 id="context-window-is-1000001-model-weights">Context Window is 100000:1 Model Weights</h2>
<h2 id="13-seconds-of-audio"><strong>13 seconds of audio.</strong></h2>
</center>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="11" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="managing-context">Managing Context?</h1>
<h2 id="unaudited-copy--paste-data-management">Unaudited Copy / Paste Data Management</h2>
<h2 id="function-calling-requiring-custom-development">Function Calling requiring Custom Development</h2>
<h2 id="prompt-engineering-superstition">Prompt Engineering Superstition</h2>
<h2 id="custom-development-for-integrations--rag">Custom Development for Integrations / RAG</h2>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="12" data-class="transition" data-theme="freud" lang="C" class="transition" style="--class:transition;--theme:freud;">
<h1 id="span-classmcp-modelmodel-context-protocolspan-is-an-open-source-standard-for-connecting-ai-applications-to-external-systems"><span class="mcp-model">Model Context Protocol</span> is an open-source standard for connecting AI applications to external systems.</h1>
<h4 id="think-of-mcp-like-a-usb-c-port-for-ai-applications-just-as-usb-c-provides-a-standardized-way-to-connect-electronic-devices-mcp-provides-a-standardized-way-to-connect-ai-applications-to-external-systems">Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect electronic devices, MCP provides a standardized way to connect AI applications to external systems.</h4>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="13" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="architecture">Architecture</h1>
<p><img src="./images/architecture_1.png" alt="650px" /></p>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="14" data-class="mcp-features" data-theme="freud" lang="C" class="mcp-features" style="--class:mcp-features;--theme:freud;">
<h1 id="mcp-server-capabilities">MCP Server Capabilities</h1>
<table>
<thead>
<tr>
<th>Icon</th>
<th>Feature</th>
<th>Explanation</th>
<th>Example</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="feature-icon"><img src="./images/lucide-wrench.svg" alt="Tools" width="100%" /></span></td>
<td><span class="cell-title">Tools</span></td>
<td>Functions the model may call to act on the world: write to databases, invoke APIs, modify files,  workflows.</td>
<td><div class="examples"><span>Send messages</span></div></td>
</tr>
<tr>
<td><span class="feature-icon"><img src="./images/lucide-database-zap.svg" alt="Resources" width="100%" /></span></td>
<td><span class="cell-title">Resources</span></td>
<td>Read-only data sources like file contents, schemas, and documents that enrich prompts without.</td>
<td><div class="examples"><span>Attach  documents</span></div></td>
</tr>
<tr>
<td><span class="feature-icon"><img src="./images/lucide-messages-square.svg" alt="Prompts" width="100%" /></span></td>
<td><span class="cell-title">Prompts</span></td>
<td>Instruction templates that steer the model to for specific workflows.</td>
<td><div class="examples"><span>Draft an email</span></div></td>
</tr>
</tbody>
</table>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="15" data-class="mcp-features" data-theme="freud" lang="C" class="mcp-features" style="--class:mcp-features;--theme:freud;">
<h1 id="mcp-client-primitives">MCP Client Primitives</h1>
<table>
<thead>
<tr>
<th>Icon</th>
<th>Feature</th>
<th>Explanation</th>
<th>Example</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="feature-icon"><img src="./images/folders.svg" alt="Roots" width="100%" /></span></td>
<td><span class="cell-title">Roots</span></td>
<td>Specify which files and directories the Server can access</td>
<td><div class="examples"><span>Share Local Files</span></div></td>
</tr>
<tr>
<td><span class="feature-icon"><img src="./images/cpu.svg" width="100%" alt="Sampling" /></span></td>
<td><span class="cell-title">Sampling</span></td>
<td>Allow the MCP Server to request an LLM Completion.</td>
<td><div class="examples"><span>Process unstructured data</span></div></td>
</tr>
<tr>
<td><span class="feature-icon"><img src="./images/message-circle-question-mark.svg" width="100%" alt="Elicitations" /></span></td>
<td><span class="cell-title">Elicitations</span></td>
<td>Request specific information from the User, bypassing the LLM</td>
<td><div class="examples"><span>Collect specific booking information</span></div></td>
</tr>
</tbody>
</table>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="16" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="transportsdistribution-dev-preview-nov-2024">Transports/Distribution <strong>Dev Preview Nov 2024</strong></h1>
<p>Protocol defines a minimum <strong>how</strong> Client and Server connect and communicate, which official SDKs must support.</p>
<div class="columns">
<div>
<h2 id="stdio-local">STDIO (Local)</h2>
<p>Run Locally (within the Host Process)<br />
Running at User Privilege Level<br />
<em>Ad-hoc distribution</em></p>
</div>
<div class="sse-deprecated">
<h2 id="strikesse-remotestrike"><strike>SSE (Remote)</strike></h2>
<strike>
<p>Remote Hosting (ex. Process)<br />
Limited Host Application Support<br />
<em>No standard authentication</em><br />
</strike></p>
</div>
</div>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="17" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="locally-deployed-servers">Locally Deployed Servers</h1>
<div class="columns">
<div>
<p><img src="./images/local_context.png" alt="" style="width:560px;" /></p>
</div>
<div>
<ul>
<li>
<h3 id="usually-started-as-a-sub-process-from-the-host-application">Usually started as a sub-process from the Host Application</h3>
</li>
<li>
<h3 id="access-to-local-resources-and-files">Access to local resources and files.</h3>
</li>
<li>
<h3 id="can-execute-commands-on-the-users-computer">Can execute commands on the Users computer</h3>
</li>
<li>
<h3 id="especially-useful-for-developer-tools">Especially useful for Developer Tools</h3>
</li>
<li>
<h3 id="authentication-through-config-files">Authentication through Config Files</h3>
</li>
<li>
<h3 id="updates-usage-and-telemetry-data-can-be-difficult-to-capture">Updates, Usage and Telemetry Data can be difficult to capture +/-</h3>
</li>
</ul>
</div>
</div>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="18" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="oauth-21-and-streamable-http-2025-06-18">OAuth 2.1 and Streamable HTTP <strong>2025-06-18</strong></h1>
<ul>
<li>
<h2 id="first-protocol-update-2025-03-26-introduced-a-new-streamable-http-transport-for-remote-servers-and-oauth-authentication">First Protocol update (<strong>2025-03-26</strong>) introduced a new Streamable HTTP Transport for Remote Servers and OAuth authentication.</h2>
</li>
<li>
<h2 id="oauth-spec-was-revised-to-simplify-implementation-for-mcp-server-authors">OAuth spec was revised to simplify implementation for MCP Server authors:</h2>
<ul>
<li>
<h2 id="no-need-to-implement-authorization-server-easily-use-3rd-party">No need to implement Authorization Server (easily use 3rd Party)</h2>
</li>
<li>
<h2 id="straightforward-redirect-from-mcp-server-so-client-can-handle-authorization-flow">Straightforward redirect from MCP Server so Client can handle authorization flow.</h2>
</li>
</ul>
</li>
<li>
<h2 id="first-party-remote-servers-often-have-privacy-access-policies-in-place">First-Party Remote Servers often have Privacy, Access policies in place.</h2>
</li>
</ul>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="19" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="registries-and-mcp-bundle-format">Registries and MCP Bundle Format</h1>
<div class="columns">
<div>
<h3 id="registrymodelcontextprotocolio"><a href="registry.modelcontextprotocol.io">registry.modelcontextprotocol.io</a></h3>
<p>Standardises MCP Server description format and provides a basic level of assurance.</p>

<h3 id="mcp-bundle-format-formerly-dxt"><a href="https://github.com/anthropics/mcpb">MCP Bundle Format</a> (formerly DXT)</h3>
<p><strong>MCPB</strong> archive distribution format for local MCP Servers to make <strong>curation</strong>, installation and update easier for End Users.</p>
</div>
<div>
<br />
<img src="./images/ecosystem-diagram.excalidraw.svg" />
</div>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="20" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="registries-and-curation">Registries and Curation</h1>
<div class="registry-layout">
  <div class="text-column">
    <h3>MCP  Registries</h3>
    <ul>
      <li><p>Trusted Sources (e.g. Claude MCP Partners)</p></li>
      <li><p>Managed MCP Enterprise Registry (e.g. Azure)</p></li>
      <li><p>Tool Integration (e.g. VSCode + GitHub)
   </ul>
  </div>
  <div class="collage-column">
    <div class="registry-collage">
      <img class="shot-azure" src="./images/azure_registry.png" alt="Azure registry screenshot" />
      <img class="shot-claude" src="./images/claude_mcp_partners.png" alt="Claude MCP partners screenshot" />
      <img class="shot-github" src="./images/github_mcp_registry.png" alt="GitHub MCP registry screenshot" />
    </div>
  </div>
</div>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="21" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="llm-integration-risks---lethal-trifecta">LLM Integration Risks - Lethal Trifecta</h1>
<div class="columns"> 
<div>
<ul>
<li>
<h3 id="access-to-your-private-dataone-of-the-most-common-purposes-of-tools-in-the-first-place">Access to your private data—one of the most common purposes of tools in the first place!</h3>
</li>
<li>
<h3 id="exposure-to-untrusted-contentany-mechanism-by-which-text-or-images-controlled-by-a-malicious-attacker-could-become-available-to-your-llm">Exposure to untrusted content—any mechanism by which text (or images) controlled by a malicious attacker could become available to your LLM</h3>
</li>
<li>
<h3 id="the-ability-to-externally-communicate-in-a-way-that-could-be-used-to-steal-your-data">The ability to externally communicate in a way that could be used to steal your data</h3>
</li>
</ul>
<blockquote>
<p>Source: <a href="https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/">https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/</a></p>
</blockquote>
</div>
<div>
<br />
<p><img src="./images/lethaltrifecta.jpg" alt="" /></p>
</div>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="22" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="llm-integration-risks---context-management">LLM Integration Risks - Context Management</h1>
<ul>
<li>
<h3 id="function-calling-includes-tool-and-parameter-descriptions-to-your-context">Function Calling includes Tool and Parameter descriptions to your Context.</h3>
</li>
<li>
<h3 id="llm-not-able-to-distinguish-between-intended-unintended-and-malicious-instructions">LLM not able to distinguish between intended, unintended and malicious instructions.</h3>
</li>
<li>
<h3 id="unused-tools--servers-degrade-llm-performance-and-increase-inference-costs">Unused Tools / Servers degrade LLM Performance and increase inference costs.</h3>
</li>
<li>
<h3 id="exfiltration-may-not-always-appear-obvious-host-application-rendering-of-imagesmarkdownmermaid-links">Exfiltration may not always appear obvious: <em>Host Application rendering</em> of Images/Markdown/Mermaid links</h3>
</li>
<li>
<h3 id="tool-can-look-safe-on-first-run-pre-approval-but-modify-behaviour-on-second-run">Tool can look safe on first run (pre-approval) but modify behaviour on second run.</h3>
</li>
<li>
<h3 id="tool-results-may-include-unvetted-data-eg-instructions-embedded-in-a-github-issue-or-jira-ticket-or-word-document">Tool Results may include unvetted data (e.g. Instructions embedded in a GitHub Issue or JIRA Ticket or Word Document).</h3>
</li>
</ul>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="23" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="human-in-the-loop">Human in the Loop</h1>
<center>
<p><img src="./images/dangerous-permissions.gif" alt="" style="height:550px;" /></p>
</center>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="24" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="mcp-specific-guidance">MCP Specific Guidance</h1>
<ul>
<li>
<h3 id="risk-assess-specific-servertool-mixes">Risk assess specific Server/Tool mixes.</h3>
</li>
<li>
<h3 id="data-and-descriptions-from-different-sources-are-co-mingling---and-should-not-refer-to-each-other">Data and descriptions from different sources are co-mingling - and should not refer to each other</h3>
</li>
<li>
<h3 id="review-tool-and-parameter-descriptions-and-behaviour">Review Tool and Parameter descriptions and behaviour</h3>
</li>
<li>
<h3 id="mcp-server-instructions-may-be-added-to-the-context">MCP Server <code>instructions</code> may be added to the Context.</h3>
</li>
<li>
<h3 id="mcp-server-tool-list-change-notifications---revalidation">MCP Server Tool List Change Notifications - revalidation</h3>
</li>
<li>
<h3 id="multimodal-content-eg-images-returned-via-tools-prompts-and-resources-expose-the-same-risks">Multimodal Content (e.g. Images) returned via Tools, Prompts and Resources expose the same risks</h3>
</li>
<li>
<h3 id="prioritise-which-things-need-human-in-the-loop">Prioritise which things need Human-in-the-Loop</h3>
</li>
</ul>
<blockquote>
<p>Ola Hungerford is releasing a community blog post soon.</p>
</blockquote>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="25" data-class="transition" data-theme="freud" lang="C" class="transition" style="--class:transition;--theme:freud;">
<h1 id="span-classmcp-modelcommunity-and-contributingspan"><span class="mcp-model">Community and Contributing</span></h1>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="26" data-theme="freud" lang="C" style="--theme:freud;">
<h1 id="getting-involved">Getting Involved</h1>
<ul>
<li>
<h3 id="open-source-specification-and-sdks">Open Source Specification and SDKs</h3>
</li>
<li>
<h3 id="recently-updated-governance-model---in-the-open-via-sep-process">Recently updated governance model - in the open via SEP Process</h3>
</li>
<li>
<h3 id="active-community-discussions-on-discord">Active community discussions on Discord</h3>
</li>
<li>
<h3 id="httpsmodelcontextprotocoliocommunity"><a href="https://modelcontextprotocol.io/community">https://modelcontextprotocol.io/community</a></h3>
</li>
<li>
<h3 id="httpsgithubcommodelcontextprotocol"><a href="https://github.com/modelcontextprotocol/">https://github.com/modelcontextprotocol/</a></h3>
</li>
<li>
<h3 id="huge-ecosystem-of-open-source-mcp-clients-and-servers">Huge ecosystem of Open Source MCP Clients and Servers</h3>
</li>
<li>
<h3 id="explore-open-source-models-datasets-and-training-courses-on-mcp-llms-and-transformers-on-httpshuggingfaceco">Explore Open Source Models, Datasets and Training Courses on MCP, LLMs and Transformers on <a href="https://huggingface.co">https://huggingface.co</a></h3>
</li>
</ul>
</section>
<script>!function(){"use strict";const t={h1:{proto:()=>HTMLHeadingElement,attrs:{role:"heading","aria-level":"1"},style:"display: block; font-size: 2em; margin-block-start: 0.67em; margin-block-end: 0.67em; margin-inline-start: 0px; margin-inline-end: 0px; font-weight: bold;"},h2:{proto:()=>HTMLHeadingElement,attrs:{role:"heading","aria-level":"2"},style:"display: block; font-size: 1.5em; margin-block-start: 0.83em; margin-block-end: 0.83em; margin-inline-start: 0px; margin-inline-end: 0px; font-weight: bold;"},h3:{proto:()=>HTMLHeadingElement,attrs:{role:"heading","aria-level":"3"},style:"display: block; font-size: 1.17em; margin-block-start: 1em; margin-block-end: 1em; margin-inline-start: 0px; margin-inline-end: 0px; font-weight: bold;"},h4:{proto:()=>HTMLHeadingElement,attrs:{role:"heading","aria-level":"4"},style:"display: block; margin-block-start: 1.33em; margin-block-end: 1.33em; margin-inline-start: 0px; margin-inline-end: 0px; font-weight: bold;"},h5:{proto:()=>HTMLHeadingElement,attrs:{role:"heading","aria-level":"5"},style:"display: block; font-size: 0.83em; margin-block-start: 1.67em; margin-block-end: 1.67em; margin-inline-start: 0px; margin-inline-end: 0px; font-weight: bold;"},h6:{proto:()=>HTMLHeadingElement,attrs:{role:"heading","aria-level":"6"},style:"display: block; font-size: 0.67em; margin-block-start: 2.33em; margin-block-end: 2.33em; margin-inline-start: 0px; margin-inline-end: 0px; font-weight: bold;"},span:{proto:()=>HTMLSpanElement},pre:{proto:()=>HTMLElement,style:"display: block; font-family: monospace; white-space: pre; margin: 1em 0; --marp-auto-scaling-white-space: pre;"}},e="data-marp-auto-scaling-wrapper",i="data-marp-auto-scaling-svg",n="data-marp-auto-scaling-container";class s extends HTMLElement{container;containerSize;containerObserver;svg;svgComputedStyle;svgPreserveAspectRatio="xMinYMid meet";wrapper;wrapperSize;wrapperObserver;constructor(){super();const t=t=>([e])=>{const{width:i,height:n}=e.contentRect;this[t]={width:i,height:n},this.updateSVGRect()};this.attachShadow({mode:"open"}),this.containerObserver=new ResizeObserver(t("containerSize")),this.wrapperObserver=new ResizeObserver(((...e)=>{t("wrapperSize")(...e),this.flushSvgDisplay()}))}static get observedAttributes(){return["data-downscale-only"]}connectedCallback(){this.shadowRoot.innerHTML=`\n<style>\n  svg[${i}] { display: block; width: 100%; height: auto; vertical-align: top; }\n  span[${n}] { display: table; white-space: var(--marp-auto-scaling-white-space, nowrap); width: max-content; }\n</style>\n<div ${e}>\n  <svg part="svg" ${i}>\n    <foreignObject><span ${n}><slot></slot></span></foreignObject>\n  </svg>\n</div>\n    `.split(/\n\s*/).join(""),this.wrapper=this.shadowRoot.querySelector(`div[${e}]`)??void 0;const t=this.svg;this.svg=this.wrapper?.querySelector(`svg[${i}]`)??void 0,this.svg!==t&&(this.svgComputedStyle=this.svg?window.getComputedStyle(this.svg):void 0),this.container=this.svg?.querySelector(`span[${n}]`)??void 0,this.observe()}disconnectedCallback(){this.svg=void 0,this.svgComputedStyle=void 0,this.wrapper=void 0,this.container=void 0,this.observe()}attributeChangedCallback(){this.observe()}flushSvgDisplay(){const{svg:t}=this;t&&(t.style.display="inline",requestAnimationFrame((()=>{t.style.display=""})))}observe(){this.containerObserver.disconnect(),this.wrapperObserver.disconnect(),this.wrapper&&this.wrapperObserver.observe(this.wrapper),this.container&&this.containerObserver.observe(this.container),this.svgComputedStyle&&this.observeSVGStyle(this.svgComputedStyle)}observeSVGStyle(t){const e=()=>{const i=(()=>{const e=t.getPropertyValue("--preserve-aspect-ratio");if(e)return e.trim();return`x${(({textAlign:t,direction:e})=>{if(t.endsWith("left"))return"Min";if(t.endsWith("right"))return"Max";if("start"===t||"end"===t){let i="rtl"===e;return"end"===t&&(i=!i),i?"Max":"Min"}return"Mid"})(t)}YMid meet`})();i!==this.svgPreserveAspectRatio&&(this.svgPreserveAspectRatio=i,this.updateSVGRect()),t===this.svgComputedStyle&&requestAnimationFrame(e)};e()}updateSVGRect(){let t=Math.ceil(this.containerSize?.width??0);const e=Math.ceil(this.containerSize?.height??0);void 0!==this.dataset.downscaleOnly&&(t=Math.max(t,this.wrapperSize?.width??0));const i=this.svg?.querySelector(":scope > foreignObject");if(i?.setAttribute("width",`${t}`),i?.setAttribute("height",`${e}`),this.svg&&(this.svg.setAttribute("viewBox",`0 0 ${t} ${e}`),this.svg.setAttribute("preserveAspectRatio",this.svgPreserveAspectRatio),this.svg.style.height=t<=0||e<=0?"0":""),this.container){const t=this.svgPreserveAspectRatio.toLowerCase();this.container.style.marginLeft=t.startsWith("xmid")||t.startsWith("xmax")?"auto":"0",this.container.style.marginRight=t.startsWith("xmi")?"auto":"0"}}}const r=(t,{attrs:e={},style:i})=>class extends t{constructor(...t){super(...t);for(const[t,i]of Object.entries(e))this.hasAttribute(t)||this.setAttribute(t,i);this._shadow()}static get observedAttributes(){return["data-auto-scaling"]}connectedCallback(){this._update()}attributeChangedCallback(){this._update()}_shadow(){if(!this.shadowRoot)try{this.attachShadow({mode:"open"})}catch(t){if(!(t instanceof Error&&"NotSupportedError"===t.name))throw t}return this.shadowRoot}_update(){const t=this._shadow();if(t){const e=i?`<style>:host { ${i} }</style>`:"";let n="<slot></slot>";const{autoScaling:s}=this.dataset;if(void 0!==s){n=`<marp-auto-scaling exportparts="svg:auto-scaling" ${"downscale-only"===s?"data-downscale-only":""}>${n}</marp-auto-scaling>`}t.innerHTML=e+n}}};let o;const a=Symbol();let l;const c="marpitSVGPolyfill:setZoomFactor,",d=Symbol(),h=Symbol();const g=()=>{const t="Apple Computer, Inc."===navigator.vendor,e=t?[u]:[],i={then:e=>(t?(async()=>{if(void 0===l){const t=document.createElement("canvas");t.width=10,t.height=10;const e=t.getContext("2d"),i=new Image(10,10),n=new Promise((t=>{i.addEventListener("load",(()=>t()))}));i.crossOrigin="anonymous",i.src="data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2210%22%20height%3D%2210%22%20viewBox%3D%220%200%201%201%22%3E%3CforeignObject%20width%3D%221%22%20height%3D%221%22%20requiredExtensions%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%22%3E%3Cdiv%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%22%20style%3D%22width%3A%201px%3B%20height%3A%201px%3B%20background%3A%20red%3B%20position%3A%20relative%22%3E%3C%2Fdiv%3E%3C%2FforeignObject%3E%3C%2Fsvg%3E",await n,e.drawImage(i,0,0),l=e.getImageData(5,5,1,1).data[3]<128}return l})().then((t=>{null==e||e(t?[u]:[])})):null==e||e([]),i)};return Object.assign(e,i)};let p,m;function u(t){const e="object"==typeof t&&t.target||document,i="object"==typeof t?t.zoom:t;window[h]||(Object.defineProperty(window,h,{configurable:!0,value:!0}),document.body.style.zoom=1.0001,document.body.offsetHeight,document.body.style.zoom=1,window.addEventListener("message",(({data:t,origin:e})=>{if(e===window.origin)try{if(t&&"string"==typeof t&&t.startsWith(c)){const[,e]=t.split(","),i=Number.parseFloat(e);Number.isNaN(i)||(m=i)}}catch(t){console.error(t)}})));let n=!1;Array.from(e.querySelectorAll("svg[data-marpit-svg]"),(t=>{var e,s,r,o;t.style.transform||(t.style.transform="translateZ(0)");const a=i||m||t.currentScale||1;p!==a&&(p=a,n=a);const l=t.getBoundingClientRect(),{length:c}=t.children;for(let i=0;i<c;i+=1){const n=t.children[i];if(n.getScreenCTM){const t=n.getScreenCTM();if(t){const i=null!==(s=null===(e=n.x)||void 0===e?void 0:e.baseVal.value)&&void 0!==s?s:0,c=null!==(o=null===(r=n.y)||void 0===r?void 0:r.baseVal.value)&&void 0!==o?o:0,d=n.children.length;for(let e=0;e<d;e+=1){const s=n.children[e];if("SECTION"===s.tagName){const{style:e}=s;e.transformOrigin||(e.transformOrigin=`${-i}px ${-c}px`),e.transform=`scale(${a}) matrix(${t.a}, ${t.b}, ${t.c}, ${t.d}, ${t.e-l.left}, ${t.f-l.top}) translateZ(0.0001px)`;break}}}}}})),!1!==n&&Array.from(e.querySelectorAll("iframe"),(({contentWindow:t})=>{null==t||t.postMessage(`${c}${n}`,"null"===window.origin?"*":window.origin)}))}function v({once:t=!1,target:e=document}={}){const i=function(t=document){if(t[d])return t[d];let e=!0;const i=()=>{e=!1,delete t[d]};Object.defineProperty(t,d,{configurable:!0,value:i});let n=[],s=!1;(async()=>{try{n=await g()}finally{s=!0}})();const r=()=>{for(const e of n)e({target:t});s&&0===n.length||e&&window.requestAnimationFrame(r)};return r(),i}(e);return t?(i(),()=>{}):i}p=1,m=void 0;const w=Symbol(),b=(e=document)=>{if("undefined"==typeof window)throw new Error("Marp Core's browser script is valid only in browser context.");if(((e=document)=>{const i=window[a];i||customElements.define("marp-auto-scaling",s);for(const n of Object.keys(t)){const s=`marp-${n}`,a=t[n].proto();(o??(o=!!document.createElement("div",{is:"marp-auto-scaling"}).outerHTML.startsWith("<div is"),o))&&a!==HTMLElement?i||customElements.define(s,r(a,{style:t[n].style}),{extends:n}):(i||customElements.define(s,r(HTMLElement,t[n])),e.querySelectorAll(`${n}[is="${s}"]`).forEach((t=>{t.outerHTML=t.outerHTML.replace(new RegExp(`^<${n}`,"i"),`<${s}`).replace(new RegExp(`</${n}>$`,"i"),`</${s}>`)})))}window[a]=!0})(e),e[w])return e[w];const i=v({target:e}),n=()=>{i(),delete e[w]},l=Object.assign(n,{cleanup:n,update:()=>b(e)});return Object.defineProperty(e,w,{configurable:!0,value:l}),l},y=document.currentScript;b(y?y.getRootNode():document)}();
</script></foreignObject></svg></div><div class="bespoke-marp-note" data-index="0" tabindex="0"><p></p></div><div class="bespoke-marp-note" data-index="1" tabindex="0"><p>Community Moderator, Working Groups.</p><p>Work @ Hugging Face on MCP and Open Source initiatives.</p><p>if you are using MCP you are an LLM Systems integrator</p></div><div class="bespoke-marp-note" data-index="4" tabindex="0"><p>Anthropic £1.5bn fine</p></div><div class="bespoke-marp-note" data-index="7" tabindex="0"><p>### These are all things that LLM Systems Integrators need to consider.</p></div><div class="bespoke-marp-note" data-index="9" tabindex="0"><p>Charles Dickens, A Tale of Two Cities : 206,022 Tokens (139,000 Words&gt;</p></div><div class="bespoke-marp-note" data-index="14" tabindex="0"><p>the name mcp server is a bit misleading</p></div><div class="bespoke-marp-note" data-index="17" tabindex="0"><p>works really nicely demo HF MCP Integration</p></div><div class="bespoke-marp-note" data-index="18" tabindex="0"><p>Speak well of the community efforts here</p></div><div class="bespoke-marp-note" data-index="21" tabindex="0"><p>similar risks exist for copy/paste context management</p></div><div class="bespoke-marp-note" data-index="25" tabindex="0"><p>points to make here 
Models are trained using lots of text. 
Models were then trained to be conversational
Models were then trained to follow instructions
Models generate text using probabilities. [SHOW DEMO]

This isn't a long &quot;history lesson&quot; style talk; but i wanted to reground us 

Conversational Training. Hand Noted. RLHF. 
Instruction Training.

How do we make a model?
Ingredients. Lots of CPU, lots of compute.

Text Completions 

 given . The text we ask it to complete is known as the &quot;Context&quot;.
Computational Complexity and Model Size.

The context is _tiny_ compared to the model
The context is precious
Instruction following has a precedence problem
Generations are intentionally different each time (completions[0])

Assume that the data in your context window is privileged. 

The reason for the preamble is so that we can have a balanced discussion about MCP Security</p><p>launched in november last year, and immediately proved popular</p><p>why? for the first time rather than handling complex RAG or custom tool calling you had ready-made applications to integrate with 
## Part 3 - MCP

### Introduction

Can't deflect responsibility in to the Protocol
Can't transfer the risk

### Distribution

As Community Moderator get to see a lot of MCP Servers. One-shot prompted in to existence. 



Introducing the Model Context Protocol.


We see automation not augmentation.

So now that we know what a bit more about Models, and a bit more about Context let's see where MCP fits.
Show MCP-Webcam.

Less than 12 months old. Distribution Statistics. Weekend in Apr

- what mcp is -- do a deep dive explanation on the components and the parts.

- json-rpc; transports, hosts, client, servers.
- show all of the different datasources that can work.
- transport, data, layer??  (d)
- two specifications
OAUTH2.1
- Package and distribution of MCP-B/DXT. GitHub, Webiste.
- Registry

Bi-Directional Communication

co-minglign


# Transports (and Distribution)

STDIO
SSE (Deprecated)
Streamable HTTP
The rise of Hosting Services and Proxies.

---

# Early days of MCP. Server List. 

Review the Server, make sure there are no obvious.

# What happens

MCP Server Instructions injected in to Context.
Auto-injection in to the Context.

Context co-mingling.
Data sent to the LLM 
Tools that know about each other


# Distribution

- StreamableHTTP gives deployment options, and the latest OAuth is intended to make integration easier.
- This makes deployment - and auditing easier. far better to have telemetry from your MCP Infrastructure than having people copy-paste from unknown sources.


- Host
- Client
- Server
- LLM (Model/Context)
- User!
- Parts (MCP Servers, Host Application, Model)

- MCP Servers: Primitives
- MCP Servers: Connectivity
- MCP Servers: Priniciple of simple development
- Distribution Problem
- Remote Servers had no Authentication.</p><p>we'll do a high level walkthrough, then look at some of these in more detail</p><p>we talk a lot about MCP Servers, and that's not quite the right name</p><p>maybe i'm always tired of typing the same thing</p><p>maybe there's a website link the host application should follow</p></div><script>/*!! License: https://unpkg.com/@marp-team/marp-cli@4.2.3/lib/bespoke.js.LICENSE.txt */
!function(){"use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var t,n,r=(n||(n=1,t={from:function(e,t){var n,r=1===(e.parent||e).nodeType?e.parent||e:document.querySelector(e.parent||e),o=[].filter.call("string"==typeof e.slides?r.querySelectorAll(e.slides):e.slides||r.children,function(e){return"SCRIPT"!==e.nodeName}),a={},i=function(e,t){return(t=t||{}).index=o.indexOf(e),t.slide=e,t},s=function(e,t){a[e]=(a[e]||[]).filter(function(e){return e!==t})},c=function(e,t){return(a[e]||[]).reduce(function(e,n){return e&&!1!==n(t)},!0)},l=function(e,t){o[e]&&(n&&c("deactivate",i(n,t)),n=o[e],c("activate",i(n,t)))},d=function(e,t){var r=o.indexOf(n)+e;c(e>0?"next":"prev",i(n,t))&&l(r,t)},u={off:s,on:function(e,t){return(a[e]||(a[e]=[])).push(t),s.bind(null,e,t)},fire:c,slide:function(e,t){if(!arguments.length)return o.indexOf(n);c("slide",i(o[e],t))&&l(e,t)},next:d.bind(null,1),prev:d.bind(null,-1),parent:r,slides:o,destroy:function(e){c("destroy",i(n,e)),a={}}};return(t||[]).forEach(function(e){e(u)}),n||l(0),u}}),t),o=e(r);const a=document.body,i=(...e)=>history.replaceState(...e),s="",c="presenter",l="next",d=["",c,l],u="bespoke-marp-",f=`data-${u}`,m=(e,{protocol:t,host:n,pathname:r,hash:o}=location)=>{const a=e.toString();return`${t}//${n}${r}${a?"?":""}${a}${o}`},g=()=>a.dataset.bespokeView,p=e=>new URLSearchParams(location.search).get(e),v=(e,t={})=>{const n={location,setter:i,...t},r=new URLSearchParams(n.location.search);for(const t of Object.keys(e)){const n=e[t];"string"==typeof n?r.set(t,n):r.delete(t)}try{n.setter({...window.history.state??{}},"",m(r,n.location))}catch(e){console.error(e)}},h=(()=>{const e="bespoke-marp";try{return localStorage.setItem(e,e),localStorage.removeItem(e),!0}catch{return!1}})(),y=e=>{try{return localStorage.getItem(e)}catch{return null}},b=(e,t)=>{try{return localStorage.setItem(e,t),!0}catch{return!1}},w=e=>{try{return localStorage.removeItem(e),!0}catch{return!1}},x=(e,t)=>{const n="aria-hidden";t?e.setAttribute(n,"true"):e.removeAttribute(n)},k=e=>{e.parent.classList.add(`${u}parent`),e.slides.forEach(e=>e.classList.add(`${u}slide`)),e.on("activate",t=>{const n=`${u}active`,r=t.slide,o=r.classList,a=!o.contains(n);if(e.slides.forEach(e=>{e.classList.remove(n),x(e,!0)}),o.add(n),x(r,!1),a){const e=`${n}-ready`;o.add(e),document.body.clientHeight,o.remove(e)}})},$=e=>{let t=0,n=0;Object.defineProperty(e,"fragments",{enumerable:!0,value:e.slides.map(e=>[null,...e.querySelectorAll("[data-marpit-fragment]")])});const r=r=>void 0!==e.fragments[t][n+r],o=(r,o)=>{t=r,n=o,e.fragments.forEach((e,t)=>{e.forEach((e,n)=>{if(null==e)return;const a=t<r||t===r&&n<=o;e.setAttribute(`${f}fragment`,(a?"":"in")+"active");const i=`${f}current-fragment`;t===r&&n===o?e.setAttribute(i,"current"):e.removeAttribute(i)})}),e.fragmentIndex=o;const a={slide:e.slides[r],index:r,fragments:e.fragments[r],fragmentIndex:o};e.fire("fragment",a)};e.on("next",({fragment:a=!0})=>{if(a){if(r(1))return o(t,n+1),!1;const a=t+1;e.fragments[a]&&o(a,0)}else{const r=e.fragments[t].length;if(n+1<r)return o(t,r-1),!1;const a=e.fragments[t+1];a&&o(t+1,a.length-1)}}),e.on("prev",({fragment:a=!0})=>{if(r(-1)&&a)return o(t,n-1),!1;const i=t-1;e.fragments[i]&&o(i,e.fragments[i].length-1)}),e.on("slide",({index:t,fragment:n})=>{let r=0;if(void 0!==n){const o=e.fragments[t];if(o){const{length:e}=o;r=-1===n?e-1:Math.min(Math.max(n,0),e-1)}}o(t,r)}),o(0,0)},E=document,L=()=>!(!E.fullscreenEnabled&&!E.webkitFullscreenEnabled),S=()=>!(!E.fullscreenElement&&!E.webkitFullscreenElement),P=e=>{e.fullscreen=()=>{L()&&(async()=>{S()?(E.exitFullscreen||E.webkitExitFullscreen)?.call(E):((e=E.body)=>{(e.requestFullscreen||e.webkitRequestFullscreen)?.call(e)})()})()},document.addEventListener("keydown",t=>{"f"!==t.key&&"F11"!==t.key||t.altKey||t.ctrlKey||t.metaKey||!L()||(e.fullscreen(),t.preventDefault())})},_=`${u}inactive`,T=(e=2e3)=>({parent:t,fire:n})=>{const r=t.classList,o=e=>n(`marp-${e?"":"in"}active`);let a;const i=()=>{a&&clearTimeout(a),a=setTimeout(()=>{r.add(_),o()},e),r.contains(_)&&(r.remove(_),o(!0))};for(const e of["mousedown","mousemove","touchend"])document.addEventListener(e,i);setTimeout(i,0)},I=["AUDIO","BUTTON","INPUT","SELECT","TEXTAREA","VIDEO"],M=e=>{e.parent.addEventListener("keydown",e=>{if(!e.target)return;const t=e.target;(I.includes(t.nodeName)||"true"===t.contentEditable)&&e.stopPropagation()})},O=e=>{window.addEventListener("load",()=>{for(const t of e.slides){const e=t.querySelector("marp-auto-scaling, [data-auto-scaling], [data-marp-fitting]");t.setAttribute(`${f}load`,e?"":"hideable")}})},A=({interval:e=250}={})=>t=>{document.addEventListener("keydown",e=>{if(" "===e.key&&e.shiftKey)t.prev();else if("ArrowLeft"===e.key||"ArrowUp"===e.key||"PageUp"===e.key)t.prev({fragment:!e.shiftKey});else if(" "!==e.key||e.shiftKey)if("ArrowRight"===e.key||"ArrowDown"===e.key||"PageDown"===e.key)t.next({fragment:!e.shiftKey});else if("End"===e.key)t.slide(t.slides.length-1,{fragment:-1});else{if("Home"!==e.key)return;t.slide(0)}else t.next();e.preventDefault()});let n,r,o=0;t.parent.addEventListener("wheel",a=>{let i=!1;const s=(e,t)=>{e&&(i=i||((e,t)=>((e,t)=>{const n="X"===t?"Width":"Height";return e[`client${n}`]<e[`scroll${n}`]})(e,t)&&((e,t)=>{const{overflow:n}=e,r=e[`overflow${t}`];return"auto"===n||"scroll"===n||"auto"===r||"scroll"===r})(getComputedStyle(e),t))(e,t)),e?.parentElement&&s(e.parentElement,t)};if(0!==a.deltaX&&s(a.target,"X"),0!==a.deltaY&&s(a.target,"Y"),i)return;a.preventDefault();const c=Math.sqrt(a.deltaX**2+a.deltaY**2);if(void 0!==a.wheelDelta){if(void 0===a.webkitForce&&Math.abs(a.wheelDelta)<40)return;if(a.deltaMode===a.DOM_DELTA_PIXEL&&c<4)return}else if(a.deltaMode===a.DOM_DELTA_PIXEL&&c<12)return;r&&clearTimeout(r),r=setTimeout(()=>{n=0},e);const l=Date.now()-o<e,d=c<=n;if(n=c,l||d)return;let u;(a.deltaX>0||a.deltaY>0)&&(u="next"),(a.deltaX<0||a.deltaY<0)&&(u="prev"),u&&(t[u](),o=Date.now())})},C=(e=`.${u}osc`)=>{const t=document.querySelector(e);if(!t)return()=>{};const n=(e,n)=>{t.querySelectorAll(`[${f}osc=${JSON.stringify(e)}]`).forEach(n)};return L()||n("fullscreen",e=>e.style.display="none"),h||n("presenter",e=>{e.disabled=!0,e.title="Presenter view is disabled due to restricted localStorage."}),e=>{t.addEventListener("click",t=>{if(t.target instanceof HTMLElement){const{bespokeMarpOsc:n}=t.target.dataset;n&&t.target.blur();const r={fragment:!t.shiftKey};"next"===n?e.next(r):"prev"===n?e.prev(r):"fullscreen"===n?e?.fullscreen():"presenter"===n&&e.openPresenterView()}}),e.parent.appendChild(t),e.on("activate",({index:t})=>{n("page",n=>n.textContent=`Page ${t+1} of ${e.slides.length}`)}),e.on("fragment",({index:t,fragments:r,fragmentIndex:o})=>{n("prev",e=>e.disabled=0===t&&0===o),n("next",n=>n.disabled=t===e.slides.length-1&&o===r.length-1)}),e.on("marp-active",()=>x(t,!1)),e.on("marp-inactive",()=>x(t,!0)),L()&&(e=>{for(const t of["","webkit"])E.addEventListener(t+"fullscreenchange",e)})(()=>n("fullscreen",e=>e.classList.toggle("exit",L()&&S())))}},D=e=>{window.addEventListener("message",t=>{if(t.origin!==window.origin)return;const[n,r]=t.data.split(":");if("navigate"===n){const[t,n]=r.split(",");let o=Number.parseInt(t,10),a=Number.parseInt(n,10)+1;a>=e.fragments[o].length&&(o+=1,a=0),e.slide(o,{fragment:a})}})};var N,B,q,K,F,j,V,U={exports:{}},X=(N||(N=1,U.exports=(B=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],q=function(e){return String(e).replace(/[&<>"']/g,function(e){return"&"+K[e]+";"})},K={"&":"amp","<":"lt",">":"gt",'"':"quot","'":"apos"},F="dangerouslySetInnerHTML",j={className:"class",htmlFor:"for"},V={},function(e,t){var n=[],r="";t=t||{};for(var o=arguments.length;o-- >2;)n.push(arguments[o]);if("function"==typeof e)return t.children=n.reverse(),e(t);if(e){if(r+="<"+e,t)for(var a in t)!1!==t[a]&&null!=t[a]&&a!==F&&(r+=" "+(j[a]?j[a]:q(a))+'="'+q(t[a])+'"');r+=">"}if(-1===B.indexOf(e)){if(t[F])r+=t[F].__html;else for(;n.length;){var i=n.pop();if(i)if(i.pop)for(var s=i.length;s--;)n.push(i[s]);else r+=!0===V[i]?i:q(i)}r+=e?"</"+e+">":""}return V[r]=!0,r})),U.exports),H=e(X);const R=({children:e})=>H(null,null,...e),W=`${u}presenter-`,J={container:`${W}container`,dragbar:`${W}dragbar-container`,next:`${W}next`,nextContainer:`${W}next-container`,noteContainer:`${W}note-container`,noteWrapper:`${W}note-wrapper`,noteButtons:`${W}note-buttons`,infoContainer:`${W}info-container`,infoPage:`${W}info-page`,infoPageText:`${W}info-page-text`,infoPagePrev:`${W}info-page-prev`,infoPageNext:`${W}info-page-next`,noteButtonsBigger:`${W}note-bigger`,noteButtonsSmaller:`${W}note-smaller`,infoTime:`${W}info-time`,infoTimer:`${W}info-timer`},Y=e=>{const{title:t}=document;document.title="[Presenter view]"+(t?` - ${t}`:"");const n={},r=e=>(n[e]=n[e]||document.querySelector(`.${e}`),n[e]);document.body.appendChild((e=>{const t=document.createElement("div");return t.className=J.container,t.appendChild(e),t.insertAdjacentHTML("beforeend",H(R,null,H("div",{class:J.nextContainer},H("iframe",{class:J.next,src:"?view=next"})),H("div",{class:J.dragbar}),H("div",{class:J.noteContainer},H("div",{class:J.noteWrapper}),H("div",{class:J.noteButtons},H("button",{class:J.noteButtonsSmaller,tabindex:"-1",title:"Smaller notes font size"},"Smaller notes font size"),H("button",{class:J.noteButtonsBigger,tabindex:"-1",title:"Bigger notes font size"},"Bigger notes font size"))),H("div",{class:J.infoContainer},H("div",{class:J.infoPage},H("button",{class:J.infoPagePrev,tabindex:"-1",title:"Previous"},"Previous"),H("span",{class:J.infoPageText}),H("button",{class:J.infoPageNext,tabindex:"-1",title:"Next"},"Next")),H("time",{class:J.infoTime,title:"Current time"}),H("time",{class:J.infoTimer,title:"Timer"})))),t})(e.parent)),(e=>{let t=!1;r(J.dragbar).addEventListener("mousedown",()=>{t=!0,r(J.dragbar).classList.add("active")}),window.addEventListener("mouseup",()=>{t=!1,r(J.dragbar).classList.remove("active")}),window.addEventListener("mousemove",e=>{if(!t)return;const n=e.clientX/document.documentElement.clientWidth*100;r(J.container).style.setProperty("--bespoke-marp-presenter-split-ratio",`${Math.max(0,Math.min(100,n))}%`)}),r(J.nextContainer).addEventListener("click",()=>e.next());const n=r(J.next),o=(a=n,(e,t)=>a.contentWindow?.postMessage(`navigate:${e},${t}`,"null"===window.origin?"*":window.origin));var a;n.addEventListener("load",()=>{r(J.nextContainer).classList.add("active"),o(e.slide(),e.fragmentIndex),e.on("fragment",({index:e,fragmentIndex:t})=>o(e,t))});const i=document.querySelectorAll(".bespoke-marp-note");i.forEach(e=>{e.addEventListener("keydown",e=>e.stopPropagation()),r(J.noteWrapper).appendChild(e)}),e.on("activate",()=>i.forEach(t=>t.classList.toggle("active",t.dataset.index==e.slide())));let s=0;const c=e=>{s=Math.max(-5,s+e),r(J.noteContainer).style.setProperty("--bespoke-marp-note-font-scale",(1.2**s).toFixed(4))},l=()=>c(1),d=()=>c(-1),u=r(J.noteButtonsBigger),f=r(J.noteButtonsSmaller);u.addEventListener("click",()=>{u.blur(),l()}),f.addEventListener("click",()=>{f.blur(),d()}),document.addEventListener("keydown",e=>{"+"===e.key&&l(),"-"===e.key&&d()},!0),e.on("activate",({index:t})=>{r(J.infoPageText).textContent=`${t+1} / ${e.slides.length}`});const m=r(J.infoPagePrev),g=r(J.infoPageNext);m.addEventListener("click",t=>{m.blur(),e.prev({fragment:!t.shiftKey})}),g.addEventListener("click",t=>{g.blur(),e.next({fragment:!t.shiftKey})}),e.on("fragment",({index:t,fragments:n,fragmentIndex:r})=>{m.disabled=0===t&&0===r,g.disabled=t===e.slides.length-1&&r===n.length-1});let p=new Date;const v=()=>{const e=new Date,t=e=>`${Math.floor(e)}`.padStart(2,"0"),n=e.getTime()-p.getTime(),o=t(n/1e3%60),a=t(n/1e3/60%60),i=t(n/36e5%24);r(J.infoTime).textContent=e.toLocaleTimeString(),r(J.infoTimer).textContent=`${i}:${a}:${o}`};v(),setInterval(v,250),r(J.infoTimer).addEventListener("click",()=>{p=new Date})})(e)},z=e=>{if(!(e=>e.syncKey&&"string"==typeof e.syncKey)(e))throw new Error("The current instance of Bespoke.js is invalid for Marp bespoke presenter plugin.");Object.defineProperties(e,{openPresenterView:{enumerable:!0,value:G},presenterUrl:{enumerable:!0,get:Q}}),h&&document.addEventListener("keydown",t=>{"p"!==t.key||t.altKey||t.ctrlKey||t.metaKey||(t.preventDefault(),e.openPresenterView())})};function G(){const{max:e,floor:t}=Math,n=e(t(.85*window.innerWidth),640),r=e(t(.85*window.innerHeight),360);return window.open(this.presenterUrl,W+this.syncKey,`width=${n},height=${r},menubar=no,toolbar=no`)}function Q(){const e=new URLSearchParams(location.search);return e.set("view","presenter"),e.set("sync",this.syncKey),m(e)}const Z=e=>{const t=g();return t===l&&e.appendChild(document.createElement("span")),{[s]:z,[c]:Y,[l]:D}[t]},ee=e=>{e.on("activate",t=>{document.querySelectorAll(".bespoke-progress-parent > .bespoke-progress-bar").forEach(n=>{n.style.flexBasis=100*t.index/(e.slides.length-1)+"%"})})},te=e=>{const t=Number.parseInt(e,10);return Number.isNaN(t)?null:t},ne=(e={})=>{const t={history:!0,...e};return e=>{let n=!0;const r=e=>{const t=n;try{return n=!0,e()}finally{n=t}},o=(t={fragment:!0})=>{let n=t.fragment?te(p("f")||""):null;((t,n)=>{const{min:r,max:o}=Math,{fragments:a,slides:i}=e,s=o(0,r(t,i.length-1)),c=o(0,r(n||0,a[s].length-1));s===e.slide()&&c===e.fragmentIndex||e.slide(s,{fragment:c})})((()=>{if(location.hash){const[t]=location.hash.slice(1).split(":~:");if(/^\d+$/.test(t))return(te(t)??1)-1;const r=document.getElementById(t)||document.querySelector(`a[name="${CSS.escape(t)}"]`);if(r){const{length:t}=e.slides;for(let o=0;o<t;o+=1)if(e.slides[o].contains(r)){const t=e.fragments?.[o],a=r.closest("[data-marpit-fragment]");if(t&&a){const e=t.indexOf(a);e>=0&&(n=e)}return o}}}return 0})(),n)};e.on("fragment",({index:e,fragmentIndex:r})=>{n||v({f:0===r||r.toString()},{location:{...location,hash:`#${e+1}`},setter:(...e)=>t.history?history.pushState(...e):history.replaceState(...e)})}),setTimeout(()=>{o(),window.addEventListener("hashchange",()=>r(()=>{o({fragment:!1}),v({f:void 0})})),window.addEventListener("popstate",()=>{n||r(()=>o())}),n=!1},0)}},re=(e={})=>{const t=e.key||window.history.state?.marpBespokeSyncKey||Math.random().toString(36).slice(2),n=`bespoke-marp-sync-${t}`;var r;r={marpBespokeSyncKey:t},v({},{setter:(e,...t)=>i({...e,...r},...t)});const o=()=>{const e=y(n);return e?JSON.parse(e):Object.create(null)},a=e=>{const t=o(),r={...t,...e(t)};return b(n,JSON.stringify(r)),r},s=()=>{window.removeEventListener("pageshow",s),a(e=>({reference:(e.reference||0)+1}))};return e=>{s(),Object.defineProperty(e,"syncKey",{value:t,enumerable:!0});let r=!0;setTimeout(()=>{e.on("fragment",e=>{r&&a(()=>({index:e.index,fragmentIndex:e.fragmentIndex}))})},0),window.addEventListener("storage",t=>{if(t.key===n&&t.oldValue&&t.newValue){const n=JSON.parse(t.oldValue),o=JSON.parse(t.newValue);if(n.index!==o.index||n.fragmentIndex!==o.fragmentIndex)try{r=!1,e.slide(o.index,{fragment:o.fragmentIndex,forSync:!0})}finally{r=!0}}});const i=()=>{const{reference:e}=o();void 0===e||e<=1?w(n):a(()=>({reference:e-1}))};window.addEventListener("pagehide",e=>{e.persisted&&window.addEventListener("pageshow",s),i()}),e.on("destroy",i)}},{PI:oe,abs:ae,sqrt:ie,atan2:se}=Math,ce={passive:!0},le=({slope:e=-.7,swipeThreshold:t=30}={})=>n=>{let r;const o=n.parent,a=e=>{const t=o.getBoundingClientRect();return{x:e.pageX-(t.left+t.right)/2,y:e.pageY-(t.top+t.bottom)/2}};o.addEventListener("touchstart",({touches:e})=>{r=1===e.length?a(e[0]):void 0},ce),o.addEventListener("touchmove",e=>{if(r)if(1===e.touches.length){e.preventDefault();const t=a(e.touches[0]),n=t.x-r.x,o=t.y-r.y;r.delta=ie(ae(n)**2+ae(o)**2),r.radian=se(n,o)}else r=void 0}),o.addEventListener("touchend",o=>{if(r){if(r.delta&&r.delta>=t&&r.radian){const t=(r.radian-e+oe)%(2*oe)-oe;n[t<0?"next":"prev"](),o.stopPropagation()}r=void 0}},ce)},de=new Map;de.clear(),de.set("none",{backward:{both:void 0,incoming:void 0,outgoing:void 0},forward:{both:void 0,incoming:void 0,outgoing:void 0}});const ue={both:"",outgoing:"outgoing-",incoming:"incoming-"},fe={forward:"",backward:"-backward"},me=e=>`--marp-bespoke-transition-animation-${e}`,ge=e=>`--marp-transition-${e}`,pe=me("name"),ve=me("duration"),he=e=>new Promise(t=>{const n={},r=document.createElement("div"),o=e=>{r.remove(),t(e)};r.addEventListener("animationstart",()=>o(n)),Object.assign(r.style,{animationName:e,animationDuration:"1s",animationFillMode:"both",animationPlayState:"paused",position:"absolute",pointerEvents:"none"}),document.body.appendChild(r);const a=getComputedStyle(r).getPropertyValue(ge("duration"));a&&Number.parseFloat(a)>=0&&(n.defaultDuration=a),((e,t)=>{requestAnimationFrame(()=>{e.style.animationPlayState="running",requestAnimationFrame(()=>t(void 0))})})(r,o)}),ye=async e=>de.has(e)?de.get(e):(e=>{const t={},n=[];for(const[r,o]of Object.entries(ue))for(const[a,i]of Object.entries(fe)){const s=`marp-${o}transition${i}-${e}`;n.push(he(s).then(e=>{t[a]=t[a]||{},t[a][r]=e?{...e,name:s}:void 0}))}return Promise.all(n).then(()=>t)})(e).then(t=>(de.set(e,t),t)),be=e=>Object.values(e).flatMap(Object.values).every(e=>!e),we=(e,{type:t,backward:n})=>{const r=e[n?"backward":"forward"],o=(()=>{const e=r[t],n=e=>({[pe]:e.name});if(e)return n(e);if(r.both){const e=n(r.both);return"incoming"===t&&(e[me("direction")]="reverse"),e}})();return!o&&n?we(e,{type:t,backward:!1}):o||{[pe]:"__bespoke_marp_transition_no_animation__"}},xe=e=>{if(e)try{const t=JSON.parse(e);if((e=>{if("object"!=typeof e)return!1;const t=e;return"string"==typeof t.name&&(void 0===t.duration||"string"==typeof t.duration)})(t))return t}catch{}},ke="_tSId",$e="_tA",Ee="bespoke-marp-transition-warming-up",Le=window.matchMedia("(prefers-reduced-motion: reduce)"),Se="__bespoke_marp_transition_reduced_outgoing__",Pe="__bespoke_marp_transition_reduced_incoming__",_e={forward:{both:void 0,incoming:{name:Pe},outgoing:{name:Se}},backward:{both:void 0,incoming:{name:Pe},outgoing:{name:Se}}},Te=e=>{if(!document.startViewTransition)return;const t=t=>(void 0!==t&&(e._tD=t),e._tD);let n;t(!1),((...e)=>{CSS.registerProperty({name:ge("duration"),syntax:"<time>",inherits:!0,initialValue:"-1s"});const t=[...new Set(e).values()];return Promise.all(t.map(e=>ye(e))).then()})(...Array.from(document.querySelectorAll("section[data-transition], section[data-transition-back]")).flatMap(e=>[e.dataset.transition,e.dataset.transitionBack].flatMap(e=>{const t=xe(e);return[t?.name,t?.builtinFallback?`__builtin__${t.name}`:void 0]}).filter(e=>!!e))).then(()=>{document.querySelectorAll("style").forEach(e=>{e.innerHTML=e.innerHTML.replace(/--marp-transition-duration:[^;}]*[;}]/g,e=>e.slice(0,-1)+"!important"+e.slice(-1))})});const r=(n,{back:r,cond:o})=>a=>{const i=t();if(i)return!!a[$e]||!("object"!=typeof i||(i.skipTransition(),!a.forSync));if(!o(a))return!0;const s=e.slides[e.slide()],c=()=>a.back??r,l="data-transition"+(c()?"-back":""),d=s.querySelector(`section[${l}]`);if(!d)return!0;const u=xe(d.getAttribute(l)??void 0);return!u||((async(e,{builtinFallback:t=!0}={})=>{let n=await ye(e);if(be(n)){if(!t)return;return n=await ye(`__builtin__${e}`),be(n)?void 0:n}return n})(u.name,{builtinFallback:u.builtinFallback}).then(e=>{if(!e){t(!0);try{n(a)}finally{t(!1)}return}let r=e;Le.matches&&(console.warn("Use a constant animation to transition because preferring reduced motion by viewer has detected."),r=_e);const o=document.getElementById(ke);o&&o.remove();const i=document.createElement("style");i.id=ke,document.head.appendChild(i),((e,t)=>{const n=[`:root{${ge("direction")}:${t.backward?-1:1};}`,":root:has(.bespoke-marp-inactive){cursor:none;}"],r=t=>{const n=e[t].both?.defaultDuration||e[t].outgoing?.defaultDuration||e[t].incoming?.defaultDuration;return"forward"===t?n:n||r("forward")},o=t.duration||r(t.backward?"backward":"forward");void 0!==o&&n.push(`::view-transition-group(*){${ve}:${o};}`);const a=e=>Object.entries(e).map(([e,t])=>`${e}:${t};`).join("");return n.push(`::view-transition-old(root){${a(we(e,{...t,type:"outgoing"}))}}`,`::view-transition-new(root){${a(we(e,{...t,type:"incoming"}))}}`),n})(r,{backward:c(),duration:u.duration}).forEach(e=>i.sheet?.insertRule(e));const s=document.documentElement.classList;s.add(Ee);let l=!1;const d=()=>{l||(n(a),l=!0,s.remove(Ee))},f=()=>{t(!1),i.remove(),s.remove(Ee)};try{t(!0);const e=document.startViewTransition(d);t(e),e.finished.finally(f)}catch(e){console.error(e),d(),f()}}),!1)};e.on("prev",r(t=>e.prev({...t,[$e]:!0}),{back:!0,cond:e=>e.index>0&&!((e.fragment??1)&&n.fragmentIndex>0)})),e.on("next",r(t=>e.next({...t,[$e]:!0}),{cond:t=>t.index+1<e.slides.length&&!(n.fragmentIndex+1<n.fragments.length)})),setTimeout(()=>{e.on("slide",r(t=>e.slide(t.index,{...t,[$e]:!0}),{cond:t=>{const n=e.slide();return t.index!==n&&(t.back=t.index<n,!0)}}))},0),e.on("fragment",e=>{n=e})};let Ie;const Me=()=>(void 0===Ie&&(Ie="wakeLock"in navigator&&navigator.wakeLock),Ie),Oe=async()=>{const e=Me();if(e)try{return await e.request("screen")}catch(e){console.warn(e)}return null},Ae=async()=>{if(!Me())return;let e;const t=()=>{e&&"visible"===document.visibilityState&&Oe()};for(const e of["visibilitychange","fullscreenchange"])document.addEventListener(e,t);return e=await Oe(),e};((e=document.getElementById(":$p"))=>{(()=>{const e=p("view");a.dataset.bespokeView=e===l||e===c?e:""})();const t=(e=>{const t=p(e);return v({[e]:void 0}),t})("sync")||void 0;o.from(e,((...e)=>{const t=d.findIndex(e=>g()===e);return e.map(([e,n])=>e[t]&&n).filter(e=>e)})([[1,1,0],re({key:t})],[[1,1,1],Z(e)],[[1,1,0],M],[[1,1,1],k],[[1,0,0],T()],[[1,1,1],O],[[1,1,1],ne({history:!1})],[[1,1,0],A()],[[1,1,0],P],[[1,0,0],ee],[[1,1,0],le()],[[1,0,0],C()],[[1,0,0],Te],[[1,1,1],$],[[1,1,0],Ae]))})()}();</script></body></html>