From 67dba7c47ed8a5800d67a56841bbe9a513c35f63 Mon Sep 17 00:00:00 2001
From: Pierre Ranwez <pierre.ranwez.etu@univ-lille.fr>
Date: Tue, 22 Feb 2022 12:00:32 +0100
Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20doc:=20Documention=20access=20fr?=
 =?UTF-8?q?om=20Popup?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 README.html     | 1564 +++++++++++++++++++++++++++++++++++++++++++++++
 main.js         |    4 +
 main.min.js     |    2 +-
 main.min.js.map |    4 +-
 popup.html      |    1 +
 style.css       |    3 +
 6 files changed, 1576 insertions(+), 2 deletions(-)
 create mode 100644 README.html

diff --git a/README.html b/README.html
new file mode 100644
index 0000000..30ce076
--- /dev/null
+++ b/README.html
@@ -0,0 +1,1564 @@
+<!DOCTYPE html>
+    <html>
+    <head>
+        <meta charset="UTF-8">
+        <title>CSSLSD Documentation</title>
+        <style>
+/* From extension vscode.github */
+.vscode-dark img[src$=\#gh-light-mode-only],
+.vscode-light img[src$=\#gh-dark-mode-only] {
+    display: none;
+}
+
+/* From extension vscode.markdown-math */
+@font-face{font-family:KaTeX_AMS;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Math;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic}@font-face{font-family:KaTeX_Math;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"KaTeX_SansSerif";src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"KaTeX_SansSerif";src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"KaTeX_SansSerif";src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Script;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size1;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size2;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size3;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size4;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Typewriter;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype");font-weight:400;font-style:normal}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto;border-color:currentColor}.katex *{-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.13.0"}.katex .katex-mathml{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-weight:700;font-style:italic}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{display:inline-table;table-layout:fixed;border-collapse:collapse}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;vertical-align:bottom;position:relative}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;vertical-align:bottom;font-size:1px;width:2px;min-width:2px}.katex .vbox{display:inline-flex;flex-direction:column;align-items:baseline}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{width:0;max-width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{display:inline-block;width:100%;border-bottom-style:solid}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{display:inline-block;border:0 solid;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{display:inline-block;width:100%;border-bottom-style:solid}.katex .hdashline{display:inline-block;width:100%;border-bottom-style:dashed}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{display:block;position:absolute;width:100%;height:inherit;fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex svg path{stroke:none}.katex img{border-style:none;min-width:0;min-height:0;max-width:none;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{position:absolute;left:0;width:50.2%;overflow:hidden}.katex .halfarrow-right{position:absolute;right:0;width:50.2%;overflow:hidden}.katex .brace-left{position:absolute;left:0;width:25.1%;overflow:hidden}.katex .brace-center{position:absolute;left:25%;width:50%;overflow:hidden}.katex .brace-right{position:absolute;right:0;width:25.1%;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-content;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{counter-increment:katexEqnNo;content:"(" counter(katexEqnNo) ")"}.katex .mml-eqn-num:before{counter-increment:mmlEqnNo;content:"(" counter(mmlEqnNo) ")"}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;position:absolute;left:calc(50% + .3em);text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}
+
+/*---------------------------------------------------------------------------------------------
+ *  Copyright (c) Microsoft Corporation. All rights reserved.
+ *  Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+
+.katex-error {
+	color: var(--vscode-editorError-foreground);
+}
+
+/* From extension bierner.markdown-preview-github-styles */
+html,
+body,
+.github-markdown-body {
+    padding: 0 !important;
+    max-width: auto !important;
+}
+
+.github-markdown-body {
+    background-color: var(--color-canvas-default);
+    color: var(--color-fg-default);
+}
+
+.github-markdown-body {
+    border: 1px solid transparent;
+    box-sizing: border-box;
+    margin: 0 auto;
+    width: 100% !important;
+}
+
+.github-markdown-content {
+    padding: 32px !important;
+    max-width: 980px;
+    min-width: 200px;
+    margin: 0 auto;
+}
+
+
+.vscode-body.scrollBeyondLastLine {
+    margin-bottom: 0;
+}
+.vscode-body.scrollBeyondLastLine .github-markdown-body {
+    padding-bottom: calc(100vh + 10px) !important;
+}
+
+.github-markdown-body blockquote {
+    background-color: initial;
+}
+
+.github-markdown-body pre {
+    color: initial;
+}
+
+.github-markdown-body code {
+    color: inherit;
+}
+
+.github-markdown-body pre code {
+    color: initial;
+}
+
+.github-markdown-body code > div {
+    background: none
+}
+
+.github-markdown-body.showEditorSelection .code-line .code-line:hover:before {
+	border-left: none;
+}
+
+.github-markdown-body p,
+.github-markdown-body blockquote,
+.github-markdown-body ul,
+.github-markdown-body ol,
+.github-markdown-body dl,
+.github-markdown-body table,
+.github-markdown-body pre {
+  margin-top: 16px;
+  margin-bottom: 16px;
+}
+
+/* Generated from 'node_modules/github-markdown-css/github-markdown.css' */
+
+.github-markdown-light,
+.vscode-body.vscode-light .github-markdown-auto {
+  color-scheme: light;
+  --color-prettylights-syntax-comment: #6e7781;
+  --color-prettylights-syntax-constant: #0550ae;
+  --color-prettylights-syntax-entity: #8250df;
+  --color-prettylights-syntax-storage-modifier-import: #24292f;
+  --color-prettylights-syntax-entity-tag: #116329;
+  --color-prettylights-syntax-keyword: #cf222e;
+  --color-prettylights-syntax-string: #0a3069;
+  --color-prettylights-syntax-variable: #953800;
+  --color-prettylights-syntax-brackethighlighter-unmatched: #82071e;
+  --color-prettylights-syntax-invalid-illegal-text: #f6f8fa;
+  --color-prettylights-syntax-invalid-illegal-bg: #82071e;
+  --color-prettylights-syntax-carriage-return-text: #f6f8fa;
+  --color-prettylights-syntax-carriage-return-bg: #cf222e;
+  --color-prettylights-syntax-string-regexp: #116329;
+  --color-prettylights-syntax-markup-list: #3b2300;
+  --color-prettylights-syntax-markup-heading: #0550ae;
+  --color-prettylights-syntax-markup-italic: #24292f;
+  --color-prettylights-syntax-markup-bold: #24292f;
+  --color-prettylights-syntax-markup-deleted-text: #82071e;
+  --color-prettylights-syntax-markup-deleted-bg: #FFEBE9;
+  --color-prettylights-syntax-markup-inserted-text: #116329;
+  --color-prettylights-syntax-markup-inserted-bg: #dafbe1;
+  --color-prettylights-syntax-markup-changed-text: #953800;
+  --color-prettylights-syntax-markup-changed-bg: #ffd8b5;
+  --color-prettylights-syntax-markup-ignored-text: #eaeef2;
+  --color-prettylights-syntax-markup-ignored-bg: #0550ae;
+  --color-prettylights-syntax-meta-diff-range: #8250df;
+  --color-prettylights-syntax-brackethighlighter-angle: #57606a;
+  --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;
+  --color-prettylights-syntax-constant-other-reference-link: #0a3069;
+  --color-fg-default: #24292f;
+  --color-fg-muted: #57606a;
+  --color-fg-subtle: #6e7781;
+  --color-canvas-default: #ffffff;
+  --color-canvas-subtle: #f6f8fa;
+  --color-border-default: #d0d7de;
+  --color-border-muted: hsla(210,18%,87%,1);
+  --color-neutral-muted: rgba(175,184,193,0.2);
+  --color-accent-fg: #0969da;
+  --color-accent-emphasis: #0969da;
+  --color-danger-fg: #cf222e;
+}
+
+.github-markdown-dark,
+.vscode-body.vscode-dark .github-markdown-auto {
+  color-scheme: dark;
+  --color-prettylights-syntax-comment: #8b949e;
+  --color-prettylights-syntax-constant: #79c0ff;
+  --color-prettylights-syntax-entity: #d2a8ff;
+  --color-prettylights-syntax-storage-modifier-import: #c9d1d9;
+  --color-prettylights-syntax-entity-tag: #7ee787;
+  --color-prettylights-syntax-keyword: #ff7b72;
+  --color-prettylights-syntax-string: #a5d6ff;
+  --color-prettylights-syntax-variable: #ffa657;
+  --color-prettylights-syntax-brackethighlighter-unmatched: #f85149;
+  --color-prettylights-syntax-invalid-illegal-text: #f0f6fc;
+  --color-prettylights-syntax-invalid-illegal-bg: #8e1519;
+  --color-prettylights-syntax-carriage-return-text: #f0f6fc;
+  --color-prettylights-syntax-carriage-return-bg: #b62324;
+  --color-prettylights-syntax-string-regexp: #7ee787;
+  --color-prettylights-syntax-markup-list: #f2cc60;
+  --color-prettylights-syntax-markup-heading: #1f6feb;
+  --color-prettylights-syntax-markup-italic: #c9d1d9;
+  --color-prettylights-syntax-markup-bold: #c9d1d9;
+  --color-prettylights-syntax-markup-deleted-text: #ffdcd7;
+  --color-prettylights-syntax-markup-deleted-bg: #67060c;
+  --color-prettylights-syntax-markup-inserted-text: #aff5b4;
+  --color-prettylights-syntax-markup-inserted-bg: #033a16;
+  --color-prettylights-syntax-markup-changed-text: #ffdfb6;
+  --color-prettylights-syntax-markup-changed-bg: #5a1e02;
+  --color-prettylights-syntax-markup-ignored-text: #c9d1d9;
+  --color-prettylights-syntax-markup-ignored-bg: #1158c7;
+  --color-prettylights-syntax-meta-diff-range: #d2a8ff;
+  --color-prettylights-syntax-brackethighlighter-angle: #8b949e;
+  --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;
+  --color-prettylights-syntax-constant-other-reference-link: #a5d6ff;
+  --color-fg-default: #c9d1d9;
+  --color-fg-muted: #8b949e;
+  --color-fg-subtle: #484f58;
+  --color-canvas-default: #0d1117;
+  --color-canvas-subtle: #161b22;
+  --color-border-default: #30363d;
+  --color-border-muted: #21262d;
+  --color-neutral-muted: rgba(110,118,129,0.4);
+  --color-accent-fg: #58a6ff;
+  --color-accent-emphasis: #1f6feb;
+  --color-danger-fg: #f85149;
+}
+
+@media (prefers-color-scheme: dark) {
+  .github-markdown-system {
+    color-scheme: dark;
+    --color-prettylights-syntax-comment: #8b949e;
+    --color-prettylights-syntax-constant: #79c0ff;
+    --color-prettylights-syntax-entity: #d2a8ff;
+    --color-prettylights-syntax-storage-modifier-import: #c9d1d9;
+    --color-prettylights-syntax-entity-tag: #7ee787;
+    --color-prettylights-syntax-keyword: #ff7b72;
+    --color-prettylights-syntax-string: #a5d6ff;
+    --color-prettylights-syntax-variable: #ffa657;
+    --color-prettylights-syntax-brackethighlighter-unmatched: #f85149;
+    --color-prettylights-syntax-invalid-illegal-text: #f0f6fc;
+    --color-prettylights-syntax-invalid-illegal-bg: #8e1519;
+    --color-prettylights-syntax-carriage-return-text: #f0f6fc;
+    --color-prettylights-syntax-carriage-return-bg: #b62324;
+    --color-prettylights-syntax-string-regexp: #7ee787;
+    --color-prettylights-syntax-markup-list: #f2cc60;
+    --color-prettylights-syntax-markup-heading: #1f6feb;
+    --color-prettylights-syntax-markup-italic: #c9d1d9;
+    --color-prettylights-syntax-markup-bold: #c9d1d9;
+    --color-prettylights-syntax-markup-deleted-text: #ffdcd7;
+    --color-prettylights-syntax-markup-deleted-bg: #67060c;
+    --color-prettylights-syntax-markup-inserted-text: #aff5b4;
+    --color-prettylights-syntax-markup-inserted-bg: #033a16;
+    --color-prettylights-syntax-markup-changed-text: #ffdfb6;
+    --color-prettylights-syntax-markup-changed-bg: #5a1e02;
+    --color-prettylights-syntax-markup-ignored-text: #c9d1d9;
+    --color-prettylights-syntax-markup-ignored-bg: #1158c7;
+    --color-prettylights-syntax-meta-diff-range: #d2a8ff;
+    --color-prettylights-syntax-brackethighlighter-angle: #8b949e;
+    --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;
+    --color-prettylights-syntax-constant-other-reference-link: #a5d6ff;
+    --color-fg-default: #c9d1d9;
+    --color-fg-muted: #8b949e;
+    --color-fg-subtle: #484f58;
+    --color-canvas-default: #0d1117;
+    --color-canvas-subtle: #161b22;
+    --color-border-default: #30363d;
+    --color-border-muted: #21262d;
+    --color-neutral-muted: rgba(110,118,129,0.4);
+    --color-accent-fg: #58a6ff;
+    --color-accent-emphasis: #1f6feb;
+    --color-danger-fg: #f85149;
+  }
+}
+
+@media (prefers-color-scheme: light) {
+  .github-markdown-system {
+    color-scheme: light;
+    --color-prettylights-syntax-comment: #6e7781;
+    --color-prettylights-syntax-constant: #0550ae;
+    --color-prettylights-syntax-entity: #8250df;
+    --color-prettylights-syntax-storage-modifier-import: #24292f;
+    --color-prettylights-syntax-entity-tag: #116329;
+    --color-prettylights-syntax-keyword: #cf222e;
+    --color-prettylights-syntax-string: #0a3069;
+    --color-prettylights-syntax-variable: #953800;
+    --color-prettylights-syntax-brackethighlighter-unmatched: #82071e;
+    --color-prettylights-syntax-invalid-illegal-text: #f6f8fa;
+    --color-prettylights-syntax-invalid-illegal-bg: #82071e;
+    --color-prettylights-syntax-carriage-return-text: #f6f8fa;
+    --color-prettylights-syntax-carriage-return-bg: #cf222e;
+    --color-prettylights-syntax-string-regexp: #116329;
+    --color-prettylights-syntax-markup-list: #3b2300;
+    --color-prettylights-syntax-markup-heading: #0550ae;
+    --color-prettylights-syntax-markup-italic: #24292f;
+    --color-prettylights-syntax-markup-bold: #24292f;
+    --color-prettylights-syntax-markup-deleted-text: #82071e;
+    --color-prettylights-syntax-markup-deleted-bg: #FFEBE9;
+    --color-prettylights-syntax-markup-inserted-text: #116329;
+    --color-prettylights-syntax-markup-inserted-bg: #dafbe1;
+    --color-prettylights-syntax-markup-changed-text: #953800;
+    --color-prettylights-syntax-markup-changed-bg: #ffd8b5;
+    --color-prettylights-syntax-markup-ignored-text: #eaeef2;
+    --color-prettylights-syntax-markup-ignored-bg: #0550ae;
+    --color-prettylights-syntax-meta-diff-range: #8250df;
+    --color-prettylights-syntax-brackethighlighter-angle: #57606a;
+    --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;
+    --color-prettylights-syntax-constant-other-reference-link: #0a3069;
+    --color-fg-default: #24292f;
+    --color-fg-muted: #57606a;
+    --color-fg-subtle: #6e7781;
+    --color-canvas-default: #ffffff;
+    --color-canvas-subtle: #f6f8fa;
+    --color-border-default: #d0d7de;
+    --color-border-muted: hsla(210,18%,87%,1);
+    --color-neutral-muted: rgba(175,184,193,0.2);
+    --color-accent-fg: #0969da;
+    --color-accent-emphasis: #0969da;
+    --color-danger-fg: #cf222e;
+  }
+}
+
+.github-markdown-body {
+  -ms-text-size-adjust: 100%;
+  -webkit-text-size-adjust: 100%;
+  margin: 0;
+  color: var(--color-fg-default);
+  background-color: var(--color-canvas-default);
+  font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";
+  font-size: 16px;
+  line-height: 1.5;
+  word-wrap: break-word;
+}
+
+.github-markdown-body .octicon {
+  display: inline-block;
+  fill: currentColor;
+  vertical-align: text-bottom;
+}
+
+.github-markdown-body h1:hover .anchor .octicon-link:before,
+.github-markdown-body h2:hover .anchor .octicon-link:before,
+.github-markdown-body h3:hover .anchor .octicon-link:before,
+.github-markdown-body h4:hover .anchor .octicon-link:before,
+.github-markdown-body h5:hover .anchor .octicon-link:before,
+.github-markdown-body h6:hover .anchor .octicon-link:before {
+  width: 16px;
+  height: 16px;
+  content: ' ';
+  display: inline-block;
+  background-color: currentColor;
+  -webkit-mask-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");
+  mask-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");
+}
+
+.github-markdown-body details,
+.github-markdown-body figcaption,
+.github-markdown-body figure {
+  display: block;
+}
+
+.github-markdown-body summary {
+  display: list-item;
+}
+
+.github-markdown-body a {
+  background-color: transparent;
+  color: var(--color-accent-fg);
+  text-decoration: none;
+}
+
+.github-markdown-body a:active,
+.github-markdown-body a:hover {
+  outline-width: 0;
+}
+
+.github-markdown-body abbr[title] {
+  border-bottom: none;
+  -webkit-text-decoration: underline dotted;
+  text-decoration: underline dotted;
+}
+
+.github-markdown-body b,
+.github-markdown-body strong {
+  font-weight: 600;
+}
+
+.github-markdown-body dfn {
+  font-style: italic;
+}
+
+.github-markdown-body h1 {
+  margin: .67em 0;
+  font-weight: 600;
+  padding-bottom: .3em;
+  font-size: 2em;
+  border-bottom: 1px solid var(--color-border-muted);
+}
+
+.github-markdown-body mark {
+  background-color: #ff0;
+  color: var(--color-text-primary);
+}
+
+.github-markdown-body small {
+  font-size: 90%;
+}
+
+.github-markdown-body sub,
+.github-markdown-body sup {
+  font-size: 75%;
+  line-height: 0;
+  position: relative;
+  vertical-align: baseline;
+}
+
+.github-markdown-body sub {
+  bottom: -0.25em;
+}
+
+.github-markdown-body sup {
+  top: -0.5em;
+}
+
+.github-markdown-body img {
+  border-style: none;
+  max-width: 100%;
+  box-sizing: content-box;
+  background-color: var(--color-canvas-default);
+}
+
+.github-markdown-body code,
+.github-markdown-body kbd,
+.github-markdown-body pre,
+.github-markdown-body samp {
+  font-family: monospace,monospace;
+  font-size: 1em;
+}
+
+.github-markdown-body figure {
+  margin: 1em 40px;
+}
+
+.github-markdown-body hr {
+  box-sizing: content-box;
+  overflow: hidden;
+  background: transparent;
+  border-bottom: 1px solid var(--color-border-muted);
+  height: .25em;
+  padding: 0;
+  margin: 24px 0;
+  background-color: var(--color-border-default);
+  border: 0;
+}
+
+.github-markdown-body html [type=button],
+.github-markdown-body [type=reset],
+.github-markdown-body [type=submit] {
+  -webkit-appearance: button;
+}
+
+.github-markdown-body [type=button]::-moz-focus-inner,
+.github-markdown-body [type=reset]::-moz-focus-inner,
+.github-markdown-body [type=submit]::-moz-focus-inner {
+  border-style: none;
+  padding: 0;
+}
+
+.github-markdown-body [type=button]:-moz-focusring,
+.github-markdown-body [type=reset]:-moz-focusring,
+.github-markdown-body [type=submit]:-moz-focusring {
+  outline: 1px dotted ButtonText;
+}
+
+.github-markdown-body [type=checkbox],
+.github-markdown-body [type=radio] {
+  box-sizing: border-box;
+  padding: 0;
+}
+
+.github-markdown-body [type=number]::-webkit-inner-spin-button,
+.github-markdown-body [type=number]::-webkit-outer-spin-button {
+  height: auto;
+}
+
+.github-markdown-body [type=search] {
+  -webkit-appearance: textfield;
+  outline-offset: -2px;
+}
+
+.github-markdown-body [type=search]::-webkit-search-cancel-button,
+.github-markdown-body [type=search]::-webkit-search-decoration {
+  -webkit-appearance: none;
+}
+
+.github-markdown-body ::-webkit-input-placeholder {
+  color: inherit;
+  opacity: .54;
+}
+
+.github-markdown-body ::-webkit-file-upload-button {
+  -webkit-appearance: button;
+  font: inherit;
+}
+
+.github-markdown-body a:hover {
+  text-decoration: underline;
+}
+
+.github-markdown-body hr::before {
+  display: table;
+  content: "";
+}
+
+.github-markdown-body hr::after {
+  display: table;
+  clear: both;
+  content: "";
+}
+
+.github-markdown-body table {
+  border-spacing: 0;
+  border-collapse: collapse;
+  display: block;
+  width: max-content;
+  max-width: 100%;
+  overflow: auto;
+}
+
+.github-markdown-body td,
+.github-markdown-body th {
+  padding: 0;
+}
+
+.github-markdown-body details summary {
+  cursor: pointer;
+}
+
+.github-markdown-body details:not([open])>*:not(summary) {
+  display: none !important;
+}
+
+.github-markdown-body kbd {
+  display: inline-block;
+  padding: 3px 5px;
+  font: 11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
+  line-height: 10px;
+  color: var(--color-fg-default);
+  vertical-align: middle;
+  background-color: var(--color-canvas-subtle);
+  border: solid 1px var(--color-neutral-muted);
+  border-bottom-color: var(--color-neutral-muted);
+  border-radius: 6px;
+  box-shadow: inset 0 -1px 0 var(--color-neutral-muted);
+}
+
+.github-markdown-body h1,
+.github-markdown-body h2,
+.github-markdown-body h3,
+.github-markdown-body h4,
+.github-markdown-body h5,
+.github-markdown-body h6 {
+  margin-top: 24px;
+  margin-bottom: 16px;
+  font-weight: 600;
+  line-height: 1.25;
+}
+
+.github-markdown-body h2 {
+  font-weight: 600;
+  padding-bottom: .3em;
+  font-size: 1.5em;
+  border-bottom: 1px solid var(--color-border-muted);
+}
+
+.github-markdown-body h3 {
+  font-weight: 600;
+  font-size: 1.25em;
+}
+
+.github-markdown-body h4 {
+  font-weight: 600;
+  font-size: 1em;
+}
+
+.github-markdown-body h5 {
+  font-weight: 600;
+  font-size: .875em;
+}
+
+.github-markdown-body h6 {
+  font-weight: 600;
+  font-size: .85em;
+  color: var(--color-fg-muted);
+}
+
+.github-markdown-body p {
+  margin-top: 0;
+  margin-bottom: 10px;
+}
+
+.github-markdown-body blockquote {
+  margin: 0;
+  padding: 0 1em;
+  color: var(--color-fg-muted);
+  border-left: .25em solid var(--color-border-default);
+}
+
+.github-markdown-body ul,
+.github-markdown-body ol {
+  margin-top: 0;
+  margin-bottom: 0;
+  padding-left: 2em;
+}
+
+.github-markdown-body ol ol,
+.github-markdown-body ul ol {
+  list-style-type: lower-roman;
+}
+
+.github-markdown-body ul ul ol,
+.github-markdown-body ul ol ol,
+.github-markdown-body ol ul ol,
+.github-markdown-body ol ol ol {
+  list-style-type: lower-alpha;
+}
+
+.github-markdown-body dd {
+  margin-left: 0;
+}
+
+.github-markdown-body tt,
+.github-markdown-body code {
+  font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
+  font-size: 12px;
+}
+
+.github-markdown-body pre {
+  margin-top: 0;
+  margin-bottom: 0;
+  font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
+  font-size: 12px;
+  word-wrap: normal;
+}
+
+.github-markdown-body :-ms-input-placeholder {
+  color: var(--color-fg-subtle);
+  opacity: 1;
+}
+
+.github-markdown-body ::-ms-input-placeholder {
+  color: var(--color-fg-subtle);
+  opacity: 1;
+}
+
+.github-markdown-body ::placeholder {
+  color: var(--color-fg-subtle);
+  opacity: 1;
+}
+
+.github-markdown-body .pl-c {
+  color: var(--color-prettylights-syntax-comment);
+}
+
+.github-markdown-body .pl-c1,
+.github-markdown-body .pl-s .pl-v {
+  color: var(--color-prettylights-syntax-constant);
+}
+
+.github-markdown-body .pl-e,
+.github-markdown-body .pl-en {
+  color: var(--color-prettylights-syntax-entity);
+}
+
+.github-markdown-body .pl-smi,
+.github-markdown-body .pl-s .pl-s1 {
+  color: var(--color-prettylights-syntax-storage-modifier-import);
+}
+
+.github-markdown-body .pl-ent {
+  color: var(--color-prettylights-syntax-entity-tag);
+}
+
+.github-markdown-body .pl-k {
+  color: var(--color-prettylights-syntax-keyword);
+}
+
+.github-markdown-body .pl-s,
+.github-markdown-body .pl-pds,
+.github-markdown-body .pl-s .pl-pse .pl-s1,
+.github-markdown-body .pl-sr,
+.github-markdown-body .pl-sr .pl-cce,
+.github-markdown-body .pl-sr .pl-sre,
+.github-markdown-body .pl-sr .pl-sra {
+  color: var(--color-prettylights-syntax-string);
+}
+
+.github-markdown-body .pl-v,
+.github-markdown-body .pl-smw {
+  color: var(--color-prettylights-syntax-variable);
+}
+
+.github-markdown-body .pl-bu {
+  color: var(--color-prettylights-syntax-brackethighlighter-unmatched);
+}
+
+.github-markdown-body .pl-ii {
+  color: var(--color-prettylights-syntax-invalid-illegal-text);
+  background-color: var(--color-prettylights-syntax-invalid-illegal-bg);
+}
+
+.github-markdown-body .pl-c2 {
+  color: var(--color-prettylights-syntax-carriage-return-text);
+  background-color: var(--color-prettylights-syntax-carriage-return-bg);
+}
+
+.github-markdown-body .pl-sr .pl-cce {
+  font-weight: bold;
+  color: var(--color-prettylights-syntax-string-regexp);
+}
+
+.github-markdown-body .pl-ml {
+  color: var(--color-prettylights-syntax-markup-list);
+}
+
+.github-markdown-body .pl-mh,
+.github-markdown-body .pl-mh .pl-en,
+.github-markdown-body .pl-ms {
+  font-weight: bold;
+  color: var(--color-prettylights-syntax-markup-heading);
+}
+
+.github-markdown-body .pl-mi {
+  font-style: italic;
+  color: var(--color-prettylights-syntax-markup-italic);
+}
+
+.github-markdown-body .pl-mb {
+  font-weight: bold;
+  color: var(--color-prettylights-syntax-markup-bold);
+}
+
+.github-markdown-body .pl-md {
+  color: var(--color-prettylights-syntax-markup-deleted-text);
+  background-color: var(--color-prettylights-syntax-markup-deleted-bg);
+}
+
+.github-markdown-body .pl-mi1 {
+  color: var(--color-prettylights-syntax-markup-inserted-text);
+  background-color: var(--color-prettylights-syntax-markup-inserted-bg);
+}
+
+.github-markdown-body .pl-mc {
+  color: var(--color-prettylights-syntax-markup-changed-text);
+  background-color: var(--color-prettylights-syntax-markup-changed-bg);
+}
+
+.github-markdown-body .pl-mi2 {
+  color: var(--color-prettylights-syntax-markup-ignored-text);
+  background-color: var(--color-prettylights-syntax-markup-ignored-bg);
+}
+
+.github-markdown-body .pl-mdr {
+  font-weight: bold;
+  color: var(--color-prettylights-syntax-meta-diff-range);
+}
+
+.github-markdown-body .pl-ba {
+  color: var(--color-prettylights-syntax-brackethighlighter-angle);
+}
+
+.github-markdown-body .pl-sg {
+  color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);
+}
+
+.github-markdown-body .pl-corl {
+  text-decoration: underline;
+  color: var(--color-prettylights-syntax-constant-other-reference-link);
+}
+
+.github-markdown-body [data-catalyst] {
+  display: block;
+}
+
+.github-markdown-body g-emoji {
+  font-family: "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
+  font-size: 1em;
+  font-style: normal !important;
+  font-weight: 400;
+  line-height: 1;
+  vertical-align: -0.075em;
+}
+
+.github-markdown-body g-emoji img {
+  width: 1em;
+  height: 1em;
+}
+
+.github-markdown-body::before {
+  display: table;
+  content: "";
+}
+
+.github-markdown-body::after {
+  display: table;
+  clear: both;
+  content: "";
+}
+
+.github-markdown-body>*:first-child {
+  margin-top: 0 !important;
+}
+
+.github-markdown-body>*:last-child {
+  margin-bottom: 0 !important;
+}
+
+.github-markdown-body a:not([href]) {
+  color: inherit;
+  text-decoration: none;
+}
+
+.github-markdown-body .absent {
+  color: var(--color-danger-fg);
+}
+
+.github-markdown-body .anchor {
+  float: left;
+  padding-right: 4px;
+  margin-left: -20px;
+  line-height: 1;
+}
+
+.github-markdown-body .anchor:focus {
+  outline: none;
+}
+
+.github-markdown-body p,
+.github-markdown-body blockquote,
+.github-markdown-body ul,
+.github-markdown-body ol,
+.github-markdown-body dl,
+.github-markdown-body table,
+.github-markdown-body pre,
+.github-markdown-body details {
+  margin-top: 0;
+  margin-bottom: 16px;
+}
+
+.github-markdown-body blockquote>:first-child {
+  margin-top: 0;
+}
+
+.github-markdown-body blockquote>:last-child {
+  margin-bottom: 0;
+}
+
+.github-markdown-body sup>a::before {
+  content: "[";
+}
+
+.github-markdown-body sup>a::after {
+  content: "]";
+}
+
+.github-markdown-body h1 .octicon-link,
+.github-markdown-body h2 .octicon-link,
+.github-markdown-body h3 .octicon-link,
+.github-markdown-body h4 .octicon-link,
+.github-markdown-body h5 .octicon-link,
+.github-markdown-body h6 .octicon-link {
+  color: var(--color-fg-default);
+  vertical-align: middle;
+  visibility: hidden;
+}
+
+.github-markdown-body h1:hover .anchor,
+.github-markdown-body h2:hover .anchor,
+.github-markdown-body h3:hover .anchor,
+.github-markdown-body h4:hover .anchor,
+.github-markdown-body h5:hover .anchor,
+.github-markdown-body h6:hover .anchor {
+  text-decoration: none;
+}
+
+.github-markdown-body h1:hover .anchor .octicon-link,
+.github-markdown-body h2:hover .anchor .octicon-link,
+.github-markdown-body h3:hover .anchor .octicon-link,
+.github-markdown-body h4:hover .anchor .octicon-link,
+.github-markdown-body h5:hover .anchor .octicon-link,
+.github-markdown-body h6:hover .anchor .octicon-link {
+  visibility: visible;
+}
+
+.github-markdown-body h1 tt,
+.github-markdown-body h1 code,
+.github-markdown-body h2 tt,
+.github-markdown-body h2 code,
+.github-markdown-body h3 tt,
+.github-markdown-body h3 code,
+.github-markdown-body h4 tt,
+.github-markdown-body h4 code,
+.github-markdown-body h5 tt,
+.github-markdown-body h5 code,
+.github-markdown-body h6 tt,
+.github-markdown-body h6 code {
+  padding: 0 .2em;
+  font-size: inherit;
+}
+
+.github-markdown-body ul.no-list,
+.github-markdown-body ol.no-list {
+  padding: 0;
+  list-style-type: none;
+}
+
+.github-markdown-body ol[type="1"] {
+  list-style-type: decimal;
+}
+
+.github-markdown-body ol[type=a] {
+  list-style-type: lower-alpha;
+}
+
+.github-markdown-body ol[type=i] {
+  list-style-type: lower-roman;
+}
+
+.github-markdown-body div>ol:not([type]) {
+  list-style-type: decimal;
+}
+
+.github-markdown-body ul ul,
+.github-markdown-body ul ol,
+.github-markdown-body ol ol,
+.github-markdown-body ol ul {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+
+.github-markdown-body li>p {
+  margin-top: 16px;
+}
+
+.github-markdown-body li+li {
+  margin-top: .25em;
+}
+
+.github-markdown-body dl {
+  padding: 0;
+}
+
+.github-markdown-body dl dt {
+  padding: 0;
+  margin-top: 16px;
+  font-size: 1em;
+  font-style: italic;
+  font-weight: 600;
+}
+
+.github-markdown-body dl dd {
+  padding: 0 16px;
+  margin-bottom: 16px;
+}
+
+.github-markdown-body table th {
+  font-weight: 600;
+}
+
+.github-markdown-body table th,
+.github-markdown-body table td {
+  padding: 6px 13px;
+  border: 1px solid var(--color-border-default);
+}
+
+.github-markdown-body table tr {
+  background-color: var(--color-canvas-default);
+  border-top: 1px solid var(--color-border-muted);
+}
+
+.github-markdown-body table tr:nth-child(2n) {
+  background-color: var(--color-canvas-subtle);
+}
+
+.github-markdown-body table img {
+  background-color: transparent;
+}
+
+.github-markdown-body img[align=right] {
+  padding-left: 20px;
+}
+
+.github-markdown-body img[align=left] {
+  padding-right: 20px;
+}
+
+.github-markdown-body .emoji {
+  max-width: none;
+  vertical-align: text-top;
+  background-color: transparent;
+}
+
+.github-markdown-body span.frame {
+  display: block;
+  overflow: hidden;
+}
+
+.github-markdown-body span.frame>span {
+  display: block;
+  float: left;
+  width: auto;
+  padding: 7px;
+  margin: 13px 0 0;
+  overflow: hidden;
+  border: 1px solid var(--color-border-default);
+}
+
+.github-markdown-body span.frame span img {
+  display: block;
+  float: left;
+}
+
+.github-markdown-body span.frame span span {
+  display: block;
+  padding: 5px 0 0;
+  clear: both;
+  color: var(--color-fg-default);
+}
+
+.github-markdown-body span.align-center {
+  display: block;
+  overflow: hidden;
+  clear: both;
+}
+
+.github-markdown-body span.align-center>span {
+  display: block;
+  margin: 13px auto 0;
+  overflow: hidden;
+  text-align: center;
+}
+
+.github-markdown-body span.align-center span img {
+  margin: 0 auto;
+  text-align: center;
+}
+
+.github-markdown-body span.align-right {
+  display: block;
+  overflow: hidden;
+  clear: both;
+}
+
+.github-markdown-body span.align-right>span {
+  display: block;
+  margin: 13px 0 0;
+  overflow: hidden;
+  text-align: right;
+}
+
+.github-markdown-body span.align-right span img {
+  margin: 0;
+  text-align: right;
+}
+
+.github-markdown-body span.float-left {
+  display: block;
+  float: left;
+  margin-right: 13px;
+  overflow: hidden;
+}
+
+.github-markdown-body span.float-left span {
+  margin: 13px 0 0;
+}
+
+.github-markdown-body span.float-right {
+  display: block;
+  float: right;
+  margin-left: 13px;
+  overflow: hidden;
+}
+
+.github-markdown-body span.float-right>span {
+  display: block;
+  margin: 13px auto 0;
+  overflow: hidden;
+  text-align: right;
+}
+
+.github-markdown-body code,
+.github-markdown-body tt {
+  padding: .2em .4em;
+  margin: 0;
+  font-size: 85%;
+  background-color: var(--color-neutral-muted);
+  border-radius: 6px;
+}
+
+.github-markdown-body code br,
+.github-markdown-body tt br {
+  display: none;
+}
+
+.github-markdown-body del code {
+  text-decoration: inherit;
+}
+
+.github-markdown-body pre code {
+  font-size: 100%;
+}
+
+.github-markdown-body pre>code {
+  padding: 0;
+  margin: 0;
+  word-break: normal;
+  white-space: pre;
+  background: transparent;
+  border: 0;
+}
+
+.github-markdown-body .highlight {
+  margin-bottom: 16px;
+}
+
+.github-markdown-body .highlight pre {
+  margin-bottom: 0;
+  word-break: normal;
+}
+
+.github-markdown-body .highlight pre,
+.github-markdown-body pre {
+  padding: 16px;
+  overflow: auto;
+  font-size: 85%;
+  line-height: 1.45;
+  background-color: var(--color-canvas-subtle);
+  border-radius: 6px;
+}
+
+.github-markdown-body pre code,
+.github-markdown-body pre tt {
+  display: inline;
+  max-width: auto;
+  padding: 0;
+  margin: 0;
+  overflow: visible;
+  line-height: inherit;
+  word-wrap: normal;
+  background-color: transparent;
+  border: 0;
+}
+
+.github-markdown-body .csv-data td,
+.github-markdown-body .csv-data th {
+  padding: 5px;
+  overflow: hidden;
+  font-size: 12px;
+  line-height: 1;
+  text-align: left;
+  white-space: nowrap;
+}
+
+.github-markdown-body .csv-data .blob-num {
+  padding: 10px 8px 9px;
+  text-align: right;
+  background: var(--color-canvas-default);
+  border: 0;
+}
+
+.github-markdown-body .csv-data tr {
+  border-top: 0;
+}
+
+.github-markdown-body .csv-data th {
+  font-weight: 600;
+  background: var(--color-canvas-subtle);
+  border-top: 0;
+}
+
+.github-markdown-body .footnotes {
+  font-size: 12px;
+  color: var(--color-fg-muted);
+  border-top: 1px solid var(--color-border-default);
+}
+
+.github-markdown-body .footnotes ol {
+  padding-left: 16px;
+}
+
+.github-markdown-body .footnotes li {
+  position: relative;
+}
+
+.github-markdown-body .footnotes li:target::before {
+  position: absolute;
+  top: -8px;
+  right: -8px;
+  bottom: -8px;
+  left: -24px;
+  pointer-events: none;
+  content: "";
+  border: 2px solid var(--color-accent-emphasis);
+  border-radius: 6px;
+}
+
+.github-markdown-body .footnotes li:target {
+  color: var(--color-fg-default);
+}
+
+.github-markdown-body .footnotes .data-footnote-backref g-emoji {
+  font-family: monospace;
+}
+
+.github-markdown-body [hidden] {
+  display: none !important;
+}
+
+.github-markdown-body ::-webkit-calendar-picker-indicator {
+  filter: invert(50%);
+}
+/*!
+  Theme: GitHub
+  Description: Highlight-js port of github.com theme
+  Author: github.com
+  Maintainer: @SNDST00M, @mjbvz
+  Updated: 2021-12-08
+*/
+.markdown-body pre code.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 16px;
+}
+
+.markdown-body code.hljs {
+  padding: 3px 5px;
+}
+
+/*!
+  Theme: GitHub
+  Description: Theme as seen on github.com
+  Author: github.com
+  Maintainer: @Hirse
+  Updated: 2021-05-15
+
+  Outdated base version: https://github.com/primer/github-syntax-dark
+  Current colors taken from GitHub's CSS
+*/
+.markdown-body .hljs {
+  color: var(--color-fg-default);
+  background: var(--color-canvas-subtle);
+}
+
+.markdown-body .hljs-doctag,
+.markdown-body .hljs-keyword,
+.markdown-body .hljs-meta .hljs-keyword,
+.markdown-body .hljs-template-tag,
+.markdown-body .hljs-template-variable,
+.markdown-body .hljs-type,
+.markdown-body .hljs-variable.language_ {
+  color: var(--color-prettylights-syntax-keyword);
+}
+
+.markdown-body .hljs-title,
+.markdown-body .hljs-title.class_,
+.markdown-body .hljs-title.class_.inherited__,
+.markdown-body .hljs-title.function_ {
+  color: var(--color-prettylights-syntax-entity);
+}
+
+.markdown-body .hljs-attr,
+.markdown-body .hljs-attribute,
+.markdown-body .hljs-literal,
+.markdown-body .hljs-meta,
+.markdown-body .hljs-number,
+.markdown-body .hljs-operator,
+.markdown-body .hljs-selector-attr,
+.markdown-body .hljs-selector-class,
+.markdown-body .hljs-selector-id,
+.markdown-body .hljs-variable {
+  color: var(--color-prettylights-syntax-constant);
+}
+
+.markdown-body .hljs-meta .hljs-string,
+.markdown-body .hljs-regexp,
+.markdown-body .hljs-string {
+  color: var(--color-prettylights-syntax-string);
+}
+
+.markdown-body .hljs-built_in,
+.markdown-body .hljs-symbol {
+  color: var(--color-prettylights-syntax-variable);
+}
+
+.markdown-body .hljs-code,
+.markdown-body .hljs-comment,
+.markdown-body .hljs-formula {
+  color: var(--color-prettylights-syntax-comment);
+}
+
+.markdown-body .hljs-name,
+.markdown-body .hljs-quote,
+.markdown-body .hljs-selector-pseudo,
+.markdown-body .hljs-selector-tag {
+  color: var(--color-prettylights-syntax-entity-tag);
+}
+
+.markdown-body .hljs-subst {
+  color: var(--color-prettylights-syntax-constant);
+}
+
+.markdown-body .hljs-section {
+  color: var(--color-prettylights-syntax-markup-heading);
+  font-weight: bold;
+}
+
+.markdown-body .hljs-bullet {
+  color: var(--color-prettylights-syntax-markup-list);
+}
+
+.markdown-body .hljs-emphasis {
+  color: var(--color-prettylights-syntax-constant);
+  font-style: italic;
+}
+
+.markdown-body .hljs-strong {
+  color: var(--color-prettylights-syntax-constant);
+  font-weight: bold;
+}
+
+.markdown-body .hljs-addition {
+  color: var(--color-prettylights-syntax-markup-inserted-text);
+  background-color: var(--color-prettylights-syntax-markup-inserted-bg);
+}
+
+.markdown-body .hljs-deletion {
+  color: var(--color-prettylights-syntax-markup-deleted-text);
+  background-color: var(--color-prettylights-syntax-markup-deleted-bg);
+}
+
+</style>
+        
+        <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Microsoft/vscode/extensions/markdown-language-features/media/markdown.css">
+<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Microsoft/vscode/extensions/markdown-language-features/media/highlight.css">
+<style>
+            body {
+                font-family: -apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', system-ui, 'Ubuntu', 'Droid Sans', sans-serif;
+                font-size: 14px;
+                line-height: 1.6;
+            }
+        </style>
+        <style>
+.task-list-item { list-style-type: none; } .task-list-item-checkbox { margin-left: -20px; vertical-align: middle; }
+</style>
+        
+        
+        
+    </head>
+    <body class="vscode-body vscode-light">
+        <div class="github-markdown-body github-markdown-auto">
+            <div class="github-markdown-content"><p align="center"><img width="150" alt="CSS LSD Logo" src="file:///d:\Cours\M2S4\PFE\csslsd\ressources\logo.svg"></p>
+<p align="center">CssLsd is a Chromium Extension which allows for interactively modifying
+the style of web pages using MIDI messages, Keyboard presses or Audio input
+features.
+.</p>
+<h2 id="table-of-contents">Table of contents</h2>
+<ul>
+<li><a href="#table-of-contents">Table of contents</a></li>
+<li><a href="#setup">Setup</a>
+<ul>
+<li><a href="#browser-comatibility-for-audioworklet">Browser comatibility for AudioWorklet</a></li>
+</ul>
+</li>
+<li><a href="#usage">Usage</a>
+<ul>
+<li><a href="#user-interface">User Interface</a>
+<ul>
+<li><a href="#open-extension">Open extension</a>
+<ul>
+<li><a href="#popup">Popup</a></li>
+<li><a href="#devtool--deported-devtool">Devtool &amp; deported devtool</a></li>
+</ul>
+</li>
+<li><a href="#start-to-use-functionnalities">Start to use functionnalities</a>
+<ul>
+<li><a href="#audio">Audio</a></li>
+<li><a href="#midi">MIDI</a></li>
+<li><a href="#loops">Loops</a></li>
+</ul>
+</li>
+<li><a href="#upload-and-download">Upload and download</a></li>
+</ul>
+</li>
+<li><a href="#csslsd-code">CSSLSD Code</a></li>
+<li><a href="#midi-variables">MIDI Variables</a></li>
+<li><a href="#audio-variables">Audio Variables</a></li>
+<li><a href="#types">Types</a></li>
+<li><a href="#options">Options</a></li>
+<li><a href="#examples">Examples</a></li>
+</ul>
+</li>
+<li><a href="#ressources">Ressources</a></li>
+</ul>
+<h2 id="setup">Setup</h2>
+<ul>
+<li>Download or Clone CssLsd</li>
+<li>Start Chromium</li>
+<li>Type chrome://extensions in the address bar</li>
+<li>Click &quot;Load unpacked extension&quot; and select the csslsd folder</li>
+<li>Now the extension should appear in the menu bar</li>
+</ul>
+<h3 id="browser-comatibility-for-audioworklet">Browser comatibility for AudioWorklet</h3>
+<table>
+<thead>
+<tr>
+<th>Chrome</th>
+<th>Edge</th>
+<th>Firefox</th>
+<th>Opéra</th>
+<th>Brave</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>64</td>
+<td>79</td>
+<td>76</td>
+<td>51</td>
+<td>64</td>
+</tr>
+</tbody>
+</table>
+<h2 id="usage">Usage</h2>
+<h3 id="user-interface">User Interface</h3>
+<h4 id="open-extension">Open extension</h4>
+<h5 id="popup">Popup</h5>
+<p><img src="file:///d:\Cours\M2S4\PFE\csslsd\doc\popup.png" alt="Popup view">
+Pin the extension to get it close to URL bar. CLick on CSSLSD logo to open it.</p>
+<h5 id="devtool--deported-devtool">Devtool &amp; deported devtool</h5>
+<p><img src="file:///d:\Cours\M2S4\PFE\csslsd\doc\devtool.gif" alt="Devtool view">
+Open devtool, in &quot;element&quot;, &quot;source&quot;, &quot;console&quot; bar click on view more arrow, then drag-and-drop &quot;CSSLSD&quot; button.
+You can put &quot;element&quot; tab to bottom by right-clicking on it.
+For deported devtool, click on more (top-right) and then click on separate devtool dock.</p>
+<h4 id="start-to-use-functionnalities">Start to use functionnalities</h4>
+<h5 id="audio">Audio</h5>
+<p><img src="file:///d:\Cours\M2S4\PFE\csslsd\doc\activate_audio.gif" alt="Devtool view"></p>
+<p>Click on activate button, right top. When it becomes green you can click on audio one. If audio well started it's become green too. Don't forget to authorize the tab to get access to your microphone.</p>
+<h5 id="midi">MIDI</h5>
+<p>Click on activate button, then on MIDI button. If this one becomes green, the MIDI is operationnal to use. Your device is displayed on top left. On control change on your MIDI device and if the extension pop-up is open the control ID will be displayed on top center. And if you focus text MIDI column parameter, control will be add to the list.</p>
+<h5 id="loops">Loops</h5>
+<p>When you press record all interactions with the midi device are recorded in a table. When finished recording, press stop. You can then play your loop by pressing play or re-record over the previously created loop. Finally, you can overwrite the created loop. You have 4 slots available to save your loops. You can also map MIDI events to the actions listed above.
+You can't record simultaneously loops, push on record N°X button will overwrite the loop N°X.</p>
+<h4 id="upload-and-download">Upload and download</h4>
+<p>You have the possibility to export all CSS-LSD settings and codes as a JSON file. You can then import a previously exported JSON file from the extension. This can be useful for saving presets according to websites.</p>
+<h3 id="csslsd-code">CSSLSD Code</h3>
+<p>You need to use a custom CSS template, like below to map your audio or MIDI events to some CSSLSD properties. All parameters are between square brackets you can extend parameter by heritage with a range (this is not mandatory).</p>
+<p>Code example:</p>
+<pre><code class="language-css"><div><span class="hljs-selector-tag">body</span> {
+    <span class="hljs-attribute">background-color</span>:[couleur <span class="hljs-number">#000</span>:<span class="hljs-number">#fff</span>];
+}
+<span class="hljs-selector-tag">h1</span> {
+    <span class="hljs-attribute">opacity</span>: [opacité];
+}
+</div></code></pre>
+<p>Parameters example:</p>
+<p align="center">
+<img width="600" alt="Settings" src="file:///d:\Cours\M2S4\PFE\csslsd\doc\settings.png">
+</p>
+<p>To <em><strong>save</strong></em> your template, it's automatic ! Just type, edit what you want. It will be saved.</p>
+<h3 id="midi-variables">MIDI Variables</h3>
+<table>
+<thead>
+<tr>
+<th>Midi Event</th>
+<th>Parameter</th>
+<th>Informations</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>note</td>
+<td>id</td>
+<td>Note on, use case : note:21</td>
+</tr>
+<tr>
+<td>cc</td>
+<td>id</td>
+<td>Control change, use case : cc:10</td>
+</tr>
+<tr>
+<td>pb</td>
+<td></td>
+<td>Pitchbend, use case : pb</td>
+</tr>
+</tbody>
+</table>
+<h3 id="audio-variables">Audio Variables</h3>
+<table>
+<thead>
+<tr>
+<th>Audio Event</th>
+<th>Parameter</th>
+<th>Informations</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>low</td>
+<td></td>
+<td>low energy, use case : low</td>
+</tr>
+<tr>
+<td>lomi</td>
+<td></td>
+<td>lomi energy, use case : lomi</td>
+</tr>
+<tr>
+<td>low</td>
+<td></td>
+<td>mid energy, use case : mid</td>
+</tr>
+<tr>
+<td>mihi</td>
+<td></td>
+<td>mihi energy, use case : mihi</td>
+</tr>
+<tr>
+<td>hi</td>
+<td></td>
+<td>High energy, use case : hi</td>
+</tr>
+<tr>
+<td>loud</td>
+<td></td>
+<td>Volume meter, use case : loud</td>
+</tr>
+<tr>
+<td>onset</td>
+<td>note</td>
+<td>Note, use case : onset:A</td>
+</tr>
+<tr>
+<td>attack</td>
+<td></td>
+<td>Attack, use case : attack</td>
+</tr>
+</tbody>
+</table>
+<h3 id="types">Types</h3>
+<table>
+<thead>
+<tr>
+<th>Option</th>
+<th>Informations</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>min:max</td>
+<td>Decimal or hexadecimal min and max splited by &quot;:&quot;</td>
+</tr>
+<tr>
+<td>A;B;C</td>
+<td>Array splited by &quot;;&quot;</td>
+</tr>
+</tbody>
+</table>
+<h3 id="options">Options</h3>
+<table>
+<thead>
+<tr>
+<th>Option</th>
+<th>Informations</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>r</td>
+<td>Random value between type object</td>
+</tr>
+<tr>
+<td>i:1</td>
+<td>Incremental value between type object, increment can be negative</td>
+</tr>
+<tr>
+<td>d</td>
+<td>Linear value between type object</td>
+</tr>
+</tbody>
+</table>
+<h3 id="examples">Examples</h3>
+<p><img src="file:///d:\Cours\M2S4\PFE\csslsd\doc\parameter_opacity.gif" alt="Devtool view"></p>
+<p>This exemple show, how to duplicate parameter, to add &quot;opacité&quot; one. And then add it to CSSLSD code via auto-completition.</p>
+<h2 id="ressources">Ressources</h2>
+<ul>
+<li>Chrome extensions : <a href="https://developer.chrome.com/docs/extensions/mv3/getstarted/">https://developer.chrome.com/docs/extensions/mv3/getstarted/</a></li>
+<li>ACE.js : <a href="https://ace.c9.io/">https://ace.c9.io/</a></li>
+<li>WebMIDI : <a href="https://webmidijs.org/">https://webmidijs.org/</a></li>
+<li>CSSParser : <a href="http://glazman.org/JSCSSP/index.html">http://glazman.org/JSCSSP/index.html</a></li>
+</ul>
+</div>
+        </div>
+    </body>
+    </html>
\ No newline at end of file
diff --git a/main.js b/main.js
index 06c0e54..9985aee 100644
--- a/main.js
+++ b/main.js
@@ -153,6 +153,10 @@ $(document).on('input', '#loopList span', function () {
 	});
 });
 
+$(document).on('click', '#doc', function(){
+	chrome.tabs.create({'url': "/README.html" } );
+});
+
 var allParameters;
 document.getElementById("parameters").addEventListener("input", function () {
 	saveParameters();
diff --git a/main.min.js b/main.min.js
index 87b8eab..7373cc4 100644
--- a/main.min.js
+++ b/main.min.js
@@ -1,2 +1,2 @@
-var activateButton,dataMidi,editor,langTools,allParameters,audioButton=!1,midiButton=!1,trashIcon='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-trash" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>\n<line x1="4" y1="7" x2="20" y2="7"></line>\n<line x1="10" y1="11" x2="10" y2="17"></line>\n<line x1="14" y1="11" x2="14" y2="17"></line>\n<path d="M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12"></path>\n<path d="M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3"></path>\n</svg>',recordIcon='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-player-record" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>\n<circle cx="12" cy="12" r="7"></circle>\n</svg>',stopIcon='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-player-stop" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>\n<rect x="5" y="5" width="14" height="14" rx="2"></rect>\n</svg>',pauseIcon='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-player-pause" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>\n<rect x="6" y="5" width="4" height="14" rx="1"></rect>\n<rect x="14" y="5" width="4" height="14" rx="1"></rect>\n</svg>',playIcon='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-player-play" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>\n<path d="M7 4v16l13 -8z"></path>\n</svg>',minus='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-minus" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><circle cx="12" cy="12" r="9"></circle><line x1="9" y1="12" x2="15" y2="12"></line></svg>',plus='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-plus" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><circle cx="12" cy="12" r="9"></circle><line x1="9" y1="12" x2="15" y2="12"></line><line x1="12" y1="9" x2="12" y2="15"></line></svg>',icon='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-grip-vertical" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <circle cx="9" cy="5" r="1"></circle> <circle cx="9" cy="12" r="1"></circle> <circle cx="9" cy="19" r="1"></circle> <circle cx="15" cy="5" r="1"></circle> <circle cx="15" cy="12" r="1"></circle> <circle cx="15" cy="19" r="1"></circle></svg>';function setAutocompleteParameters(){var e=[];chrome.storage.sync.get(["parameters"],(function(t){parameters=JSON.parse(t.parameters),parameters.forEach(t=>{e.push({value:"["+t[1]+"]",score:1,meta:t[3]+" "+t[4]})})}));const t={getCompletions:(t,n,o,a,i)=>{i(null,e)}};langTools.addCompleter(t)}function loadEditor(){(editor=ace.edit("editor")).setTheme("ace/theme/tomorrow_night_blue"),editor.session.setMode("ace/mode/css"),editor.getSession().setUseWorker(!1),langTools=ace.require("ace/ext/language_tools"),editor.setOptions({enableBasicAutocompletion:!0,enableSnippets:!0,enableLiveAutocompletion:!0}),chrome.storage.sync.get(["css"],(function(e){editor.getSession().setValue(e.css)})),setAutocompleteParameters(),editor.getSession().on("change",(function(){updateCss()}))}function initUi(){chrome.storage.sync.get(["activate"],(function(e){(activateButton=e.activate)?$("#onOff").addClass("active"):$("#onOff").removeClass("active")})),chrome.storage.sync.get(["audioI"],(function(e){audioButton=e.audioI,e.audioI?$(".audioI").addClass("active"):$(".audioI").removeClass("active")})),chrome.storage.sync.get(["midiI"],(function(e){midiButton=e.midiI,e.midiI?$(".midiI").addClass("active"):$(".midiI").removeClass("active")})),chrome.storage.sync.get(["records"],(function(e){$("#loopList").text("");for(let t=0;t<e.records.loop.length;t++)e.records.loop[t].length>0?$("#loopList").append("<tr><td>Boucle n°"+(t+1)+"</td><td>"+e.records.loop[t][e.records.loop[t].length-1].time+"ms</td><td>"+e.records.loop[t].length+'</td><td><button id="record" value="'+t+'">'+(e.records.info[t].isRecording?stopIcon:recordIcon)+'</button><a>note:<span contenteditable class="spanEditable"></span></a><button id="loopPlay" value="'+t+'">'+(e.records.info[t].isLoop?pauseIcon:playIcon)+'</button><a>note:<span contenteditable class="spanEditable"></span></a></td><td><button id="loopReset" value="'+t+'">'+trashIcon+"</button></td></tr>"):$("#loopList").append("<tr><td>Boucle n°"+(t+1)+'</td><td></td><td>0</td><td><button id="record" value="'+t+'">'+recordIcon+'</button><a>note:<span contenteditable class="spanEditable"></span></a><button id="loopPlay" value="'+t+'">'+playIcon+'</button><a>note:<span contenteditable class="spanEditable"></span></a></td><td><button id="loopReset" value="'+t+'">'+trashIcon+"</button></td></tr>")})),chrome.storage.sync.get(["parameters"],(function(e){parameters=JSON.parse(e.parameters);var t="";parameters.forEach(e=>{var n="";for(let t=1;t<e.length;t++)n+="<td contenteditable>"+e[t]+"</td>";t+="<tr><td>"+icon+plus+minus+"</td>"+n+"</tr>"}),$("#parameters").html(t)})),$((function(){$("#parameters").sortable({axis:"y",containment:"parent",cancel:":input,button,[contenteditable]"})}))}function saveParameters(){var e=$("#parameters tr").get().map((function(e){return $(e).find("td").get().map((function(e){return $(e).text()}))}));allParameters=JSON.stringify(e),chrome.storage.sync.set({parameters:JSON.stringify(e)}),updateCss(),setAutocompleteParameters()}function analyseAll(){chrome.storage.sync.get(["parameters","css"],(function(e){var t=[],n=(new CSSParser).parse(e.css,!1,!1);n.cssRules.length>0&&n.cssRules.forEach(n=>{n.declarations.length>0&&n.declarations.forEach(o=>{var a=[];if(cssValue=o.valueText,count=o.valueText.split("[").length,count>1)for(let t=0;t<count-1;t++){template=cssValue.substring(cssValue.indexOf("[")+1,cssValue.indexOf("]")),cssValue=cssValue.replace("["+template+"]",""),JSON.parse(e.parameters).forEach(e=>{templateSplited=template.split(" "),e[1]==templateSplited[0]&&(""!=e[4]&&e[4].split(" ").forEach(t=>{var n={type:("","midi"),name:templateSplited[0],templateFull:template,eventType:"",eventName:"",options:"",array:templateSplited.length>1&&templateSplited[1].includes(";")?templateSplited[1].split(";"):"",min:templateSplited.length>1&&templateSplited[1].includes(":")?templateSplited[1].split(":")[0]:"",max:templateSplited.length>1&&templateSplited[1].includes(":")?templateSplited[1].split(":")[1]:""};t.includes(":")?(n.eventType=t.split(":")[0],n.eventName=t.split(":")[1]):(n.eventType=t,n.eventName=""),n.options=e[3],n.array=""==n.array?e[2].includes(";")?e[2].split(";"):"":n.array,n.min=""==n.min?e[2].includes(":")?e[2].split(":")[0]:0:n.min,n.max=""==n.max?e[2].includes(":")?e[2].split(":")[1]:1:n.max,a.push(n)}),""!=e[5]&&e[5].split(" ").forEach(t=>{var n={type:("","audio"),name:templateSplited[0],templateFull:template,eventType:"",eventName:"",options:"",array:templateSplited.length>1&&templateSplited[1].includes(";")?templateSplited[1].split(";"):"",min:templateSplited.length>1&&templateSplited[1].includes(":")?templateSplited[1].split(":")[0]:"",max:templateSplited.length>1&&templateSplited[1].includes(":")?templateSplited[1].split(":")[1]:""};t.includes(":")?(n.eventType=t.split(":")[0],n.eventName=t.split(":")[1]):(n.eventType=t,n.eventName=""),n.options=e[3],n.array=""==n.array?e[2].includes(";")?e[2].split(";"):"":n.array,n.min=""==n.min?e[2].includes(":")?e[2].split(":")[0]:0:n.min,n.max=""==n.max?e[2].includes(":")?e[2].split(":")[1]:1:n.max,a.push(n)}))})}else a.push({type:"pure",name:"",templateFull:"",eventType:"",eventName:"",options:"",array:"",min:"",max:""});t.push({element:n.mSelectorText,property:o.property,value:o.valueText,templates:a})})}),chrome.storage.sync.set({all:t})}))}function updateCss(){let e=editor.getValue();chrome.storage.sync.set({css:e}),analyseAll(),chrome.tabs.query({active:!0,currentWindow:!0},(function(e){chrome.tabs.sendMessage(e[0].id,{type:"update",data:!1})}))}$(document).on("input","#loopList span",(function(){spans=$("#loopList span"),chrome.storage.sync.get(["records"],(function(e){records=e.records,row=0;for(let e=0;e<4;e++)row=2*e,records.info[e].controllerPlayPause=spans[row].textContent,records.info[e].controllerRecord=spans[row+1].textContent;chrome.storage.sync.set({records:records})}))})),document.getElementById("parameters").addEventListener("input",(function(){saveParameters()}),!1),$("#onOff").on("click",(function(){activateButton=!activateButton,chrome.storage.sync.set({activate:activateButton},(function(){activateButton?$("#onOff").addClass("active"):$("#onOff").removeClass("active"),chrome.tabs.query({active:!0,currentWindow:!0},(function(e){chrome.storage.sync.set({audioI:!1}),chrome.storage.sync.set({midiI:!1}),chrome.tabs.sendMessage(e[0].id,{type:"start",data:activateButton})}))}))})),$(".audioI").on("click",(function(){audioButton=!audioButton,chrome.storage.sync.set({audioI:audioButton},(function(){})),chrome.tabs.query({active:!0,currentWindow:!0},(function(e){chrome.tabs.sendMessage(e[0].id,{type:"audio",data:audioButton})})),initUi()})),$(".midiI").on("click",(function(){midiButton=!midiButton,chrome.storage.sync.set({midiB:midiButton},(function(){})),chrome.tabs.query({active:!0,currentWindow:!0},(function(e){chrome.tabs.sendMessage(e[0].id,{type:"midi",data:midiButton})})),initUi()})),$(document).on("click",".icon-tabler-plus",(function(){var e=$(this).parent().parent(),t=e.clone();e.after(t),saveParameters()})),$(document).on("click",".icon-tabler-minus",(function(){var e=$(this).parent().parent(),t=e.parent();e.remove(),saveParameters(),0==t.children().length&&t.append("<tr><td>"+icon+plus+minus+"</td><td contenteditable></td><td contenteditable></td><td contenteditable></td><td contenteditable></td><td contenteditable></td></tr>")}));var record=!1;function onMessage({type:e,data:t}){switch(console.log("onMessage",e,t),e){case"updateUi":initUi();break;case"midiEvent":if(dataMidi!=t){$("#midiEvent").text(t),$("#midiEvent").parent().animate({"background-color":"red"},"slow"),$("#midiEvent").parent().animate({"background-color":"transparent"},"slow");var n=$("[contenteditable]:focus"),o=$(n).index("#parameters tr:eq("+$(n).parent().index("#parameters tr")+") td");n.length>0&&4==o&&focused.text(focused.text()+" "+t),dataMidi=t}break;case"midiDevices":$("#midiDevices").text(t)}}$(document).on("click","#record",(function(){id=$(this).val(),(record=!record)?$("#record").html(stopIcon):$("#record").html(recordIcon),chrome.tabs.query({active:!0,currentWindow:!0},(function(e){chrome.tabs.sendMessage(e[0].id,{type:"record",data:{bool:record,number:id}})}))})),$(document).on("click","#loopPlay",(function(){$(this).html().includes("player-play")?($(this).html(pauseIcon),chrome.storage.sync.set({loopPlay:!0})):($(this).html(playIcon),chrome.storage.sync.set({loopPlay:!1})),id=$(this).val(),chrome.tabs.query({active:!0,currentWindow:!0},(function(e){chrome.tabs.sendMessage(e[0].id,{type:"playLoop",data:id})}))})),$(document).on("click","#loopReset",(function(){id=$(this).val(),chrome.tabs.query({active:!0,currentWindow:!0},(function(e){chrome.tabs.sendMessage(e[0].id,{type:"resetLoop",data:id})}))})),$("#download").on("click",(function(){chrome.storage.sync.get(["parameters"],(function(e){const t=JSON.stringify([editor.getValue(),e.parameters]);let n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(t)),n.setAttribute("download","data.json"),n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)}))})),$("#upload").on("change",(function(){const e=this.files[0],t=new FileReader;t.onload=function(e){const t=e.target.result,n=JSON.parse(t);console.log(n),chrome.storage.sync.set({css:n[0]}),chrome.storage.sync.set({parameters:n[1]}),editor.setValue(n[0]),initUi()},t.readAsText(e),this.value=""})),chrome.runtime.onMessage.addListener(onMessage);var port=chrome.runtime.connect({name:"popup"});loadEditor(),initUi(),$(document).tooltip({container:"body",placement:"top left",trigger:"hover"});
+var activateButton,dataMidi,editor,langTools,allParameters,audioButton=!1,midiButton=!1,trashIcon='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-trash" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>\n<line x1="4" y1="7" x2="20" y2="7"></line>\n<line x1="10" y1="11" x2="10" y2="17"></line>\n<line x1="14" y1="11" x2="14" y2="17"></line>\n<path d="M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12"></path>\n<path d="M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3"></path>\n</svg>',recordIcon='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-player-record" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>\n<circle cx="12" cy="12" r="7"></circle>\n</svg>',stopIcon='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-player-stop" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>\n<rect x="5" y="5" width="14" height="14" rx="2"></rect>\n</svg>',pauseIcon='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-player-pause" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>\n<rect x="6" y="5" width="4" height="14" rx="1"></rect>\n<rect x="14" y="5" width="4" height="14" rx="1"></rect>\n</svg>',playIcon='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-player-play" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>\n<path d="M7 4v16l13 -8z"></path>\n</svg>',minus='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-minus" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><circle cx="12" cy="12" r="9"></circle><line x1="9" y1="12" x2="15" y2="12"></line></svg>',plus='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-plus" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><circle cx="12" cy="12" r="9"></circle><line x1="9" y1="12" x2="15" y2="12"></line><line x1="12" y1="9" x2="12" y2="15"></line></svg>',icon='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-grip-vertical" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <circle cx="9" cy="5" r="1"></circle> <circle cx="9" cy="12" r="1"></circle> <circle cx="9" cy="19" r="1"></circle> <circle cx="15" cy="5" r="1"></circle> <circle cx="15" cy="12" r="1"></circle> <circle cx="15" cy="19" r="1"></circle></svg>';function setAutocompleteParameters(){var e=[];chrome.storage.sync.get(["parameters"],(function(t){parameters=JSON.parse(t.parameters),parameters.forEach(t=>{e.push({value:"["+t[1]+"]",score:1,meta:t[3]+" "+t[4]})})}));const t={getCompletions:(t,n,o,a,i)=>{i(null,e)}};langTools.addCompleter(t)}function loadEditor(){(editor=ace.edit("editor")).setTheme("ace/theme/tomorrow_night_blue"),editor.session.setMode("ace/mode/css"),editor.getSession().setUseWorker(!1),langTools=ace.require("ace/ext/language_tools"),editor.setOptions({enableBasicAutocompletion:!0,enableSnippets:!0,enableLiveAutocompletion:!0}),chrome.storage.sync.get(["css"],(function(e){editor.getSession().setValue(e.css)})),setAutocompleteParameters(),editor.getSession().on("change",(function(){updateCss()}))}function initUi(){chrome.storage.sync.get(["activate"],(function(e){(activateButton=e.activate)?$("#onOff").addClass("active"):$("#onOff").removeClass("active")})),chrome.storage.sync.get(["audioI"],(function(e){audioButton=e.audioI,e.audioI?$(".audioI").addClass("active"):$(".audioI").removeClass("active")})),chrome.storage.sync.get(["midiI"],(function(e){midiButton=e.midiI,e.midiI?$(".midiI").addClass("active"):$(".midiI").removeClass("active")})),chrome.storage.sync.get(["records"],(function(e){$("#loopList").text("");for(let t=0;t<e.records.loop.length;t++)e.records.loop[t].length>0?$("#loopList").append("<tr><td>Boucle n°"+(t+1)+"</td><td>"+e.records.loop[t][e.records.loop[t].length-1].time+"ms</td><td>"+e.records.loop[t].length+'</td><td><button id="record" value="'+t+'">'+(e.records.info[t].isRecording?stopIcon:recordIcon)+'</button><a>note:<span contenteditable class="spanEditable"></span></a><button id="loopPlay" value="'+t+'">'+(e.records.info[t].isLoop?pauseIcon:playIcon)+'</button><a>note:<span contenteditable class="spanEditable"></span></a></td><td><button id="loopReset" value="'+t+'">'+trashIcon+"</button></td></tr>"):$("#loopList").append("<tr><td>Boucle n°"+(t+1)+'</td><td></td><td>0</td><td><button id="record" value="'+t+'">'+recordIcon+'</button><a>note:<span contenteditable class="spanEditable"></span></a><button id="loopPlay" value="'+t+'">'+playIcon+'</button><a>note:<span contenteditable class="spanEditable"></span></a></td><td><button id="loopReset" value="'+t+'">'+trashIcon+"</button></td></tr>")})),chrome.storage.sync.get(["parameters"],(function(e){parameters=JSON.parse(e.parameters);var t="";parameters.forEach(e=>{var n="";for(let t=1;t<e.length;t++)n+="<td contenteditable>"+e[t]+"</td>";t+="<tr><td>"+icon+plus+minus+"</td>"+n+"</tr>"}),$("#parameters").html(t)})),$((function(){$("#parameters").sortable({axis:"y",containment:"parent",cancel:":input,button,[contenteditable]"})}))}function saveParameters(){var e=$("#parameters tr").get().map((function(e){return $(e).find("td").get().map((function(e){return $(e).text()}))}));allParameters=JSON.stringify(e),chrome.storage.sync.set({parameters:JSON.stringify(e)}),updateCss(),setAutocompleteParameters()}function analyseAll(){chrome.storage.sync.get(["parameters","css"],(function(e){var t=[],n=(new CSSParser).parse(e.css,!1,!1);n.cssRules.length>0&&n.cssRules.forEach(n=>{n.declarations.length>0&&n.declarations.forEach(o=>{var a=[];if(cssValue=o.valueText,count=o.valueText.split("[").length,count>1)for(let t=0;t<count-1;t++){template=cssValue.substring(cssValue.indexOf("[")+1,cssValue.indexOf("]")),cssValue=cssValue.replace("["+template+"]",""),JSON.parse(e.parameters).forEach(e=>{templateSplited=template.split(" "),e[1]==templateSplited[0]&&(""!=e[4]&&e[4].split(" ").forEach(t=>{var n={type:("","midi"),name:templateSplited[0],templateFull:template,eventType:"",eventName:"",options:"",array:templateSplited.length>1&&templateSplited[1].includes(";")?templateSplited[1].split(";"):"",min:templateSplited.length>1&&templateSplited[1].includes(":")?templateSplited[1].split(":")[0]:"",max:templateSplited.length>1&&templateSplited[1].includes(":")?templateSplited[1].split(":")[1]:""};t.includes(":")?(n.eventType=t.split(":")[0],n.eventName=t.split(":")[1]):(n.eventType=t,n.eventName=""),n.options=e[3],n.array=""==n.array?e[2].includes(";")?e[2].split(";"):"":n.array,n.min=""==n.min?e[2].includes(":")?e[2].split(":")[0]:0:n.min,n.max=""==n.max?e[2].includes(":")?e[2].split(":")[1]:1:n.max,a.push(n)}),""!=e[5]&&e[5].split(" ").forEach(t=>{var n={type:("","audio"),name:templateSplited[0],templateFull:template,eventType:"",eventName:"",options:"",array:templateSplited.length>1&&templateSplited[1].includes(";")?templateSplited[1].split(";"):"",min:templateSplited.length>1&&templateSplited[1].includes(":")?templateSplited[1].split(":")[0]:"",max:templateSplited.length>1&&templateSplited[1].includes(":")?templateSplited[1].split(":")[1]:""};t.includes(":")?(n.eventType=t.split(":")[0],n.eventName=t.split(":")[1]):(n.eventType=t,n.eventName=""),n.options=e[3],n.array=""==n.array?e[2].includes(";")?e[2].split(";"):"":n.array,n.min=""==n.min?e[2].includes(":")?e[2].split(":")[0]:0:n.min,n.max=""==n.max?e[2].includes(":")?e[2].split(":")[1]:1:n.max,a.push(n)}))})}else a.push({type:"pure",name:"",templateFull:"",eventType:"",eventName:"",options:"",array:"",min:"",max:""});t.push({element:n.mSelectorText,property:o.property,value:o.valueText,templates:a})})}),chrome.storage.sync.set({all:t})}))}function updateCss(){let e=editor.getValue();chrome.storage.sync.set({css:e}),analyseAll(),chrome.tabs.query({active:!0,currentWindow:!0},(function(e){chrome.tabs.sendMessage(e[0].id,{type:"update",data:!1})}))}$(document).on("input","#loopList span",(function(){spans=$("#loopList span"),chrome.storage.sync.get(["records"],(function(e){records=e.records,row=0;for(let e=0;e<4;e++)row=2*e,records.info[e].controllerPlayPause=spans[row].textContent,records.info[e].controllerRecord=spans[row+1].textContent;chrome.storage.sync.set({records:records})}))})),$(document).on("click","#doc",(function(){chrome.tabs.create({url:"/README.html"})})),document.getElementById("parameters").addEventListener("input",(function(){saveParameters()}),!1),$("#onOff").on("click",(function(){activateButton=!activateButton,chrome.storage.sync.set({activate:activateButton},(function(){activateButton?$("#onOff").addClass("active"):$("#onOff").removeClass("active"),chrome.tabs.query({active:!0,currentWindow:!0},(function(e){chrome.storage.sync.set({audioI:!1}),chrome.storage.sync.set({midiI:!1}),chrome.tabs.sendMessage(e[0].id,{type:"start",data:activateButton})}))}))})),$(".audioI").on("click",(function(){audioButton=!audioButton,chrome.storage.sync.set({audioI:audioButton},(function(){})),chrome.tabs.query({active:!0,currentWindow:!0},(function(e){chrome.tabs.sendMessage(e[0].id,{type:"audio",data:audioButton})})),initUi()})),$(".midiI").on("click",(function(){midiButton=!midiButton,chrome.storage.sync.set({midiB:midiButton},(function(){})),chrome.tabs.query({active:!0,currentWindow:!0},(function(e){chrome.tabs.sendMessage(e[0].id,{type:"midi",data:midiButton})})),initUi()})),$(document).on("click",".icon-tabler-plus",(function(){var e=$(this).parent().parent(),t=e.clone();e.after(t),saveParameters()})),$(document).on("click",".icon-tabler-minus",(function(){var e=$(this).parent().parent(),t=e.parent();e.remove(),saveParameters(),0==t.children().length&&t.append("<tr><td>"+icon+plus+minus+"</td><td contenteditable></td><td contenteditable></td><td contenteditable></td><td contenteditable></td><td contenteditable></td></tr>")}));var record=!1;function onMessage({type:e,data:t}){switch(console.log("onMessage",e,t),e){case"updateUi":initUi();break;case"midiEvent":if(dataMidi!=t){$("#midiEvent").text(t),$("#midiEvent").parent().animate({"background-color":"red"},"slow"),$("#midiEvent").parent().animate({"background-color":"transparent"},"slow");var n=$("[contenteditable]:focus"),o=$(n).index("#parameters tr:eq("+$(n).parent().index("#parameters tr")+") td");n.length>0&&4==o&&focused.text(focused.text()+" "+t),dataMidi=t}break;case"midiDevices":$("#midiDevices").text(t)}}$(document).on("click","#record",(function(){id=$(this).val(),(record=!record)?$("#record").html(stopIcon):$("#record").html(recordIcon),chrome.tabs.query({active:!0,currentWindow:!0},(function(e){chrome.tabs.sendMessage(e[0].id,{type:"record",data:{bool:record,number:id}})}))})),$(document).on("click","#loopPlay",(function(){$(this).html().includes("player-play")?($(this).html(pauseIcon),chrome.storage.sync.set({loopPlay:!0})):($(this).html(playIcon),chrome.storage.sync.set({loopPlay:!1})),id=$(this).val(),chrome.tabs.query({active:!0,currentWindow:!0},(function(e){chrome.tabs.sendMessage(e[0].id,{type:"playLoop",data:id})}))})),$(document).on("click","#loopReset",(function(){id=$(this).val(),chrome.tabs.query({active:!0,currentWindow:!0},(function(e){chrome.tabs.sendMessage(e[0].id,{type:"resetLoop",data:id})}))})),$("#download").on("click",(function(){chrome.storage.sync.get(["parameters"],(function(e){const t=JSON.stringify([editor.getValue(),e.parameters]);let n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(t)),n.setAttribute("download","data.json"),n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)}))})),$("#upload").on("change",(function(){const e=this.files[0],t=new FileReader;t.onload=function(e){const t=e.target.result,n=JSON.parse(t);console.log(n),chrome.storage.sync.set({css:n[0]}),chrome.storage.sync.set({parameters:n[1]}),editor.setValue(n[0]),initUi()},t.readAsText(e),this.value=""})),chrome.runtime.onMessage.addListener(onMessage);var port=chrome.runtime.connect({name:"popup"});loadEditor(),initUi(),$(document).tooltip({container:"body",placement:"top left",trigger:"hover"});
 //# sourceMappingURL=main.min.js.map
