-
Notifications
You must be signed in to change notification settings - Fork 358
/
Copy pathmain.js
1119 lines (1095 loc) · 78.9 KB
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
global.fs = require("fs")
global.vm = require("vm") // 这个源代码我改过了, 检测点少一点 vm2不好用
const { JSDOM } = require("jsdom");
const { config } = require("./config/config");
// 补环境框架有点干开发的活
// const JSDOM = require("jsdom").JSDOM
global.map = new WeakMap;
// 这个是一定要的, 把这个跳板函数放在外面, 是避免vm重复加载js
cbb_wf = {
map: map,
config: config,
getValue(obj, name) {
if (!map.has(obj)) {
let ctx = my_api.getContext(obj);
throw cbb_wf.newError.call(ctx, "Illegal invocation", 3);
}
let result = map.get(obj)[name];
return result;
},
setValue(obj, name, val) {
if (!map.has(obj)) {
let ctx = my_api.getContext(obj);
throw cbb_wf.newError.call(ctx, "Illegal invocation", 3);
}
let value = map.get(obj);
value[name] = val;
return;
},
hasValue(obj, key) {
if (!map.has(obj)) {
let ctx = my_api.getContext(obj);
throw new ctx.TypeError("Illegal invocation");
}
return map.get(obj).hasOwnProperty(key);
},
initValue(obj, value, proto_name) {
proto_name = proto_name || obj[Symbol.toStringTag];
if (!proto_name) console.log(obj, "not have __proto__");
value.proto = proto_name;
map.set(obj, value);
return;
},
checkIllegal(obj, name) {
// 区分是哪个上下文, iframe
let ctx = my_api.getContext(obj);
if (!map.has(obj)) {
// 说明这个对象不是正常创建得到的对象. 或者自己傻逼漏了
return [ctx, true];
}
// ctx是obj所在上下文的this -> window
let proto = map.get(obj).proto;
// 20ms
let result = proto === name || global.ctr[proto].prototype instanceof global.ctr[name];
// let result = true; 慢
// let ctx = obj.toString.__proto__.constructor("return this")();
return [ctx, !result];
},
newError(str, count) {
let err = new this.TypeError(str);
let stack = err.stack.split("\n");
stack.splice(1, count || 2);
// stack_intercept是堆栈拦截的函数
err.stack = this.my_api.stack_intercept(stack.join("\n"));
return err;
},
myToString: function myToString(func) {
// 函数获取toString, 会判断cbb_wf有没有myToString这个函数, 如果有, 就走进来.
// 我底层会判断这个返回值是不是字符串, 如果不是字符串, 说明这个函数没有保护.
return typeof func === 'function' && map.get(func) || true;
},
setNative: function (func, func_name) {
map.set(func, `function ${func_name || func.name || ''}() { [native code] }`);
},
deleteProperty(obj, name) {
my_api.defineProperty(obj, name, { value: 0, mode: 0 });
delete obj[name];
},
runLoop() {
// 我只把5ms以内的异步任务执行完...
deasync.sleep(5);
},
event_get_isTrusted(){
// 非法调用
let r = cbb_wf.checkIllegal(this, "Event");
let ctx = r[0];
if (r[1]) {
// 报错
throw cbb_wf.newError.call(ctx, "Illegal invocation");
}
let result = cbb_wf.getValue(this, "isTrusted");
if (cbb_wf.is_log) {
cbb_wf.console.log("[*] event_get_isTrusted, this =>", this + '', ", result =>", result + '');
}
return result;
},
// 是否打印所有的信息
is_log: true,
is_log_window: false,
console: console,
stack_str: ["(node:internal/", " at my_api.stack_intercept", 'D:\\', "cbb_wf."], // 替换堆栈字符串
TextDecoder: TextDecoder,
TextEncoder: TextEncoder,
atob: atob,
btoa: btoa,
Blob: Blob,
crypto: crypto,
setTimeout: setTimeout,
clearTimeout: clearTimeout,
setInetrval: global.setInetrval,
clearInterval: global.clearInterval,
};
global.ctr = {};
// 过非法调用检测也会用到这个设置__proto__
!function () {
for (let i in config.ctr_init) {
global.ctr[i] = function () {
}
}
for (let i in config.worker_ctr_init) {
global.ctr[i] = function () {
}
}
config.proto.forEach(i => {
global.ctr[i] = function () {
}
});
function initProto() {
this.Audio.prototype = this.HTMLAudioElement.prototype;
this.Image.prototype = this.HTMLImageElement.prototype;
this.Option.prototype = this.HTMLOptionElement.prototype;
this.Window.prototype.__proto__ = this.EventTarget.prototype;
this.XMLHttpRequestUpload.__proto__ = this.XMLHttpRequestEventTarget;
Object.setPrototypeOf(this.XMLHttpRequestUpload.prototype, this.XMLHttpRequestEventTarget.prototype);
this.XMLHttpRequestEventTarget.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.XMLHttpRequestEventTarget.prototype, this.EventTarget.prototype);
this.XMLHttpRequest.__proto__ = this.XMLHttpRequestEventTarget;
Object.setPrototypeOf(this.XMLHttpRequest.prototype, this.XMLHttpRequestEventTarget.prototype);
this.XMLDocument.__proto__ = this.Document;
Object.setPrototypeOf(this.XMLDocument.prototype, this.Document.prototype);
this.Worker.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.Worker.prototype, this.EventTarget.prototype);
this.Window.__proto__ = this.EventTarget;
this.WheelEvent.__proto__ = this.MouseEvent;
Object.setPrototypeOf(this.WheelEvent.prototype, this.MouseEvent.prototype);
this.WebSocket.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.WebSocket.prototype, this.EventTarget.prototype);
this.WebGLContextEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.WebGLContextEvent.prototype, this.Event.prototype);
this.WaveShaperNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.WaveShaperNode.prototype, this.AudioNode.prototype);
this.VisualViewport.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.VisualViewport.prototype, this.EventTarget.prototype);
this.VTTCue.__proto__ = this.TextTrackCue;
Object.setPrototypeOf(this.VTTCue.prototype, this.TextTrackCue.prototype);
this.UIEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.UIEvent.prototype, this.Event.prototype);
this.TransitionEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.TransitionEvent.prototype, this.Event.prototype);
this.TrackEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.TrackEvent.prototype, this.Event.prototype);
this.TouchEvent.__proto__ = this.UIEvent;
Object.setPrototypeOf(this.TouchEvent.prototype, this.UIEvent.prototype);
this.TextTrackList.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.TextTrackList.prototype, this.EventTarget.prototype);
this.TextTrackCue.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.TextTrackCue.prototype, this.EventTarget.prototype);
this.TextTrack.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.TextTrack.prototype, this.EventTarget.prototype);
this.TextEvent.__proto__ = this.UIEvent;
Object.setPrototypeOf(this.TextEvent.prototype, this.UIEvent.prototype);
this.Text.__proto__ = this.CharacterData;
Object.setPrototypeOf(this.Text.prototype, this.CharacterData.prototype);
this.TaskAttributionTiming.__proto__ = this.PerformanceEntry;
Object.setPrototypeOf(this.TaskAttributionTiming.prototype, this.PerformanceEntry.prototype);
this.SubmitEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.SubmitEvent.prototype, this.Event.prototype);
this.StylePropertyMap.__proto__ = this.StylePropertyMapReadOnly;
Object.setPrototypeOf(this.StylePropertyMap.prototype, this.StylePropertyMapReadOnly.prototype);
this.StorageEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.StorageEvent.prototype, this.Event.prototype);
this.StereoPannerNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.StereoPannerNode.prototype, this.AudioNode.prototype);
this.StaticRange.__proto__ = this.AbstractRange;
Object.setPrototypeOf(this.StaticRange.prototype, this.AbstractRange.prototype);
this.ShadowRoot.__proto__ = this.DocumentFragment;
Object.setPrototypeOf(this.ShadowRoot.prototype, this.DocumentFragment.prototype);
this.SecurityPolicyViolationEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.SecurityPolicyViolationEvent.prototype, this.Event.prototype);
this.ScriptProcessorNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.ScriptProcessorNode.prototype, this.AudioNode.prototype);
this.ScreenOrientation.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.ScreenOrientation.prototype, this.EventTarget.prototype);
this.Screen.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.Screen.prototype, this.EventTarget.prototype);
this.SVGViewElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGViewElement.prototype, this.SVGElement.prototype);
this.SVGUseElement.__proto__ = this.SVGGraphicsElement;
Object.setPrototypeOf(this.SVGUseElement.prototype, this.SVGGraphicsElement.prototype);
this.SVGTitleElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGTitleElement.prototype, this.SVGElement.prototype);
this.SVGTextPositioningElement.__proto__ = this.SVGTextContentElement;
Object.setPrototypeOf(this.SVGTextPositioningElement.prototype, this.SVGTextContentElement.prototype);
this.SVGTextPathElement.__proto__ = this.SVGTextContentElement;
Object.setPrototypeOf(this.SVGTextPathElement.prototype, this.SVGTextContentElement.prototype);
this.SVGTextElement.__proto__ = this.SVGTextPositioningElement;
Object.setPrototypeOf(this.SVGTextElement.prototype, this.SVGTextPositioningElement.prototype);
this.SVGTextContentElement.__proto__ = this.SVGGraphicsElement;
Object.setPrototypeOf(this.SVGTextContentElement.prototype, this.SVGGraphicsElement.prototype);
this.SVGTSpanElement.__proto__ = this.SVGTextPositioningElement;
Object.setPrototypeOf(this.SVGTSpanElement.prototype, this.SVGTextPositioningElement.prototype);
this.SVGSymbolElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGSymbolElement.prototype, this.SVGElement.prototype);
this.SVGSwitchElement.__proto__ = this.SVGGraphicsElement;
Object.setPrototypeOf(this.SVGSwitchElement.prototype, this.SVGGraphicsElement.prototype);
this.SVGStyleElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGStyleElement.prototype, this.SVGElement.prototype);
this.SVGStopElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGStopElement.prototype, this.SVGElement.prototype);
this.SVGSetElement.__proto__ = this.SVGAnimationElement;
Object.setPrototypeOf(this.SVGSetElement.prototype, this.SVGAnimationElement.prototype);
this.SVGScriptElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGScriptElement.prototype, this.SVGElement.prototype);
this.SVGSVGElement.__proto__ = this.SVGGraphicsElement;
Object.setPrototypeOf(this.SVGSVGElement.prototype, this.SVGGraphicsElement.prototype);
this.SVGRectElement.__proto__ = this.SVGGeometryElement;
Object.setPrototypeOf(this.SVGRectElement.prototype, this.SVGGeometryElement.prototype);
this.SVGRadialGradientElement.__proto__ = this.SVGGradientElement;
Object.setPrototypeOf(this.SVGRadialGradientElement.prototype, this.SVGGradientElement.prototype);
this.SVGPolylineElement.__proto__ = this.SVGGeometryElement;
Object.setPrototypeOf(this.SVGPolylineElement.prototype, this.SVGGeometryElement.prototype);
this.SVGPolygonElement.__proto__ = this.SVGGeometryElement;
Object.setPrototypeOf(this.SVGPolygonElement.prototype, this.SVGGeometryElement.prototype);
this.SVGPatternElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGPatternElement.prototype, this.SVGElement.prototype);
this.SVGPathElement.__proto__ = this.SVGGeometryElement;
Object.setPrototypeOf(this.SVGPathElement.prototype, this.SVGGeometryElement.prototype);
this.SVGMetadataElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGMetadataElement.prototype, this.SVGElement.prototype);
this.SVGMaskElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGMaskElement.prototype, this.SVGElement.prototype);
this.SVGMarkerElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGMarkerElement.prototype, this.SVGElement.prototype);
this.SVGMPathElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGMPathElement.prototype, this.SVGElement.prototype);
this.SVGLinearGradientElement.__proto__ = this.SVGGradientElement;
Object.setPrototypeOf(this.SVGLinearGradientElement.prototype, this.SVGGradientElement.prototype);
this.SVGLineElement.__proto__ = this.SVGGeometryElement;
Object.setPrototypeOf(this.SVGLineElement.prototype, this.SVGGeometryElement.prototype);
this.SVGImageElement.__proto__ = this.SVGGraphicsElement;
Object.setPrototypeOf(this.SVGImageElement.prototype, this.SVGGraphicsElement.prototype);
this.SVGGraphicsElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGGraphicsElement.prototype, this.SVGElement.prototype);
this.SVGGradientElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGGradientElement.prototype, this.SVGElement.prototype);
this.SVGGeometryElement.__proto__ = this.SVGGraphicsElement;
Object.setPrototypeOf(this.SVGGeometryElement.prototype, this.SVGGraphicsElement.prototype);
this.SVGGElement.__proto__ = this.SVGGraphicsElement;
Object.setPrototypeOf(this.SVGGElement.prototype, this.SVGGraphicsElement.prototype);
this.SVGForeignObjectElement.__proto__ = this.SVGGraphicsElement;
Object.setPrototypeOf(this.SVGForeignObjectElement.prototype, this.SVGGraphicsElement.prototype);
this.SVGFilterElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFilterElement.prototype, this.SVGElement.prototype);
this.SVGFETurbulenceElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFETurbulenceElement.prototype, this.SVGElement.prototype);
this.SVGFETileElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFETileElement.prototype, this.SVGElement.prototype);
this.SVGFESpotLightElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFESpotLightElement.prototype, this.SVGElement.prototype);
this.SVGFESpecularLightingElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFESpecularLightingElement.prototype, this.SVGElement.prototype);
this.SVGFEPointLightElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFEPointLightElement.prototype, this.SVGElement.prototype);
this.SVGFEOffsetElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFEOffsetElement.prototype, this.SVGElement.prototype);
this.SVGFEMorphologyElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFEMorphologyElement.prototype, this.SVGElement.prototype);
this.SVGFEMergeNodeElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFEMergeNodeElement.prototype, this.SVGElement.prototype);
this.SVGFEMergeElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFEMergeElement.prototype, this.SVGElement.prototype);
this.SVGFEImageElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFEImageElement.prototype, this.SVGElement.prototype);
this.SVGFEGaussianBlurElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFEGaussianBlurElement.prototype, this.SVGElement.prototype);
this.SVGFEFuncRElement.__proto__ = this.SVGComponentTransferFunctionElement;
Object.setPrototypeOf(this.SVGFEFuncRElement.prototype, this.SVGComponentTransferFunctionElement.prototype);
this.SVGFEFuncGElement.__proto__ = this.SVGComponentTransferFunctionElement;
Object.setPrototypeOf(this.SVGFEFuncGElement.prototype, this.SVGComponentTransferFunctionElement.prototype);
this.SVGFEFuncBElement.__proto__ = this.SVGComponentTransferFunctionElement;
Object.setPrototypeOf(this.SVGFEFuncBElement.prototype, this.SVGComponentTransferFunctionElement.prototype);
this.SVGFEFuncAElement.__proto__ = this.SVGComponentTransferFunctionElement;
Object.setPrototypeOf(this.SVGFEFuncAElement.prototype, this.SVGComponentTransferFunctionElement.prototype);
this.SVGFEFloodElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFEFloodElement.prototype, this.SVGElement.prototype);
this.SVGFEDropShadowElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFEDropShadowElement.prototype, this.SVGElement.prototype);
this.SVGFEDistantLightElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFEDistantLightElement.prototype, this.SVGElement.prototype);
this.SVGFEDisplacementMapElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFEDisplacementMapElement.prototype, this.SVGElement.prototype);
this.SVGFEDiffuseLightingElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFEDiffuseLightingElement.prototype, this.SVGElement.prototype);
this.SVGFEConvolveMatrixElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFEConvolveMatrixElement.prototype, this.SVGElement.prototype);
this.SVGFECompositeElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFECompositeElement.prototype, this.SVGElement.prototype);
this.SVGFEComponentTransferElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFEComponentTransferElement.prototype, this.SVGElement.prototype);
this.SVGFEColorMatrixElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFEColorMatrixElement.prototype, this.SVGElement.prototype);
this.SVGFEBlendElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGFEBlendElement.prototype, this.SVGElement.prototype);
this.SVGEllipseElement.__proto__ = this.SVGGeometryElement;
Object.setPrototypeOf(this.SVGEllipseElement.prototype, this.SVGGeometryElement.prototype);
this.SVGElement.__proto__ = this.Element;
Object.setPrototypeOf(this.SVGElement.prototype, this.Element.prototype);
this.SVGDescElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGDescElement.prototype, this.SVGElement.prototype);
this.SVGDefsElement.__proto__ = this.SVGGraphicsElement;
Object.setPrototypeOf(this.SVGDefsElement.prototype, this.SVGGraphicsElement.prototype);
this.SVGComponentTransferFunctionElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGComponentTransferFunctionElement.prototype, this.SVGElement.prototype);
this.SVGClipPathElement.__proto__ = this.SVGGraphicsElement;
Object.setPrototypeOf(this.SVGClipPathElement.prototype, this.SVGGraphicsElement.prototype);
this.SVGCircleElement.__proto__ = this.SVGGeometryElement;
Object.setPrototypeOf(this.SVGCircleElement.prototype, this.SVGGeometryElement.prototype);
this.SVGAnimationElement.__proto__ = this.SVGElement;
Object.setPrototypeOf(this.SVGAnimationElement.prototype, this.SVGElement.prototype);
this.SVGAnimateTransformElement.__proto__ = this.SVGAnimationElement;
Object.setPrototypeOf(this.SVGAnimateTransformElement.prototype, this.SVGAnimationElement.prototype);
this.SVGAnimateMotionElement.__proto__ = this.SVGAnimationElement;
Object.setPrototypeOf(this.SVGAnimateMotionElement.prototype, this.SVGAnimationElement.prototype);
this.SVGAnimateElement.__proto__ = this.SVGAnimationElement;
Object.setPrototypeOf(this.SVGAnimateElement.prototype, this.SVGAnimationElement.prototype);
this.SVGAElement.__proto__ = this.SVGGraphicsElement;
Object.setPrototypeOf(this.SVGAElement.prototype, this.SVGGraphicsElement.prototype);
this.Range.__proto__ = this.AbstractRange;
Object.setPrototypeOf(this.Range.prototype, this.AbstractRange.prototype);
this.RadioNodeList.__proto__ = this.NodeList;
Object.setPrototypeOf(this.RadioNodeList.prototype, this.NodeList.prototype);
this.RTCTrackEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.RTCTrackEvent.prototype, this.Event.prototype);
this.RTCSctpTransport.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.RTCSctpTransport.prototype, this.EventTarget.prototype);
this.RTCPeerConnectionIceEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.RTCPeerConnectionIceEvent.prototype, this.Event.prototype);
this.RTCPeerConnectionIceErrorEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.RTCPeerConnectionIceErrorEvent.prototype, this.Event.prototype);
this.RTCPeerConnection.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.RTCPeerConnection.prototype, this.EventTarget.prototype);
this.RTCErrorEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.RTCErrorEvent.prototype, this.Event.prototype);
this.RTCError.__proto__ = this.DOMException;
Object.setPrototypeOf(this.RTCError.prototype, this.DOMException.prototype);
this.RTCDtlsTransport.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.RTCDtlsTransport.prototype, this.EventTarget.prototype);
this.RTCDataChannelEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.RTCDataChannelEvent.prototype, this.Event.prototype);
this.RTCDataChannel.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.RTCDataChannel.prototype, this.EventTarget.prototype);
this.RTCDTMFToneChangeEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.RTCDTMFToneChangeEvent.prototype, this.Event.prototype);
this.RTCDTMFSender.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.RTCDTMFSender.prototype, this.EventTarget.prototype);
this.PromiseRejectionEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.PromiseRejectionEvent.prototype, this.Event.prototype);
this.ProgressEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.ProgressEvent.prototype, this.Event.prototype);
this.ProcessingInstruction.__proto__ = this.CharacterData;
Object.setPrototypeOf(this.ProcessingInstruction.prototype, this.CharacterData.prototype);
this.PopStateEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.PopStateEvent.prototype, this.Event.prototype);
this.PointerEvent.__proto__ = this.MouseEvent;
Object.setPrototypeOf(this.PointerEvent.prototype, this.MouseEvent.prototype);
this.PerformanceResourceTiming.__proto__ = this.PerformanceEntry;
Object.setPrototypeOf(this.PerformanceResourceTiming.prototype, this.PerformanceEntry.prototype);
this.PerformancePaintTiming.__proto__ = this.PerformanceEntry;
Object.setPrototypeOf(this.PerformancePaintTiming.prototype, this.PerformanceEntry.prototype);
this.PerformanceNavigationTiming.__proto__ = this.PerformanceResourceTiming;
Object.setPrototypeOf(this.PerformanceNavigationTiming.prototype, this.PerformanceResourceTiming.prototype);
this.PerformanceMeasure.__proto__ = this.PerformanceEntry;
Object.setPrototypeOf(this.PerformanceMeasure.prototype, this.PerformanceEntry.prototype);
this.PerformanceMark.__proto__ = this.PerformanceEntry;
Object.setPrototypeOf(this.PerformanceMark.prototype, this.PerformanceEntry.prototype);
this.PerformanceLongTaskTiming.__proto__ = this.PerformanceEntry;
Object.setPrototypeOf(this.PerformanceLongTaskTiming.prototype, this.PerformanceEntry.prototype);
this.PerformanceEventTiming.__proto__ = this.PerformanceEntry;
Object.setPrototypeOf(this.PerformanceEventTiming.prototype, this.PerformanceEntry.prototype);
this.PerformanceElementTiming.__proto__ = this.PerformanceEntry;
Object.setPrototypeOf(this.PerformanceElementTiming.prototype, this.PerformanceEntry.prototype);
this.Performance.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.Performance.prototype, this.EventTarget.prototype);
this.PannerNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.PannerNode.prototype, this.AudioNode.prototype);
this.PageTransitionEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.PageTransitionEvent.prototype, this.Event.prototype);
this.OscillatorNode.__proto__ = this.AudioScheduledSourceNode;
Object.setPrototypeOf(this.OscillatorNode.prototype, this.AudioScheduledSourceNode.prototype);
this.OffscreenCanvas.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.OffscreenCanvas.prototype, this.EventTarget.prototype);
this.OfflineAudioContext.__proto__ = this.BaseAudioContext;
Object.setPrototypeOf(this.OfflineAudioContext.prototype, this.BaseAudioContext.prototype);
this.OfflineAudioCompletionEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.OfflineAudioCompletionEvent.prototype, this.Event.prototype);
this.Node.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.Node.prototype, this.EventTarget.prototype);
this.NetworkInformation.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.NetworkInformation.prototype, this.EventTarget.prototype);
this.MouseEvent.__proto__ = this.UIEvent;
Object.setPrototypeOf(this.MouseEvent.prototype, this.UIEvent.prototype);
this.MessagePort.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.MessagePort.prototype, this.EventTarget.prototype);
this.MessageEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.MessageEvent.prototype, this.Event.prototype);
this.MediaStreamTrackEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.MediaStreamTrackEvent.prototype, this.Event.prototype);
this.MediaStreamEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.MediaStreamEvent.prototype, this.Event.prototype);
this.MediaStreamAudioSourceNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.MediaStreamAudioSourceNode.prototype, this.AudioNode.prototype);
this.MediaStreamAudioDestinationNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.MediaStreamAudioDestinationNode.prototype, this.AudioNode.prototype);
this.MediaStream.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.MediaStream.prototype, this.EventTarget.prototype);
this.MediaRecorder.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.MediaRecorder.prototype, this.EventTarget.prototype);
this.MediaQueryListEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.MediaQueryListEvent.prototype, this.Event.prototype);
this.MediaQueryList.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.MediaQueryList.prototype, this.EventTarget.prototype);
this.MediaEncryptedEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.MediaEncryptedEvent.prototype, this.Event.prototype);
this.MediaElementAudioSourceNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.MediaElementAudioSourceNode.prototype, this.AudioNode.prototype);
this.LayoutShift.__proto__ = this.PerformanceEntry;
Object.setPrototypeOf(this.LayoutShift.prototype, this.PerformanceEntry.prototype);
this.LargestContentfulPaint.__proto__ = this.PerformanceEntry;
Object.setPrototypeOf(this.LargestContentfulPaint.prototype, this.PerformanceEntry.prototype);
this.KeyframeEffect.__proto__ = this.AnimationEffect;
Object.setPrototypeOf(this.KeyframeEffect.prototype, this.AnimationEffect.prototype);
this.KeyboardEvent.__proto__ = this.UIEvent;
Object.setPrototypeOf(this.KeyboardEvent.prototype, this.UIEvent.prototype);
this.InputEvent.__proto__ = this.UIEvent;
Object.setPrototypeOf(this.InputEvent.prototype, this.UIEvent.prototype);
this.InputDeviceInfo.__proto__ = this.MediaDeviceInfo;
Object.setPrototypeOf(this.InputDeviceInfo.prototype, this.MediaDeviceInfo.prototype);
this.IIRFilterNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.IIRFilterNode.prototype, this.AudioNode.prototype);
this.IDBVersionChangeEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.IDBVersionChangeEvent.prototype, this.Event.prototype);
this.IDBTransaction.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.IDBTransaction.prototype, this.EventTarget.prototype);
this.IDBRequest.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.IDBRequest.prototype, this.EventTarget.prototype);
this.IDBOpenDBRequest.__proto__ = this.IDBRequest;
Object.setPrototypeOf(this.IDBOpenDBRequest.prototype, this.IDBRequest.prototype);
this.IDBDatabase.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.IDBDatabase.prototype, this.EventTarget.prototype);
this.IDBCursorWithValue.__proto__ = this.IDBCursor;
Object.setPrototypeOf(this.IDBCursorWithValue.prototype, this.IDBCursor.prototype);
this.HashChangeEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.HashChangeEvent.prototype, this.Event.prototype);
this.HTMLVideoElement.__proto__ = this.HTMLMediaElement;
Object.setPrototypeOf(this.HTMLVideoElement.prototype, this.HTMLMediaElement.prototype);
this.HTMLUnknownElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLUnknownElement.prototype, this.HTMLElement.prototype);
this.HTMLUListElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLUListElement.prototype, this.HTMLElement.prototype);
this.HTMLTrackElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLTrackElement.prototype, this.HTMLElement.prototype);
this.HTMLTitleElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLTitleElement.prototype, this.HTMLElement.prototype);
this.HTMLTimeElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLTimeElement.prototype, this.HTMLElement.prototype);
this.HTMLTextAreaElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLTextAreaElement.prototype, this.HTMLElement.prototype);
this.HTMLTemplateElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLTemplateElement.prototype, this.HTMLElement.prototype);
this.HTMLTableSectionElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLTableSectionElement.prototype, this.HTMLElement.prototype);
this.HTMLTableRowElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLTableRowElement.prototype, this.HTMLElement.prototype);
this.HTMLTableElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLTableElement.prototype, this.HTMLElement.prototype);
this.HTMLTableColElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLTableColElement.prototype, this.HTMLElement.prototype);
this.HTMLTableCellElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLTableCellElement.prototype, this.HTMLElement.prototype);
this.HTMLTableCaptionElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLTableCaptionElement.prototype, this.HTMLElement.prototype);
this.HTMLStyleElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLStyleElement.prototype, this.HTMLElement.prototype);
this.HTMLSpanElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLSpanElement.prototype, this.HTMLElement.prototype);
this.HTMLSourceElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLSourceElement.prototype, this.HTMLElement.prototype);
this.HTMLSlotElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLSlotElement.prototype, this.HTMLElement.prototype);
this.HTMLSelectElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLSelectElement.prototype, this.HTMLElement.prototype);
this.HTMLScriptElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLScriptElement.prototype, this.HTMLElement.prototype);
this.HTMLQuoteElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLQuoteElement.prototype, this.HTMLElement.prototype);
this.HTMLProgressElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLProgressElement.prototype, this.HTMLElement.prototype);
this.HTMLPreElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLPreElement.prototype, this.HTMLElement.prototype);
this.HTMLPictureElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLPictureElement.prototype, this.HTMLElement.prototype);
this.HTMLParamElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLParamElement.prototype, this.HTMLElement.prototype);
this.HTMLParagraphElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLParagraphElement.prototype, this.HTMLElement.prototype);
this.HTMLOutputElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLOutputElement.prototype, this.HTMLElement.prototype);
this.HTMLOptionsCollection.__proto__ = this.HTMLCollection;
Object.setPrototypeOf(this.HTMLOptionsCollection.prototype, this.HTMLCollection.prototype);
this.HTMLOptionElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLOptionElement.prototype, this.HTMLElement.prototype);
this.HTMLOptGroupElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLOptGroupElement.prototype, this.HTMLElement.prototype);
this.HTMLObjectElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLObjectElement.prototype, this.HTMLElement.prototype);
this.HTMLOListElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLOListElement.prototype, this.HTMLElement.prototype);
this.HTMLModElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLModElement.prototype, this.HTMLElement.prototype);
this.HTMLMeterElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLMeterElement.prototype, this.HTMLElement.prototype);
this.HTMLMetaElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLMetaElement.prototype, this.HTMLElement.prototype);
this.HTMLMenuElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLMenuElement.prototype, this.HTMLElement.prototype);
this.HTMLMediaElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLMediaElement.prototype, this.HTMLElement.prototype);
this.HTMLMarqueeElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLMarqueeElement.prototype, this.HTMLElement.prototype);
this.HTMLMapElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLMapElement.prototype, this.HTMLElement.prototype);
this.HTMLLinkElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLLinkElement.prototype, this.HTMLElement.prototype);
this.HTMLLegendElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLLegendElement.prototype, this.HTMLElement.prototype);
this.HTMLLabelElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLLabelElement.prototype, this.HTMLElement.prototype);
this.HTMLLIElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLLIElement.prototype, this.HTMLElement.prototype);
this.HTMLInputElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLInputElement.prototype, this.HTMLElement.prototype);
this.HTMLImageElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLImageElement.prototype, this.HTMLElement.prototype);
this.HTMLIFrameElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLIFrameElement.prototype, this.HTMLElement.prototype);
this.HTMLHtmlElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLHtmlElement.prototype, this.HTMLElement.prototype);
this.HTMLHeadingElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLHeadingElement.prototype, this.HTMLElement.prototype);
this.HTMLHeadElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLHeadElement.prototype, this.HTMLElement.prototype);
this.HTMLHRElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLHRElement.prototype, this.HTMLElement.prototype);
this.HTMLFrameSetElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLFrameSetElement.prototype, this.HTMLElement.prototype);
this.HTMLFrameElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLFrameElement.prototype, this.HTMLElement.prototype);
this.HTMLFormElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLFormElement.prototype, this.HTMLElement.prototype);
this.HTMLFormControlsCollection.__proto__ = this.HTMLCollection;
Object.setPrototypeOf(this.HTMLFormControlsCollection.prototype, this.HTMLCollection.prototype);
this.HTMLFontElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLFontElement.prototype, this.HTMLElement.prototype);
this.HTMLFieldSetElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLFieldSetElement.prototype, this.HTMLElement.prototype);
this.HTMLEmbedElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLEmbedElement.prototype, this.HTMLElement.prototype);
this.HTMLElement.__proto__ = this.Element;
Object.setPrototypeOf(this.HTMLElement.prototype, this.Element.prototype);
this.HTMLDocument.__proto__ = this.Document;
Object.setPrototypeOf(this.HTMLDocument.prototype, this.Document.prototype);
this.HTMLDivElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLDivElement.prototype, this.HTMLElement.prototype);
this.HTMLDirectoryElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLDirectoryElement.prototype, this.HTMLElement.prototype);
this.HTMLDialogElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLDialogElement.prototype, this.HTMLElement.prototype);
this.HTMLDetailsElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLDetailsElement.prototype, this.HTMLElement.prototype);
this.HTMLDataListElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLDataListElement.prototype, this.HTMLElement.prototype);
this.HTMLDataElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLDataElement.prototype, this.HTMLElement.prototype);
this.HTMLDListElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLDListElement.prototype, this.HTMLElement.prototype);
this.HTMLCanvasElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLCanvasElement.prototype, this.HTMLElement.prototype);
this.HTMLButtonElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLButtonElement.prototype, this.HTMLElement.prototype);
this.HTMLBodyElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLBodyElement.prototype, this.HTMLElement.prototype);
this.HTMLBaseElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLBaseElement.prototype, this.HTMLElement.prototype);
this.HTMLBRElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLBRElement.prototype, this.HTMLElement.prototype);
this.HTMLAudioElement.__proto__ = this.HTMLMediaElement;
Object.setPrototypeOf(this.HTMLAudioElement.prototype, this.HTMLMediaElement.prototype);
this.HTMLAreaElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLAreaElement.prototype, this.HTMLElement.prototype);
this.HTMLAnchorElement.__proto__ = this.HTMLElement;
Object.setPrototypeOf(this.HTMLAnchorElement.prototype, this.HTMLElement.prototype);
this.GamepadEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.GamepadEvent.prototype, this.Event.prototype);
this.GainNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.GainNode.prototype, this.AudioNode.prototype);
this.FormDataEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.FormDataEvent.prototype, this.Event.prototype);
this.FontFaceSetLoadEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.FontFaceSetLoadEvent.prototype, this.Event.prototype);
this.FocusEvent.__proto__ = this.UIEvent;
Object.setPrototypeOf(this.FocusEvent.prototype, this.UIEvent.prototype);
this.FileReader.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.FileReader.prototype, this.EventTarget.prototype);
this.File.__proto__ = this.Blob;
Object.setPrototypeOf(this.File.prototype, this.Blob.prototype);
this.EventSource.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.EventSource.prototype, this.EventTarget.prototype);
this.ErrorEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.ErrorEvent.prototype, this.Event.prototype);
this.Element.__proto__ = this.Node;
Object.setPrototypeOf(this.Element.prototype, this.Node.prototype);
this.DynamicsCompressorNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.DynamicsCompressorNode.prototype, this.AudioNode.prototype);
this.DragEvent.__proto__ = this.MouseEvent;
Object.setPrototypeOf(this.DragEvent.prototype, this.MouseEvent.prototype);
this.DocumentType.__proto__ = this.Node;
Object.setPrototypeOf(this.DocumentType.prototype, this.Node.prototype);
this.DocumentFragment.__proto__ = this.Node;
Object.setPrototypeOf(this.DocumentFragment.prototype, this.Node.prototype);
this.Document.__proto__ = this.Node;
Object.setPrototypeOf(this.Document.prototype, this.Node.prototype);
this.DelayNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.DelayNode.prototype, this.AudioNode.prototype);
this.DOMRect.__proto__ = this.DOMRectReadOnly;
Object.setPrototypeOf(this.DOMRect.prototype, this.DOMRectReadOnly.prototype);
this.DOMPoint.__proto__ = this.DOMPointReadOnly;
Object.setPrototypeOf(this.DOMPoint.prototype, this.DOMPointReadOnly.prototype);
this.DOMMatrix.__proto__ = this.DOMMatrixReadOnly;
Object.setPrototypeOf(this.DOMMatrix.prototype, this.DOMMatrixReadOnly.prototype);
this.CustomEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.CustomEvent.prototype, this.Event.prototype);
this.ConvolverNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.ConvolverNode.prototype, this.AudioNode.prototype);
this.ConstantSourceNode.__proto__ = this.AudioScheduledSourceNode;
Object.setPrototypeOf(this.ConstantSourceNode.prototype, this.AudioScheduledSourceNode.prototype);
this.CompositionEvent.__proto__ = this.UIEvent;
Object.setPrototypeOf(this.CompositionEvent.prototype, this.UIEvent.prototype);
this.Comment.__proto__ = this.CharacterData;
Object.setPrototypeOf(this.Comment.prototype, this.CharacterData.prototype);
this.CloseEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.CloseEvent.prototype, this.Event.prototype);
this.ClipboardEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.ClipboardEvent.prototype, this.Event.prototype);
this.CharacterData.__proto__ = this.Node;
Object.setPrototypeOf(this.CharacterData.prototype, this.Node.prototype);
this.ChannelSplitterNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.ChannelSplitterNode.prototype, this.AudioNode.prototype);
this.ChannelMergerNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.ChannelMergerNode.prototype, this.AudioNode.prototype);
this.CanvasCaptureMediaStreamTrack.__proto__ = this.MediaStreamTrack;
Object.setPrototypeOf(this.CanvasCaptureMediaStreamTrack.prototype, this.MediaStreamTrack.prototype);
this.CSSUnparsedValue.__proto__ = this.CSSStyleValue;
Object.setPrototypeOf(this.CSSUnparsedValue.prototype, this.CSSStyleValue.prototype);
this.CSSUnitValue.__proto__ = this.CSSNumericValue;
Object.setPrototypeOf(this.CSSUnitValue.prototype, this.CSSNumericValue.prototype);
this.CSSTranslate.__proto__ = this.CSSTransformComponent;
Object.setPrototypeOf(this.CSSTranslate.prototype, this.CSSTransformComponent.prototype);
this.CSSTransformValue.__proto__ = this.CSSStyleValue;
Object.setPrototypeOf(this.CSSTransformValue.prototype, this.CSSStyleValue.prototype);
this.CSSSupportsRule.__proto__ = this.CSSConditionRule;
Object.setPrototypeOf(this.CSSSupportsRule.prototype, this.CSSConditionRule.prototype);
this.CSSStyleSheet.__proto__ = this.StyleSheet;
Object.setPrototypeOf(this.CSSStyleSheet.prototype, this.StyleSheet.prototype);
this.CSSStyleRule.__proto__ = this.CSSRule;
Object.setPrototypeOf(this.CSSStyleRule.prototype, this.CSSRule.prototype);
this.CSSSkewY.__proto__ = this.CSSTransformComponent;
Object.setPrototypeOf(this.CSSSkewY.prototype, this.CSSTransformComponent.prototype);
this.CSSSkewX.__proto__ = this.CSSTransformComponent;
Object.setPrototypeOf(this.CSSSkewX.prototype, this.CSSTransformComponent.prototype);
this.CSSSkew.__proto__ = this.CSSTransformComponent;
Object.setPrototypeOf(this.CSSSkew.prototype, this.CSSTransformComponent.prototype);
this.CSSScale.__proto__ = this.CSSTransformComponent;
Object.setPrototypeOf(this.CSSScale.prototype, this.CSSTransformComponent.prototype);
this.CSSRotate.__proto__ = this.CSSTransformComponent;
Object.setPrototypeOf(this.CSSRotate.prototype, this.CSSTransformComponent.prototype);
this.CSSPropertyRule.__proto__ = this.CSSRule;
Object.setPrototypeOf(this.CSSPropertyRule.prototype, this.CSSRule.prototype);
this.CSSPositionValue.__proto__ = this.CSSStyleValue;
Object.setPrototypeOf(this.CSSPositionValue.prototype, this.CSSStyleValue.prototype);
this.CSSPerspective.__proto__ = this.CSSTransformComponent;
Object.setPrototypeOf(this.CSSPerspective.prototype, this.CSSTransformComponent.prototype);
this.CSSPageRule.__proto__ = this.CSSRule;
Object.setPrototypeOf(this.CSSPageRule.prototype, this.CSSRule.prototype);
this.CSSNumericValue.__proto__ = this.CSSStyleValue;
Object.setPrototypeOf(this.CSSNumericValue.prototype, this.CSSStyleValue.prototype);
this.CSSNamespaceRule.__proto__ = this.CSSRule;
Object.setPrototypeOf(this.CSSNamespaceRule.prototype, this.CSSRule.prototype);
this.CSSMediaRule.__proto__ = this.CSSConditionRule;
Object.setPrototypeOf(this.CSSMediaRule.prototype, this.CSSConditionRule.prototype);
this.CSSMatrixComponent.__proto__ = this.CSSTransformComponent;
Object.setPrototypeOf(this.CSSMatrixComponent.prototype, this.CSSTransformComponent.prototype);
this.CSSMathValue.__proto__ = this.CSSNumericValue;
Object.setPrototypeOf(this.CSSMathValue.prototype, this.CSSNumericValue.prototype);
this.CSSMathSum.__proto__ = this.CSSMathValue;
Object.setPrototypeOf(this.CSSMathSum.prototype, this.CSSMathValue.prototype);
this.CSSMathProduct.__proto__ = this.CSSMathValue;
Object.setPrototypeOf(this.CSSMathProduct.prototype, this.CSSMathValue.prototype);
this.CSSMathNegate.__proto__ = this.CSSMathValue;
Object.setPrototypeOf(this.CSSMathNegate.prototype, this.CSSMathValue.prototype);
this.CSSMathMin.__proto__ = this.CSSMathValue;
Object.setPrototypeOf(this.CSSMathMin.prototype, this.CSSMathValue.prototype);
this.CSSMathMax.__proto__ = this.CSSMathValue;
Object.setPrototypeOf(this.CSSMathMax.prototype, this.CSSMathValue.prototype);
this.CSSMathInvert.__proto__ = this.CSSMathValue;
Object.setPrototypeOf(this.CSSMathInvert.prototype, this.CSSMathValue.prototype);
this.CSSMathClamp.__proto__ = this.CSSMathValue;
Object.setPrototypeOf(this.CSSMathClamp.prototype, this.CSSMathValue.prototype);
this.CSSLayerStatementRule.__proto__ = this.CSSRule;
Object.setPrototypeOf(this.CSSLayerStatementRule.prototype, this.CSSRule.prototype);
this.CSSLayerBlockRule.__proto__ = this.CSSGroupingRule;
Object.setPrototypeOf(this.CSSLayerBlockRule.prototype, this.CSSGroupingRule.prototype);
this.CSSKeywordValue.__proto__ = this.CSSStyleValue;
Object.setPrototypeOf(this.CSSKeywordValue.prototype, this.CSSStyleValue.prototype);
this.CSSKeyframesRule.__proto__ = this.CSSRule;
Object.setPrototypeOf(this.CSSKeyframesRule.prototype, this.CSSRule.prototype);
this.CSSKeyframeRule.__proto__ = this.CSSRule;
Object.setPrototypeOf(this.CSSKeyframeRule.prototype, this.CSSRule.prototype);
this.CSSImportRule.__proto__ = this.CSSRule;
Object.setPrototypeOf(this.CSSImportRule.prototype, this.CSSRule.prototype);
this.CSSImageValue.__proto__ = this.CSSStyleValue;
Object.setPrototypeOf(this.CSSImageValue.prototype, this.CSSStyleValue.prototype);
this.CSSGroupingRule.__proto__ = this.CSSRule;
Object.setPrototypeOf(this.CSSGroupingRule.prototype, this.CSSRule.prototype);
this.CSSFontFaceRule.__proto__ = this.CSSRule;
Object.setPrototypeOf(this.CSSFontFaceRule.prototype, this.CSSRule.prototype);
this.CSSCounterStyleRule.__proto__ = this.CSSRule;
Object.setPrototypeOf(this.CSSCounterStyleRule.prototype, this.CSSRule.prototype);
this.CSSConditionRule.__proto__ = this.CSSGroupingRule;
Object.setPrototypeOf(this.CSSConditionRule.prototype, this.CSSGroupingRule.prototype);
this.CDATASection.__proto__ = this.Text;
Object.setPrototypeOf(this.CDATASection.prototype, this.Text.prototype);
this.BroadcastChannel.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.BroadcastChannel.prototype, this.EventTarget.prototype);
this.BlobEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.BlobEvent.prototype, this.Event.prototype);
this.BiquadFilterNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.BiquadFilterNode.prototype, this.AudioNode.prototype);
this.BeforeUnloadEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.BeforeUnloadEvent.prototype, this.Event.prototype);
this.BeforeInstallPromptEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.BeforeInstallPromptEvent.prototype, this.Event.prototype);
this.BaseAudioContext.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.BaseAudioContext.prototype, this.EventTarget.prototype);
this.AudioWorkletNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.AudioWorkletNode.prototype, this.AudioNode.prototype);
this.AudioScheduledSourceNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.AudioScheduledSourceNode.prototype, this.AudioNode.prototype);
this.AudioProcessingEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.AudioProcessingEvent.prototype, this.Event.prototype);
this.AudioNode.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.AudioNode.prototype, this.EventTarget.prototype);
this.AudioDestinationNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.AudioDestinationNode.prototype, this.AudioNode.prototype);
this.AudioContext.__proto__ = this.BaseAudioContext;
Object.setPrototypeOf(this.AudioContext.prototype, this.BaseAudioContext.prototype);
this.AudioBufferSourceNode.__proto__ = this.AudioScheduledSourceNode;
Object.setPrototypeOf(this.AudioBufferSourceNode.prototype, this.AudioScheduledSourceNode.prototype);
this.Attr.__proto__ = this.Node;
Object.setPrototypeOf(this.Attr.prototype, this.Node.prototype);
this.AnimationEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.AnimationEvent.prototype, this.Event.prototype);
this.Animation.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.Animation.prototype, this.EventTarget.prototype);
this.AnalyserNode.__proto__ = this.AudioNode;
Object.setPrototypeOf(this.AnalyserNode.prototype, this.AudioNode.prototype);
this.AbortSignal.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.AbortSignal.prototype, this.EventTarget.prototype);
this.AbsoluteOrientationSensor.__proto__ = this.OrientationSensor;
Object.setPrototypeOf(this.AbsoluteOrientationSensor.prototype, this.OrientationSensor.prototype);
this.Accelerometer.__proto__ = this.Sensor;
Object.setPrototypeOf(this.Accelerometer.prototype, this.Sensor.prototype);
this.AudioWorklet.__proto__ = this.Worklet;
Object.setPrototypeOf(this.AudioWorklet.prototype, this.Worklet.prototype);
this.Clipboard.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.Clipboard.prototype, this.EventTarget.prototype);
this.CookieChangeEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.CookieChangeEvent.prototype, this.Event.prototype);
this.CookieStore.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.CookieStore.prototype, this.EventTarget.prototype);
this.DeviceMotionEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.DeviceMotionEvent.prototype, this.Event.prototype);
this.DeviceOrientationEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.DeviceOrientationEvent.prototype, this.Event.prototype);
this.FederatedCredential.__proto__ = this.Credential;
Object.setPrototypeOf(this.FederatedCredential.prototype, this.Credential.prototype);
this.Gyroscope.__proto__ = this.Sensor;
Object.setPrototypeOf(this.Gyroscope.prototype, this.Sensor.prototype);
this.LinearAccelerationSensor.__proto__ = this.Accelerometer;
Object.setPrototypeOf(this.LinearAccelerationSensor.prototype, this.Accelerometer.prototype);
this.MIDIAccess.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.MIDIAccess.prototype, this.EventTarget.prototype);
this.MIDIConnectionEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.MIDIConnectionEvent.prototype, this.Event.prototype);
this.MIDIInput.__proto__ = this.MIDIPort;
Object.setPrototypeOf(this.MIDIInput.prototype, this.MIDIPort.prototype);
this.MIDIMessageEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.MIDIMessageEvent.prototype, this.Event.prototype);
this.MIDIOutput.__proto__ = this.MIDIPort;
Object.setPrototypeOf(this.MIDIOutput.prototype, this.MIDIPort.prototype);
this.MIDIPort.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.MIDIPort.prototype, this.EventTarget.prototype);
this.MediaDevices.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.MediaDevices.prototype, this.EventTarget.prototype);
this.MediaKeyMessageEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.MediaKeyMessageEvent.prototype, this.Event.prototype);
this.MediaKeySession.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.MediaKeySession.prototype, this.EventTarget.prototype);
this.NavigatorManagedData.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.NavigatorManagedData.prototype, this.EventTarget.prototype);
this.OrientationSensor.__proto__ = this.Sensor;
Object.setPrototypeOf(this.OrientationSensor.prototype, this.Sensor.prototype);
this.PasswordCredential.__proto__ = this.Credential;
Object.setPrototypeOf(this.PasswordCredential.prototype, this.Credential.prototype);
this.RTCIceTransport.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.RTCIceTransport.prototype, this.EventTarget.prototype);
this.RelativeOrientationSensor.__proto__ = this.OrientationSensor;
Object.setPrototypeOf(this.RelativeOrientationSensor.prototype, this.OrientationSensor.prototype);
this.Sensor.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.Sensor.prototype, this.EventTarget.prototype);
this.SensorErrorEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.SensorErrorEvent.prototype, this.Event.prototype);
this.ServiceWorker.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.ServiceWorker.prototype, this.EventTarget.prototype);
this.ServiceWorkerContainer.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.ServiceWorkerContainer.prototype, this.EventTarget.prototype);
this.ServiceWorkerRegistration.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.ServiceWorkerRegistration.prototype, this.EventTarget.prototype);
this.StorageManager.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.StorageManager.prototype, this.EventTarget.prototype);
this.XRLayer.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.XRLayer.prototype, this.EventTarget.prototype);
this.AuthenticatorAssertionResponse.__proto__ = this.AuthenticatorResponse;
Object.setPrototypeOf(this.AuthenticatorAssertionResponse.prototype, this.AuthenticatorResponse.prototype);
this.AuthenticatorAttestationResponse.__proto__ = this.AuthenticatorResponse;
Object.setPrototypeOf(this.AuthenticatorAttestationResponse.prototype, this.AuthenticatorResponse.prototype);
this.PublicKeyCredential.__proto__ = this.Credential;
Object.setPrototypeOf(this.PublicKeyCredential.prototype, this.Credential.prototype);
this.BatteryManager.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.BatteryManager.prototype, this.EventTarget.prototype);
this.Bluetooth.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.Bluetooth.prototype, this.EventTarget.prototype);
this.BluetoothDevice.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.BluetoothDevice.prototype, this.EventTarget.prototype);
this.BluetoothRemoteGATTCharacteristic.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.BluetoothRemoteGATTCharacteristic.prototype, this.EventTarget.prototype);
this.BrowserCaptureMediaStreamTrack.__proto__ = this.MediaStreamTrack;
Object.setPrototypeOf(this.BrowserCaptureMediaStreamTrack.prototype, this.MediaStreamTrack.prototype);
this.FileSystemDirectoryHandle.__proto__ = this.FileSystemHandle;
Object.setPrototypeOf(this.FileSystemDirectoryHandle.prototype, this.FileSystemHandle.prototype);
this.FileSystemFileHandle.__proto__ = this.FileSystemHandle;
Object.setPrototypeOf(this.FileSystemFileHandle.prototype, this.FileSystemHandle.prototype);
this.FileSystemWritableFileStream.__proto__ = this.WritableStream;
Object.setPrototypeOf(this.FileSystemWritableFileStream.prototype, this.WritableStream.prototype);
this.GravitySensor.__proto__ = this.Accelerometer;
Object.setPrototypeOf(this.GravitySensor.prototype, this.Accelerometer.prototype);
this.HID.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.HID.prototype, this.EventTarget.prototype);
this.HIDConnectionEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.HIDConnectionEvent.prototype, this.Event.prototype);
this.HIDDevice.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.HIDDevice.prototype, this.EventTarget.prototype);
this.HIDInputReportEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.HIDInputReportEvent.prototype, this.Event.prototype);
this.IdleDetector.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.IdleDetector.prototype, this.EventTarget.prototype);
this.MediaStreamTrackGenerator.__proto__ = this.MediaStreamTrack;
Object.setPrototypeOf(this.MediaStreamTrackGenerator.prototype, this.MediaStreamTrack.prototype);
this.OTPCredential.__proto__ = this.Credential;
Object.setPrototypeOf(this.OTPCredential.prototype, this.Credential.prototype);
this.PaymentRequest.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.PaymentRequest.prototype, this.EventTarget.prototype);
this.PaymentResponse.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.PaymentResponse.prototype, this.EventTarget.prototype);
this.PaymentMethodChangeEvent.__proto__ = this.PaymentRequestUpdateEvent;
Object.setPrototypeOf(this.PaymentMethodChangeEvent.prototype, this.PaymentRequestUpdateEvent.prototype);
this.PresentationAvailability.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.PresentationAvailability.prototype, this.EventTarget.prototype);
this.PresentationConnection.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.PresentationConnection.prototype, this.EventTarget.prototype);
this.PresentationConnectionAvailableEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.PresentationConnectionAvailableEvent.prototype, this.Event.prototype);
this.PresentationConnectionCloseEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.PresentationConnectionCloseEvent.prototype, this.Event.prototype);
this.PresentationConnectionList.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.PresentationConnectionList.prototype, this.EventTarget.prototype);
this.PresentationRequest.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.PresentationRequest.prototype, this.EventTarget.prototype);
this.Profiler.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.Profiler.prototype, this.EventTarget.prototype);
this.ScreenDetailed.__proto__ = this.Screen;
Object.setPrototypeOf(this.ScreenDetailed.prototype, this.Screen.prototype);
this.ScreenDetails.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.ScreenDetails.prototype, this.EventTarget.prototype);
this.Serial.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.Serial.prototype, this.EventTarget.prototype);
this.SerialPort.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.SerialPort.prototype, this.EventTarget.prototype);
this.USB.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.USB.prototype, this.EventTarget.prototype);
this.USBConnectionEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.USBConnectionEvent.prototype, this.Event.prototype);
this.VirtualKeyboard.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.VirtualKeyboard.prototype, this.EventTarget.prototype);
this.WakeLockSentinel.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.WakeLockSentinel.prototype, this.EventTarget.prototype);
this.WebTransportError.__proto__ = this.DOMException;
Object.setPrototypeOf(this.WebTransportError.prototype, this.DOMException.prototype);
this.XRBoundedReferenceSpace.__proto__ = this.XRReferenceSpace;
Object.setPrototypeOf(this.XRBoundedReferenceSpace.prototype, this.XRReferenceSpace.prototype);
this.XRInputSourceEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.XRInputSourceEvent.prototype, this.Event.prototype);
this.XRInputSourcesChangeEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.XRInputSourcesChangeEvent.prototype, this.Event.prototype);
this.XRReferenceSpace.__proto__ = this.XRSpace;
Object.setPrototypeOf(this.XRReferenceSpace.prototype, this.XRSpace.prototype);
this.XRReferenceSpaceEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.XRReferenceSpaceEvent.prototype, this.Event.prototype);
this.XRSession.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.XRSession.prototype, this.EventTarget.prototype);
this.XRSessionEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.XRSessionEvent.prototype, this.Event.prototype);
this.XRSpace.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.XRSpace.prototype, this.EventTarget.prototype);
this.XRSystem.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.XRSystem.prototype, this.EventTarget.prototype);
this.XRViewerPose.__proto__ = this.XRPose;
Object.setPrototypeOf(this.XRViewerPose.prototype, this.XRPose.prototype);
this.XRWebGLLayer.__proto__ = this.XRLayer;
Object.setPrototypeOf(this.XRWebGLLayer.prototype, this.XRLayer.prototype);
this.XRCPUDepthInformation.__proto__ = this.XRDepthInformation;
Object.setPrototypeOf(this.XRCPUDepthInformation.prototype, this.XRDepthInformation.prototype);
this.XRWebGLDepthInformation.__proto__ = this.XRDepthInformation;
Object.setPrototypeOf(this.XRWebGLDepthInformation.prototype, this.XRDepthInformation.prototype);
this.XRLightProbe.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.XRLightProbe.prototype, this.EventTarget.prototype);
this.AnimationPlaybackEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.AnimationPlaybackEvent.prototype, this.Event.prototype);
this.CSSAnimation.__proto__ = this.Animation;
Object.setPrototypeOf(this.CSSAnimation.prototype, this.Animation.prototype);
this.CSSTransition.__proto__ = this.Animation;
Object.setPrototypeOf(this.CSSTransition.prototype, this.Animation.prototype);
this.DocumentTimeline.__proto__ = this.AnimationTimeline;
Object.setPrototypeOf(this.DocumentTimeline.prototype, this.AnimationTimeline.prototype);
this.BackgroundFetchRegistration.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.BackgroundFetchRegistration.prototype, this.EventTarget.prototype);
this.CSSFontPaletteValuesRule.__proto__ = this.CSSRule;
Object.setPrototypeOf(this.CSSFontPaletteValuesRule.prototype, this.CSSRule.prototype);
this.MediaSource.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.MediaSource.prototype, this.EventTarget.prototype);
this.SourceBuffer.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.SourceBuffer.prototype, this.EventTarget.prototype);
this.SourceBufferList.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.SourceBufferList.prototype, this.EventTarget.prototype);
this.MediaStreamTrack.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.MediaStreamTrack.prototype, this.EventTarget.prototype);
this.NavigateEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.NavigateEvent.prototype, this.Event.prototype);
this.Navigation.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.Navigation.prototype, this.EventTarget.prototype);
this.NavigationCurrentEntryChangeEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.NavigationCurrentEntryChangeEvent.prototype, this.Event.prototype);
this.NavigationHistoryEntry.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.NavigationHistoryEntry.prototype, this.EventTarget.prototype);
this.Notification.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.Notification.prototype, this.EventTarget.prototype);
this.PaymentRequestUpdateEvent.__proto__ = this.Event;
Object.setPrototypeOf(this.PaymentRequestUpdateEvent.prototype, this.Event.prototype);
this.PermissionStatus.__proto__ = this.EventTarget;
Object.setPrototypeOf(this.PermissionStatus.prototype, this.EventTarget.prototype);