-
Notifications
You must be signed in to change notification settings - Fork 0
/
14-nov-2021.html
698 lines (628 loc) · 44.4 KB
/
14-nov-2021.html
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
<!doctype html>
<html>
<head>
<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>
<script defer="" data-domain="pks.ai" src="https://eric-andre.rbxii3.workers.dev/js/script.js"></script>
<style type='text/css'>html {overflow-x: initial !important;}:root { --bg-color: #ffffff; --text-color: #333333; --select-text-bg-color: #B5D6FC; --select-text-font-color: auto; --monospace: "Lucida Console",Consolas,"Courier",monospace; --title-bar-height: 20px; }
.mac-os-11 { --title-bar-height: 28px; }
html { font-size: 14px; background-color: var(--bg-color); color: var(--text-color); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
body { margin: 0px; padding: 0px; height: auto; inset: 0px; font-size: 1rem; line-height: 1.42857143; overflow-x: hidden; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: inherit; tab-size: 4; background-position: inherit; background-repeat: inherit; }
iframe { margin: auto; }
a.url { word-break: break-all; }
a:active, a:hover { outline: 0px; }
.in-text-selection, ::selection { text-shadow: none; background: var(--select-text-bg-color); color: var(--select-text-font-color); }
#write { margin: 0px auto; height: auto; width: inherit; word-break: normal; word-wrap: break-word; position: relative; white-space: normal; overflow-x: visible; padding-top: 36px; }
#write.first-line-indent p { text-indent: 2em; }
#write.first-line-indent li p, #write.first-line-indent p * { text-indent: 0px; }
#write.first-line-indent li { margin-left: 2em; }
.for-image #write { padding-left: 8px; padding-right: 8px; }
body.typora-export { padding-left: 30px; padding-right: 30px; }
.typora-export .footnote-line, .typora-export li, .typora-export p { white-space: pre-wrap; }
.typora-export .task-list-item input { pointer-events: none; }
@media screen and (max-width: 500px) {
body.typora-export { padding-left: 0px; padding-right: 0px; }
#write { padding-left: 20px; padding-right: 20px; }
.CodeMirror-sizer { margin-left: 0px !important; }
.CodeMirror-gutters { display: none !important; }
}
#write li > figure:last-child { margin-bottom: 0.5rem; }
#write ol, #write ul { position: relative; }
img { max-width: 100%; vertical-align: middle; image-orientation: from-image; }
button, input, select, textarea { color: inherit; font-family: inherit; font-size: inherit; font-style: inherit; font-variant-caps: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; }
input[type="checkbox"], input[type="radio"] { line-height: normal; padding: 0px; }
*, ::after, ::before { box-sizing: border-box; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p, #write pre { width: inherit; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p { position: relative; }
p { line-height: inherit; }
h1, h2, h3, h4, h5, h6 { break-after: avoid-page; break-inside: avoid; orphans: 4; }
p { orphans: 4; }
h1 { font-size: 2rem; }
h2 { font-size: 1.8rem; }
h3 { font-size: 1.6rem; }
h4 { font-size: 1.4rem; }
h5 { font-size: 1.2rem; }
h6 { font-size: 1rem; }
.md-math-block, .md-rawblock, h1, h2, h3, h4, h5, h6, p { margin-top: 1rem; margin-bottom: 1rem; }
.hidden { display: none; }
.md-blockmeta { color: rgb(204, 204, 204); font-weight: 700; font-style: italic; }
a { cursor: pointer; }
sup.md-footnote { padding: 2px 4px; background-color: rgba(238, 238, 238, 0.7); color: rgb(85, 85, 85); border-radius: 4px; cursor: pointer; }
sup.md-footnote a, sup.md-footnote a:hover { color: inherit; text-transform: inherit; text-decoration: inherit; }
#write input[type="checkbox"] { cursor: pointer; width: inherit; height: inherit; }
figure { overflow-x: auto; margin: 1.2em 0px; max-width: calc(100% + 16px); padding: 0px; }
figure > table { margin: 0px; }
tr { break-inside: avoid; break-after: auto; }
thead { display: table-header-group; }
table { border-collapse: collapse; border-spacing: 0px; width: 100%; overflow: auto; break-inside: auto; text-align: left; }
table.md-table td { min-width: 32px; }
.CodeMirror-gutters { border-right-width: 0px; background-color: inherit; }
.CodeMirror-linenumber { }
.CodeMirror { text-align: left; }
.CodeMirror-placeholder { opacity: 0.3; }
.CodeMirror pre { padding: 0px 4px; }
.CodeMirror-lines { padding: 0px; }
div.hr:focus { cursor: none; }
#write pre { white-space: pre-wrap; }
#write.fences-no-line-wrapping pre { white-space: pre; }
#write pre.ty-contain-cm { white-space: normal; }
.CodeMirror-gutters { margin-right: 4px; }
.md-fences { font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; overflow: visible; white-space: pre; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: inherit; position: relative !important; background-position: inherit; background-repeat: inherit; }
.md-fences-adv-panel { width: 100%; margin-top: 10px; text-align: center; padding-top: 0px; padding-bottom: 8px; overflow-x: auto; }
#write .md-fences.mock-cm { white-space: pre-wrap; }
.md-fences.md-fences-with-lineno { padding-left: 0px; }
#write.fences-no-line-wrapping .md-fences.mock-cm { white-space: pre; overflow-x: auto; }
.md-fences.mock-cm.md-fences-with-lineno { padding-left: 8px; }
.CodeMirror-line, twitterwidget { break-inside: avoid; }
.footnotes { opacity: 0.8; font-size: 0.9rem; margin-top: 1em; margin-bottom: 1em; }
.footnotes + .footnotes { margin-top: 0px; }
.md-reset { margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: top; text-decoration: none; text-shadow: none; float: none; position: static; width: auto; height: auto; white-space: nowrap; cursor: inherit; line-height: normal; font-weight: 400; text-align: left; box-sizing: content-box; direction: ltr; background-position: 0px 0px; }
li div { padding-top: 0px; }
blockquote { margin: 1rem 0px; }
li .mathjax-block, li p { margin: 0.5rem 0px; }
li blockquote { margin: 1rem 0px; }
li { margin: 0px; position: relative; }
blockquote > :last-child { margin-bottom: 0px; }
blockquote > :first-child, li > :first-child { margin-top: 0px; }
.footnotes-area { color: rgb(136, 136, 136); margin-top: 0.714rem; padding-bottom: 0.143rem; white-space: normal; }
#write .footnote-line { white-space: pre-wrap; }
@media print {
body, html { border: 1px solid transparent; height: 99%; break-after: avoid; break-before: avoid; font-variant-ligatures: no-common-ligatures; }
#write { margin-top: 0px; padding-top: 0px; border-color: transparent !important; }
.typora-export * { print-color-adjust: exact; }
.typora-export #write { break-after: avoid; }
.typora-export #write::after { height: 0px; }
.is-mac table { break-inside: avoid; }
.typora-export-show-outline .typora-export-sidebar { display: none; }
}
.footnote-line { margin-top: 0.714em; font-size: 0.7em; }
a img, img a { cursor: pointer; }
pre.md-meta-block { font-size: 0.8rem; min-height: 0.8rem; white-space: pre-wrap; background-color: rgb(204, 204, 204); display: block; overflow-x: hidden; }
p > .md-image:only-child:not(.md-img-error) img, p > img:only-child { display: block; margin: auto; }
#write.first-line-indent p > .md-image:only-child:not(.md-img-error) img { left: -2em; position: relative; }
p > .md-image:only-child { display: inline-block; width: 100%; }
#write .MathJax_Display { margin: 0.8em 0px 0px; }
.md-math-block { width: 100%; }
.md-math-block:not(:empty)::after { display: none; }
.MathJax_ref { fill: currentcolor; }
[contenteditable="true"]:active, [contenteditable="true"]:focus, [contenteditable="false"]:active, [contenteditable="false"]:focus { outline: 0px; box-shadow: none; }
.md-task-list-item { position: relative; list-style-type: none; }
.task-list-item.md-task-list-item { padding-left: 0px; }
.md-task-list-item > input { position: absolute; top: 0px; left: 0px; margin-left: -1.2em; margin-top: calc(1em - 10px); border: none; }
.math { font-size: 1rem; }
.md-toc { min-height: 3.58rem; position: relative; font-size: 0.9rem; border-radius: 10px; }
.md-toc-content { position: relative; margin-left: 0px; }
.md-toc-content::after, .md-toc::after { display: none; }
.md-toc-item { display: block; color: rgb(65, 131, 196); }
.md-toc-item a { text-decoration: none; }
.md-toc-inner:hover { text-decoration: underline; }
.md-toc-inner { display: inline-block; cursor: pointer; }
.md-toc-h1 .md-toc-inner { margin-left: 0px; font-weight: 700; }
.md-toc-h2 .md-toc-inner { margin-left: 2em; }
.md-toc-h3 .md-toc-inner { margin-left: 4em; }
.md-toc-h4 .md-toc-inner { margin-left: 6em; }
.md-toc-h5 .md-toc-inner { margin-left: 8em; }
.md-toc-h6 .md-toc-inner { margin-left: 10em; }
@media screen and (max-width: 48em) {
.md-toc-h3 .md-toc-inner { margin-left: 3.5em; }
.md-toc-h4 .md-toc-inner { margin-left: 5em; }
.md-toc-h5 .md-toc-inner { margin-left: 6.5em; }
.md-toc-h6 .md-toc-inner { margin-left: 8em; }
}
a.md-toc-inner { font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit; }
.footnote-line a:not(.reversefootnote) { color: inherit; }
.md-attr { display: none; }
.md-fn-count::after { content: "."; }
code, pre, samp, tt { font-family: var(--monospace); }
kbd { margin: 0px 0.1em; padding: 0.1em 0.6em; font-size: 0.8em; color: rgb(36, 39, 41); background-color: rgb(255, 255, 255); border: 1px solid rgb(173, 179, 185); border-radius: 3px; box-shadow: rgba(12, 13, 14, 0.2) 0px 1px 0px, rgb(255, 255, 255) 0px 0px 0px 2px inset; white-space: nowrap; vertical-align: middle; }
.md-comment { color: rgb(162, 127, 3); opacity: 0.6; font-family: var(--monospace); }
code { text-align: left; }
a.md-print-anchor { white-space: pre !important; border: none !important; display: inline-block !important; position: absolute !important; width: 1px !important; right: 0px !important; outline: 0px !important; text-shadow: initial !important; background-position: 0px 0px !important; }
.os-windows.monocolor-emoji .md-emoji { font-family: "Segoe UI Symbol", sans-serif; }
.md-diagram-panel > svg { max-width: 100%; }
[lang="flow"] svg, [lang="mermaid"] svg { max-width: 100%; height: auto; }
[lang="mermaid"] .node text { font-size: 1rem; }
table tr th { border-bottom-width: 0px; }
video { max-width: 100%; display: block; margin: 0px auto; }
iframe { max-width: 100%; width: 100%; border: none; }
.highlight td, .highlight tr { border: 0px; }
mark { background-color: rgb(255, 255, 0); color: rgb(0, 0, 0); }
.md-html-inline .md-plain, .md-html-inline strong, mark .md-inline-math, mark strong { color: inherit; }
.md-expand mark .md-meta { opacity: 0.3 !important; }
mark .md-meta { color: rgb(0, 0, 0); }
@media print {
.typora-export h1, .typora-export h2, .typora-export h3, .typora-export h4, .typora-export h5, .typora-export h6 { break-inside: avoid; }
}
.md-diagram-panel .messageText { stroke: none !important; }
.md-diagram-panel .start-state { fill: var(--node-fill); }
.md-diagram-panel .edgeLabel rect { opacity: 1 !important; }
.md-fences.md-fences-math { font-size: 1em; }
.md-fences-advanced:not(.md-focus) { padding: 0px; white-space: nowrap; border: 0px; }
.md-fences-advanced:not(.md-focus) { background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: inherit; background-position: inherit; background-repeat: inherit; }
.typora-export-show-outline .typora-export-content { max-width: 1440px; margin: auto; display: flex; flex-direction: row; }
.typora-export-sidebar { width: 300px; font-size: 0.8rem; margin-top: 80px; margin-right: 18px; }
.typora-export-show-outline #write { --webkit-flex: 2; flex: 2 1 0%; }
.typora-export-sidebar .outline-content { position: fixed; top: 0px; max-height: 100%; overflow: hidden auto; padding-bottom: 30px; padding-top: 60px; width: 300px; }
@media screen and (max-width: 1024px) {
.typora-export-sidebar, .typora-export-sidebar .outline-content { width: 240px; }
}
@media screen and (max-width: 800px) {
.typora-export-sidebar { display: none; }
}
.outline-content li, .outline-content ul { margin-left: 0px; margin-right: 0px; padding-left: 0px; padding-right: 0px; list-style: none; }
.outline-content ul { margin-top: 0px; margin-bottom: 0px; }
.outline-content strong { font-weight: 400; }
.outline-expander { width: 1rem; height: 1.428571429rem; position: relative; display: table-cell; vertical-align: middle; cursor: pointer; padding-left: 4px; }
.outline-expander::before { content: ""; position: relative; font-family: Ionicons; display: inline-block; font-size: 8px; vertical-align: middle; }
.outline-item { padding-top: 3px; padding-bottom: 3px; cursor: pointer; }
.outline-expander:hover::before { content: ""; }
.outline-h1 > .outline-item { padding-left: 0px; }
.outline-h2 > .outline-item { padding-left: 1em; }
.outline-h3 > .outline-item { padding-left: 2em; }
.outline-h4 > .outline-item { padding-left: 3em; }
.outline-h5 > .outline-item { padding-left: 4em; }
.outline-h6 > .outline-item { padding-left: 5em; }
.outline-label { cursor: pointer; display: table-cell; vertical-align: middle; text-decoration: none; color: inherit; }
.outline-label:hover { text-decoration: underline; }
.outline-item:hover { border-color: rgb(245, 245, 245); background-color: var(--item-hover-bg-color); }
.outline-item:hover { margin-left: -28px; margin-right: -28px; border-left-width: 28px; border-left-style: solid; border-left-color: transparent; border-right-width: 28px; border-right-style: solid; border-right-color: transparent; }
.outline-item-single .outline-expander::before, .outline-item-single .outline-expander:hover::before { display: none; }
.outline-item-open > .outline-item > .outline-expander::before { content: ""; }
.outline-children { display: none; }
.info-panel-tab-wrapper { display: none; }
.outline-item-open > .outline-children { display: block; }
.typora-export .outline-item { padding-top: 1px; padding-bottom: 1px; }
.typora-export .outline-item:hover { margin-right: -8px; border-right-width: 8px; border-right-style: solid; border-right-color: transparent; }
.typora-export .outline-expander::before { content: "+"; font-family: inherit; top: -1px; }
.typora-export .outline-expander:hover::before, .typora-export .outline-item-open > .outline-item > .outline-expander::before { content: "−"; }
.typora-export-collapse-outline .outline-children { display: none; }
.typora-export-collapse-outline .outline-item-open > .outline-children, .typora-export-no-collapse-outline .outline-children { display: block; }
.typora-export-no-collapse-outline .outline-expander::before { content: "" !important; }
.typora-export-show-outline .outline-item-active > .outline-item .outline-label { font-weight: 700; }
.md-inline-math-container mjx-container { zoom: 0.95; }
:root {
--title-color: #141622;
--text-color: #444444;
--light-text-color: #666666;
--lighter-text-color: #888888;
--link-color: #F76497;
--code-color: #1976D2;
--shadow-color: #eee;
--border-quote: rgba(116, 95, 181, 0.2);
--border: #e7e7e7;
--link-bottom: #bbb;
--shadow: 3px 3px 10px var(--shadow-color);
--inline-code-bg: #f4f2f9;
--header-weight: normal;
--side-bar-bg-color: #fafafa;
--control-text-color: var(var(--light-text-color));
--active-file-text-color: var(--title-color);
--active-file-bg-color: var(--shadow-color);
--item-hover-bg-color: var(--shadow-color);
--active-file-border-color: var(var(--title-color));
--base-font: "Trebuchet MS", -apple-system, Ubuntu,
"Microsoft YaHei", Helvetica, "Nimbus Sans L", Arial, "Liberation Sans",
"Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC",
"Source Han Sans CN", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", "ST Heiti",
SimHei, "WenQuanYi Zen Hei Sharp", "Source Sans Pro", sans-serif;
--title-font: "Noto Sans", Georgia, "EB Garamond", "Noto Serif CJK SC",
"Nimbus Roman No9 L", "Songti SC", "Source Han Serif SC",
"Source Han Serif CN", STSong, "AR PL New Sung", "AR PL SungtiL GB", NSimSun,
SimSun, "TW\-Sung", "WenQuanYi Bitmap Song", "AR PL UMing CN",
"AR PL UMing HK", "AR PL UMing TW", "AR PL UMing TW MBE", PMingLiU, MingLiU,
"Ubuntu", "Source Sans Pro", serif;
--monospace: "JetBrains Mono", "Fira Code", "Cascadia Code", "Sarasa Term SC",
Monaco, "Deja Vu Sans Mono", Consolas, "Lucida Console", "Andale Mono",
"Roboto Mono", Courier, Monospace !important;
}
/* 打印 */
@media print {
html {
font-size: 0.9rem;
}
table,
pre {
page-break-inside: avoid;
}
pre {
word-wrap: break-word;
}
#write {
max-width: 100%;
}
@page {
size: A3; /* PDF output size */
margin-left: 0;
margin-right: 0;
}
}
html {
font-size: 16px;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
text-rendering: optimizelegibility;
-webkit-font-smoothing: initial;
}
body {
color: var(--text-color);
-webkit-font-smoothing: antialiased;
line-height: 1.6rem;
letter-spacing: 0;
overflow-x: hidden;
}
/* 页边距 和 页面大小 */
#write {
font-family: var(--base-font);
/* max-width: 914px; */
margin: 0 auto;
padding: 1rem 4rem;
padding-bottom: 100px;
}
#write p {
line-height: 1.6rem;
word-spacing: 0.05rem;
}
body > *:first-child {
margin-top: 0 !important;
}
body > *:last-child {
margin-bottom: 0 !important;
}
/* Link 链接 */
a {
color: var(--link-color);
text-decoration: none;
}
#write a {
border-bottom: 1px solid var(--link-bottom);
}
#write a:hover {
border-bottom: 1px solid var(--link-color);
/* color: var(--link-color);
text-decoration: none; */
}
.md-content {
color: var(--light-text-color);
}
h1,
h2,
h3,
h4,
h5,
h6 {
position: relative;
margin-top: 2rem;
margin-bottom: 1rem;
font-weight: var(--header-weight);
line-height: 1.3;
cursor: text;
color: var(--title-color);
font-family: var(--title-font);
}
h1 {
text-align: center;
font-size: 2.25em;
margin-bottom: 2rem;
}
h1:after {
content: "";
display: block;
margin: 0.2em auto 0;
width: 6rem;
height: 2px;
border-bottom: 2px solid var(--title-color);
}
h2 {
padding-left: 0.4em;
font-size: 1.75em;
border-left: 0.4em solid var(--title-color);
border-bottom: 1px solid var(--title-color);
}
h3 {
font-size: 1.5em;
}
h4 {
font-size: 1.3em;
}
h5 {
font-size: 1.2em;
}
h6 {
font-size: 1.1em;
}
p,
blockquote,
ul,
ol,
dl,
table {
margin: 0.8em 0;
}
/* horizontal rule */
hr {
margin: 1.5em auto;
border-top: 1px solid var(--border);
}
/* 列表 */
li > ol,
li > ul {
margin: 0 0;
}
li p.first {
display: inline-block;
}
ul,
ol {
padding-left: 2rem;
}
ul:first-child,
ol:first-child {
margin-top: 0;
}
ul:last-child,
ol:last-child {
margin-bottom: 0;
}
#write ol li,
ul li {
padding-left: 0.1rem;
}
/* 引用 */
blockquote {
border-left: 0.3rem solid var(--border-quote);
padding-left: 1em;
color: var(--light-text-color);
font-family: var(--base-font);
}
/* 表格 */
table {
margin-bottom: 1.25rem;
}
table th,
table td {
padding: 8px;
line-height: 1.25rem;
vertical-align: middle;
border: 1px solid #ddd;
}
table th {
font-weight: bold;
}
table thead th {
vertical-align: middle;
}
table tr:nth-child(2n),
thead {
background-color: #fcfcfc;
}
/* 粗体 */
#write strong {
padding: 0 2px;
font-weight: bold;
}
/* inline code */
#write code,
tt {
padding: 2px 4px;
border-radius: 0.3rem;
font-family: var(--monospace);
font-size: 0.9rem;
color: var(--code-color);
background-color: var(--inline-code-bg);
margin: 0 2px;
}
#write .md-footnote {
color: var(--code-color);
background-color: var(--inline-code-bg);
}
/* highlight. */
#write mark {
background: rgb(255, 255, 196);
}
#write del {
padding: 1px 2px;
}
.md-task-list-item > input {
margin-left: -1.3em;
}
#write pre.md-meta-block {
padding: 1rem;
font-size: 85%;
line-height: 1.45;
background-color: #f7f7f7;
border: 0;
border-radius: 3px;
color: #777777;
margin-top: 0 !important;
}
.mathjax-block > .code-tooltip {
bottom: 0.375rem;
}
/* 图片 */
.md-image > .md-meta {
border-radius: 3px;
font-family: var(--monospace);
padding: 2px 0 0 4px;
font-size: 0.9em;
color: inherit;
}
/* 图片靠左显示 */
/* p .md-image:only-child {
width: auto;
text-align: left;
margin-left: 2rem;
} */
/* 写![shadow-...]() 显示图片阴影 */
img[alt|="shadow"] {
box-shadow: var(--shadow);
}
/* TOC: 加粗h2 */
#write a.md-toc-inner {
line-height: 1.6;
white-space: pre-line;
border-bottom: none;
color: var(--lighter-text-color);
font-size: 0.9rem;
}
/* .md-toc-h1 {
display: none;
} */
.md-toc-h2 .md-toc-inner {
font-weight: bold;
}
header,
.context-menu,
.megamenu-content,
footer {
font-family: var(--base-font);
}
.file-node-content:hover .file-node-icon,
.file-node-content:hover .file-node-open-state {
visibility: visible;
}
.md-lang {
color: #b4654d;
}
.html-for-mac .context-menu {
--item-hover-bg-color: #e6f0fe;
}
/* Code fences */
/* border, bg, font */
.md-fences {
border: 1px solid var(--border);
border-radius: 5px;
background: #fdfdfd !important;
font-size: 0.9rem;
}
/* 代码框阴影 */
#write pre.md-fences {
display: block;
-webkit-overflow-scrolling: touch;
box-shadow: var(--shadow);
}
.cm-s-inner {
padding: 0.25rem;
border-radius: 0.25rem;
}
.cm-s-inner.CodeMirror,
.cm-s-inner .CodeMirror-gutters {
color: #3a3432 !important;
border: none;
}
.cm-s-inner .CodeMirror-gutters {
color: #6d8a88;
}
.cm-s-inner .CodeMirror-linenumber {
padding: 0 0.1rem 0 0.3rem;
color: #b8b5b4;
}
.cm-s-inner .CodeMirror-matchingbracket {
text-decoration: underline;
color: #a34e8f !important;
}
#fences-auto-suggest .active {
background: #ddd;
}
.cm-s-inner span.cm-comment {
color: #9daab6;
}
.cm-s-inner span.cm-builtin {
color: #0451a5;
}
/* language tip */
#write .code-tooltip {
border: 1px solid var(--border);
}
.auto-suggest-container {
border-color: #b4b4b4;
}
.auto-suggest-container .autoComplt-hint.active {
background: #b4b4b4;
color: inherit;
}
/* task list */
#write .md-task-list-item > input {
-webkit-appearance: initial;
display: block;
position: absolute;
border: 1px solid #b4b4b4;
border-radius: 0.2rem;
margin-top: 0.3rem;
height: 1rem;
width: 1rem;
transition: background 0.3s;
}
#write .md-task-list-item > input:focus {
outline: none;
box-shadow: none;
}
#write .md-task-list-item > input:hover {
background: #ddd;
}
#write .md-task-list-item > input[checked]::before {
content: "";
position: absolute;
top: 20%;
left: 50%;
height: 60%;
width: 2px;
transform: rotate(40deg);
background: #333;
}
#write .md-task-list-item > input[checked]::after {
content: "";
position: absolute;
top: 46%;
left: 25%;
height: 30%;
width: 2px;
transform: rotate(-40deg);
background: #333;
}
#write .md-task-list-item > p {
transition: color 0.3s, opacity 0.3s;
}
#write .md-task-list-item.task-list-done > p {
color: #b4b4b4;
text-decoration: line-through;
}
#write .md-task-list-item.task-list-done > p > .md-emoji {
opacity: 0.5;
}
#write .md-task-list-item.task-list-done > p > .md-link > a {
opacity: 0.6;
}
/* sidebar */
#typora-sidebar,
.typora-node #typora-sidebar {
box-shadow: 3px 0px 10px var(--shadow-color);
}
.sidebar-content-content {
font-size: 0.9rem;
}
@media print { @page {margin: 0 0 0 0;} body.typora-export {padding-left: 0; padding-right: 0;} #write {padding:0;}}
</style><title>index</title>
</head>
<body class='typora-export'><div class='typora-export-content'>
<div id='write' class=''><p><span>Effective date: 14/November/2021</span></p><blockquote><p><span>This privacy policy is available as a </span><a href='https://privacy.pks.ai/14-nov-2021.pdf'><span>PDF</span></a><span>. It is also permanently located at </span><a href='https://privacy.pks.ai/14-nov-2021' target='_blank' class='url'>https://privacy.pks.ai/14-nov-2021</a><span>.</span></p></blockquote><p><strong><span>1.</span></strong><span> </span><strong><span>Introduction</span></strong></p><p><span>Welcome to </span><strong><span>Heimdall Intranet LTD.</span></strong></p><p><span>Heimdall Intranet LTD. (“us”, “we”, or “our”) operates </span><a href='https://hsc.one' target='_blank' class='url'>https://hsc.one</a><span> and several other websites and applications (hereinafter referred to as “</span><strong><span>Service</span></strong><span>”).</span></p><p><span>Our Privacy Policy governs your visit to the </span><strong><span>Service</span></strong><span>, and explains how we collect, safeguard and disclose information that results from your use of our Service. </span></p><p><span>We use your data to provide and improve Service. By using Service, you agree to the collection and use of information in accordance with this policy. Unless otherwise defined in this Privacy Policy, the terms used in this Privacy Policy have the same meanings as in our Terms and Conditions.</span></p><p><span>Our Terms and Conditions (“</span><strong><span>Terms</span></strong><span>”) govern all use of our Service and together with the Privacy Policy constitutes your agreement with us (“</span><strong><span>agreement</span></strong><span>”).</span></p><p><strong><span>2.</span></strong><span> </span><strong><span>Definitions</span></strong></p><p><strong><span>SERVICE</span></strong><span> means the </span><a href='https://hsc.one' target='_blank' class='url'>https://hsc.one</a><span> website and any other websites, mobile apps, and programs operated by Heimdall Intranet LTD.</span></p><p><strong><span>PERSONAL DATA</span></strong><span> means data about a living individual who can be identified from those data (or from those and other information either in our possession or likely to come into our possession).</span></p><p><strong><span>USAGE DATA</span></strong><span> is data collected automatically either generated by the use of Service or from Service infrastructure itself (for example, the duration of a page visit).</span></p><p><strong><span>COOKIES</span></strong><span> are small files stored on your device (computer or mobile device).</span></p><p><strong><span>DATA CONTROLLER</span></strong><span> means a natural or legal person who (either alone or jointly or in common with other persons) determines the purposes for which and the manner in which any personal data are, or are to be, processed. For the purpose of this Privacy Policy, we are a Data Controller of your data.</span></p><p><strong><span>DATA PROCESSORS (OR SERVICE PROVIDERS)</span></strong><span> means any natural or legal person who processes the data on behalf of the Data Controller. We may use the services of various Service Providers in order to process your data more effectively.</span></p><p><strong><span>DATA SUBJECT</span></strong><span> is any living individual who is the subject of Personal Data.</span></p><p><strong><span>THE USER</span></strong><span> is the individual using our Service. The User corresponds to the Data Subject, who is the subject of Personal Data.</span></p><p><strong><span>3.</span></strong><span> </span><strong><span>Information Collection and Use</span></strong></p><p><span>We collect several different types of information for various purposes to provide and improve our Service to you. </span></p><p><strong><span>4.</span></strong><span> </span><strong><span>Types of Data Collected</span></strong></p><p><strong><span>Personal Data</span></strong></p><p><span>While using our Service, we may ask you to provide us with certain personally identifiable information that can be used to contact or identify you (“</span><strong><span>Personal Data</span></strong><span>”). Personally identifiable information may include, but is not limited to:</span></p><p><span>(a) Cookies and Usage Data</span></p><p><strong><span>Usage Data</span></strong></p><p><span>We may also collect information that your browser sends whenever you visit our Service or when you access Service by or through a mobile device (“</span><strong><span>Usage Data</span></strong><span>”).</span></p><p><span>This Usage Data may include information such as your computer's Internet Protocol address (e.g. IP address), browser type, browser version, the pages of our Service that you visit, the time and date of your visit, the time spent on those pages, unique device identifiers and other diagnostic data.</span></p><p><span>When you access Service with a mobile device, this Usage Data may include information such as the type of mobile device you use, your mobile device unique ID, the IP address of your mobile device, your mobile operating system, the type of mobile Internet browser you use, unique device identifiers and other diagnostic data.</span></p><p><strong><span>Tracking Cookies Data</span></strong></p><p><span>We use cookies and similar tracking technologies to track the activity on our Service and we hold certain information.</span></p><p><span>Cookies are files with a small amount of data which may include an anonymous unique identifier. Cookies are sent to your browser from a website and stored on your device. Other tracking technologies are also used such as beacons, tags and scripts to collect and track information and to improve and analyze our Service.</span></p><p><span>You can instruct your browser to refuse all cookies or to indicate when a cookie is being sent. However, if you do not accept cookies, you may not be able to use some portions of our Service. </span></p><p><span>Examples of Cookies we use: </span></p><p><span>(a) </span><strong><span>Session Cookies:</span></strong><span> We use Session Cookies to operate our Service.</span></p><p><span>(b) </span><strong><span>Preference Cookies:</span></strong><span> We use Preference Cookies to remember your preferences and various settings.</span></p><p><span>(c) </span><strong><span>Security Cookies:</span></strong><span> We use Security Cookies for security purposes.</span></p><p><span>(d) </span><strong><span>Advertising Cookies:</span></strong><span> Advertising Cookies are used to serve you with advertisements that may be relevant to you and your interests. </span></p><p><strong><span>5.</span></strong><span> </span><strong><span>Use of Data</span></strong><span> </span></p><p><span>Heimdall Intranet LTD. uses the collected data for various purposes:</span></p><p><span> (a) to provide and maintain our Service;</span></p><p><span>(b) to notify you about changes to our Service; </span></p><p><span>(c) to allow you to participate in interactive features of our Service when you choose to do so; </span></p><p><span>(d) to provide customer support; </span></p><p><span>(e) to gather analysis or valuable information so that we can improve our Service; </span></p><p><span>(f) to monitor the usage of our Service;</span></p><p><span>(g) to detect, prevent and address technical issues;</span></p><p><span>(h) to fulfill any other purpose for which you provide it;</span></p><p><span>(i) to carry out our obligations and enforce our rights arising from any contracts entered into between you and us, including for billing and collection;</span></p><p><span>(j) to provide you with notices about your account and/or subscription, including expiration and renewal notices, email-instructions, etc.;</span></p><p><span>(k) to provide you with news, special offers and general information about other goods, services and events which we offer that are similar to those that you have already purchased or enquired about unless you have opted not to receive such information;</span></p><p><span>(l) in any other way we may describe when you provide the information;</span></p><p><span>(m) for any other purpose with your consent. </span></p><p><strong><span>6.</span></strong><span> </span><strong><span>Retention of Data</span></strong></p><p><span>We will retain your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use your Personal Data to the extent necessary to comply with our legal obligations (for example, if we are required to retain your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies.</span></p><p><span>We will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a shorter period, except when this data is used to strengthen the security or to improve the functionality of our Service, or we are legally obligated to retain this data for longer time periods.</span></p><p><strong><span>7.</span></strong><span> </span><strong><span>Transfer of Data</span></strong></p><p><span>Your information, including Personal Data, may be transferred to – and maintained on – computers located outside of your state, province, country or other governmental jurisdiction where the data protection laws may differ from those of your jurisdiction. </span></p><p><span>If you are located outside United States and choose to provide information to us, please note that we transfer the data, including Personal Data, to United States and process it there.</span></p><p><span>Your consent to this Privacy Policy followed by your submission of such information represents your agreement to that transfer.</span></p><p><span>Heimdall Intranet LTD. will take all the steps reasonably necessary to ensure that your data is treated securely and in accordance with this Privacy Policy and no transfer of your Personal Data will take place to an organisation or a country unless there are adequate controls in place including the security of your data and other personal information. </span></p><p><strong><span>8.</span></strong><span> </span><strong><span>Disclosure of Data</span></strong><span> </span></p><p><span>We may disclose personal information that we collect, or you provide:</span></p><p><span>(a) </span><strong><span>Business Transaction.</span></strong></p><p><span>If we or our subsidiaries are involved in a merger, acquisition or asset sale, your Personal Data may be transferred.</span></p><p><span>(b) </span><strong><span>Other cases. We may disclose your information also:</span></strong></p><p><span>(i) to our subsidiaries and affiliates;</span></p><p><span>(ii) to fulfill the purpose for which you provide it;</span></p><p><span>(iii) for the purpose of including your company’s logo on our website;</span></p><p><span>(iv) for any other purpose disclosed by us when you provide the information;</span></p><p><span>(v) with your consent in any other cases;</span></p><p><strong><span>9.</span></strong><span> </span><strong><span>Security of Data</span></strong></p><p><span>The security of your data is important to us but remember that no method of transmission over the Internet or method of electronic storage is 100% secure. While we strive to use commercially acceptable means to protect your Personal Data, we cannot guarantee its absolute security.</span></p><p><strong><span>10.</span></strong><span> </span><strong><span>Service Providers</span></strong></p><p><span>We may employ third party companies and individuals to facilitate our Service (“</span><strong><span>Service Providers</span></strong><span>”), provide Service on our behalf, perform Service-related services or assist us in analysing how our Service is used.</span></p><p><span>These third parties have access to your Personal Data only to perform these tasks on our behalf and are obligated not to disclose or use it for any other purpose.</span></p><p><strong><span>11.</span></strong><span> </span><strong><span>Analytics</span></strong></p><p><span>We use self-hosted third-party Service Providers to monitor and analyze the use of our Service. </span></p><p><strong><span>Plausible Analytics</span></strong></p><p><span>Plausible Analytics is a web-based analysis tool created by Uku Täht and Marko Saric. It is run internally by Heimdall Intranet LTD.</span></p><p><span>For more information on what type of information Ackee collects, please visit their Privacy Policy page: </span><a href='https://plausible.io/privacy' target='_blank' class='url'>https://plausible.io/privacy</a></p><p><strong><span>12.</span></strong><span> </span><strong><span>Comments Systems</span></strong></p><p><span>We utilize self-hosted variants of third-party comments platforms in order to deliver an interactive comments system to our sites.</span></p><p><strong><span>Commento</span></strong></p><p><span>Commento is developed by Commento, Inc.</span></p><p><span>Commento is an embedded public comments framework designed around maintaining user privacy. We run a local instance of Commento for our projects, in order to provide a cohesive interaction experience across our sites while maintaining user privacy.</span></p><p><span>You can view Commento’s privacy policy here: </span><a href='https://commento.io/legal' target='_blank' class='url'>https://commento.io/legal</a></p><p><strong><span>13.</span></strong><span> </span><strong><span>CI/CD tools</span></strong></p><p><span> We may use third-party Service Providers to automate the development process of our Service. </span></p><p><span> </span><strong><span>GitHub</span></strong></p><p><span>GitHub is provided by GitHub, Inc.</span></p><p><span>GitHub is a development platform to host and review code, manage projects, and build software.</span></p><p><span>For more information on what data GitHub collects for what purpose and how the protection of the data is ensured, please visit GitHub Privacy Policy page: </span><a href='https://help.github.com/en/articles/github-privacy-statement'><span>https://help.github.com/en/articles/github-privacy-statement.</span></a></p><p><strong><span>Travis CI</span></strong></p><p><span>Travis CI is a distributed continuous integration service to build and test projects hosted at GitHub.</span></p><p><span>For more information on what data Travis CI collects for what purpose and how the protection of the data is ensured, please visit Travis CI Privacy Policy page: </span><a href='https://docs.travis-ci.com/legal/privacy-policy' target='_blank' class='url'>https://docs.travis-ci.com/legal/privacy-policy</a><span>. </span></p><p><strong><span>Netlify</span></strong></p><p><span>Netlify is a web development platform and content delivery network, used to distribute the site to users.</span></p><p><span>For more information on what data Netlify collects, for what purpose, and how the protection of the data is ensured, please visit the Netlify Privacy Policy page: </span><a href='https://www.netlify.com/privacy/' target='_blank' class='url'>https://www.netlify.com/privacy/</a></p><p><strong><span>14.</span></strong><span> </span><strong><span>Advertising</span></strong></p><p><span>We may use third-party Service Providers to show advertisements to you to help support and maintain our Service.</span></p><p><span>Google AdSense DoubleClick Cookie</span></p><p><span>Google, as a third party vendor, uses cookies to serve ads on our Service. Google's use of the DoubleClick cookie enables it and its partners to serve ads to our users based on their visit to our Service or other websites on the Internet.</span></p><p><span>You may opt out of the use of the DoubleClick Cookie for interest-based advertising by visiting the Google Ads Settings web page: </span><a href='http://www.google.com/ads/preferences/' target='_blank' class='url'>http://www.google.com/ads/preferences/</a></p><p><strong><span>15.</span></strong><span> </span><strong><span>Payments</span></strong></p><p><span>We may provide paid products and/or services within Service. In that case, we use third-party services for payment processing (e.g. payment processors).</span></p><p><span>We will not store or collect your payment card details. That information is provided directly to our third-party payment processors whose use of your personal information is governed by their Privacy Policy. These payment processors adhere to the standards set by PCI-DSS as managed by the PCI Security Standards Council, which is a joint effort of brands like Visa, Mastercard, American Express and Discover. PCI-DSS requirements help ensure the secure handling of payment information.</span></p><p><span>The payment processors we work with are:</span></p><p><span>Patreon:</span></p><p><span>Their Privacy Policy can be viewed at </span><a href='https://privacy.patreon.com/policies' target='_blank' class='url'>https://privacy.patreon.com/policies</a></p><p><span>PayPal or Braintree:</span></p><p><span>Their Privacy Policy can be viewed at </span><a href='https://www.paypal.com/webapps/mpp/ua/privacy-full' target='_blank' class='url'>https://www.paypal.com/webapps/mpp/ua/privacy-full</a></p><p><span>Stripe:</span></p><p><span>Their Privacy Policy can be viewed at: </span><a href='https://stripe.com/us/privacy' target='_blank' class='url'>https://stripe.com/us/privacy</a></p><p><strong><span>16.</span></strong><span> </span><strong><span>Links to Other Sites</span></strong></p><p><span>Our Service may contain links to other sites that are not operated by us. If you click a third party link, you will be directed to that third party's site. We strongly advise you to review the Privacy Policy of every site you visit.</span></p><p><span>We have no control over and assume no responsibility for the content, privacy policies or practices of any third party sites or services.</span></p><p><strong><span>17.</span></strong><span> </span><strong><span>Children's Privacy</span></strong></p><p><span>Our Services are not intended for use by children under the age of 13 (“</span><strong><span>Children</span></strong><span>”). </span></p><p><span>We do not knowingly collect personally identifiable information from Children under 13. If you become aware that a Child has provided us with Personal Data, please contact us. If we become aware that we have collected Personal Data from Children without verification of parental consent, we take steps to remove that information from our servers.</span></p><p><strong><span>18.</span></strong><span> </span><strong><span>Changes to This Privacy Policy</span></strong></p><p><span>We may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page.</span></p><p><span>We will let you know via email and/or a prominent notice on our Service, prior to the change becoming effective and update “effective date” at the top of this Privacy Policy.</span></p><p><span>You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.</span></p><p><strong><span>19.</span></strong><span> </span><strong><span>Contact Us</span></strong></p><p><span>If you have any questions about this Privacy Policy, please contact us:</span></p><p><span>By email: [email protected].</span></p><p><span> </span></p><p> </p></div></div>
<script>(function (){var t=document.body.parentElement,e=[],n=null,i=document.body.classList.contains("typora-export-collapse-outline"),r=function(t,e,n){document.addEventListener(t,function(t){if(!t.defaultPrevented)for(var i=t.target;i&&i!=this;i=i.parentNode)if(i.matches(e)){!1===n.call(i,t)&&(t.preventDefault(),t.stopPropagation());break}},!1)};function o(){return t.scrollTop}r("click",".outline-expander",function(t){var e=this.closest(".outline-item-wrapper").classList;return e.contains("outline-item-open")?e.remove("outline-item-open"):e.add("outline-item-open"),c(),!1}),r("click",".outline-item",function(t){var e=this.querySelector(".outline-label");if(location.hash="#"+e.getAttribute("href"),i){var n=this.closest(".outline-item-wrapper").classList;n.contains("outline-item-open")||n.add("outline-item-open"),l(),n.add("outline-item-active")}});var a,s,u=function(){var t=o();n=null;for(var i=0;i<e.length&&e[i][1]-t<60;i++)n=e[i]},l=function(){document.querySelectorAll(".outline-item-active").forEach(t=>t.classList.remove("outline-item-active")),document.querySelectorAll(".outline-item-single.outline-item-open").forEach(t=>t.classList.remove("outline-item-open"))},c=function(){if(n){l();var t=document.querySelector('.outline-label[href="#'+(CSS.escape?CSS.escape(n[0]):n[0])+'"]');if(t)if(i){var e=t.closest(".outline-item-open>ul>.outline-item-wrapper");if(e)e.classList.add("outline-item-active");else{for(var r=(t=t.closest(".outline-item-wrapper")).parentElement.closest(".outline-item-wrapper");r;)r=(t=r).parentElement.closest(".outline-item-wrapper");t.classList.add("outline-item-active")}}else t.closest(".outline-item-wrapper").classList.add("outline-item-active")}};window.addEventListener("scroll",function(t){a&&clearTimeout(a),a=setTimeout(function(){u(),c()},300)});var f=function(){s=setTimeout(function(){!function(){e=[];var t=o();document.querySelector("#write").querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(n=>{var i=n.getAttribute("id");e.push([i,t+n.getBoundingClientRect().y])})}(),u(),c()},300)};window.addEventListener("resize",function(t){s&&clearTimeout(s),f()}),f()})();</script></body>
</html>