\ No newline at end of file
diff --git a/main.min.js.map b/main.min.js.map
index 1f77dfa..e7b3479 100644
--- a/main.min.js.map
+++ b/main.min.js.map
@@ -137,6 +137,8 @@
         "controllerPlayPause",
         "textContent",
         "controllerRecord",
+        "create",
+        "url",
         "getElementById",
         "addEventListener",
         "midiB",
@@ -189,6 +191,6 @@
         "placement",
         "trigger"
     ],
-    "mappings": "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",
+    "mappings": "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",
     "file": "main.js"
 }
\ No newline at end of file
diff --git a/popup.html b/popup.html
index 1a1a75e..281bbec 100644
--- a/popup.html
+++ b/popup.html
@@ -126,6 +126,7 @@
 			</tr>
 		</table>
 	</details>
+	<p style="text-align: center;">&COPY; 2022 - Universite de Lille - <a id="doc">Voir la documentation</a></p>
 
 	<script src="cssParser.js" type="text/javascript" charset="utf-8"></script>
 	<script src="ace/ace.js" type="text/javascript" charset="utf-8"></script>
diff --git a/style.css b/style.css
index faac5a2..6c33139 100644
--- a/style.css
+++ b/style.css
@@ -251,3 +251,6 @@ td label {
   padding-left: 2px;
   padding-bottom: 2px;
 }
+a#doc {
+  cursor: pointer;
+}
\ No newline at end of file
-- 
GitLab