From 69543adb846c73c731776db64de789ae0660950e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-C=C3=A9dric=20Chappelier?= Date: Fri, 17 May 2024 10:03:15 +0200 Subject: [PATCH] Update website (week = 13) --- 404.html | 195 ++++ _headers | 2 + android-chrome-192x192.png | Bin 0 -> 5765 bytes android-chrome-512x512.png | Bin 0 -> 20786 bytes apple-touch-icon.png | Bin 0 -> 5105 bytes bootstrap/scss/bootstrap-grid.css | 6 + bootstrap/scss/bootstrap-reboot.css | 7 + bootstrap/scss/bootstrap-utilities.css | 6 + bootstrap/scss/bootstrap.css | 6 + doks.png | Bin 0 -> 8211 bytes doks.svg | 1 + favicon-16x16.png | Bin 0 -> 416 bytes favicon-32x32.png | Bin 0 -> 773 bytes favicon.ico | Bin 0 -> 15406 bytes fonts/vendor/jost/jost-v4-latin-500.woff | Bin 0 -> 12888 bytes fonts/vendor/jost/jost-v4-latin-500.woff2 | Bin 0 -> 9828 bytes .../vendor/jost/jost-v4-latin-500italic.woff | Bin 0 -> 14504 bytes .../vendor/jost/jost-v4-latin-500italic.woff2 | Bin 0 -> 11108 bytes fonts/vendor/jost/jost-v4-latin-700.woff | Bin 0 -> 12928 bytes fonts/vendor/jost/jost-v4-latin-700.woff2 | Bin 0 -> 9820 bytes .../vendor/jost/jost-v4-latin-700italic.woff | Bin 0 -> 14616 bytes .../vendor/jost/jost-v4-latin-700italic.woff2 | Bin 0 -> 11112 bytes fonts/vendor/jost/jost-v4-latin-italic.woff | Bin 0 -> 13580 bytes fonts/vendor/jost/jost-v4-latin-italic.woff2 | Bin 0 -> 10352 bytes fonts/vendor/jost/jost-v4-latin-regular.woff | Bin 0 -> 11820 bytes fonts/vendor/jost/jost-v4-latin-regular.woff2 | Bin 0 -> 8864 bytes img/tutorials/calcCplx.png | Bin 0 -> 98215 bytes img/tutorials/selection_sort.png | Bin 0 -> 112840 bytes img/tutorials/sum_odd.png | Bin 0 -> 37265 bytes img/warmup/classroom_permission.png | Bin 0 -> 40139 bytes img/warmup/perso_assignmt_repository.png | Bin 0 -> 48119 bytes img/warmup/week01_assignmt_join.png | Bin 0 -> 61563 bytes index.html | 454 +++++++++ index.js | 146 +++ js/main.js | 14 + js/search.js | 317 ++++++ logo-doks.png | Bin 0 -> 20786 bytes main.css | 6 + plugins/elasticlunr.min.js | 10 + project/index.html | 276 ++++++ project/index/foreword/index.html | 398 ++++++++ project/index/index.html | 244 +++++ project/index/warmup/index.html | 850 ++++++++++++++++ project/mainprj/01-imgfs/index.html | 582 +++++++++++ project/mainprj/01-main/index.html | 442 +++++++++ project/mainprj/02-createdelete/index.html | 487 ++++++++++ project/mainprj/03-dedup/index.html | 438 +++++++++ project/mainprj/04-readinsert/index.html | 459 +++++++++ project/mainprj/05-socket/index.html | 629 ++++++++++++ project/mainprj/06-http/index.html | 585 +++++++++++ project/mainprj/07-webservice/index.html | 569 +++++++++++ project/mainprj/index.html | 304 ++++++ project/mainprj/webapp.png | Bin 0 -> 20625 bytes robots.txt | 4 + site.webmanifest | 1 + sitemap.xml | 79 ++ source/complexe.c | 118 +++ tutorials/dbg-ptr/index.html | 404 ++++++++ tutorials/docker/index.html | 401 ++++++++ tutorials/gdb/index.html | 533 ++++++++++ tutorials/git-recitation/index.html | 486 ++++++++++ tutorials/index.html | 336 +++++++ tutorials/make/index.html | 913 ++++++++++++++++++ tutorials/page/1/index.html | 6 + tutorials/vmvb/index.html | 297 ++++++ tutorials/vmware/index.html | 282 ++++++ 66 files changed, 11293 insertions(+) create mode 100644 404.html create mode 100644 _headers create mode 100644 android-chrome-192x192.png create mode 100644 android-chrome-512x512.png create mode 100644 apple-touch-icon.png create mode 100644 bootstrap/scss/bootstrap-grid.css create mode 100644 bootstrap/scss/bootstrap-reboot.css create mode 100644 bootstrap/scss/bootstrap-utilities.css create mode 100644 bootstrap/scss/bootstrap.css create mode 100644 doks.png create mode 100644 doks.svg create mode 100644 favicon-16x16.png create mode 100644 favicon-32x32.png create mode 100644 favicon.ico create mode 100644 fonts/vendor/jost/jost-v4-latin-500.woff create mode 100644 fonts/vendor/jost/jost-v4-latin-500.woff2 create mode 100644 fonts/vendor/jost/jost-v4-latin-500italic.woff create mode 100644 fonts/vendor/jost/jost-v4-latin-500italic.woff2 create mode 100644 fonts/vendor/jost/jost-v4-latin-700.woff create mode 100644 fonts/vendor/jost/jost-v4-latin-700.woff2 create mode 100644 fonts/vendor/jost/jost-v4-latin-700italic.woff create mode 100644 fonts/vendor/jost/jost-v4-latin-700italic.woff2 create mode 100644 fonts/vendor/jost/jost-v4-latin-italic.woff create mode 100644 fonts/vendor/jost/jost-v4-latin-italic.woff2 create mode 100644 fonts/vendor/jost/jost-v4-latin-regular.woff create mode 100644 fonts/vendor/jost/jost-v4-latin-regular.woff2 create mode 100644 img/tutorials/calcCplx.png create mode 100644 img/tutorials/selection_sort.png create mode 100644 img/tutorials/sum_odd.png create mode 100644 img/warmup/classroom_permission.png create mode 100644 img/warmup/perso_assignmt_repository.png create mode 100644 img/warmup/week01_assignmt_join.png create mode 100644 index.html create mode 100644 index.js create mode 100644 js/main.js create mode 100644 js/search.js create mode 100644 logo-doks.png create mode 100644 main.css create mode 100644 plugins/elasticlunr.min.js create mode 100644 project/index.html create mode 100644 project/index/foreword/index.html create mode 100644 project/index/index.html create mode 100644 project/index/warmup/index.html create mode 100644 project/mainprj/01-imgfs/index.html create mode 100644 project/mainprj/01-main/index.html create mode 100644 project/mainprj/02-createdelete/index.html create mode 100644 project/mainprj/03-dedup/index.html create mode 100644 project/mainprj/04-readinsert/index.html create mode 100644 project/mainprj/05-socket/index.html create mode 100644 project/mainprj/06-http/index.html create mode 100644 project/mainprj/07-webservice/index.html create mode 100644 project/mainprj/index.html create mode 100644 project/mainprj/webapp.png create mode 100644 robots.txt create mode 100644 site.webmanifest create mode 100644 sitemap.xml create mode 100644 source/complexe.c create mode 100644 tutorials/dbg-ptr/index.html create mode 100644 tutorials/docker/index.html create mode 100644 tutorials/gdb/index.html create mode 100644 tutorials/git-recitation/index.html create mode 100644 tutorials/index.html create mode 100644 tutorials/make/index.html create mode 100644 tutorials/page/1/index.html create mode 100644 tutorials/vmvb/index.html create mode 100644 tutorials/vmware/index.html diff --git a/404.html b/404.html new file mode 100644 index 0000000..6a71881 --- /dev/null +++ b/404.html @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +404 Page not found | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+
+
+

Page not found :(

+

The page you are looking for doesn't exist or has been moved.

+
+
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_headers b/_headers new file mode 100644 index 0000000..c269214 --- /dev/null +++ b/_headers @@ -0,0 +1,2 @@ +/* + Access-Control-Allow-Origin: * \ No newline at end of file diff --git a/android-chrome-192x192.png b/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..03a0e7022099d4ab599ba14e3a93a3247588ce8b GIT binary patch literal 5765 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 H(1HICUD~V5 literal 0 HcmV?d00001 diff --git a/android-chrome-512x512.png b/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..74bdfb9da9ca89b465ac215d19b0cd7141788dd4 GIT binary patch literal 20786 zcmeFZ^;=Z$-Uhm67`jD48l+SNL`p%2d3>29&_mAD5b& zx6u1XE}reQRP0S*owIhB@e6G2?eyd7ZAcS;jIdQ|bmEx%6^}mI~!EDOG*cm0a_^5USU5AtAu~wfmA)qB)Ed{MBt|P5 zqiASfgzl^vEU&MpiVxg2@H_W5z)*#Lp2W{%KhY*l!GG7K$d1-Rm7*dBZI@M*{r{y}#)$Lw7VkHj7a~*rrr! zk`Y5Gs|vg9Q0p~Sw#=iY;Px2R2yvX014XtT8ggMY@mn4HWFfm0lqkN9vR+%U-o9q3 zTdJef@@o&%OrbmT#y41+8WLNWzN{ngmP=w_T~A*l$ag7v{7yit3p()(59E-w62%o@ zf$<7)ek-oXb$0V;B!5tiQ*U`ph1K*GQjqi%1N1&nyk$t4y{B`zvt>+iMo!@`tK}Vm z*whxKJVP{88iMoWK75q7m#5ToEPUI!LN7pNdFqSN6G}Km${96v=<1}gFiPgkJEk|s z#d@Pf2{KDL4Y1u+$OCowjB~t8a#K*k!u1kltyJRGI$xJAe)mEJ($F2}+S; z@1t<6;rT6XiCUkkMveXveDg^dVF9MzK(Wq!NgGB;dh|o_`zh3fJxGUpZIlIaij2l30=z zRVtCSz(Zdm3*nS>P|WMfe6rvtY6I&c6U*eqY409JoeBR*@$C{4x=QWe%Bk(S6E&_c zT&ieYG{a-3YrGisWcQwe2K+WXWK%*pWVM#{W=7w{WOqf^EHNLVh{PRUr1GzV^n*CWFx^C1bJ)B^1X4YU3r}z zK=2$jX%%^To9!K|6Dk*u;fqS)FrXDC=snuKf2B_MN(c>JJ~R?}pHznfO36A{Abj}b z>pkNXXzS+Ymi4h_l_vN#L)#tb>V6v^pAsLTs_$KTY$dtqmsiz1Xbc@fhYRWnL5C_A zuTBw~P%y^h!vnXwOsk8Cyik8-arl+`%|3nGzpfS{lD-6(-c)cox zqHRtxJ|aQEd`je*14YG0B0Y$bc4Ffj2X1lMqfr-m zeE-n_c|wHvb98vbo|od(5E;6a%dgP#W9~}!EJ1QWSm4ZLql7It+>W`;5ON8y%RadA zdjyxUmHA10j_drl7syG9Y-wl;-zGuGp80SjBpjfK+OO{R$>L>YZnJ={vcqvQ14VI9 zkC*#4Hq>8)LZLH{;U8%ryyE`W=WfFzneZ(!Yss<43zFo)cc`qSpp>=MP-Rp}uQ!WA zRbF#YOeZYykkPjOnU)DubF|bS{JA)|n%y!`=}P^iRtgz!^u6G4uueBL?P~Yu$9tB3 zJFC11tF6V1R603N*lckqSAa$j8Ns06Gbq+s$YJ6sGM=;yoQx^mRr`p>N>d62-`gK6 zQs)0)K2@9YJb=w|bNe3-yziG2ILff{HR{!%Wy6#Q{1Q$Ea1NnD;Q#X@onR&NzG0@)I3=4OM?}pih zAnoB8eQw{MA|uNtIv&kIeN=aL!XWq}3lDU?w`HRK%u={)uBSf`Sw$C3r(o@_Ju6Dh>^Umkv z+Ux=W@s*%ZlBd;t3<=-?0@hJvEmIbCf4eAOq97eSDZHH?YUL(8$ePs`kh?=ThejSy zF+iqu&V?Qc;tSQ!dZvW($jE9q`kItwr9?D5pqiCTn@|#?y_Ye2rX%~>-S2)ObuJ>I zu^X+1ekGMVf|GHCZ^uepJQbwkre!3-H_6d{Tt2Igf-J_pl?2XkXyz3%7C`|SJ(pfs zq57Kq%y)0Dkg4>RgsIm(co;3D8kM#xZNko7(b5nWdStAN-4sM55%158m%sA4NJ(n< z+tBF*k}84L*VUJz#~_z=W$i}MiXWi@5l(xyPk7-J6?XuGnE3ihUfyXOzJZ&&#NJ>c zXWD!w_!}8I3oKQ$y~c>JU*(q3Kn6n?3L~MKvq78a@Y>8yn&a-J4dX#2_$GJ+ zz5JeF$d2+Awrp)iBo8Z~hS%#tsI^8x3MU*L8#gB>r%B_kdIM9iGbO(i)X-{p;Kk?J zpGd(IO#_2tdiLAZ@a&c|BgW}|ThNZj>64$TjL~7lH zf~_bRpzB+)!>%Zgx%P<`@@8-Q{MF2J0#`0Y*FY|#%25H@J!C<>znW>H4C&-!;0Q=@ z`f<)dk>gaw6{f&n%LPIsN4h!c%%rDSAe`*+Qc$#8^P}vZOI~MN!;w0q6p*PO4i>UA z?dMHP$Pv%QRbKgig^zgatxO?B5%wmfE7y00B)+~S(R>EMFeov@+fj%CTE7;Jpl_)# zQ%8yWm+rx4*VpSyY-;-aUJViwS<^XeUxCvPlp8!7GP2CeH!Ue;y6-MXw!htdqw*#x z+K=1+7j0&HP)bfv`DIDjmI_J+=n(%wJeRkCyhuuBE%mHN0!fV=M$z3~SnwinjN@P0 z?Bm!f9aVe3=OoHJIbgfTu2u2==4C?2XhzT-QznpDxNDjG;3tLLd!I!$etkEq|L{o6 zb1s^s0}a7=nzX!_U`3TtY?e-`vVVRZ&~qyozjk)k)q0JzfTJr%{I_>wxug4|Zd<_3 z4OMtrV_0EuWP^!gc3m7-)j)Su!(SG1I*t$D>Q(cFOnB@7-dJtPzj>PdbubW7CWwS= zZ$z=*ml)wH3EgQSsedv34O2?#XU#%+Moka$+5Ko^wdN$?Li+W2Bz;l@S_TG3%XB1M zvdS^!;jC72*=+ihsp!~aI<9ew^b`{m$tkCIiQJ^~67=@lBb8*vXbMP^lT>Q%2Ktjs zSK8U*z8_y-$ig(|wOe|?=rkXTN9L~XuJM%U_OlNwP6aPgGeAjlf>Vi*WtX_+Htyq} z%x38q41H5vwuDB3b5IQ>+N^fHzx@U;p4Rdqtn?`KjL6N|5U`^QQLoM;9{OFPc*;I) zq15dR^K-BX{)Rw{VF_)W*EaVo&p{QNKJOhVQuNVKU)kq-vEuX>X|VO)7Q4L1 z44|oP^0C)z68W?0&6Pn7TQXCeebPq*TQ9(-Y4y-Cw&g;wjDY>=B8IbdoiM%TGkSUo zEoGnA24%V(C}A0i6RXt0G+>7(iZ_c2kCNIGy?d|U-)Cp0wy!@9Yg7Ve88!}sQ(Oh+ zlN?Ec!bz#fNOp7vbta;v*RtLv-GW|H#+Om>Y@~uI?Qk;c)%7BLRTJ3Kxd2|+6rp$4 zgwsX%pxvQtW}upg+r0B^&dFf9<{EbQ*8}~CqRIf2-E1WASvkRM2u|T}3!vbcoROv$ zb#Kxu>mvF4pTfezwnwU7G`5N$p_fMQ_JL>v-gQcXA+lpxe)zpYzz1E!IB{ulk-W^w zQ$WYRe$B#%#(W2KAgWiqw=OX-J+l15H?($bwy%%M9iD_G?;hiWWw3UvlE4sGNun#n z&9|%*rw;OKTk_~>=}Y*F_A2mSz;dYB|4<TRN2!83ji?y?wvWDz&22nduqyS7SpHm zCF;e3#yRLR4FfXc0=S-gxwVd|S_}QDPQ0*isws#NC`$e2n11XVI2-cHROy4!7Qw$il z=0i=L^LbS2JY=6kp7O+z>E`X5N>C+y2RvKgFxT(V2ZfOvj>L$!vCm>!c3H? zFYJ#ms&mWxzmtGX?!4ZkMWEjWUxHh@FMIVe@GvAx(y^%FjiosklUwDueLB9 z^w)3wpcA0YbE7~Zv2aZ^#K0~R!ib!m1U{9>P49GWcJ$2Beq&ZnvqZ~~gxG)u1V_G> zLr?QXp8*fk^W7JS8Vp#%3Ke*-rJfIX9!g&6b%y~mTVtcD zg&~>2R18+PH@VB>>{aRrtMlmQN1rklqUhns&F*nNcp?z0R%Mf7E`7Ndvn;FnYwQTW zmeTo#jKKum8^_t<#Q5B*YQ^j?rZGfdjWPs^QznNHFq_I=}S~AAr&gMyg>zGDm|hOy!TV; z&9dG#r@}zg`pw@ZwQ@X7;!4oVUg@fiZC~a2Zp{ZMDJiy0wnyg;dg8y6&3yZ!#Be^L z^W)vNkL3?_dCl%J@c(Sxda4d!=G333fz8v5fIoG9%UUL~l`Jo;M%6#dN<^(1-vK1uWAI~$RT`_o3p zLfVX5liUcXIc=t(sIUm-_2|O>hIiiac-e($YPhGD*9XZy?xWaVAu$94R3_^s&*6C* z?qGgAcb|U7TdtGLkKt$}hdJo`&-}N;8W7Hi&~^A!`r?_8l!Yjik3hbYjq1Iu99~*_ z+P09V{Ei4T|F+&i<*>S0`}|Y0Ab+b3jnTj7ABk~(V}-=Rk6+g~9}49yR@629Xuf)e zNo4j0X3XVw&gbKsA;9L}hng5kDqQ|-aSIz9Bw`fXbk(z3-RX`Ow?tn)D2$rx4Ej|b^x=y=r}zl?aTqo z=)Tt0y`v~!pHZ75P`p=dfUUUiKJ^Qed90ur8S&xaot9}B06I3McBj|k`#NWnR@}EU zdo?u^-O8eJJ&S~(ik{3^Rh(9+B1cikKYt*-@W`#VR z2;hS%{OAR$0?gvStmu;*>=m@MjGXd2En<5WmO;9-IGH1NM3~wt9FaZ3sx%JFX#PIW zEU92Tu(Wa4Pe%7TZRwia`ElCA6e}lF+U4hH$1OgXIr~G`W{*HSgFKtX2jjnR@ij$* zI@ltrt2%7qJ@ATy7FM*^dgk-$-lg&uvh~Tf;q@AS4-csys)KJAn4qLD4V9@~U1BQL zga-wcMUBDw)}|PF8FL>Oq@R$`#LQEmD@@+*lCfDfou91vB%CLwLJ4D8)rMn8!;{@DBM6$o4=~U74iFN}(jh>0-ej(jG*EN5Uy+ z!nRGjSEMbK)Fo=qTG?C}eh)g!(RVzZ0`n0s=^x0TTT9jnGV9g5`b5(gp}?1DROcQc z<{~(In5quhX2BHeYqEcjlRD}plJu!e4~%HK_L8`)KzG*IoL9W+T3pF8*6PnYf<3zD zqM={hGmqZfx&+IJcyai%BVVh#>!b0wLzZ6uTQBDGzc$^lZqsF$wI)VrqA^rwR6)2v zjFoAs^pkG$+~3Z`v%7~}f>1^OJ8$koCr*e98d6CeSkU~vyxLdX&qzzVRry3imZWco z^X&{-U{ybb^T*=l&FAR#RVz4>op%2+&30G2oyetVXj;zDgP(u%wR*cz zSzTGhlb?bnGBv;7P_q20+^;A~!~cj6;?GPNz^b6uIQRTrEbp?{S-K5a?O%8ba5W}J z0>ZV5(G*Q3LFG>Oc+#le9b?rduYbXu1$cK$f>3|TWsNZPgAuA4?{B!S0Lv1ScJNWo z)Z6PC8q$57-lzq=bbh(^q3po=w-aTGnPE&aN81ZDlMDCpQKLK?x5&q8Io7;mN+^8V z>vUz5m6@iL`{0qaD{W=CO2n%{gId* zyAAYa#FEvvM4S*!y;c0TtUys2Y^-b}bB+Ty2GfMN;!rDrz8n%ptr!}K6_nMo1{CDW+%V|89{g*2VbjRrJ^ik~LSCfBJ^AU> ze$POB1h!}|eGAaY7S|o`gQBfCWAi}w-le|02=T^W8xspMdvfHy||+e7_Ik4PPIHa<`bMDt&|fh~A}Np2MA@VS?J=C%1xM#6_|t zVkczo?T;~IW7`rKp;P04m4km#J|D4vWM`nQ=w0_QqIv(7@`Tj2siA)vMtPiiwLkwy!(Dfn1^1uJG_oms~KNFLy(Z0`Q+5byj8c}u0TsL<3p0})dukG*k z!K*@mpyvBA)Qm{;JUDe{f$#D+cR7*rBE0q*+i0+S{m}GqZ4v&D1%m&6Wf`6=WPM6T zJPCw)2&m;MoI+9)Q)KxkVo|Gonz66YF{4C3fpe^2z&xnjt37al-~54;3V!5F(%wlwOZc{+F*JLLmkT*z2q@}mI+6OP{=WEJ8H5SeLXks}bBO5cO zdQs*~cxtLXM$M@bllS$qfA6sgUvv7990>(Pqncu#~T^E3nnnl)hiP zFRAwY&vn^aO;Wurstj_&f7>9qriynP{Tv`6hha$02{0hd{ou*N`C2_)s@miZ-xmV^ zY;W%@&CX0GnJXZL>v*INBwL=3OfYR5@8)W#sB&u#1OqS`GO9Qe{FXxU%UzAmf_`5J zw_Y?BF3!fbH2C@BG#e|M?JcG;8()O9RhJmC78Ce}E)0s!o_SwHk*$W2r^k>&-m)1F zjLgH;pOIXv@z%+KaWN0&2deD{7U{-znc-Qs*EMo9w0Y z)^HphI&Pa*esjvM)&^1G=3Y%sx3jH6O&UQ%n}65b!d&=(FXo_X#Dr{jJAmnHHGj_0 z|NJ%tK5VZkWV7&ok)*=c-5tK~TUY7luWQLC;OTkVXqtZ~od;%lN50~R*%~|daeHz-z=b8|{{2laiwbrmFF z;1Qq*g*FTRyYN_&wKT38k+%MFs^}^18CLVu>iSAp8gJk5IIs6d4F6A=57?&n6HiDB z#eFY*_)S~yosg#S#TtE+#;gZw*hRaSf0%9*!u9GEe(Vv0H^Ws_oX#c54X++|4UE`I zN;X%#kCiC5mz-F+gsH|qt2e@k@U4o{*LadlvBF2qaC$fJShre13RiYM!T@w<0eHC6;$w^X2G%ePI1VgX3mOC~f~*rwufPxZqu~ z)iF`W9Ivli?BG_19jsATPqfI)2yWt{-NApXFOV3H?VBfGI(f}B4mvo=y7JD zz^^CPe5$GayMlnUN%#t2n4>GkCX;<%23`Tsn^;h=)1FpObfmbMmt21>i}knD6+=V) ze0O&Pda2G#G8kVeGiHcRsECEz8baKTe_3>DnzImpo+_eLX4pYKEg5 zR>~Mk5LWhQDn-!I=j_};o;4IHE?lY|EH|by9}`l?s73sV$s~BYv45E5671U z5KOL0;wTs&i`eV}X?O&Uoo$9}5bZeA!_)XScf zlg+evm2S2kDEgR%*~85@au2$|*?QsHB{+J$r%N6BFk=j&_?{W4nF7W zPDh8VvG=A9{QP^7mxnqvwabzp+Qn5DBG9$ptu=eQ3(5?(HNk4AYHY}AWTASY79HQ` zV%IO>hcF>=aaDn~cOPGSMiS5jiYxecZR*gwM6+;QfR_dV=%+IuD~=WE34i3D4j7e0_o6B!KbTnZ{g!W|=18Q5If-IG{$lE; zp(v%5*ZGRC!Ay`p{s!3O3Dcn$t{ zKNVyIy)Nz^;%&fY%z0tWwR&AyG5E9UmW@kWgpFuH74?q+=VrfeB~uSXTn?fY%Ll2)M_P*$^-YDtSfj$hc_~Nz-r~J`V4ffVXJzHVcD%eFZJmST z9Ef}(uQis+=t688Bw;EQeuf1xGE!Mlm#Y~+o#umJiG zh*7!nji`eS?ifD?hRGd74^a3j<{(+N9pSdMArgOjCXKH|p@e9dv!E^D}9svUrqfy^ljw9zP4{Bm6&*OBK!Eu1R z{POSRUr9k-CV`?fH5qHiuE7}%1`jF?BSgOs+vBjKwMCZ~0@Yle5RstM7rMGQZu`7n z=8a(^bGMZjFD8Vm2L^AdyZ1mzc1|E^IPkd4&M^~@%K00#CzJ)k?^kL=AjBN z)Zp?meNW(Yhao=dy&2M>o!KRQ9j82VG{^OK?hC}dzc!wSQ^p?A)TP%;5ZaCyF77J^ zo}MfpOd8Brsnk2_A8lS(29?Z-<95(wus}n#^AuEqc%lP?>uwz6Mg{$PBgP>M4txOQ zUN*j{F(N=59P9%!woL()P}8lCp~TS)#8R%zMHr^~{5H4_Ls&5IK)Wge&@OWh7r2f_ z(ttWL_5=8PKcozq;&Q;`2_9eQvb$wNl8Z(ZHpDGX5;G6Kvx%SR@gwpF zCmiGbYJ{D(sMy&yAgj=@vDmkfSA$_ge)R)5!9~W)E$7pFKSuW!08$Q+pYB+6^SKR9 zD+{#usZa;``o%U-&Rngx}NG&jVn}wz|G)+_=_BB=~!JB$%n6Zyql& zKlrG(H?r<`_Z~1E3nmvEl54MTMF4GLWqY~msN&Hh;F(%L4Lt<@O_VT>Z}&Fv@)^V> ze4?&l=$o9*G0FP6ys{P+5ad`!0!Bv?8=bh1aTSD#eX_ix0D3`Sgvdd})I5474Y%Zm zRJlQfv84_j$fbHKH6?NI%Rm|1qow3GL~91^Vu02LX3>JJD({WR?}OZ-zqd;~9P>VT zOGZviW;2}@n7G5 zjD_LvgjeRmx+eicReJ(9d|a8!l$TrCP`8jAeez5VQnGztsY;YF=l2^LlZ=}^z%zo& z0i%;Q*B|%(4#M)i1mpVbVcx8mZW0$Ip6~2{#1|h6K!EI4wx$lptpfvuPn^#-6>TKy zV`261D@e_vZXWsxLc7vECsJZ)YwAYDlo&e^A_QU8cQ$s_ZiB3!-L=9+ZfbD9b#T9$ zaRMMpp~Fu^zqLE%qD|)kw$cfG+8J0>YBF$oz`YQt^!#T^WW>;t`M;(lB8p0qg_=U? z0iI;gBBnUde_|d*Tqe(;^_{!J^gd6v`XD|IDs8CBjUAjK?ZeH*?C_#7JEZUHp%zui zzD^Tpa`g2gCj#wbESA6gxH8{HOABS~c=UdzH<^fFUT2op*ZOB}SJNRsnItb|nHa-2 zGI!Uc%G}6!KxR@M4OpJ)2_1U<(a9miAQ=#BTpTa;;51Kf`mZ-Uya301??_z_Frb8R zyVIcrkZpb-EfXN|ul)-{+Ng#Ks%YG!P}@@hWck^E3Id_*eThv&W78jY=qB=0#C83K z^5}YiNqK1$p!%6$qcR;$7fujX@&QoG!gctd%hMWAxL zE)zh&+bYV`8p1$bS{ayQpM??6R}$vEg0;0%%lRBQ?_Qg`RvjXD4%%($1@;^WYGc%$ z&mpYk$w-c1=fGY1E#dUuZ=pe31xA?xgRP2g?JSWT;*Nwn_?vfHyFdWJ_mS~MeD19-Fy-4$(vHQ=<>mAF)%9}wvtrEm6(1WB&s zflBEmyPao5A}b|=<*I%Pz#`Z&*!GoN#kKKlv5h}_Nm)}-44WD>a zLk(J7N0j1i=lsyU^B>B~l~Xxy0f#A!1y~K51<<-hBcPUUN`8&D0@FS;qP+NNT>A! zlxGNFhj&Dz#zZ2X^4$HmC+z!X@kIC9;6Sn8Ts3Ry)=UbJwhD)f3GtPs74Ow6JII^Y zgKq&I*btq4inRIkVZglk1vz;cXy^e&23=+nbbYa6b4_95-YrMHf~MOiYx{Pw@7^VQ z2Ol+n-~Il<;SK_soC6$_# zI0_;(4?pe`Zm@!R?+4jtnANwucyKBE7)QME=Ohr#3m&DWnY?t`wj^ql0iIbW#+0)n zw_@S{CP@&l)i50>|L1vzbR%D*C#bkQjnZ?YPCf;>}}Tafl2BGS|nfmg4YNhoiA z0V@4B(YQmof~{Fbi2Dsh!gT`oGFn~y)s-UMaR&SRM0Xlq?3*6`*#0TTHYVdAI=Wn4 zQ~0}f&$cK?nkYOq;Wz`>9N$+qR`u=c#Ca zkB7aA%wW_^H+aWDUXGg-ZPJ21pd`IC4*fI2+}hJb$mVfnj|l)c1|pe!hs*by zKv~P{8ryF$;K1iDf%~NHE4tbnY6zp6C{HY-Lf5>sS^s{0%U~17WguYAcdA1!PQ9sV z!>d2vutmIZRyh&dB8+YGZfu-vL%6X1_|@hxIY2lqfS4W{8^qPKqrap5qs|cpQ2}D= z9MWlra5u=TAgQnL2@51(Rmw$9GdI1&X(>M+D$LiZ5+QjoN`$oc#)H}rbuiN{@Hs2Mz#pYG3Y zZc20N9iD9B00M`_S{Ayh0g{1o?4=ELTp~4v4 zN0flBJ=_DLX0OX5tpi2(;Z3S1bmkAoO*Yl%^veI}4H)#!+n>gc-vm2E zK>>-0vQ6`}U4XD(BZ!lF0JA)uiZGWG0@0H^GqA7!3)%ix#f=SjC25q0*)t1032Gxp zibRCUpoF)aW#waKI-gE`8ll9rll0OA0I@fCqa@rmi!tA@;GSpu)=OV z%ub7KIDy*+Vn@`rhqv8_X6>T@`F?}oaH7j`rU8;`+U^w-K?S)K>RxVx|DJZ31v$W9J&^Lz?NG#BFWFxGi>%B_ZC^*GXxf ziW{){i6XCso1}6koxNaZ>w?U!t#|rPMC4%*mrZ3iFKYGLyFR(ai{ClmQYQkpAT^@J zmdJ5JD&?0iL_@QF{?-?uOP7k4wx+IQj|1pWFtQWTlR|n{&#tuD+R=6(5=3R0#Hh?Z z5R}CGr+$`AsRx}XTsFj%dN9abO-P6fR=+ZTMGOXd0H?Sx9fRsm81uoSe=`p=WzvL{ zpp5wCe*(CgmE*j}vPbKFhj#&_7>dn`lB}|EMlO(K`w($t>Lhn8K;+$#y_4L)0RL5``)AJBXqLXxriKI1Dqu=1aB0wiXa$2&!bu5VS zT2JV!5)K4dL==r`HA(J2vyQ8jl9!Rsi*Wlc!+WAu;;B5mJ?-(kFZccY{$G?TNRW4T zGXy;q{~t*#?O4{fG9rV{7{I$wJ9p<&yqN}H4jLF z!GVW91k%CX$iQf{JyEvE`R#wgI&JR+!PcqYgtY%=MVDU4B?|6k1FPZe!>gT0B_quA z@ggz946nC=XZsURftaebsWvTMs{L({MmhT*UWAo`x}>~GswUQ(+6%B^L|P@pU|5g? zGNW;@T0RWk_T-itnC?SwVFD;6T~Nc{hk9cG+0qvml0u84w$BYsjRw1>-j8&4k#ET7 z5`F0p)s}~+or9GcNn>NjyiU+^I>a#Q(gEJaVu1rEIsEA+DH|f*yiuF{ z-)hOelHeJxGp}!v2HT~RN#_XwC+{(!gRs|2be(M*bw(z94OZCC#L37!Sj<#v3S|R_ zX`T$<^EU;aNo<#N)=u!fR{yqlvC2R|N=yiBmpUB7dQV2S)YSPV_aTm1$@?~@`;1F9 z9jF4n0Fj!cGDdUBy?U#5@BsI=xqi5p6o&tt9@8GUXbF-PTxbNEg~c-g4w4@Sv7P@# znjXyutpQ{8isMZeh>&si{|NCv>BIjW(jdibsE%;@-%J<=SGl4&Wpcyo767n&2()w9 zh`m%%Q9>mM-6GU)fmgD(RnDW7v8yL^WU7mKhukyHxS>#j>(ScY_9&>%(+Ii2yJ7+C zl@AT^IKCB5GBX?jFo zj}M4FZ`!~>b`f~Y+_b@gF41FN11!M*2m*w*`MMKy6F15JD|K{>C%x0o#}>)Nm-C+h z?_V*`lLyiT|H&|wXMG?h*=T4bJ)1=)SV2bLKOT-g=nHc4l}=jgy#!K-Cy65mn2dPe zG$#?ZL}~s3H}rUjfM&0VZFxs^5O(e)*T@ze`Cg9t?trabsT8g4j49y0BEWrYk3N97 z4PeO^F!I^S$SW{!<_v%$AKP8$pJrIE*?u7sWekxhEfjmx>^N_fK@h_a;&%bk!u0n3 z6+H6K>QPTgh{x~TdJ5c_+!26wJr+BSH!F777t97?pQjJJ+uRdrYXVg(AparMcP7RI zTbD)&0a4sU_+KG?{{+esh@i{yPCzO z3IintI(A?6!2cm=s2bNSM~$HZCAZRi22$QKEa|fvR~9R837MB$Q`U*YDqbFi`K zU2mH_6%A#(pxxfhBVa75x_TsNcjL*izSS=}9x7;ASd%INJtG+XlS_jyMhcDG4^ zyr%Kihw-26fBr#WkemVlZxfj|9U==Z-W^!xv5@pL(c zPxUGHem^%s0rfXM_ATBd9T+;X1nk4`f!!$Rs8!+cvlzFm8~@f_v5`}PBg<*8j8NSH zQHn<<+lEI@?cn|9S{?A7HgM-WbkQR9-l%cF@1_!V%fj9c*CF*g(C*)(sD?s`bVWgB z=%ppkT_)mK^HBK6i17CQ11!FylS=?v?fW}530hlArtnKvnb8L?cp)F192($IXtXvA z<=Ci)S|y|vn0dW{X7BBU2{Dr~%dpr8oVgyKbDB5^f;S=Tl{uBO5{z{WcOG2sxfWJ~ znEmH{T$SZ;rsos?T9+Lvw zlP4SLU`yy@%3-r4SN6q6;2Yr@vL_=_sfMh#Gl?V2m>@6py)XD=KQ8}O&K5-TmzzjJ zjqXiit$r*9**&o#UlO>NiH#oGK|%b>r_iX?{yFXAikKruVb9eM$vzVQS~C}Ec!izy zG5)JQ*P(KhwWUbhJ6TBU#|%056J^`K+$`SkZ`aPBk36ZhI0mbmuQ=B(%qIkRO|Coi zv!6NxX{B84_w@C2pJ>~vYd>-vaUK0P8Fs?NDI%|t7V6Sj z1yml|>J=Ej-G_e-jDvfkwkp3SaQhdD3*H%E6cmMSZbDqXf91>eN!z`ID3hyB z7Ll!qacEm==4|?zVU#6!&q#*^lYDxDzTNiny$MNX;(_s)!1Xk!x}w04S;yOQr8mjY zayXy-a_38j;o+uVr=i>IZWSzGq*?@0Q_s7k2SHe!K+)^I@zM>Wf%>h{b5Vp`tH67w zP;h?7p?*{1Eji%@ZyM(};u4Nq`MI<#NHC4`^4oQNFSz3+lWzJ;t@;5!U5J$j|QuD#62e+`=2?koQqT;%_)&A%kuLPsvx z3+Qb)1;2WRy){8xGS&GAC%n@ols}Ih83UhxSh|Gy(;75$mcF>vw71vvi`$pJ60OBqL`3#Z>1Ra9*he+{J{ooKFIbbj=c1T9zbU*Fuw zPUH8ca8xDwgRN1pC+p@%%yL3W?cdo!$H@*6=}Tu|7|xad`Kreo(S*|ue|Dd+5~mIN zBp6-j_n(ZNJ(?&euK6`*^hCM7SrB|OXQ^L^?2FSuXRx@UaKR_9(7b??;gqK?Cs7t1 zt$%(|`(xvWMm*Ed-%V*LDe!E%^ltAP(+i0WV&|7naMbD^rp|zXm$|b`2*95a)A;_8 z;NJMI4sto@&mwtdLgFmba`@EB%f_|Ft?Oh)O^8+ZkqJVTuIX{A43|R6tNVnHv=9!1 z3)=eqEV**u`Rs4A4%@!b%NcYh2lWC`7+<(m%^7kiXS!Dwpq;zccHf(9)|hR8m3EYy9LUaCS!$QCvbC?(B$ zZ9?>?_R}t-M^Wqr_#Kw7%~w5^`W|1QpUW{yoq%TP4rW@p*l7!DgZM0iOa}z)R*{jE zL)pe0^JSuBHG?d=# z$;CL;T}Se`Fvvv|@eWrUBod-%nWHf{^NE9-cxTKAY4}#n>BHdZ^Fch++{api65w!G zzm}H=pxg@xBW+D06?I)|sYcvf4W~|^!4a;Pk5Gwvn25(mZXLDHXJr-G$+c{9YUjey z%2!=~-W=^xpAWr3s)!0V<@+cmoZ9Vrf;#@8nEc8*xx2gA)_pleU_=jk-e@m?Z!UGh zs?6)t_hIeF2gn6OVY#OyA)!p0vE{NCeIx692ne><}5oj<+`w5aFC`HHcqa##t&6cQT_t5g9^(p_*jRPMKyXmcPxZ!}cuh}=W{F)vuPPm@LZa$Qn&xrX+LsoIfzwvm4%+W$*PvJUTaGfyf(C?z=Ckl-&JAVoC_AmIu~7w7G<|X&WXp%oxVJf8z&ucPoQE)qip9{F2__4Ibq}xC1g~+zaSiS@>P)|F^Sy3qC(I= zZ)y`x^@d8XKm86{1BE_#BNR^2@EmE&Uu|gCZ8&VTMasGLWHs3ExHJ2}^TLsb>Hi6{08IZFS!;}Of7o+R8PHOK2J7srMG%&L}PGtXe9Bz;Xf1 zH=fR*?=yl_K2S(tr^}gtX*mf7VmD~iVW1@QpKn%)n1`a7g}SzK8<9rqk-!MmJ2fh1 zuS60OUqXMMRj+vPN!QA053?fR7K6(kuly*mcLp2RX0J}S*8fU=L<5mXd{JEbI!5i| zKw;EO51cPD*Z;2i4O;j(ls|WvXCX~WoW@}=P9SB-`d95sbyZ~PCRWwk-Xm4uK>5ph zbJ^=XhpnxRHv;e`uGFWInvrGm^H$6AXH8yrx`_e+U(rQjl4=rKo}fl$K?2c$A8NfZTj{{xpI*k7u?cBD z9mHO0#$1L#a&9m#=)REWDT#(ug4s|kX>EV(EL~ir^^i2scP7D?3%-L7joV`!Kx1nw z;cjP?b+j^QBl?KFbk-u}Z3H59rb(mKd5IHyadEL1Q1Dw)T)m5=J>*Wu;5&jm*7*q> zzxv$xe6y^&+E76m>ZasQj=&@i%gUYGOTFO^6LYhqciYJZ(3O(-jrVdc5Y{P=KTflv z7kD}FVjuS8QAfMKaTnc+WIt9K;3rLKXyu0cN$JOdG75IBtmv~rT0Rq~669aZqdT?- z+z2!T+6dF(h>u`(>Vo8K^Euw9-M2)I=!J;704jp5##8^0onv*deBpcQ!}qanbhJSl z3I1V8%pzH$=o{+{$bi6(e~_Cn=Q=A8kIJO1+~oTgD?E(V@-&#LSL8CJjd`e@v^V~8 zI-?94kgI@Qf>Lr6A3&(jOX6Jk0cj&KkJ4KT-W^yiE|eiz6O3!m&uLaZPlWry3%Mk) zrB_sqcp0}Q#zv!?T1Y`!D&3mkKs$s;!XVe3_q*i2ZK92Yb{67ie6qm#mk<35Zca|U zWRI9@g12{aiU-xDlwnY$SU2#b=a`2q-CjftbNQ9ANFy{8`;u$jIwoc;!}QP&GPiX{ zB!tjMPdXso#Z7sYUhq3q1qq*_@V8lfA*Owr1C(Qa`Tl(6Y>>23zC<{0&A82v06|`q z<{XH2vClwq@LaD;%VRPHV7`wcRG*1Xbe zg6A>t$BHDAl|=h`iHcbf8@f+bcStvoG(F`2wA%(XQsPYXkN}u5l-Qf@@nB1=GHxAS z1SIlOw&5d5EZLm=UH^z;Zwaupct)RM?p#<6-iB=2R^J5&k`q7ggP}|Boa~qM<>loA z%&#>m;py2K0rUss?CSn;Vgd_JB_;dzOJyWwk>lS=$p8qe5kqL>b5`T{LZsjJ|Cpzy z#Fo4e@yAFxJzkM5CPyfhCfncEgn+{vR1N~h%uYuqCMH(DQ4}u;1I$9ZSJNq(u_j$c zFzTykD&c45W@gE~JVhzTR9LIe^#e_$ln3~g&~;O3z4)`-rv|8bVK1wBUKskjrj5F& zyy?vceDfQ3l>pP)s zAy)=DY>anuqW^up4!7-VWPKshEtNDkb##VqrSyfi9_@EPOxl+bdPOj6!-1LhnmIZE z7W3!<Wcp9)R#2)wqf4V=?5&$qu*QbNtf!onr;3M2B#6QftSJ z$_qhK=qmwZm0CXoRF5;KO&~-4lE2Rw^s%McvS2T%=9UdpfKYqK2%Jz_0 zAjy&hx#MO<{!t$^qTNo?X@BFqreaP?DTpOWPJ&Brh%qywU2<#R=KrI{Z3#TkAQw2y zWQ|wE9e&7mL*Y_dMiK@496WCvL&wMSo)mKP(V^ksTSV89dwjF?RDV(RJIVoyxDQHcWdg zua*xRq))$Y|12(}C(7!MOLx@mg=MS-PR50^D}>hwXY)I?D`057d~W;B8Fb_saDT_J zyyL`&JocBMm1C;(i2r_Az=lRfkX0Pqm9T6k39FrA@Sa5-UA#l$8pVB2#y7&>f|`8l zY1Dzhsxl70U+d?StU3d(NGORU!~7mN(q%2yPZr3f1WqDfudqJfmJXVjnb};&XrXFy zn^SZ31-zmXWbcIX zF;3&5&xD|!8$USTZO)q?R$T0;Ik1QwZHkLOVDWLG!TKca7hC2&zq^&{T0QdhRiHkS z$F+G?xZSSx%9W+U06a?U4W8&U+3E#DW{d~(eHx%|9Rrw6gp2xWTJ{~Y1C4Hjxmh_9 zU9dA;`gip(yo7CBCVtBrcyRP!zd`-6b<3IHnt=$Yug2KWGK%ZyVgBvL8x5uGW6|#e z;VKX|H^X(K+JnxW(ALPUhkDtmd-~eT$l9)Yh;+`N0j7kc`Z+ zNmx8`z>y=u#Z)^Si3OovK22B+1(!hX4mYy`j@Uy#0-)*lCWJF-9GB&1` z^UzRPf+x7?o-PZ!M6BJbz}D)=7qbQk6fV8(crY#*$g$F=MK$qiSt4Edsd8Odc)!Pb z&R8yx*gs|9z8ex?EX2HyC%7Xi&y^=JQKC8n{Yll)>pw`-v(+B^~s1hLWA` zz5UEq2sVOL@R0l1I|;jcs$0doI_f0(;AiFP-hegVjz+a+XIS5DyodV}-r~rHH;$`r z-Lpu@85`Z-$COz&?|`Jbzdi?L3bj9CwIXo3lFK^a_V8F$;ZOpUH*>LFzC7FWW~uS( zP=p*c(Qh$jYvM+1XgipD}Wz(6c^YUJE)u!0}9sM+Q@aMydVWZ0{4f za!%FO3V4)|)n8vYkcZ0ID=ifLtJbiISqW5FAES>Cvqf(~-U*j^HLzSq5{29! zlLtBgz_hd@W;qK6LCsT*cN98YYqGV#JUd}P;DKJT#6u;+TUC(#PDt+aT_jbqL&BkB zmqjc~bf?9q-YLZUT+(#k+LJG=63c5A;i#=yBIpVGoWL!n_!N(4_|GL43wQ=rEUk2C z|JC_rt1dee)k_nLtwGqnvh2QzD)|B79C-4j%_FXrT8NzAGaWq3KyU`Eq3XTEDG=Gx z3~`wZ0lK;7!E{jNq#kN+yxih+ro0R!rOA*Zgt-)rT2Iay)+DQ)9owFs^3Mgz)2e@S z4Q5UZl=D7%1|a4ynO*2Db&N!YtWd`RjeCS#w-KIY&^t2v2zq|Ls|Ox?A9hNNLP9fY zv;W{Jf?kddaQ4Cg1ARULiG&qG=8p0jPF(DACkyN~LU)L8(d+v*ci7gU?Gv4LyT4yj zp#B?hbm;c;%e6so20;pbQ-fe5OFF0PGb?0z3=G4RaxG1)CIOvtCZB}B%$nm? zb3~uhv2hrnF+EczyeG{RFy(No!Z)&2uZR;nJuA|qmC^CfsD{R=LU_p?@4i(}@;X?J z<%ouC+y|kPv&?zj*^gvbx?xm(zSN;n7-R*8Y*QYholuJW;`12;>T%6e9LflK6u_$u zxRUv!7hG-VQ}The?sO5b8!#OUHY(xvz{YTCu5Uh}PoGlVWQYf5q$fY&JbdHW$ILf9 zIU=GF>>@gU#Wx{mOiV4{o~XmT^mh~Cnc#S${lkFXc{c8kN9MNA*obchcTtJH^H&g% zT=fvn5#ra)$SrmYq5y)WpJ`t+(|V85?LV1dG((?);G;6RD+dOV@9SnVX@NyC9=wt4 zChI7i+SSyly3Wv0K1`%{Y0V0@jMjg=qR1BgLf?{y6Ypf9@I7b%0|Quo7R^j;I~j{X z5lG~DbZ-)HoglM}f{yS}br`mF?V(z2Xs|(M3Og_zD zf&~<`E^*D=ZVf_quPB7K2A`PeW5}F8)@dcYz89P5F=e$9U9}!!R6R&o*{HjrP?V+rMB?!Se|R8&9fd0&Gv7AjPk*Un}3D*FH55 z_SZi@wcj>O38Vyp7U@`P2Nx$1M!6Kz%C;bVuWJ%+!p#T>0|;tDpps)4gCZ%@cKn*J ze$ChD{ugQ~*MV6A(-Fr;PKFSdie|FBejt7%vMHE>C?8-k;;d69!$A1dQ_6Bz?}}P3 zdGvR=27J8&dwyrBAi7fgXS&}QKLj@?dz%b*q z_5lk+kpwf<_ai z`*6egN|A+xm|sW7RumKxh2IjdL{Wl1wAx$-HZ0`xdY@0+e7vg%CJnkDVw*W`ev+-k zccFgF#MwFuQok-GX}qa5qSQP+eBVKXe+F`VtZ%d?kj5v1d2HYHrHYCCAsqGo5^Vb{ zsJy;j)b8(+=KC^R=IYMoQ z7HM`}b=OuVL|blS^p9u#cW2aImZXj`y?3L_yr>d5zXRFk&Jf(2Tcs`rik?sKSjt|s zmovtpwz;@p3rQ1efJal_km)F(Gd1JALV*rJrAUJK)EnhE6pntLljAZ@;P5>cQVZc* z4g3dmF~DPaqj^b<{C|C?xf5#YEddW4O%rCe@!NI3)u_54m3vLnKf99P42+C#e#cbJ zWl@W?2<17vbA9C3{|Q)5a&goGGf9Z~1*lT+)|}pfl0VJw{c)^mvW6NRt_N1Zd)K+R zFQwAt=v9*piwZ6z;1F9ab@$RWY-`HTd3bhYGp{@V%#N1p~?cBfvI!jW2R(wKortL*2Fz^OyDI#=41Ht-*@+3aYUU713SAEwk z+=4t^AvO+?;dnc9zc9D<~+tj|>xQ%1JMl4njZZlgd%3 zVlwEptpO$w+nX(W)Je$RGRKG_{q^cW{ljCEUpJ$M%+Qf4UR;THH^{lw9ky9?L=MXV zhqe39win`kd}n$KXL_mhv$4)k9|b$w*i=2@GKlAb&Q-jm{${MGdg=@GU>lAq&fqAo%~3n9v_loVO+8R@+6~j~Q)5Z4yxYC_cL_` z->)KR#Hm?ZThk^b#X^m1IGDW2{wc9EipQ*@R6d)DzKxm{vk5#`VDd=Li&4QVLXfxo sN2NAg@>apmt+MeO8=~uf&aOy|WE~x?_4-?`OL-((>UwJBsx~421>B(0aR2}S literal 0 HcmV?d00001 diff --git a/bootstrap/scss/bootstrap-grid.css b/bootstrap/scss/bootstrap-grid.css new file mode 100644 index 0000000..88b068e --- /dev/null +++ b/bootstrap/scss/bootstrap-grid.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap Grid v5.0.0-beta3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{width:100%;padding-right:var(--bs-gutter-x, .75rem);padding-left:var(--bs-gutter-x, .75rem);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container-sm,.container{max-width:540px}}@media (min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media (min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media (min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y)*-1);margin-right:calc(var(--bs-gutter-x)/-2);margin-left:calc(var(--bs-gutter-x)/-2)}.row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x)/2);padding-left:calc(var(--bs-gutter-x)/2);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.3333333333%}.col-2{flex:0 0 auto;width:16.6666666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.3333333333%}.col-5{flex:0 0 auto;width:41.6666666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.3333333333%}.col-8{flex:0 0 auto;width:66.6666666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.3333333333%}.col-11{flex:0 0 auto;width:91.6666666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.3333333333%}.col-sm-2{flex:0 0 auto;width:16.6666666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.3333333333%}.col-sm-5{flex:0 0 auto;width:41.6666666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.3333333333%}.col-sm-8{flex:0 0 auto;width:66.6666666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.3333333333%}.col-sm-11{flex:0 0 auto;width:91.6666666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.3333333333%}.col-md-2{flex:0 0 auto;width:16.6666666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.3333333333%}.col-md-5{flex:0 0 auto;width:41.6666666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.3333333333%}.col-md-8{flex:0 0 auto;width:66.6666666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.3333333333%}.col-md-11{flex:0 0 auto;width:91.6666666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.3333333333%}.col-lg-2{flex:0 0 auto;width:16.6666666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.3333333333%}.col-lg-5{flex:0 0 auto;width:41.6666666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.3333333333%}.col-lg-8{flex:0 0 auto;width:66.6666666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.3333333333%}.col-lg-11{flex:0 0 auto;width:91.6666666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.3333333333%}.col-xl-2{flex:0 0 auto;width:16.6666666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.3333333333%}.col-xl-5{flex:0 0 auto;width:41.6666666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.3333333333%}.col-xl-8{flex:0 0 auto;width:66.6666666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.3333333333%}.col-xl-11{flex:0 0 auto;width:91.6666666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.3333333333%}.col-xxl-2{flex:0 0 auto;width:16.6666666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.3333333333%}.col-xxl-5{flex:0 0 auto;width:41.6666666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.3333333333%}.col-xxl-8{flex:0 0 auto;width:66.6666666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.3333333333%}.col-xxl-11{flex:0 0 auto;width:91.6666666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.3333333333%}.offset-xxl-2{margin-left:16.6666666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.3333333333%}.offset-xxl-5{margin-left:41.6666666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.3333333333%}.offset-xxl-8{margin-left:66.6666666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.3333333333%}.offset-xxl-11{margin-left:91.6666666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}@media (min-width: 576px){.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}}@media (min-width: 768px){.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}}@media (min-width: 992px){.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}}@media (min-width: 1200px){.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}}@media (min-width: 1400px){.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}} \ No newline at end of file diff --git a/bootstrap/scss/bootstrap-reboot.css b/bootstrap/scss/bootstrap-reboot.css new file mode 100644 index 0000000..106dbab --- /dev/null +++ b/bootstrap/scss/bootstrap-reboot.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) + */*,*::before,*::after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h6,h5,h4,h3,h2,h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-bs-original-title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr /* rtl:ignore */;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important} \ No newline at end of file diff --git a/bootstrap/scss/bootstrap-utilities.css b/bootstrap/scss/bootstrap-utilities.css new file mode 100644 index 0000000..2647b49 --- /dev/null +++ b/bootstrap/scss/bootstrap-utilities.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap Utilities v5.0.0-beta3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:hover,.link-primary:focus{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:hover,.link-secondary:focus{color:#565e64}.link-success{color:#198754}.link-success:hover,.link-success:focus{color:#146c43}.link-info{color:#0dcaf0}.link-info:hover,.link-info:focus{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:hover,.link-warning:focus{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:hover,.link-danger:focus{color:#b02a37}.link-light{color:#f8f9fa}.link-light:hover,.link-light:focus{color:#f9fafb}.link-dark{color:#212529}.link-dark:hover,.link-dark:focus{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:1px solid #dee2e6 !important}.border-0{border:0 !important}.border-top{border-top:1px solid #dee2e6 !important}.border-top-0{border-top:0 !important}.border-end{border-right:1px solid #dee2e6 !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:1px solid #dee2e6 !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:1px solid #dee2e6 !important}.border-start-0{border-left:0 !important}.border-primary{border-color:#0d6efd !important}.border-secondary{border-color:#6c757d !important}.border-success{border-color:#198754 !important}.border-info{border-color:#0dcaf0 !important}.border-warning{border-color:#ffc107 !important}.border-danger{border-color:#dc3545 !important}.border-light{border-color:#f8f9fa !important}.border-dark{border-color:#212529 !important}.border-white{border-color:#fff !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.375rem + 1.5vw) !important}.fs-2{font-size:calc(1.325rem + .9vw) !important}.fs-3{font-size:calc(1.3rem + .6vw) !important}.fs-4{font-size:calc(1.275rem + .3vw) !important}.fs-5{font-size:1.25rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-light{font-weight:300 !important}.fw-lighter{font-weight:lighter !important}.fw-normal{font-weight:400 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-primary{color:#0d6efd !important}.text-secondary{color:#6c757d !important}.text-success{color:#198754 !important}.text-info{color:#0dcaf0 !important}.text-warning{color:#ffc107 !important}.text-danger{color:#dc3545 !important}.text-light{color:#f8f9fa !important}.text-dark{color:#212529 !important}.text-white{color:#fff !important}.text-body{color:#212529 !important}.text-muted{color:#6c757d !important}.text-black-50{color:rgba(0,0,0,.5) !important}.text-white-50{color:rgba(255,255,255,.5) !important}.text-reset{color:inherit !important}.bg-primary{background-color:#0d6efd !important}.bg-secondary{background-color:#6c757d !important}.bg-success{background-color:#198754 !important}.bg-info{background-color:#0dcaf0 !important}.bg-warning{background-color:#ffc107 !important}.bg-danger{background-color:#dc3545 !important}.bg-light{background-color:#f8f9fa !important}.bg-dark{background-color:#212529 !important}.bg-body{background-color:#fff !important}.bg-white{background-color:#fff !important}.bg-transparent{background-color:rgba(0,0,0,0) !important}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:.25rem !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:.2rem !important}.rounded-2{border-radius:.25rem !important}.rounded-3{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-end{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-start{border-bottom-left-radius:.25rem !important;border-top-left-radius:.25rem !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media (min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media (min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}@media (min-width: 1200px){.fs-1{font-size:2.5rem !important}.fs-2{font-size:2rem !important}.fs-3{font-size:1.75rem !important}.fs-4{font-size:1.5rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}} \ No newline at end of file diff --git a/bootstrap/scss/bootstrap.css b/bootstrap/scss/bootstrap.css new file mode 100644 index 0000000..824c460 --- /dev/null +++ b/bootstrap/scss/bootstrap.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v5.0.0-beta3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-primary: #0d6efd;--bs-secondary: #6c757d;--bs-success: #198754;--bs-info: #0dcaf0;--bs-warning: #ffc107;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255,255,255,.15), rgba(255,255,255,0))}*,*::before,*::after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-font-sans-serif);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-bs-original-title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr /* rtl:ignore */;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{width:100%;padding-right:var(--bs-gutter-x, .75rem);padding-left:var(--bs-gutter-x, .75rem);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container-sm,.container{max-width:540px}}@media (min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media (min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media (min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y)*-1);margin-right:calc(var(--bs-gutter-x)/-2);margin-left:calc(var(--bs-gutter-x)/-2)}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x)/2);padding-left:calc(var(--bs-gutter-x)/2);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.3333333333%}.col-2{flex:0 0 auto;width:16.6666666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.3333333333%}.col-5{flex:0 0 auto;width:41.6666666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.3333333333%}.col-8{flex:0 0 auto;width:66.6666666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.3333333333%}.col-11{flex:0 0 auto;width:91.6666666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.3333333333%}.col-sm-2{flex:0 0 auto;width:16.6666666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.3333333333%}.col-sm-5{flex:0 0 auto;width:41.6666666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.3333333333%}.col-sm-8{flex:0 0 auto;width:66.6666666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.3333333333%}.col-sm-11{flex:0 0 auto;width:91.6666666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.3333333333%}.col-md-2{flex:0 0 auto;width:16.6666666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.3333333333%}.col-md-5{flex:0 0 auto;width:41.6666666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.3333333333%}.col-md-8{flex:0 0 auto;width:66.6666666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.3333333333%}.col-md-11{flex:0 0 auto;width:91.6666666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.3333333333%}.col-lg-2{flex:0 0 auto;width:16.6666666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.3333333333%}.col-lg-5{flex:0 0 auto;width:41.6666666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.3333333333%}.col-lg-8{flex:0 0 auto;width:66.6666666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.3333333333%}.col-lg-11{flex:0 0 auto;width:91.6666666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.3333333333%}.col-xl-2{flex:0 0 auto;width:16.6666666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.3333333333%}.col-xl-5{flex:0 0 auto;width:41.6666666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.3333333333%}.col-xl-8{flex:0 0 auto;width:66.6666666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.3333333333%}.col-xl-11{flex:0 0 auto;width:91.6666666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.3333333333%}.col-xxl-2{flex:0 0 auto;width:16.6666666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.3333333333%}.col-xxl-5{flex:0 0 auto;width:41.6666666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.3333333333%}.col-xxl-8{flex:0 0 auto;width:66.6666666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.3333333333%}.col-xxl-11{flex:0 0 auto;width:91.6666666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.3333333333%}.offset-xxl-2{margin-left:16.6666666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.3333333333%}.offset-xxl-5{margin-left:41.6666666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.3333333333%}.offset-xxl-8{margin-left:66.6666666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.3333333333%}.offset-xxl-11{margin-left:91.6666666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.table{--bs-table-bg: rgba(0,0,0,0);--bs-table-striped-color: #212529;--bs-table-striped-bg: rgba(0,0,0,.05);--bs-table-active-color: #212529;--bs-table-active-bg: rgba(0,0,0,.1);--bs-table-hover-color: #212529;--bs-table-hover-bg: rgba(0,0,0,.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg: var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg: var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg: var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg: #cfe2ff;--bs-table-striped-bg: #c5d7f2;--bs-table-striped-color: #000;--bs-table-active-bg: #bacbe6;--bs-table-active-color: #000;--bs-table-hover-bg: #bfd1ec;--bs-table-hover-color: #000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg: #e2e3e5;--bs-table-striped-bg: #d7d8da;--bs-table-striped-color: #000;--bs-table-active-bg: #cbccce;--bs-table-active-color: #000;--bs-table-hover-bg: #d1d2d4;--bs-table-hover-color: #000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg: #d1e7dd;--bs-table-striped-bg: #c7dbd2;--bs-table-striped-color: #000;--bs-table-active-bg: #bcd0c7;--bs-table-active-color: #000;--bs-table-hover-bg: #c1d6cc;--bs-table-hover-color: #000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg: #cff4fc;--bs-table-striped-bg: #c5e8ef;--bs-table-striped-color: #000;--bs-table-active-bg: #badce3;--bs-table-active-color: #000;--bs-table-hover-bg: #bfe2e9;--bs-table-hover-color: #000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg: #fff3cd;--bs-table-striped-bg: #f2e7c3;--bs-table-striped-color: #000;--bs-table-active-bg: #e6dbb9;--bs-table-active-color: #000;--bs-table-hover-bg: #ece1be;--bs-table-hover-color: #000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg: #f8d7da;--bs-table-striped-bg: #eccccf;--bs-table-striped-color: #000;--bs-table-active-bg: #dfc2c4;--bs-table-active-color: #000;--bs-table-hover-bg: #e5c7ca;--bs-table-hover-color: #000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg: #f8f9fa;--bs-table-striped-bg: #ecedee;--bs-table-striped-color: #000;--bs-table-active-bg: #dfe0e1;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e6e7;--bs-table-hover-color: #000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg: #212529;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{max-width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;appearance:none}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);appearance:none;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280,0,0,.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:rgba(0,0,0,0);appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);padding:1rem .75rem}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#198754;padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#198754}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#198754}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group .form-control:valid,.input-group .form-control.is-valid,.was-validated .input-group .form-select:valid,.input-group .form-select.is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#dc3545;padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#dc3545}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#dc3545}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group .form-control:invalid,.input-group .form-control.is-invalid,.was-validated .input-group .form-select:invalid,.input-group .form-select.is-invalid{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;background-color:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:checked+.btn-primary,.btn-check:active+.btn-primary,.btn-primary:active,.btn-primary.active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:checked+.btn-primary:focus,.btn-check:active+.btn-primary:focus,.btn-primary:active:focus,.btn-primary.active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary:disabled,.btn-primary.disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:checked+.btn-secondary,.btn-check:active+.btn-secondary,.btn-secondary:active,.btn-secondary.active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:checked+.btn-secondary:focus,.btn-check:active+.btn-secondary:focus,.btn-secondary:active:focus,.btn-secondary.active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary:disabled,.btn-secondary.disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:checked+.btn-success,.btn-check:active+.btn-success,.btn-success:active,.btn-success.active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:checked+.btn-success:focus,.btn-check:active+.btn-success:focus,.btn-success:active:focus,.btn-success.active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success:disabled,.btn-success.disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:checked+.btn-info,.btn-check:active+.btn-info,.btn-info:active,.btn-info.active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:checked+.btn-info:focus,.btn-check:active+.btn-info:focus,.btn-info:active:focus,.btn-info.active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info:disabled,.btn-info.disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:checked+.btn-warning,.btn-check:active+.btn-warning,.btn-warning:active,.btn-warning.active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:checked+.btn-warning:focus,.btn-check:active+.btn-warning:focus,.btn-warning:active:focus,.btn-warning.active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning:disabled,.btn-warning.disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:checked+.btn-danger,.btn-check:active+.btn-danger,.btn-danger:active,.btn-danger.active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:checked+.btn-danger:focus,.btn-check:active+.btn-danger:focus,.btn-danger:active:focus,.btn-danger.active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger:disabled,.btn-danger.disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:checked+.btn-light,.btn-check:active+.btn-light,.btn-light:active,.btn-light.active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:checked+.btn-light:focus,.btn-check:active+.btn-light:focus,.btn-light:active:focus,.btn-light.active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light:disabled,.btn-light.disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:checked+.btn-dark,.btn-check:active+.btn-dark,.btn-dark:active,.btn-dark.active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:checked+.btn-dark:focus,.btn-check:active+.btn-dark:focus,.btn-dark:active:focus,.btn-dark.active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark:disabled,.btn-dark.disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:checked+.btn-outline-primary,.btn-check:active+.btn-outline-primary,.btn-outline-primary:active,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:checked+.btn-outline-primary:focus,.btn-check:active+.btn-outline-primary:focus,.btn-outline-primary:active:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary:disabled,.btn-outline-primary.disabled{color:#0d6efd;background-color:rgba(0,0,0,0)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:checked+.btn-outline-secondary,.btn-check:active+.btn-outline-secondary,.btn-outline-secondary:active,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:checked+.btn-outline-secondary:focus,.btn-check:active+.btn-outline-secondary:focus,.btn-outline-secondary:active:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary:disabled,.btn-outline-secondary.disabled{color:#6c757d;background-color:rgba(0,0,0,0)}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:checked+.btn-outline-success,.btn-check:active+.btn-outline-success,.btn-outline-success:active,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show{color:#fff;background-color:#198754;border-color:#198754}.btn-check:checked+.btn-outline-success:focus,.btn-check:active+.btn-outline-success:focus,.btn-outline-success:active:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success:disabled,.btn-outline-success.disabled{color:#198754;background-color:rgba(0,0,0,0)}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:checked+.btn-outline-info,.btn-check:active+.btn-outline-info,.btn-outline-info:active,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:checked+.btn-outline-info:focus,.btn-check:active+.btn-outline-info:focus,.btn-outline-info:active:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info:disabled,.btn-outline-info.disabled{color:#0dcaf0;background-color:rgba(0,0,0,0)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:checked+.btn-outline-warning,.btn-check:active+.btn-outline-warning,.btn-outline-warning:active,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:checked+.btn-outline-warning:focus,.btn-check:active+.btn-outline-warning:focus,.btn-outline-warning:active:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning:disabled,.btn-outline-warning.disabled{color:#ffc107;background-color:rgba(0,0,0,0)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:checked+.btn-outline-danger,.btn-check:active+.btn-outline-danger,.btn-outline-danger:active,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:checked+.btn-outline-danger:focus,.btn-check:active+.btn-outline-danger:focus,.btn-outline-danger:active:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger:disabled,.btn-outline-danger.disabled{color:#dc3545;background-color:rgba(0,0,0,0)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:checked+.btn-outline-light,.btn-check:active+.btn-outline-light,.btn-outline-light:active,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:checked+.btn-outline-light:focus,.btn-check:active+.btn-outline-light:focus,.btn-outline-light:active:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light:disabled,.btn-outline-light.disabled{color:#f8f9fa;background-color:rgba(0,0,0,0)}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:checked+.btn-outline-dark,.btn-check:active+.btn-outline-dark,.btn-outline-dark:active,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show{color:#fff;background-color:#212529;border-color:#212529}.btn-check:checked+.btn-outline-dark:focus,.btn-check:active+.btn-outline-dark:focus,.btn-outline-dark:active:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark:disabled,.btn-outline-dark.disabled{color:#212529;background-color:rgba(0,0,0,0)}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link:disabled,.btn-link.disabled{color:#6c757d}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.dropup,.dropend,.dropdown,.dropstart{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu{top:0;right:auto;left:100%}.dropend .dropdown-menu[data-bs-popper]{margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu{top:0;right:100%;left:auto}.dropstart .dropdown-menu[data-bs-popper]{margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0}.dropdown-item:hover,.dropdown-item:focus{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:rgba(0,0,0,0)}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:hover,.dropdown-menu-dark .dropdown-item:focus{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:none;border:1px solid rgba(0,0,0,0);border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:none;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media (min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .nav-link.active{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280,0,0,.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item{margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:last-of-type{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid rgba(0,0,0,0);border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255,255,255,.15) 25%, rgba(0,0,0,0) 25%, rgba(0,0,0,0) 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, rgba(0,0,0,0) 75%, rgba(0,0,0,0));background-size:1rem 1rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast:not(.showing):not(.show){opacity:0}.toast.hide{display:none}.toast-container{width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1060;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width: 992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width: 1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[data-popper-placement^=top]{padding:.4rem 0}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:0}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-end,.bs-tooltip-auto[data-popper-placement^=right]{padding:0 .4rem}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[data-popper-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:0}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-start,.bs-tooltip-auto[data-popper-placement^=left]{padding:0 .4rem}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0 /* rtl:ignore */;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid #d8d8d8;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:rgba(0,0,0,0);border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1040;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas-header{display:flex;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.offcanvas-backdrop::before{position:fixed;top:0;left:0;z-index:1039;width:100vw;height:100vh;content:"";background-color:rgba(0,0,0,.5)}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:hover,.link-primary:focus{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:hover,.link-secondary:focus{color:#565e64}.link-success{color:#198754}.link-success:hover,.link-success:focus{color:#146c43}.link-info{color:#0dcaf0}.link-info:hover,.link-info:focus{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:hover,.link-warning:focus{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:hover,.link-danger:focus{color:#b02a37}.link-light{color:#f8f9fa}.link-light:hover,.link-light:focus{color:#f9fafb}.link-dark{color:#212529}.link-dark:hover,.link-dark:focus{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:1px solid #dee2e6 !important}.border-0{border:0 !important}.border-top{border-top:1px solid #dee2e6 !important}.border-top-0{border-top:0 !important}.border-end{border-right:1px solid #dee2e6 !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:1px solid #dee2e6 !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:1px solid #dee2e6 !important}.border-start-0{border-left:0 !important}.border-primary{border-color:#0d6efd !important}.border-secondary{border-color:#6c757d !important}.border-success{border-color:#198754 !important}.border-info{border-color:#0dcaf0 !important}.border-warning{border-color:#ffc107 !important}.border-danger{border-color:#dc3545 !important}.border-light{border-color:#f8f9fa !important}.border-dark{border-color:#212529 !important}.border-white{border-color:#fff !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.375rem + 1.5vw) !important}.fs-2{font-size:calc(1.325rem + .9vw) !important}.fs-3{font-size:calc(1.3rem + .6vw) !important}.fs-4{font-size:calc(1.275rem + .3vw) !important}.fs-5{font-size:1.25rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-light{font-weight:300 !important}.fw-lighter{font-weight:lighter !important}.fw-normal{font-weight:400 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-primary{color:#0d6efd !important}.text-secondary{color:#6c757d !important}.text-success{color:#198754 !important}.text-info{color:#0dcaf0 !important}.text-warning{color:#ffc107 !important}.text-danger{color:#dc3545 !important}.text-light{color:#f8f9fa !important}.text-dark{color:#212529 !important}.text-white{color:#fff !important}.text-body{color:#212529 !important}.text-muted{color:#6c757d !important}.text-black-50{color:rgba(0,0,0,.5) !important}.text-white-50{color:rgba(255,255,255,.5) !important}.text-reset{color:inherit !important}.bg-primary{background-color:#0d6efd !important}.bg-secondary{background-color:#6c757d !important}.bg-success{background-color:#198754 !important}.bg-info{background-color:#0dcaf0 !important}.bg-warning{background-color:#ffc107 !important}.bg-danger{background-color:#dc3545 !important}.bg-light{background-color:#f8f9fa !important}.bg-dark{background-color:#212529 !important}.bg-body{background-color:#fff !important}.bg-white{background-color:#fff !important}.bg-transparent{background-color:rgba(0,0,0,0) !important}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:.25rem !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:.2rem !important}.rounded-2{border-radius:.25rem !important}.rounded-3{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-end{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-start{border-bottom-left-radius:.25rem !important;border-top-left-radius:.25rem !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media (min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media (min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}@media (min-width: 1200px){.fs-1{font-size:2.5rem !important}.fs-2{font-size:2rem !important}.fs-3{font-size:1.75rem !important}.fs-4{font-size:1.5rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}} \ No newline at end of file diff --git a/doks.png b/doks.png new file mode 100644 index 0000000000000000000000000000000000000000..70d8c78611ae4033c26e2d795b2f959133ec6cb4 GIT binary patch literal 8211 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 literal 0 HcmV?d00001 diff --git a/doks.svg b/doks.svg new file mode 100644 index 0000000..4631bc5 --- /dev/null +++ b/doks.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/favicon-16x16.png b/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..8fcd4223682a27c279cb902c4c98c396c1cd6a64 GIT binary patch literal 416 zcmV;R0bl-!P)6C_uoI*f&$?xW)=os9xhN|tTNG32}d#D<(qflP{#+@SXmjwMTBT% z0L5Oo|Ku6NPozM^<`s5!HU>o*DePWAk49_;Ff%hTurM=YHvl~$VKab>lbu0DUKYCn zc!M895-A$-WhPvPGBPmCGuBd02B!mj*%^lccUb=a3oy`Dy$S%Zoz)SqOy0000< KMNUMnLSTZAv9L=3 literal 0 HcmV?d00001 diff --git a/favicon-32x32.png b/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..21378a4cb9b1fedda0c82cd926fcd2649642f3a3 GIT binary patch literal 773 zcmV+g1N!`lP)?JhOg(gJ}BL4Fja)J77i7q4CTE;90mB ztP%>OBGLE*`U3>o-HzE6mTtrDz6A_AhwgUYOy=`u=Dm53P$gqyvvn<9(tUvL0359z zb9!I>wT_wjEIQj-wM1|CO9kcI(P(r{#Ga~^rqY>F2Hg}ftky9B+N0=?b%B}R1W3Io z0$~D7&Md^KQb{wz0wn@d3!vK&XhK10*bTyTHkHm?VbF6ChqXGp0q8o+JP{z(5yAv` z`(f@HF`gbIfC$822iS(llR7-GOJUjqeEYeK<$Mv~-D4ule)M#-frwz20;?sD=b&Dy zg|G$4E`7m|mAq|6WWOKDlRc0mNf5v&&G8&c76``_7?Zb&09CD(^^HxWGYe>Gir~zt zKDRP@{r&U8P%4!w|5+_tQd@+oreR~VJ-HoXJ)*goyTUWjM(vZG)KaY5E}E) zV7&X4BS0p*hnf`?Q4I0ReF8VOiDe*P(E12(sU2Y*_ynz@ew$(2Gzw#d}Z` zDnhr7NYpQZ5DL~KbhO@E5zb~8jh*lyLX%3)Cs_Z}kkLd5P?VhNAi7 z#a)dqRkhr$At3;_1Bn-;=12oN+mCrmf!mQx7=VDrh9Fv+b~>j}1cV*zLGj-N*w4kp zYY+&0buiKU!g3y%d^Zy(*}tc&nHK;eFqhRt>U7^n3xNJ-Dm^#KfalApCjj8lU?O&F z+s1Mcot~anHl!mDyk5`60O%{g4+E9;d&y+dJZ}F60<_04`HYb(00000NkvXXu0mjf D4oYR_ literal 0 HcmV?d00001 diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..9e2fc8d4de959236227a24cab2ff0ab473539f55 GIT binary patch literal 15406 zcmeHOOH(6N6mDxqElU^U!gAq@jZ@6H88@z7>e8}w?Na}StN9BepiYeU7iReBV9y+}F7mNqSDYB3-*C z(Y;6d@~R|#AW2eB&*^jTtCBQG?{3{X`}=iCT6s;9dg&WdA&t}bbThq_&E$K9TwEbx zf}%i2HCV_c1_bpq_7elDem)l;cB&5@UOzPbGn=_LXesyxSVsC!GOKJm8MYLBW2V0} zJIdyNxoau-#!NpGmDxsQ)>80|nSN|>lC8|&w-kKSDt)i~muAOwzFQB^G`J>L=a@YC zlkRWw#E&C<{qyywWTQ;UuCdt%-?ROEhLwxkO?kST`*=+U&^3(0zT)e{j%j@%*&D+2*<3j!(@`_`xpBOU2-$}=N3tNe2_WI{z$&n6W z0E_34&m}%_WXB+;MfHKj;}^DKpNi^x{*JIZ9Y3}-#ex%eS&+sJPeL|eOXo9z@-IIg zXOkn}_#&|76#w-57%OaglpN{vu_{o0j2YQ@$QM!P22CCU_@U_`Uwn@`gsmnvd?A3J zjs{s|{(ImOp~&)1*VXMyr>tjw~-z_2d@Te|WH-~-#Q_6J)|@$=N~ zc4&@+d4d;#4cO{7{EPPgMaQ46zPz?KUSA;o?fM^ey`ts0la4UFj|A=dt%sl4jsKYQ zTeZKb(LVMhv(}7jj1|-4{gyhay}(%C=XUsZyR}FoxV&m>* z{b7bLiVgg|9rx=mBmCp)KKb0f+`v{Z@`0=MCy!6%4mrgJ2W4vNMXFQB>u(i5z8v_c zUfsXv23z&P|Lu;2IHhQ%FGxi5B=l+Hl4bd-vKf1y>a3pxIg{4s4>bKg;i3NpCb0X# z1)NlVR(D2YfRc-TMS5kD=2&*YzsukRZdTm!xBTY%$Fw%BUNGPDej`rcX2t*DVC5ys zbN6)|_p>+vH*hp7!|rb8^?WWC?p*${FgTj=S5m8Q68Chc@&`9?H07^=e=O6v{9_q~ zI9~F+D2xC7HK{;9Qj78oCBTN!`_ zOuzUy?Rd=@i|U)sTinG@lfS9mcC}}B{IMQKeXi3wyd458H3y*gojd-~#fi4XzS{PI zsppP5cE=yNFXW|E+pWF>%P0@$mOu97H{%PmUm!R343GnCoyZL=VEX0%^LEI8#zW-u+9AMFb7*?sx#ORV%r)|$Gxxt^?GWT#fvM;2zWqihf7 zuotHNUgU3EDZl_0F#X~WJBY`8<9ra#2(?atVI2GJc-bpD2Y14Xlk%9kJZu+N#roG|8OPAF$ntFq(#kJI@x=D*Q}3B!JTGqFH9 zjIqXz4;SA>MhzmZJNzv0yXeEhn3hVRuiTxe>D{kpehxuOx|KMn8}6Qu2KFO_3R{n6`=DP{Mjtz zEz~x&yOprv`rp}aD(4C9`6kQd!rLaao3G9IyU8CShpC-My5vvXi@{pCc%w!{?t~Bsbhhd=|KJ`IA0+eGo8nO zKlN9wd_y#5bo^Vmer!jL}w(V!MoVCBPH%a|xOZHD~_@j@MD;4FYmXFilt=zx1 z;h(NoN;loa3}41pogXmak2yj5_j36io`>7##`%qm|K~Rh_%~vvUN3oy8KZKx;{1%3 eKm9+?-^YjhLw_6|yz58I7?t7j-K7UaJn%1!g3u5E literal 0 HcmV?d00001 diff --git a/fonts/vendor/jost/jost-v4-latin-500.woff b/fonts/vendor/jost/jost-v4-latin-500.woff new file mode 100644 index 0000000000000000000000000000000000000000..eab8d1b683c49b617266c556b3b4d47431b469af GIT binary patch literal 12888 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 t@*i(SSq*pxu300$rp2OG~v zvm)3y03fJcd{LAN(x&XcPTNGB&xfyQpfn^Z%2#tM`J3PP59*EI168L;1q$EpPXbW?Sm zhCspi8rOfH-B;CaHuE->%)oQ_OX*Y@4FBJp`H~%H&Usf#O0Z*C zBBm(m+17NNL1*eR#M@+DAYAn$!fr<<)UH`(MOYr`MeqM~X6=j>@*deizf^~?xuOED z(;YM&jlSlsG#WcQvUc+)*9?$X zrbnz8;LE9Xb9rUCpyJEwcKFN9F(1}G<4OSdsX2NMX*&|M0|1CsIUzF;}I{CHSSFFVGvaIzvr>i?_b z#EXyyEeZ}vEGnvGEPN?MM6hJEAO>cctZWzx6k;k;jjdKKg+_i#0WCDzw9)C%O>d%! z%)T;>#d0gyt+qz4_14R`*%k!`3~<_Mw<5ngsnjW_RXFcF7bF&hP$*%-1&b6ZNSrt! z;>8P+CQY<->B6C*q2Le&At4DtMHPXCEffbwI4+(De01&IM6RFH5HkmAKdN|Po6 z4iOR=84?v${_D8mWVi)=Lprl7Wo zS6l0R0D7JEh2{&c8`X@w6bvArw*&x|{Ol1YxJe}4DL|$zK~`f5DO{jFTK<&hl#>cNmqt)l|Ot2e&6YK{cglik?Vx9Nv-dlzgmK%Qf$`c z#YPPSzzhKJMF)H`etP-o|B-P305I}yWF7z`k4EB=uIr|2d#>#Q2mk=U0D#dM0Pzw4 z0000Gk24DZAf12qi2h}r^)@(RqfIuOZ;34q*=mk$25h&(VMiRb6E-~P=}1v8Co4gs zXX!qTft_c`GEqFH-CH&eF1`hJ>-U@4ekY@$rDtGyT}gKAknsjS!U2h=L|bYJ$36bWro9NVObL^MoF@ z-dH_JVD5Chy?e$DjW6X zyB6f;q^l~sVd9t~LM)$y9-$WTPK{$ELGhaKbW?+-j%I07-kt?jB4Nizga|P?2XPCy zu1Mvr$qbW0v!xS+uJSfas&{a>LgGs>JDNd$Z z9BzT9w~nRH?sdKG%A9Ek%f2(~lG7+F`y{^CA>`X(s4^FrL(GL&HdGdrD_njWZv5(uaz`ha^Evo!koUg(n|jyVqse@z0%UDBLK#(bDy+JI{FyV$}>mF`$`B zzk;iq{oyc1e1deOxS0l(#`E!DY(5m2v6LH45g($o&$-?-{(SO4i z8%s$7g#NNK4SNuf=~i8;qQ*Km`4);pYZ-||tzh3>ulNPa;PkyY(>R~;KYLnBG?zn82mD857jptc)|-_r!S3 zUmd-r$HneP`3nYN*(Gb^{rDD2aY~kui^HLFFI9Q@2nto~JfL6220G|P|Cm?%LbhU; zBLyV` zG717phQb;uO&@%r=hR6=m0Y_+4hl)Wc!(3-XjYAaG@Byw2EI$daj#st-2}GpO=(kF zd%0B^R^d}qIdSi8mA`fXxY-dYQfmLv#6BEDkOy>yJmqsfgf;!s;}^<6eAN}09Qe2j zlLQ|?x$NVkFAk*+65lD(Fe_`~gLC7^8nA`qe3jgi`fqguu6w=%Kjj5KAJUR?CHlLx zTwmHxpG!2_EpoGPsV2wz%2zu3(SkF_z{M#S(9WE%tJSj>h3%ng?nXdq56^L7En?;SVs*ik#wzVpv(`8d&wz57Pm5fNN2dT~ zVb?hA9lRj;xp$e$vJyH;Gk@3bgqWI1$Pm`yKp&t|`mk>`+Uz1ZR}eK(mx_N0RO>7# z6pA3_ze)GN`192CGV4c0nqw0}GJTATNBwTHBO#<~Emm1w(kvUR=a zXN;LJ?|*bN172Xn`Ro`8e6J_h;)wx7+Rgb*9?18H~S$fJ{`^~4#4YK)#6=pdbx7re~ zHO{VdY{48`j-HS4`T{N=mpAS=dC2y!==n72^CE zZL-0oby+hIPz3OC@s};Q*TDHZ520c_NY|-VZT9|`{?pkCY@?$wBl!3VcN3v~g^5*s z;0~Z|!7aoXP2QZ0K`M+%yb<)@z32JK&e%Y&}M2TTqYSXTovzBfu6 zSC=(`5&7K(xO>11(@~l|mft_B5B3(Gc}#LEUkyKpcdsjE`}88rEnqa~XPntR9@fsw z1!O=1Io~#s^~pO>#o?7xKXYY!gmVGHWsbd(1SAg8Im zzAT5gXLi~@M&9k86OH-Xu(6uNR8b!qbC)=#^WN{HlJ-pdl$w6`b>`}83enTi*iJO2 z1B>o`n2PBwVjUPvdv|(Xn*%CKBV{l!j>XnUbQa0=)Jq8omr@^t!8T8~wuU4&^5tS1 zJv+4Lhpt;%XxXKDZf1@?t1Ow4azcTVnU2KHzYehk=BVbL`E%h$xdQ=&g3!&2VL!Cob05=j{A7}Y< zCt>R~*>o8c>X2N1>FJjOg7);@w+X{5W%A!AxtjA?) z>J+uNsq-t?-9m~jqINGIq=>qu(86ZXz^z2a}XeFF&gCougaiDHAP@T zj$P2}cJ~PFxzmJ7Y;AUjU|MyRaM;#_370CLdGD$8OI6r>`IIE3f{Nw?aw%0A_TcnW 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 KmtKQ&0RRByV2yeJ literal 0 HcmV?d00001 diff --git a/fonts/vendor/jost/jost-v4-latin-500italic.woff b/fonts/vendor/jost/jost-v4-latin-500italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..7a8ed959ec3fc128c6e39436f9146fce2e886d9f GIT binary patch literal 14504 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 literal 0 HcmV?d00001 diff --git a/fonts/vendor/jost/jost-v4-latin-500italic.woff2 b/fonts/vendor/jost/jost-v4-latin-500italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c6b9d56e900f3672f0c008cdd009d897243079f5 GIT binary patch literal 11108 zcmV-qE1T4JPew8T0RR9104rnw5C8xG0Ai#704oIm0RR9100000000000000000000 z0000Q78{9R954o8KT}jeR4M?3Vi5=mfudmfI}3w000A}vBm;(M1Rw>3R0kjo2OBX< zMF(QoIDkN)jS>8RN#Mp%tPd?;j-8gfk}5|NF65LruC*wV#tiWXzasrT9??iodYl&D zdop@0ldx=k3BsOpv%|7k9`>LkB$*uow{_rRrQiTVK~%QLQdFFbEg(+7iJ~HcN~vi5 zyIaG`#>Up9@k{Ez`rlS>_4VJjX=8r9?a#_w)xA~rA;52jOG?@Du9|i=8$EMC-3Row zzXOW3@8kjZ5+3t+fainDd^5KMd*mg;t#YMW$wL9ICeiy;!EN>)I0--k$#iIb+mnIl z$~$X0bnF4UU3fC5CSU3H3!ZdyP$hOp=#0R&vXaN8=YT%%0#RCC0MJfAhWUNhUSlVm z+B+l0a0G)k2LQimpv2Py05h-N=>YR!%YfQ}?f-11?TpqS1tkMx3)}{?DN{FTi>M4&q}b*Z zIi&CU|Csv^OW*W-IU^;!0xGh^k@xv&-cp0RVxF4?0_Di$L(fYFjf1 z<_`dnHsba-r#Ax_L%>ykP!hp>byOe*x;0q^vlbgx0sy_u*$0NQA#NdZu(NN{OFT7V zw~;f11#c<2Y>c|zEa)sRK#fFZDQTkUIAV6N6@ErIM}2;xM+^wb20XSZiE@dib}&1G z6d(vNf;f9Az$Ue$P$aroz~>DXI&+N-P}E(3KxV6_8#cBSpbg#N2@msXQ1J0Vvs>mP@pg{AaQWP@$ew(?*HfB`6LtmSWmjr@6d_}gYXf4l4gx7S`M`|Ja? z-+loF=g;|Le~v}{or>URD$b9g%p?1uGUkUk1c$_dwfPWoAOV=akz_wYSo~y!VWeaL zpCG2IJRCQkSMdy(I1!1%Sp_NcQx9I`rxFr&r@M0RUk9eS8T3 z<7ea8adgvlY%AVykVI8nWG2c35Pm zU3S~!Yv1_RUUDD}s7R>PC5H+36z|n>ssi4c%krgXQAkOEze~m436(?=nb8$tmO} zGft0-nK8yoT2!lHRqLtmJO`&1%Y0{*5tkhBqo4fj7h?|k!#SN+^SSK2Q5PID%WS8m z^E%{=Ic8XIu6gD=49agOzRVziFh#HsXc4e*BBdZAi4`Xv*>R~7uq0wjlEx)dmTWmh z#HNu^Qc=^$W00@FbS9*JzxMC;z z!O@=)_l~}9=X&OvNEisga4}dI8X)$*3MDfm3^)8D1Yy}Z>>^@O8&7IMj9_R4x~wdM zSCnm+J#Yvxkz=nDuW%LXfmKjRkd-D-MMmvd3QQb$>XH}?c&eNU%1RXVwGRhykp*1D zOsS>XG#gVDd1J_|kRw6e7f&M7c(J>?phqT2X(B5g*XfZtL^AKYiWuIIppGB0G*uPT z-20}%5|oC-BnAWzLpU9ck64GIsM>NYxc8FQq)|3otbBF~=9ANUT8(5?RLILB_MEmg zZ>Isn8xqtDV1SDB5@=*VNQhp%O(y;8t47No2Lb80mE41_W7EhyPTPB$21~8f=uT}f z5DAb8Ck=)V3Zp+GtR0{h$&4WNfuNW3M`ON5NuG(IA6d`YS?Zr+Lmyn#cOkq$hf3fU z29O}==LqocI$JbYGM>?$6YF!oi;^6)-}<0`VUq?k9}QI)03Y>!;l zKCeLwwygotmO2?d7tG>BOCWcI;&C>=qiN7!K&y1==R++gTdl~d$hH9wMNu!I)S-tM zku{0a(Y-XIf!^!Kn?061kj}Ix)dsB#6BU35123*Oi5pM_u?M4f%p}oh5FTkQrmFG#=zpMnYcjG3s1SN8aNr| ze?|Eo=(ZT=ZWj53^Nbiuv-AsH>#nEl^=NO#LF==~X)^PzlA~**HJG#D^9X^GI~u;T zVDPTneltYo4|dB*B^i30O8tt*;lZw%5lS6hm!7Z9RRD9hq+y}T)Th&0B*vEZ61Fll z384QIL+S>l?-8M5-K31=ndqoD47-b{416i*T%m!K&ZP+*CO5cU?R7XPxUUwOYyVcQ zf%3|7u-Tv0 z_71~CN|QPm#YvvX%vGVx!QnHioFzj-P-X~`GE-8tSUlLxF@goNAJ|-!aYnX$-l{4- zjWt$iS~(fuLg{!8RDk8fMw3}@MC3D3nf`~-W~5JJXiDJ(5b+D}!m0}-AV35OHCl8o z19k^~^PwINDU21`Kdh7dYsx1ioKQOX{kh>{XaqzYFMG%yxW67^O*Y<_b>BY4L&6q{R!ak`^KkqP^6V zKwx1`uLUhOI;Vma*;_GxCLhR(mPb`hV4_!;1_dL4_24_MCHlX;_@sPjrkz)C!%Qf$ z>TN&-+Qr{G;n;rL))Gul93JNr0A-cZuho|!pBRKqk&NJRl83Y)5LF*Da^xX&>$+eYvJK&nd7ED z->Lbtc$$|)>Yx1r#LWu&VkXP4jh9l{@GKVjpB{cW@6OOKZQDo(xsa_e(;z9QFhLe&*06V?-bbEZ|(6eXvI=F3`55J4E{(bVx=0(txvGKKU_Mu8o^V>-REs`M)Oh2(;*B zFaLTyR2Z-Y921kF=NH9h-pETYeL$-8>H$e-4KWBo6-G~~&(GG~*`?134STWR>A33b zv|q*!Gc3{h4jBk8SWH4qB6u2#+t-j~0*=Xv?D(2Yw&q(m8HRX*k+;z;IAtg%ZWgx+ z$Cqyk^`p}i9)4SSAUF}3HEfGLgc{8KQ+>x*Ett$#dYcAr5A8i{@1iDiiPF^@T{-Q? zbwDcj)enc6Ieay^P)Ku1)%Pu9E`%#DpmeSQ-vCx)QsLRyC?A489$!n$_U;73L;8R{ zE!`~YlD4DetT5C0r>Gia|MC-| zH|kUM&GQ(e2Q-6s(7XOK-SX9>{sXrP-_-FonPr1I5wE-SQq0;zYb=9?W5qIOt z%j8mzNWS!I`hbRfRFtd!AgI6HfQDPByxRn@bsA2JgCO{iv@aFA;gb@2&pGBs(Rla0?wUJ zKojty@CQuDxMWTv44h7lm5wjx0IoK-qkNfHUAMCJ{6Y!e@ylsf&sVg&lRP7+K?YMc zIJq@|gZxe1h!NfYHI)=5_^w4JmFw-ybjw+l;YD_w>QYvxUJu9;j!LqY0FqoU41M|{n zu!APTX)i9wp1+0)^Oi>o>vKV2H1BwL0NW0VzAaICi6Ts zv7wrray|aG-Lb(52HHugyu=n`FxeZHNRy$P!~(x!TAI-HItfciUWX{p5xc)N`^W3q ze$gp^^_{uPiq9RmVg{b04WPaSKV8rAW2IhPB_~#|8tWKtwoNr2FJ$lCxZVE2jxjq&Pv7W&RIwNp6`D)$A zG9x_8CKwFtpl9Oi|0$(Rt!0!jmRpsXX*o?GmgzU4Xq&u{3Ji*Nz=N&;KifMqZSe}_ z?9xa{S#AXDj}G4rMO%X243}C6iW^1Pv2KLuOF*_SD=axL!Bb01-WGXDc5Pa5j02pi zXyuzV;xYt%!YpGTaAafC_n0~$0Ez~KT)PKVl{@R+Z0K8lpR~BY$ zVeO>0)O@VgPPTYy4JS~Fvv?$WZ7}B874N_+5~0J9mAvRwK(DBLI@sZJ``n$rU|-(6 zBuBZt7nzGt6T5YlZh>xjSo7*+U0e*>Xho{@jcw_QrD4sW!;H3>3Ll#=HdBsUhN+cD zV%)xIoxTR@6C=oXmI6#&e(?s~UbFgKhlg{UMcpW5@7*x;mF?YHSgPd@E&5@eD5ZJw zwsq;)=)Q?Grv0-oMpAQtYxz8kohR<5jWw>P<09X5U^D#mzo!pqqE0017+eLWw6Bd{ zmMg2Eh{R@LYh5-~Ge5uFuqd^qS~Y;wB2+O0d3Bvaec{|JYh(62ghmO5#1k0D#IIA_ zzP3(ZHX)d{LVLN#Ew@*%e%a}vcRTGyA$!k;HXmuL|3eQ8ChsLf7cwWKm%X9mJ$Ce8 zkyJ!|1b>4TqpH}dASDP&sA;)#dS7>T-Bf%!VM(&5&f7xelhy@Krj@EIKcpSLflzyJ zT|RiXd#N2>8@a6`?vCU7PnWOVoC#L>3>VkF`SNb z>-7s#n`>3GkQz8@RNIlRTMDeoez3oSwAZUw-|FpFSKxO>=qf7an?hdrDaEWaJ>u*ggvT_;Vu@8?|hL9zLb1f`g&9 z2P&yw%+2jBtUV-}YM6tuEm69Y^%j^ECgN4s3KX-|smASCq-U_z=u&DbJ1FQyN9QUr zrLEkWdQKT6_UY?(S*u@&yQ1pnb-m~If8v5k-Dcg~eY)S9R6un`?SS49aTIk9x_Y^? zL!jQvlBL|5dVzca=(=UjL`(B6+)T+dq0$N!VVN2^*Kj4073&|={xgZnirQsKniR^4 znHdrrKg&depZ!#|fU_SCMZWB!(wFT8dHSPudUu`vaH#Vd820HeBIJoJbt1K)BU{sg zR2nX}8^&xDk%Yow1))Xqtk8H~a5>9Wo1@O{%+9;?)fB)h*GnNGzI|D77&FlA#i9}Qf-bK=f?aPrRdkC+cdmu7Fd z6Z3r5vw64Y1ApK4hvtX#hqQ#|W#1!gi1}L@{0l&oZ;WoI_j#5jF*>+p&MFWewkEM1 z*??Ew;ANk#PZ`mF#Mm={&oBudk5EBq6D459RNvyq%LINGidrhtlA$7skIU5(3)kBJ6GDuk_)ee{2h`miHhh!uo zwsCnmML^OD{+~MFNcO%sqLP(djFGxY#hGuc-c{WU6Zprgn(}xRZ2M z2nkHgtEv~sz-*8u%LkacLi8(V_cYMl^ShwJy2PL-bH(VA{@EO(DyK5uH3%&WwPCbi zc5-8dycJ=>gg`E*mG+KnX zjYQ$2)vIrH3NH;wzSz*<^97ERC@2= zWCFczg`+q2{}2{6A!uEBw^A5XCDIt!;lYWEQ>kRPSzg!2$aFlj5FMgl*p-rECmx9(y>~DXDNU?OXq;eU}CP*nj`1v@e?8K2MQB`%Z3w!p?e)1 ziGte8k~91;V!7p@GfVG)%ivnDvDud$EOQw8;8``C5W^#*+oSIxznkiYii_@)WF~@9VXJ=G1RccywswAnRoCj=Y7T|~xfnu`Vm?Z}y8&6Xl*parB z<}4E{EXEjl$`K>gZ#eD*<3WhjVu*J z|3}}KOIwA3nGDyA$1d|sT%5|7^$GQj3=E^_N+_lhcRDNo`6`SR#6nsEyAMQHrZ8kVO>9 zBzwFmOJ&2m$P&vaE_}zTEt&cscaZTkN`wet2K@KF-^FoojeKf;xZ(R`fj)&(vMj1G z_(ROe(JnC9A6*+w2+h%TgdCXjxubU7DCizdBMth|gHLvQ1;cdziU<2OJDL!&tEe=0 z$5rs(z1<==Gbw|^e?ReMUyP)V0dwV{+Q+;Wbpe{0?-v>OLdsyOyG$s1$t3yy9CUCc zKn$Q@Qd9%16=lo0{@qSY*ACeIQ&q!{*#3Be%j7Dwp(=@|P26Gr`EDHHrR&}%d){ax zFPe4bTSC;rY&;j&$eo&T<}y8DdL|F&1a2G$*Tf@NMHt4oYz4g)E^*|II(hia4+tXh zS~nOU{Qy(tY~qpgv4*o;fkBX@s$)uA!c>({AI4&Lf~J$OkZY1YxHG>|{ymtO6=oWgIxTu632^VL*S!0ikx8ZMpwI*a7jXyt97!(zNL^Q6Y2qk2rr2R7crGyBv|0iK!?E&_(Dj<%iO?$&GQpW0*;zev=Q(_25_h?;Ux z;@<+*)jMbPa+dDGDoT_=5Fr9LM;r4-9jDA9Q;0RPSC+~x?!K#;-r~h90_7`ZnZiw4 z!Wd6OPLSY(!lnh!$nSuJ;qasts^f=?6VvGG=*#%PP|=8KU{N?WFB*S-I!GHuSAvkr zwVN9pHirWoI>N;{`SF$r!;NH)oHh#~b^30y76l^`t~CJ_{r23$adA$5d_hFsnPfqJ zaN3yY7pGFu z1jg!u8FG%no<4Lgx z7momApyY#GcxwB8y5uOGyfGlaKPYT*3e(s-)s~hJT1+bum6cj|sI&i4DpOSq zJ*xNn5>67=NRi7J<*Cv%Yn?!0O%_Q~-K?}Q{dW0L=S0dtw0 zmFJ|ol0-*dM}^GBk;v%`mpVdHY~tn`PHKu?UE2a+KoxmRbF6IQ|p|EPR2wxC6EOBww=0%0EDjB;B8w-=1 z)0ZK#stVSj<31Q-+BAt(RjB|uhX*iqgSdO(;wK($9pPYShff8-<()1{L%zsM=vuEF z_6KNN^@<*Nc{HeA=2IB2D`UMpgK(a{NZu+hNv?{~XY!5U=wnl&SVm*GOc7$aX--|9 z@1+}Y;>WK780Ql5EigIHRWDL0XXNBJ!&MGiePK>-oOBi+iUze>gG<|U*!P)XcC3Ub zk7P1+xMxg>SrH*d%kjNJD_d%?N-|JU(cavrX_{z+7oYp#yTrz+YPXJ<$T3DMQaEZy zWt3)?HY$Ntf>$MT)lQOrrI+;LkStR&bO4af%E5y_jfoOD%|$ok#C1lNSWabFOjyyw zR{`{stb-Hc}R;p&^7+PSeMw%@@I|CH7k^C?q0WU;|_JcXCJLct!X104c3MNZF zUjdZs?1Q9%MKS5lBJlHlml8`T)GyEG3Uj4DNI+X*RG)#8w7#Vp^PVar{8X5iyYS0% zwrS1URPBFbq@&S_(A~Y@QlVw4uvDSmvzH3K8fhBIYaa2`SHmD*!~*37`z+hMU}Wnl z!Vx*9POaGLjm>{x2jhw~q^1L|(w!j(#s&61(ey?cUz%ZjG zq`Jk{2d6_UEu0yGQQX{2nz%z7ONqZ$y|{LH zNPz@$=-VAvo-LeI@d>96fBQ9U9%?>#dfM_-zvwCHR9&-HLO4DDe7u5|UtM{+=s(BF z9NLZ-7J^g0-i&n0SK<0Yw*egS3GWv--hZy<%(fkz@s;ycU@=czk-rZ> z$NqT$a{{vv1Q&m(kiQQu?wNL0+;?xM>9V}|!qKwZH3VNK-dA0AtH^k1hv^ciAe9re zG7guQpD56FmBnZ!TpllUl zb|9GJ##z2;C|GH;yvv7@v_5B^5BSYQ&FrLZ3Va_WpiC=_wET1`Ot|su7yCYn$lXxP>>vAN%Dfy_B{)UzJD=@e(@;eypx^ttrZb6}>k7w96^O@iCe zokZfiXu>=qu@ijs#Yyv<;*#>g`TM972qmYSU|=VKSJ|>VniQHS^J2{Hq4mrAf4*uz zXryqXUAlb1m8 zh~^B0Cpjd`MeSA-+8nOT=p_}T2`qMLur?MQ6_)psQju1ov(_|5YtRW z>mysG<<3-1@laM8d#7_s>74$O93Oe;9&*aPpjciUM2j(>OfHw zUsZ*Wz(ola=44>`5PS2-u&~e`Qs}dzVPSF2VE3=?1LKXn7JH}7xS;9fF>6WeLeMVr zQ)FDo=f0$|iWv78)I*`MT_Bz64JCDhuD#HZ+u>pV=0Tys=flJQ)q^`-tb&fqCWXor z?=%Y!jca+Vf#S~>82gJ`zn6S!2B!bPOaJX|CCVZhQK^&T_(SQ9;64N$oC+)=p*gn2QbC`IX}C5j^04;A0A9*cJgTnD}a3Q z-Fven)T(ts+xpU~uSS(!Q`Sp^6Bqsx!U3KBEt=gh@hsg$*@XN_uWYZ0Hw^ zyf`oSSWIqU8IYGrhiYd0pE>r)4u+PmT{Sjy7}U*YMtBDAGp16PMg9F(B=t!ItF)ED zmP*jGq?ogF;|j1Nr^QP%otUCLgGZ9qP65ZScxU}fBDlXyd{t-^mFI-rL1`_c#1myz znXL3VI6)}WFG12adodLl0`-6gtpnRTTFP4ou~Zdq_W$f*okuMk-{w39Jr6UwT;oXMyz$r$UM{0ULGS{^sZXuwIOZIVDq@zbxYl*whPO_v9K}8QYgc|Tl}x6IYeO>zE02KvmU zKNd9n*mW~!i$b);S@g0d$H2$r&o_b>6|$KPTDiCA+0_o$DAiGINp)8Lx?XM+*K^`X z2i;;(I~pDTgBud(N)A79ES>Kna|u4+nr-G$Gx*ff+0TJ>%3DuZJ3gSPIZOU3uxI3j zk?Nn88Bj4oJb`{S+DPxd4axk6`T0En0Jv}-I|Bd!t{!6gQoh_8 zuxSVcP`FK){I$L};Ij+yc&hA$zxuA!Yy54@UA%K8&NdTn%x>Hzczd7H&wc3pL50l1 zsLv~HrXDZg9A8ks0kolq1j3l{a4#B2tUEq(4;j`)g@M&Kwo&EXV4Xfs$#VI=X6IQh z=Bc|8_gUO*Nq0>8BJy$>;x8ro3%N^T*fJ8ZF;M(>E)jo1{v8Zx`GKShj=ei1A3vYh zII`#H7XYZkTrBaJgN{=(@=3m)9kmT23j%Z*&7y&_JLn9-j`r72dBSMk^>8UKCqud9 zkS>z6P?6A}+Y0sBkvngJ*FaY=C|o5`r_GxNq&c!?g=(p|6-i$-+4%S?QdI+1G8vum zcfX;!G^$G?Zm!f`X1a3_eUtiHsS`4lfssK@vHa?J{!f?*GIA4xp!$GcthSzOs|ddj zXvMPjoV6mXl1ci0uEaHmU zVyRr3)M&b{Rpy+OYoeK%U`@y|aK@Iidc`ZpnMA^BW$bIjWs}R&Q7UywWXqu!f-ig} zXfsIYxw@QI_K(5dTAfpWbzl{1{-9t-42pvRG5)!VVA^)mN(3$o2AqZh0l*crz;XG5 zs4yt|=1^Ag0~z1|01v=w3xVZn3x)D^TR(iK+WI4V-8KNW$hLvvVz&*JoS`imtY)>r zz_+L?2mq+sfk}7%FsT+UGfZb^)1VCr9~YNNiYmB{YPwk~k8Ci#L>sHj%9h32cT0m7 z+6qR8lH0g8IUR?oHg-<^b~V_nS~TI*CN!&62d+%l4$70Ih7%{sGq?&B85&SsS*~T5 zblgO(O*OU46O*u|%8*8xsaIO#b658wpY3a(a8-WyRE31L2%h6U1 qu+*7?(WtF&avlXOxK^!@(Qc=*+%CWW+;mbK0AD5k+df}=yBGix2PK>U literal 0 HcmV?d00001 diff --git a/fonts/vendor/jost/jost-v4-latin-700.woff b/fonts/vendor/jost/jost-v4-latin-700.woff new file mode 100644 index 0000000000000000000000000000000000000000..57390f51a05ce6ab203d4f6c8d2392cee78bbd36 GIT binary patch literal 12928 zcmYkj18^nX_XT>B+}O6QiS1-!dt%%6#I|kQ&cw#VwryvEm+$xf_3EAK)m?k_>b=kH zI_Fg1+v~c?i-`e10N;(-4}kRFQOo^1{vY#S^#5<-KSjj=01)eM4ǘCRuI$SZ$y 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 literal 0 HcmV?d00001 diff --git a/fonts/vendor/jost/jost-v4-latin-700.woff2 b/fonts/vendor/jost/jost-v4-latin-700.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..584073a8016f1f1c9ffe31731b8e812e70bda892 GIT binary patch literal 9820 zcmV-iCZpMRPew8T0RR91047`j5C8xG09-r(044qa0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/fonts/vendor/jost/jost-v4-latin-700italic.woff b/fonts/vendor/jost/jost-v4-latin-700italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..e23eedf07e15aa6daedd946c423c94fac68f7c92 GIT binary patch literal 14616 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 Caq#>A literal 0 HcmV?d00001 diff --git a/fonts/vendor/jost/jost-v4-latin-700italic.woff2 b/fonts/vendor/jost/jost-v4-latin-700italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e56d892a6eb450ed81d0577e79433782bb36befd GIT binary patch literal 11112 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 literal 0 HcmV?d00001 diff --git a/fonts/vendor/jost/jost-v4-latin-italic.woff b/fonts/vendor/jost/jost-v4-latin-italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..5dcd1115937e539d6c6674d60a5a8ecfb738dc85 GIT binary patch literal 13580 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 O64P~0YTp1=c=jh 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ΝZaJ#%SsZX@OH(OnaiLSRQF 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 M1^EiD1&;>&Kl+Q0_W%F@ literal 0 HcmV?d00001 diff --git a/fonts/vendor/jost/jost-v4-latin-regular.woff2 b/fonts/vendor/jost/jost-v4-latin-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7f0bf7556b28d399ec9a6e3cd8864b0ea2bc8668 GIT binary patch literal 8864 zcmV;RB46EiPew8T0RR9103x6O5C8xG09+6N03tvD0RR9100000000000000000000 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ı^5Kw1%nDc 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 literal 0 HcmV?d00001 diff --git a/img/tutorials/selection_sort.png b/img/tutorials/selection_sort.png new file mode 100644 index 0000000000000000000000000000000000000000..e6e15572ca2c9bb882f76d559bb41bde676ddfe3 GIT binary patch literal 112840 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 literal 0 HcmV?d00001 diff --git a/img/tutorials/sum_odd.png b/img/tutorials/sum_odd.png new file mode 100644 index 0000000000000000000000000000000000000000..00cf9b321e6afe8cb6f135fbd14375c2f638b233 GIT binary patch literal 37265 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 literal 0 HcmV?d00001 diff --git a/img/warmup/classroom_permission.png b/img/warmup/classroom_permission.png new file mode 100644 index 0000000000000000000000000000000000000000..d23ba32aaf0b85c3f21cad5139010dad41825be8 GIT binary patch literal 40139 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 z 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 literal 0 HcmV?d00001 diff --git a/img/warmup/week01_assignmt_join.png b/img/warmup/week01_assignmt_join.png new file mode 100644 index 0000000000000000000000000000000000000000..77be558a8bac6d96bc97c704217f40082b4164db GIT binary patch literal 61563 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%0Dd-(V$!*AP>r^idBh0T$7|1 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

CIuzh*C4toI!1Qq&GnSM0(M`71NE z87S4>k5@-Gsrm_7Sy^B^Hf?%rcAFKIxSQ<|;)5)sM$PlX`cQ5iI`p%Z`+2F%GC_%5 z-g(8JqBN@>1)e^*Maw5Ke~9!Hn~=)cs_r#xCR@IO?NpW<^Fv&CTAI@4s!D4z4#y1M zBu_XgjN7dzO{jgBCgTzOy0{loeDF_ zw$Lt3ZZvV$R&|cQnflP__Mokr1rECFQWI6xIbDZzK~?@{&ZjaZYMIQHW>>u@UA1ym zTU*TCo?H<~+ZIm≧@S2`m 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+
+ + + + +
+
+
+ + + +
+

CS202 Computer Systems - project - 2024

+

Computer Science and Communication Systems

+ +
+
+
+ +
+ +
+
+
+ + 6 + +
+
+ 25/03/2024 +
+
+ +
+
+ +
+
+
+ + 7 + +
+
+ 10/04/2024 +
+
+ +
+
+ +
+
+
+ + 8 + +
+
+ 17/04/2024 +
+
+ +
+
+ +
+
+
+ + 9 + +
+
+ 24/04/2024 +
+
+ +
+
+ +
+
+
+ + 10 + +
+
+ 01/05/2024 +
+
+
+

Step 4: read and insert

+

first deadline (Sunday 05/05 23:59): steps 1 to 3 (weeks 7, 8 and 9)

+ + +
+
+
+ +
+
+
+ + 11 + +
+
+ 08/05/2024 +
+
+ +
+
+ +
+
+
+ + 12 + +
+
+ 15/05/2023 +
+
+ +
+
+ +
+
+
+ + 13 + +
+
+ 22/05/2023 +
+
+ +
+
+ +
+
+
+ + 14 + +
+
+ 29/05/2023 +
+
+
+

Project finalization and delivery

+

second deadline (Sunday 02/06 23:59): the whole project

+ + +
+
+
+ + +
+
+
+
+
+
+
+ +
+
+
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/index.js b/index.js new file mode 100644 index 0000000..8c87d5f --- /dev/null +++ b/index.js @@ -0,0 +1,146 @@ +var suggestions = document.getElementById('suggestions'); +var userinput = document.getElementById('userinput'); + +document.addEventListener('keydown', inputFocus); + +function inputFocus(e) { + + if (e.keyCode === 191 ) { + e.preventDefault(); + userinput.focus(); + } + + if (e.keyCode === 27 ) { + userinput.blur(); + suggestions.classList.add('d-none'); + } + +} + +document.addEventListener('click', function(event) { + + var isClickInsideElement = suggestions.contains(event.target); + + if (!isClickInsideElement) { + suggestions.classList.add('d-none'); + } + +}); + +/* +Source: + - https://dev.to/shubhamprakash/trap-focus-using-javascript-6a3 +*/ + +document.addEventListener('keydown',suggestionFocus); + +function suggestionFocus(e){ + + const focusableSuggestions= suggestions.querySelectorAll('a'); + const focusable= [...focusableSuggestions]; + const index = focusable.indexOf(document.activeElement); + + let nextIndex = 0; + + if (e.keyCode === 38) { + e.preventDefault(); + nextIndex= index > 0 ? index-1 : 0; + focusableSuggestions[nextIndex].focus(); + } + else if (e.keyCode === 40) { + e.preventDefault(); + nextIndex= index+1 < focusable.length ? index+1 : index; + focusableSuggestions[nextIndex].focus(); + } + +} + + +/* +Source: + - https://github.com/nextapps-de/flexsearch#index-documents-field-search + - https://raw.githack.com/nextapps-de/flexsearch/master/demo/autocomplete.html +*/ + +(function(){ + + var index = new FlexSearch({ + preset: 'score', + cache: true, + doc: { + id: 'id', + field: [ + 'title', + 'description', + 'content', + ], + store: [ + 'href', + 'title', + 'description', + ], + }, + }); + + var docs = [ + {{ range $index, $page := (where .Site.Pages "Section" "docs") -}} + { + id: {{ $index }}, + href: "{{ .RelPermalink | relURL }}", + title: {{ .Title | jsonify }}, + description: {{ .Params.description | jsonify }}, + content: {{ .Content | jsonify }} + }, + {{ end -}} + ]; + + index.add(docs); + + userinput.addEventListener('input', show_results, true); + suggestions.addEventListener('click', accept_suggestion, true); + + function show_results(){ + + var value = this.value; + var results = index.search(value, 5); + var entry, childs = suggestions.childNodes; + var i = 0, len = results.length; + + suggestions.classList.remove('d-none'); + + results.forEach(function(page) { + + entry = document.createElement('div'); + + entry.innerHTML = ''; + + a = entry.querySelector('a'), + t = entry.querySelector('span:first-child'), + d = entry.querySelector('span:nth-child(2)'); + + a.href = page.href; + t.textContent = page.title; + d.textContent = page.description; + + suggestions.appendChild(entry); + + }); + + while(childs.length > len){ + + suggestions.removeChild(childs[i]) + } + + } + + function accept_suggestion(){ + + while(suggestions.lastChild){ + + suggestions.removeChild(suggestions.lastChild); + } + + return false; + } + +}()); diff --git a/js/main.js b/js/main.js new file mode 100644 index 0000000..2fbc228 --- /dev/null +++ b/js/main.js @@ -0,0 +1,14 @@ +// Set darkmode +document.getElementById('mode').addEventListener('click', () => { + + document.body.classList.toggle('dark'); + localStorage.setItem('theme', document.body.classList.contains('dark') ? 'dark' : 'light'); + +}); + +// enforce local storage setting but also fallback to user-agent preferences +if (localStorage.getItem('theme') === 'dark' || (!localStorage.getItem('theme') && window.matchMedia("(prefers-color-scheme: dark)").matches)) { + + document.body.classList.add('dark'); + +} diff --git a/js/search.js b/js/search.js new file mode 100644 index 0000000..7c5c745 --- /dev/null +++ b/js/search.js @@ -0,0 +1,317 @@ +var suggestions = document.getElementById('suggestions'); +var userinput = document.getElementById('userinput'); + +document.addEventListener('keydown', inputFocus); + +function inputFocus(e) { + + if (e.keyCode === 191 + && document.activeElement.tagName !== "INPUT" + && document.activeElement.tagName !== "TEXTAREA") { + e.preventDefault(); + userinput.focus(); + } + + if (e.keyCode === 27 ) { + userinput.blur(); + suggestions.classList.add('d-none'); + } + +} + +document.addEventListener('click', function(event) { + + var isClickInsideElement = suggestions.contains(event.target); + + if (!isClickInsideElement) { + suggestions.classList.add('d-none'); + } + +}); + +/* +Source: + - https://dev.to/shubhamprakash/trap-focus-using-javascript-6a3 +*/ + +document.addEventListener('keydown',suggestionFocus); + +function suggestionFocus(e){ + const focusableSuggestions= suggestions.querySelectorAll('a'); + if (suggestions.classList.contains('d-none') + || focusableSuggestions.length === 0) { + return; + } + const focusable= [...focusableSuggestions]; + const index = focusable.indexOf(document.activeElement); + + let nextIndex = 0; + + if (e.keyCode === 38) { + e.preventDefault(); + nextIndex= index > 0 ? index-1 : 0; + focusableSuggestions[nextIndex].focus(); + } + else if (e.keyCode === 40) { + e.preventDefault(); + nextIndex= index+1 < focusable.length ? index+1 : index; + focusableSuggestions[nextIndex].focus(); + } + +} + +/* +Source: + - https://github.com/nextapps-de/flexsearch#index-documents-field-search + - https://raw.githack.com/nextapps-de/flexsearch/master/demo/autocomplete.html + - http://elasticlunr.com/ + - https://github.com/getzola/zola/blob/master/docs/static/search.js +*/ +(function(){ + var index = elasticlunr.Index.load(window.searchIndex); + userinput.addEventListener('input', show_results, true); + suggestions.addEventListener('click', accept_suggestion, true); + + function show_results(){ + var value = this.value.trim(); + var options = { + bool: "OR", + fields: { + title: {boost: 2}, + body: {boost: 1}, + } + }; + var results = index.search(value, options); + + var entry, childs = suggestions.childNodes; + var i = 0, len = results.length; + var items = value.split(/\s+/); + suggestions.classList.remove('d-none'); + + results.forEach(function(page) { + if (page.doc.body !== '') { + entry = document.createElement('div'); + + entry.innerHTML = ''; + + a = entry.querySelector('a'), + t = entry.querySelector('span:first-child'), + d = entry.querySelector('span:nth-child(2)'); + a.href = page.ref; + t.textContent = page.doc.title; + d.innerHTML = makeTeaser(page.doc.body, items); + + suggestions.appendChild(entry); + } + }); + + while(childs.length > len){ + suggestions.removeChild(childs[i]) + } + + } + + function accept_suggestion(){ + + while(suggestions.lastChild){ + + suggestions.removeChild(suggestions.lastChild); + } + + return false; + } + + // Taken from mdbook + // The strategy is as follows: + // First, assign a value to each word in the document: + // Words that correspond to search terms (stemmer aware): 40 + // Normal words: 2 + // First word in a sentence: 8 + // Then use a sliding window with a constant number of words and count the + // sum of the values of the words within the window. Then use the window that got the + // maximum sum. If there are multiple maximas, then get the last one. + // Enclose the terms in . + function makeTeaser(body, terms) { + var TERM_WEIGHT = 40; + var NORMAL_WORD_WEIGHT = 2; + var FIRST_WORD_WEIGHT = 8; + var TEASER_MAX_WORDS = 30; + + var stemmedTerms = terms.map(function (w) { + return elasticlunr.stemmer(w.toLowerCase()); + }); + var termFound = false; + var index = 0; + var weighted = []; // contains elements of ["word", weight, index_in_document] + + // split in sentences, then words + var sentences = body.toLowerCase().split(". "); + for (var i in sentences) { + var words = sentences[i].split(/[\s\n]/); + var value = FIRST_WORD_WEIGHT; + for (var j in words) { + + var word = words[j]; + + if (word.length > 0) { + for (var k in stemmedTerms) { + if (elasticlunr.stemmer(word).startsWith(stemmedTerms[k])) { + value = TERM_WEIGHT; + termFound = true; + } + } + weighted.push([word, value, index]); + value = NORMAL_WORD_WEIGHT; + } + + index += word.length; + index += 1; // ' ' or '.' if last word in sentence + } + + index += 1; // because we split at a two-char boundary '. ' + } + + if (weighted.length === 0) { + if (body.length !== undefined && body.length > TEASER_MAX_WORDS * 10) { + return body.substring(0, TEASER_MAX_WORDS * 10) + '...'; + } else { + return body; + } + } + + var windowWeights = []; + var windowSize = Math.min(weighted.length, TEASER_MAX_WORDS); + // We add a window with all the weights first + var curSum = 0; + for (var i = 0; i < windowSize; i++) { + curSum += weighted[i][1]; + } + windowWeights.push(curSum); + + for (var i = 0; i < weighted.length - windowSize; i++) { + curSum -= weighted[i][1]; + curSum += weighted[i + windowSize][1]; + windowWeights.push(curSum); + } + + // If we didn't find the term, just pick the first window + var maxSumIndex = 0; + if (termFound) { + var maxFound = 0; + // backwards + for (var i = windowWeights.length - 1; i >= 0; i--) { + if (windowWeights[i] > maxFound) { + maxFound = windowWeights[i]; + maxSumIndex = i; + } + } + } + + var teaser = []; + var startIndex = weighted[maxSumIndex][2]; + for (var i = maxSumIndex; i < maxSumIndex + windowSize; i++) { + var word = weighted[i]; + if (startIndex < word[2]) { + // missing text from index to start of `word` + teaser.push(body.substring(startIndex, word[2])); + startIndex = word[2]; + } + + // add around search terms + if (word[1] === TERM_WEIGHT) { + teaser.push(""); + } + + startIndex = word[2] + word[0].length; + // Check the string is ascii characters or not + var re = /^[\x00-\xff]+$/ + if (word[1] !== TERM_WEIGHT && word[0].length >= 12 && !re.test(word[0])) { + // If the string's length is too long, it maybe a Chinese/Japance/Korean article + // if using substring method directly, it may occur error codes on emoji chars + var strBefor = body.substring(word[2], startIndex); + var strAfter = substringByByte(strBefor, 12); + teaser.push(strAfter); + } else { + teaser.push(body.substring(word[2], startIndex)); + } + + if (word[1] === TERM_WEIGHT) { + teaser.push(""); + } + } + teaser.push("…"); + return teaser.join(""); + } +}()); + + +// Get substring by bytes +// If using JavaScript inline substring method, it will return error codes +// Source: https://www.52pojie.cn/thread-1059814-1-1.html +function substringByByte(str, maxLength) { + var result = ""; + var flag = false; + var len = 0; + var length = 0; + var length2 = 0; + for (var i = 0; i < str.length; i++) { + var code = str.codePointAt(i).toString(16); + if (code.length > 4) { + i++; + if ((i + 1) < str.length) { + flag = str.codePointAt(i + 1).toString(16) == "200d"; + } + } + if (flag) { + len += getByteByHex(code); + if (i == str.length - 1) { + length += len; + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + } else { + break + } + } + } else { + if (len != 0) { + length += len; + length += getByteByHex(code); + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + length2 = i + 1; + } else { + break + } + len = 0; + continue; + } + length += getByteByHex(code); + if (length <= maxLength) { + if (code.length <= 4) { + result += str[i] + } else { + result += str[i - 1] + str[i] + } + length2 = i + 1; + } else { + break + } + } + } + return result; +} + +// Get the string bytes from binary +function getByteByBinary(binaryCode) { + // Binary system, starts with `0b` in ES6 + // Octal number system, starts with `0` in ES5 and starts with `0o` in ES6 + // Hexadecimal, starts with `0x` in both ES5 and ES6 + var byteLengthDatas = [0, 1, 2, 3, 4]; + var len = byteLengthDatas[Math.ceil(binaryCode.length / 8)]; + return len; +} + +// Get the string bytes from hexadecimal +function getByteByHex(hexCode) { + return getByteByBinary(parseInt(hexCode, 16).toString(2)); +} diff --git a/logo-doks.png b/logo-doks.png new file mode 100644 index 0000000000000000000000000000000000000000..74bdfb9da9ca89b465ac215d19b0cd7141788dd4 GIT binary patch literal 20786 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:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:400}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled,.comment-list{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{width:100%;padding-right:var(--bs-gutter-x, 24px);padding-left:var(--bs-gutter-x, 24px);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container-sm,.container{max-width:540px}}@media (min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media (min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1240px}}@media (min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}.row{--bs-gutter-x: 48px;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y)*-1);margin-right:calc(var(--bs-gutter-x)/-2);margin-left:calc(var(--bs-gutter-x)/-2)}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x)/2);padding-left:calc(var(--bs-gutter-x)/2);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:6.25%}.col-2{flex:0 0 auto;width:12.5%}.col-3{flex:0 0 auto;width:18.75%}.col-4{flex:0 0 auto;width:25%}.col-5{flex:0 0 auto;width:31.25%}.col-6{flex:0 0 auto;width:37.5%}.col-7{flex:0 0 auto;width:43.75%}.col-8{flex:0 0 auto;width:50%}.col-9{flex:0 0 auto;width:56.25%}.col-10{flex:0 0 auto;width:62.5%}.col-11{flex:0 0 auto;width:68.75%}.col-12{flex:0 0 auto;width:75%}.col-13{flex:0 0 auto;width:81.25%}.col-14{flex:0 0 auto;width:87.5%}.col-15{flex:0 0 auto;width:93.75%}.col-16{flex:0 0 auto;width:100%}.offset-1{margin-left:6.25%}.offset-2{margin-left:12.5%}.offset-3{margin-left:18.75%}.offset-4{margin-left:25%}.offset-5{margin-left:31.25%}.offset-6{margin-left:37.5%}.offset-7{margin-left:43.75%}.offset-8{margin-left:50%}.offset-9{margin-left:56.25%}.offset-10{margin-left:62.5%}.offset-11{margin-left:68.75%}.offset-12{margin-left:75%}.offset-13{margin-left:81.25%}.offset-14{margin-left:87.5%}.offset-15{margin-left:93.75%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:6.25%}.col-sm-2{flex:0 0 auto;width:12.5%}.col-sm-3{flex:0 0 auto;width:18.75%}.col-sm-4{flex:0 0 auto;width:25%}.col-sm-5{flex:0 0 auto;width:31.25%}.col-sm-6{flex:0 0 auto;width:37.5%}.col-sm-7{flex:0 0 auto;width:43.75%}.col-sm-8{flex:0 0 auto;width:50%}.col-sm-9{flex:0 0 auto;width:56.25%}.col-sm-10{flex:0 0 auto;width:62.5%}.col-sm-11{flex:0 0 auto;width:68.75%}.col-sm-12{flex:0 0 auto;width:75%}.col-sm-13{flex:0 0 auto;width:81.25%}.col-sm-14{flex:0 0 auto;width:87.5%}.col-sm-15{flex:0 0 auto;width:93.75%}.col-sm-16{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:6.25%}.offset-sm-2{margin-left:12.5%}.offset-sm-3{margin-left:18.75%}.offset-sm-4{margin-left:25%}.offset-sm-5{margin-left:31.25%}.offset-sm-6{margin-left:37.5%}.offset-sm-7{margin-left:43.75%}.offset-sm-8{margin-left:50%}.offset-sm-9{margin-left:56.25%}.offset-sm-10{margin-left:62.5%}.offset-sm-11{margin-left:68.75%}.offset-sm-12{margin-left:75%}.offset-sm-13{margin-left:81.25%}.offset-sm-14{margin-left:87.5%}.offset-sm-15{margin-left:93.75%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:6.25%}.col-md-2{flex:0 0 auto;width:12.5%}.col-md-3{flex:0 0 auto;width:18.75%}.col-md-4{flex:0 0 auto;width:25%}.col-md-5{flex:0 0 auto;width:31.25%}.col-md-6{flex:0 0 auto;width:37.5%}.col-md-7{flex:0 0 auto;width:43.75%}.col-md-8{flex:0 0 auto;width:50%}.col-md-9{flex:0 0 auto;width:56.25%}.col-md-10{flex:0 0 auto;width:62.5%}.col-md-11{flex:0 0 auto;width:68.75%}.col-md-12{flex:0 0 auto;width:75%}.col-md-13{flex:0 0 auto;width:81.25%}.col-md-14{flex:0 0 auto;width:87.5%}.col-md-15{flex:0 0 auto;width:93.75%}.col-md-16{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:6.25%}.offset-md-2{margin-left:12.5%}.offset-md-3{margin-left:18.75%}.offset-md-4{margin-left:25%}.offset-md-5{margin-left:31.25%}.offset-md-6{margin-left:37.5%}.offset-md-7{margin-left:43.75%}.offset-md-8{margin-left:50%}.offset-md-9{margin-left:56.25%}.offset-md-10{margin-left:62.5%}.offset-md-11{margin-left:68.75%}.offset-md-12{margin-left:75%}.offset-md-13{margin-left:81.25%}.offset-md-14{margin-left:87.5%}.offset-md-15{margin-left:93.75%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:6.25%}.col-lg-2{flex:0 0 auto;width:12.5%}.col-lg-3{flex:0 0 auto;width:18.75%}.col-lg-4{flex:0 0 auto;width:25%}.col-lg-5{flex:0 0 auto;width:31.25%}.col-lg-6{flex:0 0 auto;width:37.5%}.col-lg-7{flex:0 0 auto;width:43.75%}.col-lg-8{flex:0 0 auto;width:50%}.col-lg-9{flex:0 0 auto;width:56.25%}.col-lg-10{flex:0 0 auto;width:62.5%}.col-lg-11{flex:0 0 auto;width:68.75%}.col-lg-12{flex:0 0 auto;width:75%}.col-lg-13{flex:0 0 auto;width:81.25%}.col-lg-14{flex:0 0 auto;width:87.5%}.col-lg-15{flex:0 0 auto;width:93.75%}.col-lg-16{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:6.25%}.offset-lg-2{margin-left:12.5%}.offset-lg-3{margin-left:18.75%}.offset-lg-4{margin-left:25%}.offset-lg-5{margin-left:31.25%}.offset-lg-6{margin-left:37.5%}.offset-lg-7{margin-left:43.75%}.offset-lg-8{margin-left:50%}.offset-lg-9{margin-left:56.25%}.offset-lg-10{margin-left:62.5%}.offset-lg-11{margin-left:68.75%}.offset-lg-12{margin-left:75%}.offset-lg-13{margin-left:81.25%}.offset-lg-14{margin-left:87.5%}.offset-lg-15{margin-left:93.75%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:6.25%}.col-xl-2{flex:0 0 auto;width:12.5%}.col-xl-3{flex:0 0 auto;width:18.75%}.col-xl-4{flex:0 0 auto;width:25%}.col-xl-5{flex:0 0 auto;width:31.25%}.col-xl-6{flex:0 0 auto;width:37.5%}.col-xl-7{flex:0 0 auto;width:43.75%}.col-xl-8{flex:0 0 auto;width:50%}.col-xl-9{flex:0 0 auto;width:56.25%}.col-xl-10{flex:0 0 auto;width:62.5%}.col-xl-11{flex:0 0 auto;width:68.75%}.col-xl-12{flex:0 0 auto;width:75%}.col-xl-13{flex:0 0 auto;width:81.25%}.col-xl-14{flex:0 0 auto;width:87.5%}.col-xl-15{flex:0 0 auto;width:93.75%}.col-xl-16{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:6.25%}.offset-xl-2{margin-left:12.5%}.offset-xl-3{margin-left:18.75%}.offset-xl-4{margin-left:25%}.offset-xl-5{margin-left:31.25%}.offset-xl-6{margin-left:37.5%}.offset-xl-7{margin-left:43.75%}.offset-xl-8{margin-left:50%}.offset-xl-9{margin-left:56.25%}.offset-xl-10{margin-left:62.5%}.offset-xl-11{margin-left:68.75%}.offset-xl-12{margin-left:75%}.offset-xl-13{margin-left:81.25%}.offset-xl-14{margin-left:87.5%}.offset-xl-15{margin-left:93.75%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:6.25%}.col-xxl-2{flex:0 0 auto;width:12.5%}.col-xxl-3{flex:0 0 auto;width:18.75%}.col-xxl-4{flex:0 0 auto;width:25%}.col-xxl-5{flex:0 0 auto;width:31.25%}.col-xxl-6{flex:0 0 auto;width:37.5%}.col-xxl-7{flex:0 0 auto;width:43.75%}.col-xxl-8{flex:0 0 auto;width:50%}.col-xxl-9{flex:0 0 auto;width:56.25%}.col-xxl-10{flex:0 0 auto;width:62.5%}.col-xxl-11{flex:0 0 auto;width:68.75%}.col-xxl-12{flex:0 0 auto;width:75%}.col-xxl-13{flex:0 0 auto;width:81.25%}.col-xxl-14{flex:0 0 auto;width:87.5%}.col-xxl-15{flex:0 0 auto;width:93.75%}.col-xxl-16{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:6.25%}.offset-xxl-2{margin-left:12.5%}.offset-xxl-3{margin-left:18.75%}.offset-xxl-4{margin-left:25%}.offset-xxl-5{margin-left:31.25%}.offset-xxl-6{margin-left:37.5%}.offset-xxl-7{margin-left:43.75%}.offset-xxl-8{margin-left:50%}.offset-xxl-9{margin-left:56.25%}.offset-xxl-10{margin-left:62.5%}.offset-xxl-11{margin-left:68.75%}.offset-xxl-12{margin-left:75%}.offset-xxl-13{margin-left:81.25%}.offset-xxl-14{margin-left:87.5%}.offset-xxl-15{margin-left:93.75%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.table,table{--bs-table-bg: rgba(0,0,0,0);--bs-table-striped-color: #1d2d35;--bs-table-striped-bg: rgba(29,45,53,.05);--bs-table-active-color: #1d2d35;--bs-table-active-bg: rgba(29,45,53,.1);--bs-table-hover-color: #1d2d35;--bs-table-hover-bg: rgba(29,45,53,.075);width:100%;margin-bottom:1rem;color:#1d2d35;vertical-align:top;border-color:#e9ecef}.table>:not(caption)>*>*,table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody,table>tbody{vertical-align:inherit}.table>thead,table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*,table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg: var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg: var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg: var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg: #dfd5e7;--bs-table-striped-bg: #d5cdde;--bs-table-striped-color: #1d2d35;--bs-table-active-bg: #ccc4d5;--bs-table-active-color: #1d2d35;--bs-table-hover-bg: #d0c8da;--bs-table-hover-color: #1d2d35;color:#1d2d35;border-color:#ccc4d5}.table-secondary{--bs-table-bg: #e2e3e5;--bs-table-striped-bg: #d8dadc;--bs-table-striped-color: #1d2d35;--bs-table-active-bg: #ced1d3;--bs-table-active-color: #1d2d35;--bs-table-hover-bg: #d3d5d8;--bs-table-hover-color: #1d2d35;color:#1d2d35;border-color:#ced1d3}.table-success{--bs-table-bg: #d1e7dd;--bs-table-striped-bg: #c8ded5;--bs-table-striped-color: #1d2d35;--bs-table-active-bg: #bfd4cc;--bs-table-active-color: #1d2d35;--bs-table-hover-bg: #c4d9d0;--bs-table-hover-color: #1d2d35;color:#1d2d35;border-color:#bfd4cc}.table-info{--bs-table-bg: #cff4fc;--bs-table-striped-bg: #c6eaf2;--bs-table-striped-color: #1d2d35;--bs-table-active-bg: #bde0e8;--bs-table-active-color: #1d2d35;--bs-table-hover-bg: #c2e5ed;--bs-table-hover-color: #1d2d35;color:#1d2d35;border-color:#bde0e8}.table-warning{--bs-table-bg: #fff9cc;--bs-table-striped-bg: #f4efc4;--bs-table-striped-color: #1d2d35;--bs-table-active-bg: #e8e5bd;--bs-table-active-color: #1d2d35;--bs-table-hover-bg: #eeeac1;--bs-table-hover-color: #1d2d35;color:#1d2d35;border-color:#e8e5bd}.table-danger{--bs-table-bg: #f8d7da;--bs-table-striped-bg: #edcfd2;--bs-table-striped-color: #1d2d35;--bs-table-active-bg: #e2c6ca;--bs-table-active-color: #1d2d35;--bs-table-hover-bg: #e8cace;--bs-table-hover-color: #1d2d35;color:#1d2d35;border-color:#e2c6ca}.table-light{--bs-table-bg: #f8f9fa;--bs-table-striped-bg: #edeff0;--bs-table-striped-color: #1d2d35;--bs-table-active-bg: #e2e5e6;--bs-table-active-color: #1d2d35;--bs-table-hover-bg: #e8eaeb;--bs-table-hover-color: #1d2d35;color:#1d2d35;border-color:#e2e5e6}.table-dark,body.dark table{--bs-table-bg: #212529;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control,.search-form .search-field,.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#1d2d35;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control,.search-form .search-field,.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{transition:none}}.form-control[type=file],.search-form [type=file].search-field,.comment-form input[type=file][type=text],.comment-form input[type=file][type=email],.comment-form input[type=file][type=url],.comment-form textarea[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]),.search-form [type=file].search-field:not(:disabled):not([readonly]),.comment-form input[type=file][type=text]:not(:disabled):not([readonly]),.comment-form input[type=file][type=email]:not(:disabled):not([readonly]),.comment-form input[type=file][type=url]:not(:disabled):not([readonly]),.comment-form textarea[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus,.search-form .search-field:focus,.comment-form input[type=text]:focus,.comment-form input[type=email]:focus,.comment-form input[type=url]:focus,.comment-form textarea:focus{color:#1d2d35;background-color:#fff;border-color:#ae97c3;outline:0;box-shadow:0 0 0 .25rem rgba(93,47,134,.25)}.form-control::-webkit-date-and-time-value,.search-form .search-field::-webkit-date-and-time-value,.comment-form input[type=text]::-webkit-date-and-time-value,.comment-form input[type=email]::-webkit-date-and-time-value,.comment-form input[type=url]::-webkit-date-and-time-value,.comment-form textarea::-webkit-date-and-time-value{height:1.5em}.form-control::placeholder,.search-form .search-field::placeholder,.comment-form input[type=text]::placeholder,.comment-form input[type=email]::placeholder,.comment-form input[type=url]::placeholder,.comment-form textarea::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.search-form .search-field:disabled,.comment-form input[type=text]:disabled,.comment-form input[type=email]:disabled,.comment-form input[type=url]:disabled,.comment-form textarea:disabled,.form-control[readonly],.search-form [readonly].search-field,.comment-form input[readonly][type=text],.comment-form input[readonly][type=email],.comment-form input[readonly][type=url],.comment-form textarea[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button,.search-form .search-field::file-selector-button,.comment-form input[type=text]::file-selector-button,.comment-form input[type=email]::file-selector-button,.comment-form input[type=url]::file-selector-button,.comment-form textarea::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:#1d2d35;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button,.search-form .search-field::file-selector-button,.comment-form input[type=text]::file-selector-button,.comment-form input[type=email]::file-selector-button,.comment-form input[type=url]::file-selector-button,.comment-form textarea::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button,.search-form .search-field:hover:not(:disabled):not([readonly])::file-selector-button,.comment-form input[type=text]:hover:not(:disabled):not([readonly])::file-selector-button,.comment-form input[type=email]:hover:not(:disabled):not([readonly])::file-selector-button,.comment-form input[type=url]:hover:not(:disabled):not([readonly])::file-selector-button,.comment-form textarea:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button,.search-form .search-field::-webkit-file-upload-button,.comment-form input[type=text]::-webkit-file-upload-button,.comment-form input[type=email]::-webkit-file-upload-button,.comment-form input[type=url]::-webkit-file-upload-button,.comment-form textarea::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:#1d2d35;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button,.search-form .search-field::-webkit-file-upload-button,.comment-form input[type=text]::-webkit-file-upload-button,.comment-form input[type=email]::-webkit-file-upload-button,.comment-form input[type=url]::-webkit-file-upload-button,.comment-form textarea::-webkit-file-upload-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button,.search-form .search-field:hover:not(:disabled):not([readonly])::-webkit-file-upload-button,.comment-form input[type=text]:hover:not(:disabled):not([readonly])::-webkit-file-upload-button,.comment-form input[type=email]:hover:not(:disabled):not([readonly])::-webkit-file-upload-button,.comment-form input[type=url]:hover:not(:disabled):not([readonly])::-webkit-file-upload-button,.comment-form textarea:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#1d2d35;background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control,.search-form textarea.search-field,.comment-form textarea{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{max-width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#1d2d35;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;appearance:none}.form-select:focus{border-color:#ae97c3;outline:0;box-shadow:0 0 0 .25rem rgba(93,47,134,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 #1d2d35}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);appearance:none;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#ae97c3;outline:0;box-shadow:0 0 0 .25rem rgba(93,47,134,.25)}.form-check-input:checked{background-color:#5d2f86;border-color:#5d2f86}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#5d2f86;border-color:#5d2f86;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280,0,0,.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ae97c3'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.search-form .btn-check[disabled]+.search-submit,.comment-form .btn-check[disabled]+input[type=submit],.btn-check:disabled+.btn,.search-form .btn-check:disabled+.search-submit,.comment-form .btn-check:disabled+input[type=submit]{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:rgba(0,0,0,0);appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(93,47,134,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(93,47,134,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#5d2f86;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#cec1db}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#5d2f86;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#cec1db}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.search-form .form-floating>.search-field,.comment-form .form-floating>input[type=text],.comment-form .form-floating>input[type=email],.comment-form .form-floating>input[type=url],.comment-form .form-floating>textarea,.form-floating>.form-select{height:calc(3.5rem + 2px);padding:1rem .75rem}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control::placeholder,.search-form .form-floating>.search-field::placeholder,.comment-form .form-floating>input[type=text]::placeholder,.comment-form .form-floating>input[type=email]::placeholder,.comment-form .form-floating>input[type=url]::placeholder,.comment-form .form-floating>textarea::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.search-form .form-floating>.search-field:focus,.comment-form .form-floating>input[type=text]:focus,.comment-form .form-floating>input[type=email]:focus,.comment-form .form-floating>input[type=url]:focus,.comment-form .form-floating>textarea:focus,.form-floating>.form-control:not(:placeholder-shown),.search-form .form-floating>.search-field:not(:placeholder-shown),.comment-form .form-floating>input[type=text]:not(:placeholder-shown),.comment-form .form-floating>input[type=email]:not(:placeholder-shown),.comment-form .form-floating>input[type=url]:not(:placeholder-shown),.comment-form .form-floating>textarea:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.search-form .form-floating>.search-field:-webkit-autofill,.comment-form .form-floating>input[type=text]:-webkit-autofill,.comment-form .form-floating>input[type=email]:-webkit-autofill,.comment-form .form-floating>input[type=url]:-webkit-autofill,.comment-form .form-floating>textarea:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.search-form .form-floating>.search-field:focus~label,.comment-form .form-floating>input[type=text]:focus~label,.comment-form .form-floating>input[type=email]:focus~label,.comment-form .form-floating>input[type=url]:focus~label,.comment-form .form-floating>textarea:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.search-form .form-floating>.search-field:not(:placeholder-shown)~label,.comment-form .form-floating>input[type=text]:not(:placeholder-shown)~label,.comment-form .form-floating>input[type=email]:not(:placeholder-shown)~label,.comment-form .form-floating>input[type=url]:not(:placeholder-shown)~label,.comment-form .form-floating>textarea:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label,.search-form .form-floating>.search-field:-webkit-autofill~label,.comment-form .form-floating>input[type=text]:-webkit-autofill~label,.comment-form .form-floating>input[type=email]:-webkit-autofill~label,.comment-form .form-floating>input[type=url]:-webkit-autofill~label,.comment-form .form-floating>textarea:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.search-form .input-group>.search-field,.comment-form .input-group>input[type=text],.comment-form .input-group>input[type=email],.comment-form .input-group>input[type=url],.comment-form .input-group>textarea,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.search-form .input-group>.search-field:focus,.comment-form .input-group>input[type=text]:focus,.comment-form .input-group>input[type=email]:focus,.comment-form .input-group>input[type=url]:focus,.comment-form .input-group>textarea:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn,.input-group .search-form .search-submit,.search-form .input-group .search-submit,.input-group .comment-form input[type=submit],.comment-form .input-group input[type=submit]{position:relative;z-index:2}.input-group .btn:focus,.input-group .search-form .search-submit:focus,.search-form .input-group .search-submit:focus,.input-group .comment-form input[type=submit]:focus,.comment-form .input-group input[type=submit]:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#1d2d35;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.form-control,.search-form .input-group-lg>.search-field,.comment-form .input-group-lg>input[type=text],.comment-form .input-group-lg>input[type=email],.comment-form .input-group-lg>input[type=url],.comment-form .input-group-lg>textarea,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn,.search-form .input-group-lg>.search-submit,.comment-form .input-group-lg>input[type=submit]{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.form-control,.search-form .input-group-sm>.search-field,.comment-form .input-group-sm>input[type=text],.comment-form .input-group-sm>input[type=email],.comment-form .input-group-sm>input[type=url],.comment-form .input-group-sm>textarea,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn,.search-form .input-group-sm>.search-submit,.comment-form .input-group-sm>input[type=submit]{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.was-validated .search-form .search-field:valid,.search-form .was-validated .search-field:valid,.was-validated .comment-form input[type=text]:valid,.comment-form .was-validated input[type=text]:valid,.was-validated .comment-form input[type=email]:valid,.comment-form .was-validated input[type=email]:valid,.was-validated .comment-form input[type=url]:valid,.comment-form .was-validated input[type=url]:valid,.was-validated .comment-form textarea:valid,.comment-form .was-validated textarea:valid,.form-control.is-valid,.search-form .is-valid.search-field,.comment-form input.is-valid[type=text],.comment-form input.is-valid[type=email],.comment-form input.is-valid[type=url],.comment-form textarea.is-valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.was-validated .search-form .search-field:valid:focus,.search-form .was-validated .search-field:valid:focus,.was-validated .comment-form input[type=text]:valid:focus,.comment-form .was-validated input[type=text]:valid:focus,.was-validated .comment-form input[type=email]:valid:focus,.comment-form .was-validated input[type=email]:valid:focus,.was-validated .comment-form input[type=url]:valid:focus,.comment-form .was-validated input[type=url]:valid:focus,.was-validated .comment-form textarea:valid:focus,.comment-form .was-validated textarea:valid:focus,.form-control.is-valid:focus,.search-form .is-valid.search-field:focus,.comment-form input.is-valid[type=text]:focus,.comment-form input.is-valid[type=email]:focus,.comment-form input.is-valid[type=url]:focus,.comment-form textarea.is-valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,.was-validated .search-form textarea.search-field:valid,.search-form .was-validated textarea.search-field:valid,.was-validated .comment-form textarea:valid,.comment-form .was-validated textarea:valid,textarea.form-control.is-valid,.search-form textarea.is-valid.search-field,.comment-form textarea.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#198754;padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#198754}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#198754}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group .form-control:valid,.was-validated .input-group .search-form .search-field:valid,.search-form .was-validated .input-group .search-field:valid,.was-validated .input-group .comment-form input[type=text]:valid,.comment-form .was-validated .input-group input[type=text]:valid,.was-validated .input-group .comment-form input[type=email]:valid,.comment-form .was-validated .input-group input[type=email]:valid,.was-validated .input-group .comment-form input[type=url]:valid,.comment-form .was-validated .input-group input[type=url]:valid,.was-validated .input-group .comment-form textarea:valid,.comment-form .was-validated .input-group textarea:valid,.input-group .form-control.is-valid,.input-group .search-form .is-valid.search-field,.search-form .input-group .is-valid.search-field,.input-group .comment-form input.is-valid[type=text],.comment-form .input-group input.is-valid[type=text],.input-group .comment-form input.is-valid[type=email],.comment-form .input-group input.is-valid[type=email],.input-group .comment-form input.is-valid[type=url],.comment-form .input-group input.is-valid[type=url],.input-group .comment-form textarea.is-valid,.comment-form .input-group textarea.is-valid,.was-validated .input-group .form-select:valid,.input-group .form-select.is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.was-validated .search-form .search-field:invalid,.search-form .was-validated .search-field:invalid,.was-validated .comment-form input[type=text]:invalid,.comment-form .was-validated input[type=text]:invalid,.was-validated .comment-form input[type=email]:invalid,.comment-form .was-validated input[type=email]:invalid,.was-validated .comment-form input[type=url]:invalid,.comment-form .was-validated input[type=url]:invalid,.was-validated .comment-form textarea:invalid,.comment-form .was-validated textarea:invalid,.form-control.is-invalid,.search-form .is-invalid.search-field,.comment-form input.is-invalid[type=text],.comment-form input.is-invalid[type=email],.comment-form input.is-invalid[type=url],.comment-form textarea.is-invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.was-validated .search-form .search-field:invalid:focus,.search-form .was-validated .search-field:invalid:focus,.was-validated .comment-form input[type=text]:invalid:focus,.comment-form .was-validated input[type=text]:invalid:focus,.was-validated .comment-form input[type=email]:invalid:focus,.comment-form .was-validated input[type=email]:invalid:focus,.was-validated .comment-form input[type=url]:invalid:focus,.comment-form .was-validated input[type=url]:invalid:focus,.was-validated .comment-form textarea:invalid:focus,.comment-form .was-validated textarea:invalid:focus,.form-control.is-invalid:focus,.search-form .is-invalid.search-field:focus,.comment-form input.is-invalid[type=text]:focus,.comment-form input.is-invalid[type=email]:focus,.comment-form input.is-invalid[type=url]:focus,.comment-form textarea.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,.was-validated .search-form textarea.search-field:invalid,.search-form .was-validated textarea.search-field:invalid,.was-validated .comment-form textarea:invalid,.comment-form .was-validated textarea:invalid,textarea.form-control.is-invalid,.search-form textarea.is-invalid.search-field,.comment-form textarea.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#dc3545;padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#dc3545}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#dc3545}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group .form-control:invalid,.was-validated .input-group .search-form .search-field:invalid,.search-form .was-validated .input-group .search-field:invalid,.was-validated .input-group .comment-form input[type=text]:invalid,.comment-form .was-validated .input-group input[type=text]:invalid,.was-validated .input-group .comment-form input[type=email]:invalid,.comment-form .was-validated .input-group input[type=email]:invalid,.was-validated .input-group .comment-form input[type=url]:invalid,.comment-form .was-validated .input-group input[type=url]:invalid,.was-validated .input-group .comment-form textarea:invalid,.comment-form .was-validated .input-group textarea:invalid,.input-group .form-control.is-invalid,.input-group .search-form .is-invalid.search-field,.search-form .input-group .is-invalid.search-field,.input-group .comment-form input.is-invalid[type=text],.comment-form .input-group input.is-invalid[type=text],.input-group .comment-form input.is-invalid[type=email],.comment-form .input-group input.is-invalid[type=email],.input-group .comment-form input.is-invalid[type=url],.comment-form .input-group input.is-invalid[type=url],.input-group .comment-form textarea.is-invalid,.comment-form .input-group textarea.is-invalid,.was-validated .input-group .form-select:invalid,.input-group .form-select.is-invalid{z-index:3}.btn,.search-form .search-submit,.comment-form input[type=submit]{display:inline-block;font-weight:400;line-height:1.5;color:#1d2d35;text-align:center;vertical-align:middle;cursor:pointer;user-select:none;background-color:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn,.search-form .search-submit,.comment-form input[type=submit]{transition:none}}.btn:hover,.search-form .search-submit:hover,.comment-form input[type=submit]:hover{color:#1d2d35}.btn-check:focus+.btn,.search-form .btn-check:focus+.search-submit,.comment-form .btn-check:focus+input[type=submit],.btn:focus,.search-form .search-submit:focus,.comment-form input[type=submit]:focus{outline:0;box-shadow:0 0 0 .25rem rgba(93,47,134,.25)}.btn:disabled,.search-form .search-submit:disabled,.comment-form input[type=submit]:disabled,.btn.disabled,.search-form .disabled.search-submit,.comment-form input.disabled[type=submit],fieldset:disabled .btn,fieldset:disabled .search-form .search-submit,.search-form fieldset:disabled .search-submit,fieldset:disabled .comment-form input[type=submit],.comment-form fieldset:disabled input[type=submit]{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#5d2f86;border-color:#5d2f86}.btn-primary:hover{color:#fff;background-color:#4f2872;border-color:#4a266b}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#4f2872;border-color:#4a266b;box-shadow:0 0 0 .25rem rgba(117,78,152,.5)}.btn-check:checked+.btn-primary,.btn-check:active+.btn-primary,.btn-primary:active,.btn-primary.active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#4a266b;border-color:#462365}.btn-check:checked+.btn-primary:focus,.btn-check:active+.btn-primary:focus,.btn-primary:active:focus,.btn-primary.active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(117,78,152,.5)}.btn-primary:disabled,.btn-primary.disabled{color:#fff;background-color:#5d2f86;border-color:#5d2f86}.btn-secondary,.search-form .search-submit,.comment-form input[type=submit]{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover,.search-form .search-submit:hover,.comment-form input[type=submit]:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.search-form .btn-check:focus+.search-submit,.comment-form .btn-check:focus+input[type=submit],.btn-secondary:focus,.search-form .search-submit:focus,.comment-form input[type=submit]:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:checked+.btn-secondary,.search-form .btn-check:checked+.search-submit,.comment-form .btn-check:checked+input[type=submit],.btn-check:active+.btn-secondary,.search-form .btn-check:active+.search-submit,.comment-form .btn-check:active+input[type=submit],.btn-secondary:active,.search-form .search-submit:active,.comment-form input[type=submit]:active,.btn-secondary.active,.search-form .active.search-submit,.comment-form input.active[type=submit],.show>.btn-secondary.dropdown-toggle,.search-form .show>.dropdown-toggle.search-submit,.comment-form .show>input.dropdown-toggle[type=submit]{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:checked+.btn-secondary:focus,.search-form .btn-check:checked+.search-submit:focus,.comment-form .btn-check:checked+input[type=submit]:focus,.btn-check:active+.btn-secondary:focus,.search-form .btn-check:active+.search-submit:focus,.comment-form .btn-check:active+input[type=submit]:focus,.btn-secondary:active:focus,.search-form .search-submit:active:focus,.comment-form input[type=submit]:active:focus,.btn-secondary.active:focus,.search-form .active.search-submit:focus,.comment-form input.active[type=submit]:focus,.show>.btn-secondary.dropdown-toggle:focus,.search-form .show>.dropdown-toggle.search-submit:focus,.comment-form .show>input.dropdown-toggle[type=submit]:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary:disabled,.search-form .search-submit:disabled,.comment-form input[type=submit]:disabled,.btn-secondary.disabled,.search-form .disabled.search-submit,.comment-form input.disabled[type=submit]{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:checked+.btn-success,.btn-check:active+.btn-success,.btn-success:active,.btn-success.active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:checked+.btn-success:focus,.btn-check:active+.btn-success:focus,.btn-success:active:focus,.btn-success.active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success:disabled,.btn-success.disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#1d2d35;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#1d2d35;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#1d2d35;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(15,178,212,.5)}.btn-check:checked+.btn-info,.btn-check:active+.btn-info,.btn-info:active,.btn-info.active,.show>.btn-info.dropdown-toggle{color:#1d2d35;background-color:#3dd5f3;border-color:#25cff2}.btn-check:checked+.btn-info:focus,.btn-check:active+.btn-info:focus,.btn-info:active:focus,.btn-info.active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(15,178,212,.5)}.btn-info:disabled,.btn-info.disabled{color:#1d2d35;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#1d2d35;background-color:#ffe000;border-color:#ffe000}.btn-warning:hover{color:#1d2d35;background-color:#ffe526;border-color:#ffe319}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#1d2d35;background-color:#ffe526;border-color:#ffe319;box-shadow:0 0 0 .25rem rgba(221,197,8,.5)}.btn-check:checked+.btn-warning,.btn-check:active+.btn-warning,.btn-warning:active,.btn-warning.active,.show>.btn-warning.dropdown-toggle{color:#1d2d35;background-color:#ffe633;border-color:#ffe319}.btn-check:checked+.btn-warning:focus,.btn-check:active+.btn-warning:focus,.btn-warning:active:focus,.btn-warning.active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(221,197,8,.5)}.btn-warning:disabled,.btn-warning.disabled{color:#1d2d35;background-color:#ffe000;border-color:#ffe000}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:checked+.btn-danger,.btn-check:active+.btn-danger,.btn-danger:active,.btn-danger.active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:checked+.btn-danger:focus,.btn-check:active+.btn-danger:focus,.btn-danger:active:focus,.btn-danger.active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger:disabled,.btn-danger.disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#1d2d35;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#1d2d35;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#1d2d35;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(215,218,220,.5)}.btn-check:checked+.btn-light,.btn-check:active+.btn-light,.btn-light:active,.btn-light.active,.show>.btn-light.dropdown-toggle{color:#1d2d35;background-color:#f9fafb;border-color:#f9fafb}.btn-check:checked+.btn-light:focus,.btn-check:active+.btn-light:focus,.btn-light:active:focus,.btn-light.active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(215,218,220,.5)}.btn-light:disabled,.btn-light.disabled{color:#1d2d35;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:checked+.btn-dark,.btn-check:active+.btn-dark,.btn-dark:active,.btn-dark.active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:checked+.btn-dark:focus,.btn-check:active+.btn-dark:focus,.btn-dark:active:focus,.btn-dark.active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark:disabled,.btn-dark.disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#5d2f86;border-color:#5d2f86}.btn-outline-primary:hover{color:#fff;background-color:#5d2f86;border-color:#5d2f86}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(93,47,134,.5)}.btn-check:checked+.btn-outline-primary,.btn-check:active+.btn-outline-primary,.btn-outline-primary:active,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show{color:#fff;background-color:#5d2f86;border-color:#5d2f86}.btn-check:checked+.btn-outline-primary:focus,.btn-check:active+.btn-outline-primary:focus,.btn-outline-primary:active:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(93,47,134,.5)}.btn-outline-primary:disabled,.btn-outline-primary.disabled{color:#5d2f86;background-color:rgba(0,0,0,0)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:checked+.btn-outline-secondary,.btn-check:active+.btn-outline-secondary,.btn-outline-secondary:active,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:checked+.btn-outline-secondary:focus,.btn-check:active+.btn-outline-secondary:focus,.btn-outline-secondary:active:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary:disabled,.btn-outline-secondary.disabled{color:#6c757d;background-color:rgba(0,0,0,0)}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:checked+.btn-outline-success,.btn-check:active+.btn-outline-success,.btn-outline-success:active,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show{color:#fff;background-color:#198754;border-color:#198754}.btn-check:checked+.btn-outline-success:focus,.btn-check:active+.btn-outline-success:focus,.btn-outline-success:active:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success:disabled,.btn-outline-success.disabled{color:#198754;background-color:rgba(0,0,0,0)}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#1d2d35;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:checked+.btn-outline-info,.btn-check:active+.btn-outline-info,.btn-outline-info:active,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show{color:#1d2d35;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:checked+.btn-outline-info:focus,.btn-check:active+.btn-outline-info:focus,.btn-outline-info:active:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info:disabled,.btn-outline-info.disabled{color:#0dcaf0;background-color:rgba(0,0,0,0)}.btn-outline-warning{color:#ffe000;border-color:#ffe000}.btn-outline-warning:hover{color:#1d2d35;background-color:#ffe000;border-color:#ffe000}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,224,0,.5)}.btn-check:checked+.btn-outline-warning,.btn-check:active+.btn-outline-warning,.btn-outline-warning:active,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show{color:#1d2d35;background-color:#ffe000;border-color:#ffe000}.btn-check:checked+.btn-outline-warning:focus,.btn-check:active+.btn-outline-warning:focus,.btn-outline-warning:active:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(255,224,0,.5)}.btn-outline-warning:disabled,.btn-outline-warning.disabled{color:#ffe000;background-color:rgba(0,0,0,0)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:checked+.btn-outline-danger,.btn-check:active+.btn-outline-danger,.btn-outline-danger:active,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:checked+.btn-outline-danger:focus,.btn-check:active+.btn-outline-danger:focus,.btn-outline-danger:active:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger:disabled,.btn-outline-danger.disabled{color:#dc3545;background-color:rgba(0,0,0,0)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#1d2d35;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:checked+.btn-outline-light,.btn-check:active+.btn-outline-light,.btn-outline-light:active,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show{color:#1d2d35;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:checked+.btn-outline-light:focus,.btn-check:active+.btn-outline-light:focus,.btn-outline-light:active:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light:disabled,.btn-outline-light.disabled{color:#f8f9fa;background-color:rgba(0,0,0,0)}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:checked+.btn-outline-dark,.btn-check:active+.btn-outline-dark,.btn-outline-dark:active,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show{color:#fff;background-color:#212529;border-color:#212529}.btn-check:checked+.btn-outline-dark:focus,.btn-check:active+.btn-outline-dark:focus,.btn-outline-dark:active:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark:disabled,.btn-outline-dark.disabled{color:#212529;background-color:rgba(0,0,0,0)}.btn-link{font-weight:400;color:#5d2f86;text-decoration:none}.btn-link:hover{color:#4a266b}.btn-link:disabled,.btn-link.disabled{color:#6c757d}.btn-lg,.btn-group-lg>.btn,.search-form .btn-group-lg>.search-submit,.comment-form .btn-group-lg>input[type=submit]{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn,.search-form .btn-group-sm>.search-submit,.comment-form .btn-group-sm>input[type=submit]{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.dropup,.dropend,.dropdown,.dropstart{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#1d2d35;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(29,45,53,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu{top:0;right:auto;left:100%}.dropend .dropdown-menu[data-bs-popper]{margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu{top:0;right:100%;left:auto}.dropstart .dropdown-menu[data-bs-popper]{margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(29,45,53,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:rgba(0,0,0,0);border:0}.dropdown-item:hover,.dropdown-item:focus{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#5d2f86}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:rgba(0,0,0,0)}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(29,45,53,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:hover,.dropdown-menu-dark .dropdown-item:focus{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#5d2f86}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(29,45,53,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.search-form .btn-group>.search-submit,.comment-form .btn-group>input[type=submit],.btn-group-vertical>.btn,.search-form .btn-group-vertical>.search-submit,.comment-form .btn-group-vertical>input[type=submit]{position:relative;flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.search-form .btn-group>.btn-check:checked+.search-submit,.comment-form .btn-group>.btn-check:checked+input[type=submit],.btn-group>.btn-check:focus+.btn,.search-form .btn-group>.btn-check:focus+.search-submit,.comment-form .btn-group>.btn-check:focus+input[type=submit],.btn-group>.btn:hover,.search-form .btn-group>.search-submit:hover,.comment-form .btn-group>input[type=submit]:hover,.btn-group>.btn:focus,.search-form .btn-group>.search-submit:focus,.comment-form .btn-group>input[type=submit]:focus,.btn-group>.btn:active,.search-form .btn-group>.search-submit:active,.comment-form .btn-group>input[type=submit]:active,.btn-group>.btn.active,.search-form .btn-group>.active.search-submit,.comment-form .btn-group>input.active[type=submit],.btn-group-vertical>.btn-check:checked+.btn,.search-form .btn-group-vertical>.btn-check:checked+.search-submit,.comment-form .btn-group-vertical>.btn-check:checked+input[type=submit],.btn-group-vertical>.btn-check:focus+.btn,.search-form .btn-group-vertical>.btn-check:focus+.search-submit,.comment-form .btn-group-vertical>.btn-check:focus+input[type=submit],.btn-group-vertical>.btn:hover,.search-form .btn-group-vertical>.search-submit:hover,.comment-form .btn-group-vertical>input[type=submit]:hover,.btn-group-vertical>.btn:focus,.search-form .btn-group-vertical>.search-submit:focus,.comment-form .btn-group-vertical>input[type=submit]:focus,.btn-group-vertical>.btn:active,.search-form .btn-group-vertical>.search-submit:active,.comment-form .btn-group-vertical>input[type=submit]:active,.btn-group-vertical>.btn.active,.search-form .btn-group-vertical>.active.search-submit,.comment-form .btn-group-vertical>input.active[type=submit]{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.search-form .btn-group>.search-submit:not(:first-child),.comment-form .btn-group>input[type=submit]:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.search-form .btn-group>.search-submit:not(:last-child):not(.dropdown-toggle),.comment-form .btn-group>input[type=submit]:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn,.search-form .btn-group>.btn-group:not(:last-child)>.search-submit,.comment-form .btn-group>.btn-group:not(:last-child)>input[type=submit]{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.search-form .btn-group>.search-submit:nth-child(n+3),.comment-form .btn-group>input[type=submit]:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.search-form .btn-group>:not(.btn-check)+.search-submit,.comment-form .btn-group>:not(.btn-check)+input[type=submit],.btn-group>.btn-group:not(:first-child)>.btn,.search-form .btn-group>.btn-group:not(:first-child)>.search-submit,.comment-form .btn-group>.btn-group:not(:first-child)>input[type=submit]{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split,.search-form .btn-group-sm>.search-submit+.dropdown-toggle-split,.comment-form .btn-group-sm>input[type=submit]+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split,.search-form .btn-group-lg>.search-submit+.dropdown-toggle-split,.comment-form .btn-group-lg>input[type=submit]+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.search-form .btn-group-vertical>.search-submit,.comment-form .btn-group-vertical>input[type=submit],.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.search-form .btn-group-vertical>.search-submit:not(:first-child),.comment-form .btn-group-vertical>input[type=submit]:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.search-form .btn-group-vertical>.search-submit:not(:last-child):not(.dropdown-toggle),.comment-form .btn-group-vertical>input[type=submit]:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn,.search-form .btn-group-vertical>.btn-group:not(:last-child)>.search-submit,.comment-form .btn-group-vertical>.btn-group:not(:last-child)>input[type=submit]{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.search-form .btn-group-vertical>.search-submit~.btn,.search-form .btn-group-vertical>.btn~.search-submit,.search-form .btn-group-vertical>.search-submit~.search-submit,.comment-form .btn-group-vertical>input[type=submit]~.btn,.comment-form .search-form .btn-group-vertical>input[type=submit]~.search-submit,.search-form .comment-form .btn-group-vertical>input[type=submit]~.search-submit,.comment-form .btn-group-vertical>.btn~input[type=submit],.comment-form .search-form .btn-group-vertical>.search-submit~input[type=submit],.search-form .comment-form .btn-group-vertical>.search-submit~input[type=submit],.comment-form .btn-group-vertical>input[type=submit]~input[type=submit],.btn-group-vertical>.btn-group:not(:first-child)>.btn,.search-form .btn-group-vertical>.btn-group:not(:first-child)>.search-submit,.comment-form .btn-group-vertical>.btn-group:not(:first-child)>input[type=submit]{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link,.banner .nav a{display:block;padding:.5rem 1rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link,.banner .nav a{transition:none}}.nav-link.disabled,.banner .nav a.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link,.nav-tabs .banner .nav a,.banner .nav .nav-tabs a{margin-bottom:-1px;background:none;border:1px solid rgba(0,0,0,0);border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:hover,.nav-tabs .banner .nav a:hover,.banner .nav .nav-tabs a:hover,.nav-tabs .nav-link:focus,.nav-tabs .banner .nav a:focus,.banner .nav .nav-tabs a:focus{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled,.nav-tabs .banner .nav a.disabled,.banner .nav .nav-tabs a.disabled{color:#6c757d;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.nav-tabs .nav-link.active,.nav-tabs .banner .nav a.active,.banner .nav .nav-tabs a.active,.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-item.show .banner .nav a,.banner .nav .nav-tabs .nav-item.show a,.nav-tabs .banner .nav li.show .nav-link,.nav-tabs .banner .nav li.show a,.banner .nav .nav-tabs li.show .nav-link,.banner .nav .nav-tabs li.show a{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link,.nav-pills .banner .nav a,.banner .nav .nav-pills a{background:none;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .banner .nav a.active,.banner .nav .nav-pills a.active,.nav-pills .show>.nav-link,.nav-pills .banner .nav .show>a,.banner .nav .nav-pills .show>a{color:#fff;background-color:#5d2f86}.nav-fill>.nav-link,.banner .nav .nav-fill>a,.nav-fill .nav-item,.nav-fill .banner .nav li,.banner .nav .nav-fill li{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.banner .nav .nav-justified>a,.nav-justified .nav-item,.nav-justified .banner .nav li,.banner .nav .nav-justified li{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-fill .nav-item .banner .nav a,.banner .nav .nav-fill .nav-item a,.nav-fill .banner .nav li .nav-link,.nav-fill .banner .nav li a,.banner .nav .nav-fill li .nav-link,.banner .nav .nav-fill li a,.nav-justified .nav-item .nav-link,.nav-justified .nav-item .banner .nav a,.banner .nav .nav-justified .nav-item a,.nav-justified .banner .nav li .nav-link,.nav-justified .banner .nav li a,.banner .nav .nav-justified li .nav-link,.banner .nav .nav-justified li a{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link,.navbar-nav .banner .nav a,.banner .nav .navbar-nav a{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media (min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link,.navbar-expand-sm .navbar-nav .banner .nav a,.banner .nav .navbar-expand-sm .navbar-nav a{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link,.navbar-expand-md .navbar-nav .banner .nav a,.banner .nav .navbar-expand-md .navbar-nav a{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link,.navbar-expand-lg .navbar-nav .banner .nav a,.banner .nav .navbar-expand-lg .navbar-nav a{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link,.navbar-expand-xl .navbar-nav .banner .nav a,.banner .nav .navbar-expand-xl .navbar-nav a{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link,.navbar-expand-xxl .navbar-nav .banner .nav a,.banner .nav .navbar-expand-xxl .navbar-nav a{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link,.navbar-expand .navbar-nav .banner .nav a,.banner .nav .navbar-expand .navbar-nav a{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:#5d2f86}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:#5d2f86}.navbar-light .navbar-nav .nav-link,.navbar-light .navbar-nav .banner .nav a,.banner .nav .navbar-light .navbar-nav a{color:#1d2d35}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .banner .nav a:hover,.banner .nav .navbar-light .navbar-nav a:hover,.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .banner .nav a:focus,.banner .nav .navbar-light .navbar-nav a:focus{color:#5d2f86}.navbar-light .navbar-nav .nav-link.disabled,.navbar-light .navbar-nav .banner .nav a.disabled,.banner .nav .navbar-light .navbar-nav a.disabled{color:rgba(29,45,53,.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .banner .nav .show>a,.banner .nav .navbar-light .navbar-nav .show>a,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .banner .nav a.active,.banner .nav .navbar-light .navbar-nav a.active{color:#5d2f86}.navbar-light .navbar-toggler{color:#1d2d35;border-color:rgba(29,45,53,.1)}.navbar-light .navbar-toggler-icon{background-image:none}.navbar-light .navbar-text{color:#1d2d35}.navbar-light .navbar-text a,.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:#5d2f86}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link,.navbar-dark .navbar-nav .banner .nav a,.banner .nav .navbar-dark .navbar-nav a{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .banner .nav a:hover,.banner .nav .navbar-dark .navbar-nav a:hover,.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .banner .nav a:focus,.banner .nav .navbar-dark .navbar-nav a:focus{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled,.navbar-dark .navbar-nav .banner .nav a.disabled,.banner .nav .navbar-dark .navbar-nav a.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .banner .nav .show>a,.banner .nav .navbar-dark .navbar-nav .show>a,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .banner .nav a.active,.banner .nav .navbar-dark .navbar-nav a.active{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:none}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid #e9ecef;border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(29,45,53,.03);border-bottom:1px solid #e9ecef}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(29,45,53,.03);border-top:1px solid #e9ecef}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:24px}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#1d2d35;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#542a79;background-color:#efeaf3;box-shadow:inset 0 -1px 0 rgba(29,45,53,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23542a79'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%231d2d35'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#ae97c3;outline:0;box-shadow:0 0 0 .25rem rgba(93,47,134,.25)}.accordion-header{margin-bottom:0}.accordion-item{margin-bottom:-1px;background-color:#fff;border:1px solid rgba(29,45,53,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:last-of-type{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#5d2f86;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#4a266b;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#4a266b;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(93,47,134,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#5d2f86;border-color:#5d2f86}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge,.search-form .search-submit .badge,.comment-form input[type=submit] .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1.5rem;margin-bottom:0;border:0 solid rgba(0,0,0,0);border-radius:0}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4.5rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1.5rem}.alert-primary{color:#fff;background-color:#5d2f86;border-color:#5d2f86}.alert-primary .alert-link{color:#ccc}.alert-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.alert-secondary .alert-link{color:#ccc}.alert-success{color:#fff;background-color:#198754;border-color:#198754}.alert-success .alert-link{color:#ccc}.alert-info{color:#1d2d35;background-color:#0dcaf0;border-color:#0dcaf0}.alert-info .alert-link{color:#17242a}.alert-warning{color:#1d2d35;background-color:#ffe000;border-color:#ffe000}.alert-warning .alert-link{color:#17242a}.alert-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.alert-danger .alert-link{color:#ccc}.alert-light{color:#1d2d35;background-color:#f8f9fa;border-color:#f8f9fa}.alert-light .alert-link{color:#17242a}.alert-dark{color:#fff;background-color:#212529;border-color:#212529}.alert-dark .alert-link{color:#ccc}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#5d2f86;transition:width .6s ease}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255,255,255,.15) 25%, rgba(0,0,0,0) 25%, rgba(0,0,0,0) 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, rgba(0,0,0,0) 75%, rgba(0,0,0,0));background-size:1rem 1rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#1d2d35;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;background-color:#fff;border:1px solid rgba(29,45,53,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#5d2f86;border-color:#5d2f86}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#381c50;background-color:#dfd5e7}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#381c50;background-color:#c9c0d0}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#381c50;border-color:#381c50}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#1d2d35;background-color:#cff4fc}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#1d2d35;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#1d2d35;border-color:#1d2d35}.list-group-item-warning{color:#1d2d35;background-color:#fff9cc}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#1d2d35;background-color:#e6e0b8}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#1d2d35;border-color:#1d2d35}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#1d2d35;background-color:#fefefe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#1d2d35;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#1d2d35;border-color:#1d2d35}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#1d2d35;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%231d2d35'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#1d2d35;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(93,47,134,.25);opacity:1}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(29,45,53,.15);border-radius:.25rem}.toast:not(.showing):not(.show){opacity:0}.toast.hide{display:none}.toast-container{width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:24px}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1060;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(29,45,53,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#1d2d35}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #e9ecef;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width: 992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width: 1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:"Jost",-apple-system,blinkmacsystemfont,"Segoe UI",roboto,"Helvetica Neue",arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[data-popper-placement^=top]{padding:.4rem 0}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:0}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#1d2d35}.bs-tooltip-end,.bs-tooltip-auto[data-popper-placement^=right]{padding:0 .4rem}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#1d2d35}.bs-tooltip-bottom,.bs-tooltip-auto[data-popper-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:0}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#1d2d35}.bs-tooltip-start,.bs-tooltip-auto[data-popper-placement^=left]{padding:0 .4rem}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#1d2d35}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#1d2d35;border-radius:.25rem}.popover{position:absolute;top:0;left:0 /* rtl:ignore */;z-index:1070;display:block;max-width:276px;font-family:"Jost",-apple-system,blinkmacsystemfont,"Segoe UI",roboto,"Helvetica Neue",arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(29,45,53,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(29,45,53,.25)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(29,45,53,.25)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(29,45,53,.25)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(29,45,53,.25)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid #d8d8d8;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#1d2d35}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#1d2d35}.carousel-dark .carousel-caption{color:#1d2d35}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:rgba(0,0,0,0);border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1040;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas-header{display:flex;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(29,45,53,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(29,45,53,.2);transform:translateX(100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(29,45,53,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.offcanvas-backdrop::before{position:fixed;top:0;left:0;z-index:1039;width:100vw;height:100vh;content:"";background-color:rgba(29,45,53,.5)}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#5d2f86}.link-primary:hover,.link-primary:focus{color:#4a266b}.link-secondary{color:#6c757d}.link-secondary:hover,.link-secondary:focus{color:#565e64}.link-success{color:#198754}.link-success:hover,.link-success:focus{color:#146c43}.link-info{color:#0dcaf0}.link-info:hover,.link-info:focus{color:#3dd5f3}.link-warning{color:#ffe000}.link-warning:hover,.link-warning:focus{color:#ffe633}.link-danger{color:#dc3545}.link-danger:hover,.link-danger:focus{color:#b02a37}.link-light{color:#f8f9fa}.link-light:hover,.link-light:focus{color:#f9fafb}.link-dark{color:#212529}.link-dark:hover,.link-dark:focus{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 .5rem 1rem rgba(29,45,53,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(29,45,53,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(29,45,53,.175) !important}.shadow-none{box-shadow:none !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:1px solid #e9ecef !important}.border-0{border:0 !important}.border-top{border-top:1px solid #e9ecef !important}.border-top-0{border-top:0 !important}.border-end{border-right:1px solid #e9ecef !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:1px solid #e9ecef !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:1px solid #e9ecef !important}.border-start-0{border-left:0 !important}.border-primary{border-color:#5d2f86 !important}.border-secondary{border-color:#6c757d !important}.border-success{border-color:#198754 !important}.border-info{border-color:#0dcaf0 !important}.border-warning{border-color:#ffe000 !important}.border-danger{border-color:#dc3545 !important}.border-light{border-color:#f8f9fa !important}.border-dark{border-color:#212529 !important}.border-white{border-color:#fff !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.m-n1{margin:-.25rem !important}.m-n2{margin:-.5rem !important}.m-n3{margin:-1rem !important}.m-n4{margin:-1.5rem !important}.m-n5{margin:-3rem !important}.mx-n1{margin-right:-.25rem !important;margin-left:-.25rem !important}.mx-n2{margin-right:-.5rem !important;margin-left:-.5rem !important}.mx-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-n1{margin-top:-.25rem !important;margin-bottom:-.25rem !important}.my-n2{margin-top:-.5rem !important;margin-bottom:-.5rem !important}.my-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-n1{margin-top:-.25rem !important}.mt-n2{margin-top:-.5rem !important}.mt-n3{margin-top:-1rem !important}.mt-n4{margin-top:-1.5rem !important}.mt-n5{margin-top:-3rem !important}.me-n1{margin-right:-.25rem !important}.me-n2{margin-right:-.5rem !important}.me-n3{margin-right:-1rem !important}.me-n4{margin-right:-1.5rem !important}.me-n5{margin-right:-3rem !important}.mb-n1{margin-bottom:-.25rem !important}.mb-n2{margin-bottom:-.5rem !important}.mb-n3{margin-bottom:-1rem !important}.mb-n4{margin-bottom:-1.5rem !important}.mb-n5{margin-bottom:-3rem !important}.ms-n1{margin-left:-.25rem !important}.ms-n2{margin-left:-.5rem !important}.ms-n3{margin-left:-1rem !important}.ms-n4{margin-left:-1.5rem !important}.ms-n5{margin-left:-3rem !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.375rem + 1.5vw) !important}.fs-2{font-size:calc(1.325rem + .9vw) !important}.fs-3{font-size:calc(1.3rem + .6vw) !important}.fs-4{font-size:calc(1.275rem + .3vw) !important}.fs-5{font-size:1.25rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-light{font-weight:300 !important}.fw-lighter{font-weight:lighter !important}.fw-normal{font-weight:400 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-primary{color:#5d2f86 !important}.text-secondary{color:#6c757d !important}.text-success{color:#198754 !important}.text-info{color:#0dcaf0 !important}.text-warning{color:#ffe000 !important}.text-danger{color:#dc3545 !important}.text-light{color:#f8f9fa !important}.text-dark{color:#212529 !important}.text-white{color:#fff !important}.text-body{color:#1d2d35 !important}.text-muted{color:#6c757d !important}.text-black-50{color:rgba(29,45,53,.5) !important}.text-white-50{color:rgba(255,255,255,.5) !important}.text-reset{color:inherit !important}.bg-primary{background-color:#5d2f86 !important}.bg-secondary{background-color:#6c757d !important}.bg-success{background-color:#198754 !important}.bg-info{background-color:#0dcaf0 !important}.bg-warning{background-color:#ffe000 !important}.bg-danger{background-color:#dc3545 !important}.bg-light{background-color:#f8f9fa !important}.bg-dark{background-color:#212529 !important}.bg-body{background-color:#fff !important}.bg-white{background-color:#fff !important}.bg-transparent{background-color:rgba(0,0,0,0) !important}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:.25rem !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:.2rem !important}.rounded-2{border-radius:.25rem !important}.rounded-3{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-end{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-start{border-bottom-left-radius:.25rem !important;border-top-left-radius:.25rem !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media (min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.m-sm-n1{margin:-.25rem !important}.m-sm-n2{margin:-.5rem !important}.m-sm-n3{margin:-1rem !important}.m-sm-n4{margin:-1.5rem !important}.m-sm-n5{margin:-3rem !important}.mx-sm-n1{margin-right:-.25rem !important;margin-left:-.25rem !important}.mx-sm-n2{margin-right:-.5rem !important;margin-left:-.5rem !important}.mx-sm-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-sm-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-sm-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-sm-n1{margin-top:-.25rem !important;margin-bottom:-.25rem !important}.my-sm-n2{margin-top:-.5rem !important;margin-bottom:-.5rem !important}.my-sm-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-sm-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-sm-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-sm-n1{margin-top:-.25rem !important}.mt-sm-n2{margin-top:-.5rem !important}.mt-sm-n3{margin-top:-1rem !important}.mt-sm-n4{margin-top:-1.5rem !important}.mt-sm-n5{margin-top:-3rem !important}.me-sm-n1{margin-right:-.25rem !important}.me-sm-n2{margin-right:-.5rem !important}.me-sm-n3{margin-right:-1rem !important}.me-sm-n4{margin-right:-1.5rem !important}.me-sm-n5{margin-right:-3rem !important}.mb-sm-n1{margin-bottom:-.25rem !important}.mb-sm-n2{margin-bottom:-.5rem !important}.mb-sm-n3{margin-bottom:-1rem !important}.mb-sm-n4{margin-bottom:-1.5rem !important}.mb-sm-n5{margin-bottom:-3rem !important}.ms-sm-n1{margin-left:-.25rem !important}.ms-sm-n2{margin-left:-.5rem !important}.ms-sm-n3{margin-left:-1rem !important}.ms-sm-n4{margin-left:-1.5rem !important}.ms-sm-n5{margin-left:-3rem !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.m-md-n1{margin:-.25rem !important}.m-md-n2{margin:-.5rem !important}.m-md-n3{margin:-1rem !important}.m-md-n4{margin:-1.5rem !important}.m-md-n5{margin:-3rem !important}.mx-md-n1{margin-right:-.25rem !important;margin-left:-.25rem !important}.mx-md-n2{margin-right:-.5rem !important;margin-left:-.5rem !important}.mx-md-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-md-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-md-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-md-n1{margin-top:-.25rem !important;margin-bottom:-.25rem !important}.my-md-n2{margin-top:-.5rem !important;margin-bottom:-.5rem !important}.my-md-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-md-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-md-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-md-n1{margin-top:-.25rem !important}.mt-md-n2{margin-top:-.5rem !important}.mt-md-n3{margin-top:-1rem !important}.mt-md-n4{margin-top:-1.5rem !important}.mt-md-n5{margin-top:-3rem !important}.me-md-n1{margin-right:-.25rem !important}.me-md-n2{margin-right:-.5rem !important}.me-md-n3{margin-right:-1rem !important}.me-md-n4{margin-right:-1.5rem !important}.me-md-n5{margin-right:-3rem !important}.mb-md-n1{margin-bottom:-.25rem !important}.mb-md-n2{margin-bottom:-.5rem !important}.mb-md-n3{margin-bottom:-1rem !important}.mb-md-n4{margin-bottom:-1.5rem !important}.mb-md-n5{margin-bottom:-3rem !important}.ms-md-n1{margin-left:-.25rem !important}.ms-md-n2{margin-left:-.5rem !important}.ms-md-n3{margin-left:-1rem !important}.ms-md-n4{margin-left:-1.5rem !important}.ms-md-n5{margin-left:-3rem !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.m-lg-n1{margin:-.25rem !important}.m-lg-n2{margin:-.5rem !important}.m-lg-n3{margin:-1rem !important}.m-lg-n4{margin:-1.5rem !important}.m-lg-n5{margin:-3rem !important}.mx-lg-n1{margin-right:-.25rem !important;margin-left:-.25rem !important}.mx-lg-n2{margin-right:-.5rem !important;margin-left:-.5rem !important}.mx-lg-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-lg-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-lg-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-lg-n1{margin-top:-.25rem !important;margin-bottom:-.25rem !important}.my-lg-n2{margin-top:-.5rem !important;margin-bottom:-.5rem !important}.my-lg-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-lg-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-lg-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-lg-n1{margin-top:-.25rem !important}.mt-lg-n2{margin-top:-.5rem !important}.mt-lg-n3{margin-top:-1rem !important}.mt-lg-n4{margin-top:-1.5rem !important}.mt-lg-n5{margin-top:-3rem !important}.me-lg-n1{margin-right:-.25rem !important}.me-lg-n2{margin-right:-.5rem !important}.me-lg-n3{margin-right:-1rem !important}.me-lg-n4{margin-right:-1.5rem !important}.me-lg-n5{margin-right:-3rem !important}.mb-lg-n1{margin-bottom:-.25rem !important}.mb-lg-n2{margin-bottom:-.5rem !important}.mb-lg-n3{margin-bottom:-1rem !important}.mb-lg-n4{margin-bottom:-1.5rem !important}.mb-lg-n5{margin-bottom:-3rem !important}.ms-lg-n1{margin-left:-.25rem !important}.ms-lg-n2{margin-left:-.5rem !important}.ms-lg-n3{margin-left:-1rem !important}.ms-lg-n4{margin-left:-1.5rem !important}.ms-lg-n5{margin-left:-3rem !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.m-xl-n1{margin:-.25rem !important}.m-xl-n2{margin:-.5rem !important}.m-xl-n3{margin:-1rem !important}.m-xl-n4{margin:-1.5rem !important}.m-xl-n5{margin:-3rem !important}.mx-xl-n1{margin-right:-.25rem !important;margin-left:-.25rem !important}.mx-xl-n2{margin-right:-.5rem !important;margin-left:-.5rem !important}.mx-xl-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-xl-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-xl-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-xl-n1{margin-top:-.25rem !important;margin-bottom:-.25rem !important}.my-xl-n2{margin-top:-.5rem !important;margin-bottom:-.5rem !important}.my-xl-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-xl-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-xl-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-xl-n1{margin-top:-.25rem !important}.mt-xl-n2{margin-top:-.5rem !important}.mt-xl-n3{margin-top:-1rem !important}.mt-xl-n4{margin-top:-1.5rem !important}.mt-xl-n5{margin-top:-3rem !important}.me-xl-n1{margin-right:-.25rem !important}.me-xl-n2{margin-right:-.5rem !important}.me-xl-n3{margin-right:-1rem !important}.me-xl-n4{margin-right:-1.5rem !important}.me-xl-n5{margin-right:-3rem !important}.mb-xl-n1{margin-bottom:-.25rem !important}.mb-xl-n2{margin-bottom:-.5rem !important}.mb-xl-n3{margin-bottom:-1rem !important}.mb-xl-n4{margin-bottom:-1.5rem !important}.mb-xl-n5{margin-bottom:-3rem !important}.ms-xl-n1{margin-left:-.25rem !important}.ms-xl-n2{margin-left:-.5rem !important}.ms-xl-n3{margin-left:-1rem !important}.ms-xl-n4{margin-left:-1.5rem !important}.ms-xl-n5{margin-left:-3rem !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media (min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.m-xxl-n1{margin:-.25rem !important}.m-xxl-n2{margin:-.5rem !important}.m-xxl-n3{margin:-1rem !important}.m-xxl-n4{margin:-1.5rem !important}.m-xxl-n5{margin:-3rem !important}.mx-xxl-n1{margin-right:-.25rem !important;margin-left:-.25rem !important}.mx-xxl-n2{margin-right:-.5rem !important;margin-left:-.5rem !important}.mx-xxl-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-xxl-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-xxl-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-xxl-n1{margin-top:-.25rem !important;margin-bottom:-.25rem !important}.my-xxl-n2{margin-top:-.5rem !important;margin-bottom:-.5rem !important}.my-xxl-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-xxl-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-xxl-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-xxl-n1{margin-top:-.25rem !important}.mt-xxl-n2{margin-top:-.5rem !important}.mt-xxl-n3{margin-top:-1rem !important}.mt-xxl-n4{margin-top:-1.5rem !important}.mt-xxl-n5{margin-top:-3rem !important}.me-xxl-n1{margin-right:-.25rem !important}.me-xxl-n2{margin-right:-.5rem !important}.me-xxl-n3{margin-right:-1rem !important}.me-xxl-n4{margin-right:-1.5rem !important}.me-xxl-n5{margin-right:-3rem !important}.mb-xxl-n1{margin-bottom:-.25rem !important}.mb-xxl-n2{margin-bottom:-.5rem !important}.mb-xxl-n3{margin-bottom:-1rem !important}.mb-xxl-n4{margin-bottom:-1.5rem !important}.mb-xxl-n5{margin-bottom:-3rem !important}.ms-xxl-n1{margin-left:-.25rem !important}.ms-xxl-n2{margin-left:-.5rem !important}.ms-xxl-n3{margin-left:-1rem !important}.ms-xxl-n4{margin-left:-1.5rem !important}.ms-xxl-n5{margin-left:-3rem !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}@media (min-width: 1200px){.fs-1{font-size:2.5rem !important}.fs-2{font-size:2rem !important}.fs-3{font-size:1.75rem !important}.fs-4{font-size:1.5rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}@font-face{font-family:"Jost";font-style:normal;font-weight:400;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-regular.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-regular.woff") format("woff");}@font-face{font-family:"Jost";font-style:normal;font-weight:500;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-500.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-500.woff") format("woff");}@font-face{font-family:"Jost";font-style:normal;font-weight:700;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-700.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-700.woff") format("woff");}@font-face{font-family:"Jost";font-style:italic;font-weight:400;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-italic.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-italic.woff") format("woff");}@font-face{font-family:"Jost";font-style:italic;font-weight:500;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-500italic.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-500italic.woff") format("woff");}@font-face{font-family:"Jost";font-style:italic;font-weight:700;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-700italic.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-700italic.woff") format("woff");}.contributors .content,.blog .content,.page .content,.error404 .content,.docs.list .content,.tutorial.list .content,.showcase.list .content{padding-top:1rem;padding-bottom:3rem}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin:2rem 0 1rem}@media (min-width: 768px){body{font-size:1.125rem;padding-top:4rem !important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:1.125rem}}.home h1,.home .h1{font-size:calc(1.875rem + 1.5vw)}a:hover,a:focus{text-decoration:underline}a.btn:hover,.search-form a.search-submit:hover,a.btn:focus,.search-form a.search-submit:focus{text-decoration:none}.section{padding-top:5rem;padding-bottom:5rem}.section-md{padding-top:3rem;padding-bottom:3rem}.section-sm{padding-top:1rem;padding-bottom:1rem}body{padding-top:3.5625rem}.docs-sidebar{order:2}@media (min-width: 992px){.docs-sidebar{order:0;border-right:1px solid #e9ecef}@supports (position: -webkit-sticky) or (position: sticky){.docs-sidebar{position:-webkit-sticky;position:sticky;top:4rem;z-index:1000;height:calc(100vh - 4rem)}}}@media (min-width: 1200px){.docs-sidebar{flex:0 1 320px}}.docs-links{padding-bottom:5rem}@media (min-width: 992px){@supports (position: -webkit-sticky) or (position: sticky){.docs-links{max-height:calc(100vh - 4rem);overflow-y:scroll}}}@media (min-width: 992px){.docs-links{display:block;width:auto;margin-right:-1.5rem;padding-bottom:4rem}}.docs-toc{order:2}@supports (position: -webkit-sticky) or (position: sticky){.docs-toc{position:-webkit-sticky;position:sticky;top:4rem;height:calc(100vh - 4rem);overflow-y:auto}}.docs-content{padding-bottom:3rem;order:1}.docs-navigation,.blog-navigation{margin-top:2rem;margin-bottom:0;padding-top:2rem}.docs-navigation a,.blog-navigation a{font-size:.9rem}.docs-navigation{border-top:1px solid #e9ecef}@media (min-width: 992px){.docs-navigation,.blog-navigation{margin-bottom:-1rem}.docs-navigation a,.blog-navigation a{font-size:1rem}}.navbar a:hover,.navbar a:focus{text-decoration:none}#TableOfContents ul{padding-left:0;list-style:none}::selection{background:rgba(212,53,159,.2)}.bg-dots{background-image:radial-gradient(#dee2e6 15%, rgba(0,0,0,0) 15%);background-position:0 0;background-size:1rem 1rem;-webkit-mask:linear-gradient(to top, #fff, rgba(0,0,0,0));mask:linear-gradient(to top, #fff, rgba(0,0,0,0));width:100%;height:9rem;margin-top:-10rem;z-index:-1}.bg-dots-md{margin-top:-11rem}.bg-dots-lg{margin-top:-12rem}.gradient-text{background-color:#5d2f86;background-image:linear-gradient(90deg, #5d2f86, #8ed6fb 50%, #d32e9d);background-size:100%;background-repeat:repeat;-webkit-background-clip:text;-moz-background-clip:text;-webkit-text-fill-color:rgba(0,0,0,0);-moz-text-fill-color:rgba(0,0,0,0)}.katex{font-size:1.125rem}article hr{margin:3rem 0}body.dark{background:#212529;color:#dee2e6}body.dark a{color:#8ed6fb}body.dark a.text-body{color:#dee2e6 !important}body.dark .btn-primary{color:#1d2d35;background-color:#8ed6fb;border-color:#8ed6fb;color:#212529 !important}body.dark .btn-primary:hover{color:#1d2d35;background-color:#9fdcfc;border-color:#99dafb}.btn-check:focus+body.dark .btn-primary,body.dark .btn-primary:focus{color:#1d2d35;background-color:#9fdcfc;border-color:#99dafb;box-shadow:0 0 0 .25rem rgba(125,189,221,.5)}.btn-check:checked+body.dark .btn-primary,.btn-check:active+body.dark .btn-primary,body.dark .btn-primary:active,body.dark .btn-primary.active,.show>body.dark .btn-primary.dropdown-toggle{color:#1d2d35;background-color:#a5defc;border-color:#99dafb}.btn-check:checked+body.dark .btn-primary:focus,.btn-check:active+body.dark .btn-primary:focus,body.dark .btn-primary:active:focus,body.dark .btn-primary.active:focus,.show>body.dark .btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(125,189,221,.5)}body.dark .btn-primary:disabled,body.dark .btn-primary.disabled{color:#1d2d35;background-color:#8ed6fb;border-color:#8ed6fb}body.dark .btn-outline-primary{color:#8ed6fb;border-color:#8ed6fb;color:#8ed6fb}body.dark .btn-outline-primary:hover{color:#8ed6fb;background-color:#8ed6fb;border-color:#8ed6fb}.btn-check:focus+body.dark .btn-outline-primary,body.dark .btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(142,214,251,.5)}.btn-check:checked+body.dark .btn-outline-primary,.btn-check:active+body.dark .btn-outline-primary,body.dark .btn-outline-primary:active,body.dark .btn-outline-primary.active,body.dark .btn-outline-primary.dropdown-toggle.show{color:#1d2d35;background-color:#8ed6fb;border-color:#8ed6fb}.btn-check:checked+body.dark .btn-outline-primary:focus,.btn-check:active+body.dark .btn-outline-primary:focus,body.dark .btn-outline-primary:active:focus,body.dark .btn-outline-primary.active:focus,body.dark .btn-outline-primary.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(142,214,251,.5)}body.dark .btn-outline-primary:disabled,body.dark .btn-outline-primary.disabled{color:#8ed6fb;background-color:rgba(0,0,0,0)}body.dark .btn-outline-primary:hover{color:#212529}body.dark .navbar{background:#212529;opacity:.975;border-bottom:1px solid #1b1f22}body.dark.home .navbar{border-bottom:0}body.dark .navbar-light .navbar-brand{color:#dee2e6 !important}body.dark .navbar-light .navbar-nav .nav-link,body.dark .navbar-light .navbar-nav .banner .nav a,.banner .nav body.dark .navbar-light .navbar-nav a{color:#dee2e6}body.dark .navbar-light .navbar-nav .nav-link:hover,body.dark .navbar-light .navbar-nav .banner .nav a:hover,.banner .nav body.dark .navbar-light .navbar-nav a:hover,body.dark .navbar-light .navbar-nav .nav-link:focus,body.dark .navbar-light .navbar-nav .banner .nav a:focus,.banner .nav body.dark .navbar-light .navbar-nav a:focus{color:#8ed6fb}body.dark .navbar-light .navbar-nav .nav-link.disabled,body.dark .navbar-light .navbar-nav .banner .nav a.disabled,.banner .nav body.dark .navbar-light .navbar-nav a.disabled{color:rgba(255,255,255,.25)}body.dark .navbar-light .navbar-nav .show>.nav-link,body.dark .navbar-light .navbar-nav .banner .nav .show>a,.banner .nav body.dark .navbar-light .navbar-nav .show>a,body.dark .navbar-light .navbar-nav .active>.nav-link,body.dark .navbar-light .navbar-nav .banner .nav .active>a,.banner .nav body.dark .navbar-light .navbar-nav .active>a,body.dark .navbar-light .navbar-nav .nav-link.show,body.dark .navbar-light .navbar-nav .banner .nav a.show,.banner .nav body.dark .navbar-light .navbar-nav a.show,body.dark .navbar-light .navbar-nav .nav-link.active,body.dark .navbar-light .navbar-nav .banner .nav a.active,.banner .nav body.dark .navbar-light .navbar-nav a.active{color:#8ed6fb}body.dark .navbar-light .navbar-text{color:#dee2e6}body.dark .alert-primary a{color:#212529}body.dark .alert-warning{background:#1b1f22;color:#dee2e6}body.dark .page-links a{color:#dee2e6}body.dark .showcase-meta a{color:#dee2e6}body.dark .showcase-meta a:hover,body.dark .showcase-meta a:focus{color:#8ed6fb}body.dark .docs-link:hover,body.dark .docs-link.active,body.dark .page-links a:hover{text-decoration:none;color:#8ed6fb}body.dark .navbar-light .navbar-text a{color:#8ed6fb}body.dark .docs-links h3.sidebar-link a,body.dark .docs-links .sidebar-link.h3 a,body.dark .page-links h3.sidebar-link a,body.dark .page-links .sidebar-link.h3 a{color:#dee2e6}body.dark .navbar-light .navbar-text a:hover,body.dark .navbar-light .navbar-text a:focus{color:#8ed6fb}body.dark .navbar .btn-link{color:#dee2e6}body.dark .content .btn-link{color:#8ed6fb}body.dark .content .btn-link:hover{color:#8ed6fb}body.dark .navbar .btn-link:hover{color:#8ed6fb}body.dark .navbar .btn-link:active{color:#8ed6fb}body.dark .form-control.is-search,body.dark .search-form .is-search.search-field,.search-form body.dark .is-search.search-field,body.dark .comment-form input.is-search[type=text],.comment-form body.dark input.is-search[type=text],body.dark .comment-form input.is-search[type=email],.comment-form body.dark input.is-search[type=email],body.dark .comment-form input.is-search[type=url],.comment-form body.dark input.is-search[type=url],body.dark .comment-form textarea.is-search,.comment-form body.dark textarea.is-search{background:#1b1f22;}body.dark .navbar-form::after{color:#6c757d;border:1px solid #343a40}body.dark .form-control,body.dark .search-form .search-field,.search-form body.dark .search-field,body.dark .comment-form input[type=text],.comment-form body.dark input[type=text],body.dark .comment-form input[type=email],.comment-form body.dark input[type=email],body.dark .comment-form input[type=url],.comment-form body.dark input[type=url],body.dark .comment-form textarea,.comment-form body.dark textarea{color:#adb5bd}body.dark .form-control:focus,body.dark .search-form .search-field:focus,.search-form body.dark .search-field:focus,body.dark .comment-form input[type=text]:focus,.comment-form body.dark input[type=text]:focus,body.dark .comment-form input[type=email]:focus,.comment-form body.dark input[type=email]:focus,body.dark .comment-form input[type=url]:focus,.comment-form body.dark input[type=url]:focus,body.dark .comment-form textarea:focus,.comment-form body.dark textarea:focus{box-shadow:0 0 0 .2rem #9adafb}body.dark .border-top{border-top:1px solid #1b1f22 !important}@media (min-width: 992px){body.dark .docs-sidebar{order:0;border-right:1px solid #1b1f22}}body.dark .docs-navigation{border-top:1px solid #1b1f22}body.dark pre code::-webkit-scrollbar-thumb{background:#1b1f22}body.dark pre:not(.hljs){background:#1b1f22;color:#dee2e6}body.dark pre code:hover{scrollbar-width:thin;scrollbar-color:#1b1f22 rgba(0,0,0,0)}body.dark pre code::-webkit-scrollbar-thumb:hover{background:#1b1f22}body.dark blockquote{border-left:3px solid #1b1f22}body.dark .footer{border-top:1px solid #1b1f22}body.dark .docs-links,body.dark .docs-toc{scrollbar-width:thin;scrollbar-color:#212529 #212529}body.dark .docs-links::-webkit-scrollbar,body.dark .docs-toc::-webkit-scrollbar{width:5px}body.dark .docs-links::-webkit-scrollbar-track,body.dark .docs-toc::-webkit-scrollbar-track{background:#212529}body.dark .docs-links::-webkit-scrollbar-thumb,body.dark .docs-toc::-webkit-scrollbar-thumb{background:#212529}body.dark .docs-links:hover,body.dark .docs-toc:hover{scrollbar-width:thin;scrollbar-color:#1b1f22 #212529}body.dark .docs-links:hover::-webkit-scrollbar-thumb,body.dark .docs-toc:hover::-webkit-scrollbar-thumb{background:#1b1f22}body.dark .docs-links::-webkit-scrollbar-thumb:hover,body.dark .docs-toc::-webkit-scrollbar-thumb:hover{background:#1b1f22}body.dark .docs-links h3:not(:first-child),body.dark .docs-links .h3:not(:first-child){border-top:1px solid #1b1f22}body.dark a.docs-link{color:#dee2e6}body.dark .page-links li:not(:first-child){border-top:1px dashed #1b1f22}body.dark .card{background:#212529;border:1px solid #1b1f22}body.dark .card.bg-light{background:#1b1f22 !important}body.dark .navbar .menu-icon .navicon{background:#dee2e6}body.dark .navbar .menu-icon .navicon::before,body.dark .navbar .menu-icon .navicon::after{background:#dee2e6}body.dark .logo-light{display:none !important}body.dark .logo-dark{display:inline-block !important}body.dark .bg-light{background:#1e2125 !important}body.dark .bg-dots{background-image:radial-gradient(#556370 15%, rgba(0,0,0,0) 15%)}body.dark .text-muted{color:#c8cfd6 !important}body.dark .alert-primary{background:#8ed6fb;color:#212529}body.dark .figure-caption{color:#dee2e6}body.dark .copy-status::after{content:"Copy";display:block;color:#dee2e6}body.dark .copy-status:hover::after{content:"Copy";display:block;color:#8ed6fb}body.dark .copy-status:focus::after,body.dark .copy-status:active::after{content:"Copied";display:block;color:#8ed6fb}.hljs{display:block;overflow-x:auto;padding:.5em;background:#fbf7f0;color:#1d2d35}.hljs-string,.hljs-variable,.hljs-template-variable,.hljs-symbol,.hljs-bullet,.hljs-section,.hljs-addition,.hljs-attribute,.hljs-link{color:#d32e9d}.hljs-comment,.hljs-quote,.hljs-meta,.hljs-deletion{color:#888}.hljs-keyword,.hljs-selector-tag,.hljs-section,.hljs-name,.hljs-type,.hljs-strong{font-weight:bold}.hljs-emphasis{font-style:italic}body.dark .hljs{background:#1b1f22;color:#dee2e6}body.dark .hljs-string,body.dark .hljs-variable,body.dark .hljs-template-variable,body.dark .hljs-symbol,body.dark .hljs-bullet,body.dark .hljs-section,body.dark .hljs-addition,body.dark .hljs-attribute,body.dark .hljs-link{color:#8ed6fb}pre,code,kbd,samp{font-family:sfmono-regular,menlo,monaco,consolas,"Liberation Mono","Courier New",monospace;font-size:.875rem;border-radius:.25rem}code{padding:.25rem .5rem}pre{background:#fbf7f0;color:#1d2d35;margin:2rem 0}pre code{display:block;overflow-x:auto;line-height:1.5;padding:1.25rem 1.5rem;tab-size:4;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,0) rgba(0,0,0,0)}.hljs{padding:1.25rem 1.5rem}@media (max-width: 575.98px){pre,code,kbd,samp{border-radius:0}pre{margin:2rem -1.5rem}}pre code::-webkit-scrollbar{height:5px}pre code::-webkit-scrollbar-thumb{background:#e9ecef}pre code:hover{scrollbar-width:thin;scrollbar-color:#e9ecef rgba(0,0,0,0)}pre code::-webkit-scrollbar-thumb:hover{background:#e9ecef}.alert{font-family:sfmono-regular,menlo,monaco,consolas,"Liberation Mono","Courier New",monospace;font-size:.875rem}.alert-icon{margin-right:.75rem}.docs .alert{margin:2rem -1.5rem}.alert .alert-link{text-decoration:underline}.alert-dark{color:#fff;background-color:#1d2d35}.alert-dark .alert-link{color:#fff}.alert-light{color:#1d2d35}.alert-warning{background:#fbf7f0;color:#1d2d35}.alert-white{background-color:rgba(255,255,255,.95)}.alert-primary{color:#fff;background-color:#5d2f86}.alert-primary .alert-link{color:#fff}.alert .alert-link:hover,.alert .alert-link:focus{text-decoration:none}.navbar .btn-link{color:#1d2d35;padding:.4375rem 0}#mode{margin-right:1.25rem}.btn-link:focus{outline:0;box-shadow:none}#navigation{margin-left:1.25rem}@media (min-width: 768px){#mode{margin-right:.5rem}.navbar .btn-link{padding:.5625em .25rem .5rem .125rem}}.navbar .btn-link:hover{color:#5d2f86}.navbar .btn-link:active{color:#5d2f86}body .toggle-dark{display:block}body .toggle-light{display:none}body.dark .toggle-light{display:block}body.dark .toggle-dark{display:none}.btn-clipboard{display:none}@media (min-width: 768px){.doks-clipboard{position:relative;float:right}.btn-clipboard{position:absolute;top:1rem;right:.25rem;z-index:10;display:block;padding:.25rem .5rem;font-size:.875rem}}.copy-status::after{content:"Copy";display:block;color:#1d2d35}.copy-status:hover::after{content:"Copy";display:block;color:#d32e9d}.copy-status:focus::after,.copy-status:active::after{content:"Copied";display:block;color:#d32e9d}.comment-list ol{list-style:none}blockquote{margin-bottom:1rem;font-size:1.25rem;border-left:3px solid #dee2e6;padding-left:1rem}.footnote-definition sup{top:-.2 .5em;font-size:.75em;display:inline}.footnote-definition p{display:inline}.search-form label{font-weight:normal}figure{margin:2rem 0}.figure-caption{margin:.25rem 0 .75rem}figure.wide{margin:2rem -1.5rem}figure.wide .figure-caption{margin:.25rem 1.5rem .75rem}@media (min-width: 768px){figure.wide{margin:2rem -2.5rem}figure.wide .figure-caption{margin:.25rem 2.5rem .75rem}}@media (min-width: 992px){figure.wide{margin:2rem -5rem}figure.wide .figure-caption{margin:.25rem 5rem .75rem}}.blur-up{filter:blur(5px)}.blur-up.lazyloaded{filter:unset}.img-simple{margin-top:.375rem;margin-bottom:1.25rem}.navbar-form{position:relative}#suggestions{position:absolute;right:0;margin-top:.5rem;width:calc(100vw - 3rem);max-height:500px;overflow:auto}#suggestions a{display:block;text-decoration:none;padding:.75rem;margin:0 .5rem}#suggestions a:focus{background:#f8f9fa;outline:0}#suggestions div:not(:first-child){border-top:1px dashed #e9ecef}#suggestions div:first-child{margin-top:.5rem}#suggestions div:last-child{margin-bottom:.5rem}#suggestions a:hover{background:#f8f9fa}#suggestions span{font-size:1rem}#suggestions span:first-child{font-weight:700;color:#1d2d35}#suggestions span:nth-child(2){color:#495057}@media (min-width: 576px){#suggestions{width:30rem}#suggestions a{display:flex}#suggestions span:first-child{width:9rem;padding-right:1rem;border-right:1px solid #e9ecef;display:inline-block;text-align:right}#suggestions span:nth-child(2){width:19rem;padding-left:1rem}}table{margin:3rem 0}.footer{border-top:1px solid #e9ecef;padding-top:1.125rem;padding-bottom:1.125rem}.footer ul{margin-bottom:0}.footer li{font-size:.875rem;margin-bottom:0}@media (min-width: 768px){.footer li{font-size:1rem}}.navbar-text{margin-left:1rem}.navbar-brand{font-weight:700}.navbar-light .navbar-brand,.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:active{color:#1d2d35}.navbar-light .navbar-nav .active .nav-link,.navbar-light .navbar-nav .active .banner .nav a,.banner .nav .navbar-light .navbar-nav .active a{color:#5d2f86}@media (min-width: 768px){.navbar-brand{font-size:1.375rem}.navbar-text{margin-left:1.25rem}}.navbar-nav{flex-direction:row}.nav-item,.banner .nav li{margin-left:1.25rem}@media (min-width: 768px){.nav-item,.banner .nav li{margin-left:.5rem}}@media (max-width: 575.98px){.nav-item:first-child,.banner .nav li:first-child{margin-left:0}}@media (max-width: 767.98px){.navbar .container{padding-left:1.5rem;padding-right:1.5rem}}.break{flex-basis:100%;height:0}.navbar{background-color:rgba(255,255,255,.95);border-bottom:1px solid #e9ecef;margin-top:4px}.header-bar{border-top:4px solid;border-color:red;border-image-slice:1}.home .navbar{border-bottom:0}.navbar-form{position:relative;margin-top:.25rem}@media (min-width: 768px){.navbar-brand{margin-right:1rem !important}.main-nav .nav-item:first-child .nav-link,.main-nav .banner .nav li:first-child .nav-link,.banner .nav .main-nav li:first-child .nav-link,.main-nav .nav-item:first-child .banner .nav a,.banner .nav .main-nav .nav-item:first-child a,.main-nav .banner .nav li:first-child a,.banner .nav .main-nav li:first-child a,.fork-me .nav-item:first-child .nav-link,.fork-me .banner .nav li:first-child .nav-link,.banner .nav .fork-me li:first-child .nav-link,.fork-me .nav-item:first-child .banner .nav a,.banner .nav .fork-me .nav-item:first-child a,.fork-me .banner .nav li:first-child a,.banner .nav .fork-me li:first-child a{padding-left:0}.main-nav .nav-item:last-child .nav-link,.main-nav .banner .nav li:last-child .nav-link,.banner .nav .main-nav li:last-child .nav-link,.main-nav .nav-item:last-child .banner .nav a,.banner .nav .main-nav .nav-item:last-child a,.main-nav .banner .nav li:last-child a,.banner .nav .main-nav li:last-child a,.fork-me .nav-item:last-child .nav-link,.fork-me .banner .nav li:last-child .nav-link,.banner .nav .fork-me li:last-child .nav-link,.fork-me .nav-item:last-child .banner .nav a,.banner .nav .fork-me .nav-item:last-child a,.fork-me .banner .nav li:last-child a,.banner .nav .fork-me li:last-child a{padding-right:0}.navbar-form{margin-top:0;margin-left:6rem;margin-right:1.5rem}}@media (min-width: 992px){.navbar-form{margin-left:15rem}}@media (min-width: 1200px){.navbar-form{margin-left:30rem}}.form-control.is-search,.comment-form input.is-search[type=text],.comment-form input.is-search[type=email],.comment-form input.is-search[type=url],.comment-form textarea.is-search,.search-form .is-search.search-field{padding-right:2.5rem;background:#f8f9fa;border:0;}.navbar-form::after{position:absolute;top:.4625rem;right:.5375rem;display:flex;align-items:center;justify-content:center;height:1.5rem;padding-right:.4375rem;padding-left:.4375rem;font-size:.75rem;color:#495057;content:"/";border:1px solid #dee2e6;border-radius:.25rem}/*! purgecss start ignore */.algolia-autocomplete{display:flex !important}.algolia-autocomplete .ds-dropdown-menu{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}@media (max-width: 575.98px){.algolia-autocomplete .ds-dropdown-menu{max-width:512px !important;min-width:312px !important;width:auto !important}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column::after{content:"|";margin-right:.25rem}}.algolia-autocomplete .algolia-docsearch-suggestion--title{margin-bottom:0}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{padding:0 .05em}.algolia-autocomplete .algolia-docsearch-footer{margin-top:1rem;margin-right:.5rem;margin-bottom:.5rem}/*! purgecss end ignore */.navbar .menu-icon{cursor:pointer;padding:1.125rem .625rem;margin:0 0 0 -.625rem;user-select:none}.navbar .menu-icon .navicon{background:#1d2d35;display:block;height:2px;position:relative;transition:background .2s ease-out;width:18px}.navbar .menu-icon .navicon::before,.navbar .menu-icon .navicon::after{background:#1d2d35;content:"";display:block;height:100%;position:absolute;transition:all .2s ease-out;width:100%}.navbar .menu-icon .navicon::before{top:5px}.navbar .menu-icon .navicon::after{top:-5px}.navbar .menu-btn{display:none}.navbar .menu-btn:checked~.navbar-collapse{display:block;max-height:100vh}.navbar .menu-btn:checked~.menu-icon .navicon{background:rgba(0,0,0,0)}.navbar .menu-btn:checked~.menu-icon .navicon::before{transform:rotate(-45deg)}.navbar .menu-btn:checked~.menu-icon .navicon::after{transform:rotate(45deg)}.navbar .menu-btn:checked~.menu-icon:not(.steps) .navicon::before,.navbar .menu-btn:checked~.menu-icon:not(.steps) .navicon::after{top:0}.docs-content>h2[id]::before,.docs-content>[id].h2::before,.docs-content>h3[id]::before,.docs-content>[id].h3::before,.docs-content>h4[id]::before,.docs-content>[id].h4::before{display:block;height:6rem;margin-top:-6rem;content:""}.anchor{visibility:hidden;padding-left:.5rem}h1:hover a,.h1:hover a,h2:hover a,.h2:hover a,h3:hover a,.h3:hover a,h4:hover a,.h4:hover a{visibility:visible;text-decoration:none}.card-list{margin-top:2.25rem}.edit-page{margin-top:3rem;font-size:1rem}.edit-page svg{margin-right:.5rem;margin-bottom:.25rem}p.meta{margin-top:.5rem;font-size:1rem}.breadcrumb{margin-top:2.25rem;font-size:1rem}.page-header{text-align:center;margin-bottom:2rem}.home .card,.contributors.list .card,.blog.list .card{margin-top:2rem;margin-bottom:2rem;transition:transform .3s}.home .card:hover,.contributors.list .card:hover,.blog.list .card:hover{transform:scale(1.025)}.home .card-body,.contributors.list .card-body,.blog.list .card-body{padding:0 2rem 1rem}.blog-header{text-align:center;margin-bottom:2rem}.blog-footer{text-align:center}.docs-links,.docs-toc{scrollbar-width:none;-ms-overflow-style:none;scrollbar-color:#fff #fff}.docs-links::-webkit-scrollbar,.docs-toc::-webkit-scrollbar{width:5px;display:none}.docs-links::-webkit-scrollbar-track,.docs-toc::-webkit-scrollbar-track{background:#fff}.docs-links::-webkit-scrollbar-thumb,.docs-toc::-webkit-scrollbar-thumb{background:#fff}.docs-links:hover,.docs-toc:hover{scrollbar-width:thin;scrollbar-color:#e9ecef #fff}.docs-links:hover::-webkit-scrollbar-thumb,.docs-toc:hover::-webkit-scrollbar-thumb{background:#e9ecef}.docs-links::-webkit-scrollbar-thumb:hover,.docs-toc::-webkit-scrollbar-thumb:hover{background:#e9ecef}.docs-links h3,.docs-links .h3,.page-links h3,.page-links .h3{text-transform:uppercase;font-size:1rem;margin:1.25rem 0 .5rem 0;padding:1.5rem 0 0 0}@media (min-width: 992px){.docs-links h3,.docs-links .h3,.page-links h3,.page-links .h3{margin:1.125rem 1.5rem .75rem 0;padding:1.375rem 0 0 0}}.docs-links h3:not(:first-child),.docs-links .h3:not(:first-child){border-top:1px solid #e9ecef}a.docs-link{color:#1d2d35;display:block;padding:.125rem 0;font-size:1rem}.page-links li{margin-top:.375rem;padding-top:.375rem}.page-links ul ul li{border-top:none;padding-left:1rem;margin-top:.125rem;padding-top:.125rem}.page-links li:not(:first-child){border-top:1px dashed #e9ecef}.page-links a{color:#1d2d35;display:block;padding:.125rem 0;font-size:.9375rem}.docs-link:hover,.docs-link.active,.page-links a:hover{text-decoration:none;color:#5d2f86}.docs-links h3.sidebar-link,.docs-links .sidebar-link.h3,.page-links h3.sidebar-link,.page-links .sidebar-link.h3{text-transform:none;font-size:1.125rem;font-weight:normal}.docs-links h3.sidebar-link a,.docs-links .sidebar-link.h3 a,.page-links h3.sidebar-link a,.page-links .sidebar-link.h3 a{color:#1d2d35}.docs-links h3.sidebar-link a:hover,.docs-links .sidebar-link.h3 a:hover,.page-links h3.sidebar-link a:hover,.page-links .sidebar-link.h3 a:hover{text-decoration:underline}.calendar-row{display:flex;flex-direction:row;padding:0}.calendar-row p{margin-bottom:0}.calendar-row .cal-header{display:flex;flex-direction:column;align-items:center;justify-content:center}@media (min-width: 524px){.calendar-row .cal-header{flex-direction:row}}.calendar-row .cal-week{margin-left:.5rem;min-width:3rem}.calendar-row .cal-date{min-width:8rem}.calendar-row .cal-content{text-align:left;margin-right:.5rem}.calendar hr{margin:1rem 0} \ No newline at end of file diff --git a/plugins/elasticlunr.min.js b/plugins/elasticlunr.min.js new file mode 100644 index 0000000..94b20dd --- /dev/null +++ b/plugins/elasticlunr.min.js @@ -0,0 +1,10 @@ +/** + * elasticlunr - http://weixsong.github.io + * Lightweight full-text search engine in Javascript for browser search and offline search. - 0.9.5 + * + * Copyright (C) 2017 Oliver Nightingale + * Copyright (C) 2017 Wei Song + * MIT Licensed + * @license + */ +!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();o + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +project | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/project/index/foreword/index.html b/project/index/foreword/index.html new file mode 100644 index 0000000..4113e73 --- /dev/null +++ b/project/index/foreword/index.html @@ -0,0 +1,398 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Foreword | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+ + + + + + + + +
+

Foreword

+ +

Grading

+

Regarding the project, you'll have two deadlines with deliverables:

+
    +
  • +

    an intermediate evaluation, to be delivered at the end of week 10, corresponding to weeks 7 to 9 (project steps 1 to 3); this part will be graded for 30%, but, since it will be graded again, with improvement, in the final grading step, the actual overall weight of this part is ∼52%;

    +
  • +
  • +

    the final, end of week 14; weighted 70%; this final deliverable includes also the first part, which may be corrected based on first evaluation feedback.

    +
  • +
+ +

Each of those two grading steps will be evaluated based on:

+
    +
  • automated tests, some of which will be provided during the semester;
  • +
  • human review of your code;
  • +
  • comments, README.
  • +
+

We also will pay attention to the regularity of your workflow +(commit on GiHub).

+

Important message about cheating

+

This work (project) has to be the own work of the corresponding group +(pair of students). No other help is allowed, be it human or artificial. +The code delivered has to be your own (except the one provided by us).

+

The above warning includes both getting external help as well as providing +help (this is also part of cheating), directly or indirectly. This +thus also include being sure you to not make you code publicly +available in any manner.

+

Any plagiarism, in whatever form, will be considered as cheating and will be handled accordingly, including informing the EPFL Legal Affairs.

+

Important message about the workload

+

We designed that project to correspond on average to 4 hours of work per student per week (i.e. 8 hours of work per group). We'd like to insist on these two aspects:

+
    +
  • per student:
    +it's really important that you spread the work over the two students in the group; and split it in a efficient way: e.g. by topics/concepts rather than one week over two;
  • +
  • on average: +some weeks will be more loaded than others; and the last week does not have any new content; we recommend that you work, both group member, on a very regular basis, so as to avoid too heavy workload peaks.
  • +
+

VERY IMPORTANT: +As any homework without any time constraint, the "danger" is to work too much on it, more than expected from us, trying to reach the best possible complete code regardless of the amount of time spent. This is not the proper way to handle homeworks, especially big projects: rather than trying to do perfect final (whole) project in an infinite time, try to do want you can in the amount of time you planed to dedicate to it. We do not mean that you have to deliver bad code, but you can deliver good enough code on a decent fraction of the project (e.g. do 75% of the project at a 80% quality level -- rather than doing 100% of the project at at 33% level [bad grade], or spending an indecent amount of time to reach 100% level (on 100% of the project)).

+

DO NOT HESITATE TO COME TO US AND TALK ABOUT IT!

+

A good way to reduce the workload is to:

+
    +
  1. work on a regular basis (rather than trying to do everything the day(night?) before the deadline);
  2. +
  3. know the concepts well (both theory and C) before starting to work on the project;
  4. +
  5. use the debugger;
  6. +
  7. do not get mad about one single test that does not pass;
  8. +
  9. do what we ask for (and not more; some students have sometime a tendency to overestimate our expectations).
  10. +
+

A bad example of points 2 and 5 above: some groups in the past completely recoded some functionalities that are present in the C library (e.g. string functions).

+

In order to help you handling your workload and priorities (and also see if we don't fool ourselves), we ask you to weekly commit a CSV file time.csv (in the done/ directory) counting the total number of hours (decimal number) you spent on the project for the corresponding week (sum for the two students).
+This is absolutely not to control you; your really can, without any penalty nor judgment on our side, put a 0 on some week if that was the case. This is only a tool for you, as a kind of "compass", we put in place following suggestions of former students.

+

The format for this file is very simple:
+one line for each week, starting with the week number and then, comma separated (CSV), the total number of hours (in decimal) spent by the group on the project that week, regardless of the handout number (I mean, if in week 8 you are still working on the week 6 of the project, count this in week 8, the week you do the work, not the week number of the handout you're doing).

+

For example:

+
+  6,2.75
+  7,3.5
+
+ +
+ + +
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/project/index/index.html b/project/index/index.html new file mode 100644 index 0000000..96e26bc --- /dev/null +++ b/project/index/index.html @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +General | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+ +
+
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/project/index/warmup/index.html b/project/index/warmup/index.html new file mode 100644 index 0000000..5026a92 --- /dev/null +++ b/project/index/warmup/index.html @@ -0,0 +1,850 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Warmup | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+ + + + + + + + +
+

Warmup

+ +

Introduction

+

Welcome in the project part of the CS202 course!
+This project is organized as follows:

+
    +
  1. a first warm-up week (this week) to setup all the tools needed, and make you ready for the core content; this first week has to be done alone;
  2. +
  3. the core content of the project spreads over 7 weeks (from week 7 to 13), with two major part: an "OS"-like (weeks 7 to 10) and a networking part; this part has to be done in pairs; each group of two students will have their own github repository (explained later), where to put its code.
  4. +
+

The objectives of the project are:

+
    +
  1. +

    to concretely illustrate several aspects of the lectures;

    +
  2. +
  3. +

    to let you develop a real system application in C (with files, pointers, sockets, threads, external library calls, ...);

    +
  4. +
  5. +

    to let you practice usual development tools, among which: control version systems (git), manpages, make, debugger (gdb);

    +
  6. +
  7. +

    to teach you how to use system (or external) libraries;

    +
  8. +
  9. +

    to practice (a bit of) refactoring.

    +
  10. +
+

This week

+

Objectives

+

This week, we will setup and learn several tools that will be useful for the project:

+
    +
  1. setup GitHub;
  2. +
  3. review (learn?) (a bit of) Git;
  4. +
  5. compile a project made of several C codes;
  6. +
  7. use a debugger.
  8. +
+

The aim of this first week is to guarantee that you are ready to start with the project; that you have the proper working environment to do so. It is really important that this objective is fulfilled before the actual start of the project (week 7 of the semester). Do not hesitate to come to us for help.

+

Concretely, what we expect you to do this week is to:

+
    +
  • setup Git and get this week material;
  • +
  • compile a C program using an external library (OpenSSL) [1 exercise];
  • +
  • understand and practice compilation of C software made of several files (and use make);
  • +
  • practice the debugger.
  • +
+

Environment

+

For this project, you have to work on Linux. For this you can either:

+
    +
  • install a virtual machine of your own on your own computer (see this page for VirtualBox or this page for VMWare);
  • +
  • use one of the IC-CO-IN-INJ-2024-Spring* virtual machines (with or without MA suffix), either remotely from your own computer through vdi.epfl.ch, or directly on the Dell terminals provided in rooms CO-020 to CO-023 or INF3;
  • +
  • use a Live USB on your own computer;
  • +
  • use your own computer directly if it's already a Linux box.
  • +
+

No other OS will be supported (nor accepted) for this project.

+

In addition to the standard C development framework (editor, compiler, debugger), you'll nee the following tools (sudo apt install <package> if you are on your own Debian/Ubuntu-like computer):

+
    +
  • git (this is the package name to be installed);
  • +
  • some SSH client, e.g. openssh-client;
  • +
  • documentation (manpages) : manpages and manpages-dev;
  • +
  • [optional] doxygen if you want to automatically produce the documentation out of your source code;
  • +
  • [optional] graphviz to see the graphs generated by Doxygen;
  • +
  • libssl-dev: some cryptographic function we will use to compute "hash"-code of images;
  • +
  • libvips-dev to process images from C code;
  • +
  • libjson-c-dev to process JSON content from C code.
  • +
+

GitHub

+

You certainly already know Git and GitHub (not to be confused!), maybe from some former classes. This is just a quick recap, or a gentle introduction if you don't know them yet.

+

GitHub is one of the public servers to offer Git services. Each student will first receive a personal repository on GitHub for this first step (warm-up); then each group (pair of two students) will also get another repository for its core project (this will be explained later in the semester).

+

The first thing to do is to have a GitHub account. If you don't have one yet, create it by registering here. A free account is more than enough for this course.
+(if you already have a GitHub account, please use it for this class).

+

Then, once you have a GitHub account, join the first assignment, here: https://classroom.github.com/a/WG78CBVj.

+

GitHub Classroom may ask you the right to access your repositories:

+

Authorization to GitHub Classrooms

+

then to join this first assignment (click on YOUR SCIPER NUMBER; please don't use someone else SCIPER!):

+

Join the first assignment using your SCIPER

+

and then to create a GitHub repository for that first assignment:

+

Create first repo

+

Once all this done, you should receive a message from GitHub that you joined the "Warm-up" assignment and that you have a new repository cs202-24-warmup-YOUR_GITHUB_ID, the URI of which looks like:

+
git@github.com:projprogsys-epfl/cs202-24-warmup-GITHUBID.git
+
+

To be able to clone this repository, you have to add your SSH public key (the one of the computer you are using) to GitHub.

+

If you don't have any SSH key yet (on the computer you are using), you can generate one with:

+
ssh-keygen
+
+

Copy then the content of the file ~/.ssh/id_rsa.pub into GitHub SSH public keys.

+

NOTE: you can also use https URI rather than SSH:

+
https://github.com/projprogsys-epfl/cs202-24-warmup-YOURID.git
+
+

but then you'll have to authenticate each time (each command).

+

Git

+

It's not the purpose of this class to teach you Git, nor to present all its details. The purpose of this section is to provided you a short description on the necessary commands:

+
    +
  • git clone [REPO_URI]
  • +
  • git pull
  • +
  • git add [FILE]
  • +
  • git commit -m "Commit message"
  • +
  • git push
  • +
  • git status
  • +
  • git tag
  • +
+

For each command, you can get help from git by doing:

+
git help <COMMAND>
+
+

In case you need a recap on git, either go to your former material (e.g. CS-214 if you took it), or see this complementary recitation page (in French).

+

Ready to go

+

(If you have received the confirmation email from GitHub) +Now go and get the content of this warm-up assignment:

+
git clone REPO_URI
+
+

This will create a local directory on your computer, named like cs202-24-warmup-YOURID (with your GitHub ID at the end).

+

Go into that directory:

+
cd cs202-24-warmup-YOURID
+
+

You should find two sub-directories: done and provided. This is how we will proceed for the project:

+
    +
  • all what we will provide you (incrementally) will be put in the provided sub-directories; THIS SUB-DIRECTORY (provided) SHALL NOT BE MODIFIED (by you);
  • +
  • all your work has to be done in the done directory; (incrementally) copy the necessary files from provided to done and then proceed.
  • +
+

manpages

+

Before moving on, let us recap that the manpages are THE reference documentation in Unix world. +You can read them with the man command (they can also be read on line).

+

The first manpage to read (maybe not in whole ;-), but at least have a look at it) is the manpage of the man command itself:

+
man man
+
+

Use the space bar to move forward, 'b' to go backward and 'q' to quit. Type 'h' to get more help.

+

man actually uses another command, a "page viewer". In most of the modern Unix systems, this page viewer is less (replacing former more command!). Thus maybe the second manpage to read is the one of less:

+
man less
+
+

On of the first function you have dealt with in C was printf(). Let's try to see its manpage:

+
man printf
+
+

Hmm?... This does not seem to be the right printf... +If you have a "PRINTF(1)" on the very top of the page, this is indeed not the expected C printf() function.

+

There can indeed be several manpages with the same "title". To mark the difference, the manpages are organized in "Sections". Go and read the manpage of man again if you missed that information:

+
man man
+
+

To go to the desired printf manpage, we have to look for the one in "section 3". Try to do it by yourself (maybe read the manpage of man once again).

+

And don't forget to use man in the future, whenever needed!

+

Compilation of code with library

+

The aim of this first exercise is to continue setting up your environment to be able to properly code the project.
+In the coming project, we will make use of several libraries (as explained in the introduction). Let's try here to use the first one:

+
    +
  • libssl; this library offers cryptographic functionalities (see man ssl); we will use it to calculate the hash ("SHA code") of some images.
  • +
+

Installation

+

If you work on your own Linux (not on EPFL VMs), and you didn't install it yet, please install libssl-dev:

+
sudo apt install libssl-dev libssl-doc
+
+

In the provided sub-directory you find a file sha.c. First copy it to your done and work there:

+
cd done
+cp ../provided/sha.c .
+
+

To compile it, you need to add the ssl can crypto libraries. This is done by adding the -lssl and -lcrypto flags; e.g.:

+
gcc -std=c99 -o sha sha.c -lssl -lcrypto
+
+

If everything is properly installed, the above compilation should succeed and you should have a ./sha program in your done sub-directory. This exec does not much for the moment as its main part is still missing. This is what you have to add now.

+

SHA codes

+

A "SHA code", or "SHA" (which stands for "Secure Hash Algorithm"), is a compact representation, almost certainly unique, and hardly invertible (reciprocal), of any data. More concretely:

+
    +
  • +

    compact: whatever data, whatever their length, will be represented by the same amount of bits; it this project, we will use 256 bits ("SHA256");

    +

    for example, the SHA256 of "hello" (without newline, nor quotes) is
    +2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824;

    +
  • +
  • +

    almost certainly unique: different data will most probably have two different SHA; this is not guaranteed (there are "only" 1077 different SHA256), but highly probable: with 1035 different data, the probability to get the same SHA is 10-6; +when two different data have the same SHA, this is called a "collision";

    +
  • +
  • +

    hardly invertible : from a SHA code, it's extremely difficult (= impossible in practice) to guess its corresponding data; one consequence of that is that a small variation in the data leads to a completely different SHA; for instant, the SHA256 for "hello!" is
    +ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b
    +(to be compared to the one of "hello" above) and the one of "hello\n" (i.e. with a newline) is
    +5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03.

    +
  • +
+

Complete the provided code

+

The provided code (sha.c) compiles but does nothing really interesting. Actually there is no computation of the SHA256 of the input; no call to the SHA256() function from the libssl.

+

Have a look at how to use this function:

+
man SHA256
+
+

(if you have the manpages for this library installed on your computer; otherwise, read it online.

+

Add, where indicated by "TODO", a call to compute the SHA256 of the input string.

+

Example:

+

If everything is properly done, you should get:

+
Type a sentence: Hello world!
+The SHA256 code of
+"Hello world!
+"
+is: 
+0ba904eae8773b70c75333db4de2f3ac45a8ad4ddba1b242f0b3cfc199391dd8
+
+

You can also debug with the "hello" string given above (with the newline!).

+

Compilation of multiple files, Make and Makefiles

+

Background knowledge

+

The source code of real-life applications written in C is often distributed over several text files called "source files", which are "glued together" by the compiler to create an executable program from the source code. This way of proceeding is called "modularization" and is detailed

+ +

Choose your favorite learning way (maybe benefit from both).

+

We strongly recommend you go through this material before moving on.

+

Practice

+

The objectives of this section is that

+
    +
  1. you know the basics of Makefiles;
  2. +
  3. you can read a simple Makefile;
  4. +
  5. you can update existing simple Makefiles.
  6. +
+

We don't expect you to write your own Makefiles from scratch, neither to master all the arcane details (while reading).

+

Read, then update, simple Makefiles

+

Go ahead with the above mentioned tutorial. +Follow (and understand) examples 1 and 2, then exercises 1 and 2, and then 3.

+

Understand bigger projects

+

The sub-directory bigprj contains a "big" project for which we propose you to write its Makefile.

+

IMPORTANT REMARK : the code provided in bigprj is under copyrights and shall not be copied nor reused anywhere else, neither in total nor any piece of it.
+(It's furthermore quite bad code and is thus not at all a good example of good practice.) +It's there only for you to learn Makefiles by trying to write one to compile this project.

+

That code uses sub-directories and one C99 function (roundf()).

+

To tell the compiler to search for header files in some sub-directories, add an -I option per sub-directory. For example, when compiling machin.c, to tell the compiler to search for a header file in the stuff sub-directory, you would do :

+
gcc -c -I stuff machin.c -o machin.o
+
+

(See also the CFLAGS variable in the make tutorial.

+

To compile to the C99 standard (or higher), pass the -std=c99 (or -std=c17 or -std=c2x) option to the compiler (see the CFLAGS variable).

+

Finally, to be able to use C99's roundf() function, you need to link to the math library by adding -lm.

+

(See also the LDLIBS variable in the make tutoriak.)

+

Notes:

+
    +
  1. +

    The provided code compiles with many "warnings". We do not ask you to fix these errors, but simply to write a Makefile that produces a hand executable.

    +
  2. +
  3. +

    You don't need to run it. If you have, you can simply quit it by typing Ctrl-C.

    +
  4. +
+

Debugging

+

In this last part, we'd like you to practice debugging of C code. This is very important to master debugging before going deeper into the project. Otherwise, without a good practice of debugging, you'll really loose lots of times.

+

For those who took the CS-214 Software Construction class, also remember/review all the methodology, good practices, your learned there about debugging. Maybe have a refresh of that material first.

+

Tools

+

To help you find faults in code (especially in your own code later on in the project; think about it!), there are several tools available:

+
    +
  • +

    compiler options

    +
  • +
  • +

    static code analysis

    +
  • +
  • +

    dynamic memory analysis;

    +
  • +
  • +

    and, of course, debuggers.

    +
  • +
+

Useful compiler options

+

The compiler is a great help when you know how to use it and interpret its messages.

+

Its behavior, more or less verbose, can be modified using compiler options, the most useful of which are detailed here.

+

In the same spirit (using the compiler to find errors), it can also be useful to use different compilers (with the options below) on the same code, as they don't necessarily detect the same things. On VMs, you have gcc and clang.

+

The first thing to do is to specify the standard used (as there are many non-standard "dialects"). This is done with the -std= option. We recommend -std=c99 or -std=c17. To stick strictly to the specified standard (and reject the associated "GNU dialect") add the -pedantic option.

+

Then, it can be useful to let the compiler warn us with lots of the usual warning. This is done with the -Wall option (like "all warnings", even if they're actually not all there ;-)`).

+

For even more warnings, add -Wextra.

+

And here are a few more that we think are worth adding (you're free not to if you find them too fussy):

+
    +
  • +

    -Wuninitialized: warns of uninitialized variables;

    +
  • +
  • +

    -Wfloat-equal: warns of equality tests on floating-point numbers;

    +
  • +
  • +

    -Wshadow: warns if one name masks another (risk of scope problems);

    +
  • +
  • +

    -Wbad-function-cast: warns of incorrect function return type conversion;

    +
  • +
  • +

    -Wcast-qual: warns of pointed type conversion that removes a qualifier (typically const);

    +
  • +
  • +

    -Wcast-align: warns of pointed type conversions that do not respect memory word alignment;

    +
  • +
  • +

    -Wwrite-strings: warns of (risk of) confusion between const char * and char *;

    +
  • +
  • +

    -Wconversion: warns of implicit type conversion;

    +
  • +
  • +

    -Wunreachable-code: warns of useless (unreachable) code;

    +
  • +
  • +

    -Wformat=2: increases the level of format warnings (such as printf and scan) compared to -Wall;

    +
  • +
  • +

    -Winit-self: warns of recursive initialization (such as int i = 3 * i;);

    +
  • +
  • +

    -Wstrict-prototypes: warns of function declarations without arguments;

    +
  • +
  • +

    -Wmissing-declarations: warns of functions defined but not prototyped; this can be useful for detecting the omission of a prototype in a .h (or the omission of a #include).

    +
  • +
+

Finally, you can of course add other options if you feel they are useful. As usual, check out the "man pages" for more details.

+

Static code analysis

+

The static code analyzer is a tool that tries to find errors in code by "imagining" all possible execution paths. The scan-build (and scan-view) analyzer is available on VMs. It is used by simply adding scan-build in front of the build command, e.g. :

+
scan-build make
+scan-build make cecicela
+scan-build gcc -o monexo monexo.c
+
+

The easiest way is to try :

+
scan-build gcc stats.c -lm
+
+

This command tells you (at the very end) to look at its analysis using scan-view, e.g. :

+
scan-view /tmp/scan-build-2024-01-17-175346-107146-1
+
+

(but this file name changes every time).

+

We'll let you have a look at what it found...

+

Using a debugger

+

See this tutorial for instructions on using the gdb debugger.

+

This tutorial takes as its example the first program you'll have to hand in (stats.c), but we encourage you to try your hand at the other codes too (ex1.c and ex2.c) and to go back and forth between this topic and the tutorial in question (rather than reading it linearly and then continuing with this topic).

+

Methodology for debugging

+

To find an error efficiently, we suggest the following general tips (other more job-specific tips are also provided below):

+
    +
  1. +

    try to correct only one bug at a time;

    +
  2. +
  3. +

    always start with the first error;

    +
  4. +
  5. +

    isolate/identify the bug in a reproducible way: always retest with exactly the same values each time;

    +
  6. +
  7. +

    apply the following methodology (it may seem trivial, but all too often we've seen students waste their time looking for bugs in the wrong place because one of the following 2 "dots" was not placed on the right side; often due to over-strong assumptions (wrong guesses) or wrong/too-fast deductions):

    +
      +
    • +

      always have 2 clear places (2 "dots") in your code:

      +
        +
      • +

        one place where you are absolutely sure that the bug has not yet occurred (e.g. the very beginning of the program);

        +
      • +
      • +

        and another where you are absolutely sure that the bug has occurred (e.g. the point where the program crashes, or simply the end/beginning of the program);

        +
      • +
      +
    • +
    • +

      move (advance/reassemble) the most promising of these two points, being sure not to "cross over" to the other side of the bug; check this aspect ("not cross over") with certainty;

      +
    • +
    • +

      at the end of this process (of dichotomous searching in fact), the two "points" will be exactly on the spot of the bug.

      +
    • +
    +
  8. +
  9. +

    if you're searching for bugs using display messages (printf()) :

    +
      +
    • +

      always put a \n at the end of each message;

      +
    • +
    • +

      mark the beginning of each of your debugging messages with a clear identifier reserved only for this purpose (e.g. "#### "); this allows you :

      +
        +
      1. +

        to easily see these messages in the program output;

        +
      2. +
      3. +

        find them easily in your code to edit/delete later;

        +
      4. +
      +
    • +
    • +

      have a unique part in each message (e.g. "debug(1):", "debug(2):", "debug(3):", etc., or "here i=", "here j=", "here k=", etc.; you can of course combine);

      +
    • +
    +

    having this discipline with debugging messages may seem like a waste of time (especially when you're looking for the bug), but, believe me, it actually saves a lot of time in the end!

    +
  10. +
+

Debugger training exercises

+

Here are two exercises to help you get to grips with gdb.

+

Exercise 1

+

Look at the ex1.c code to get an initial idea.

+

Then compile it for the debugger (either by hand or by making a small Makefile).

+

Run it in the terminal to see what it produces.

+

Then use the debugger to determine the values of d0, d1 and d17 :

+
    +
  • +

    set one or more well-placed breakpoints

    +
  • +
  • +

    try the commands :

    +
      +
    • +

      step and next;

      +
    • +
    • +

      continue (abbreviated cont), followed, or not, by a number;

      +
    • +
    • +

      print and/or display.

      +
    • +
    +
  • +
+

You can also try advance and finish.

+

NOTES:

+
    +
  1. +

    you can see the syntax and explanation of a command in gdb by using help followed by the command; e.g. :

    +
     help adv
    +
    +
  2. +
  3. +

    you can list all your breakpoints via :

    +
     info break
    +
    +
  4. +
+

Exercise 2:

+

Take a look at the ex2.c code to get an initial idea. The aim of this code is to calculate the entropy of a given distribution by its frequencies (= integer counts).

+

Some examples (useful for debugging):

+
    +
  • +

    the entropy without any count is 0, no matter how you enter it:

    +

    0
    +0 0 0
    +0 0 0 0 0 0
    +etc;

    +
  • +
  • +

    the entropy of any 1-value distribution is 0, however you enter it:

    +

    0
    +0 1 0
    +0 12 0
    +0 0 12
    +0 0 0 33 0 0 0
    +etc;

    +
  • +
  • +

    the entropy of any distribution with 2 equiprobable values is 1 bit, regardless of how it is entered:

    +

    1 1
    +0 1 1 0
    +0 12 0 12
    +etc;

    +
  • +
  • +

    the entropy of any distribution with 3 equiprobable values is 1.58496 bit, however you enter it;

    +
  • +
  • +

    the entropy of the distribution :

    +

    1 2 3 4 5

    +

    is 2.14926 bit.

    +
  • +
+

The code provided contains several errors. Try to find them using the debugger: breakpoints, next, cont, display, etc.

+

You can even start by running the code directly in gdb, typing run. +then enter :

+
1 0
+
+

and see what happens.

+

To locate the error in the call stack, do :

+
where
+
+

To see the code :

+
layout src
+
+

To navigate the call stack :

+
up
+down
+
+

Give it a try...

+

Note: there are four things to be corrected.

+

Exercise 3: a simple case on your own

+

All the above tools (compiler options, static code analysis, dynamic memory analysis (when you have pointers) and debugger) will help you to be more efficient in your project. We therefore ask you to start using them to correct the stats.c code provided.

+

Try to fix entirely the stats.c file provided, whose purpose is to calculate the mean and standard deviation (unbiased) of the age of a set of 1 to 1024 people (beware! it contains several errors, of different kinds; there are, however, no errors of a mathematical nature: the formulas are mathematically correct; but note however that the standard deviation of a population reduced to a single individual must be zero).

+

The first thing to do might be to complete your Makefile so that it can produce stats with information useful to the debugger (option -g). You could also take the opportunity to turn on the compiler's warnings and look in detail at what it's telling you and, above all, understand why it's telling you.

+

Once the program has compiled, if possible without warning, here are 3 ways to go further in correcting the program:

+
    +
  1. +

    test values that are outside the expected limits, and see if the program reacts as you'd expect. For example: what happens if you enter a negative number of people? a negative age?

    +
  2. +
  3. +

    calculate by hand the mean and standard deviation (following the provided formula!) of a small sample and compare them with the output of your program. If there are differences, use the debugger to find out where they come from;

    +
  4. +
  5. +

    remember to test all the limiting cases of these formulas.

    +
  6. +
+

[optional] Documentation with Doxygen

+

When editing the sha.c file, you may have noticed that it is commented (always comment your programs!), in a rather peculiar format ("what's with the @?").

+

It's not just for show; it's also useful!

+

Type :

+
doxygen -g
+doxygen Doxyfile
+
+

then view the file html/index.html in your favorite browser.
+Click on "Files", then on "sha.c".
+Cool, isn't it?

+

Clean it up with the command

+
rm -r latex html
+
+

In future, remember to document your code with Doxygen-compatible comments.

+

Examples will be provided, but if you want to know more, have a look at the Doxygen website.

+

IMPORTANT REMARK: For the project, make your code anonymous: don't put any author's name, SCIPER, email, etc.

+ +
+ + +
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/project/mainprj/01-imgfs/index.html b/project/mainprj/01-imgfs/index.html new file mode 100644 index 0000000..bc034a5 --- /dev/null +++ b/project/mainprj/01-imgfs/index.html @@ -0,0 +1,582 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ImgFS: Image-oriented File System --- ImgFS format | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+ + + + + + + + +
+

ImgFS: Image-oriented File System --- ImgFS format

+ +

The aim of this week is to:

+
    +
  1. become fully acquainted with the framework and concepts of the project;
  2. +
  3. implement the opening and closing of ImgFS files;
  4. +
  5. then implement the simplest functionality, which lists the contents of the metadata.
  6. +
+

So start by reading the main project description file to understand the general framework of the project. Once you've done that, you can continue below.

+

Provided material

+

In your group's GitHub repository, you will find the following files in provided/src/:

+
    +
  • imgfs.h: function prototypes for the operations described here;
  • +
  • imgfscmd.c: the core of your "Filesystem Manager", the command line interface (CLI) to handle imgFS; it reads a command and calls the corresponding functions to manipulate the database;
  • +
  • imgfs_tools.c: the tool functions for imgFS; for example to display the data structure;
  • +
  • imgfscmd_functions.h and imgfs_cmd.c: prototypes and definitions of the functions used by the CLI;
  • +
  • util.h and util.c: macros and miscellaneous functions; you do not need to use them (have a look to see if some may be useful);
  • +
  • error.h and error.c: error code and messages;
  • +
  • a Makefile containing useful rules and targets;
  • +
  • some unit and end-to-end tests in provided/tests/{unit,end-to-end}/;
  • +
  • data for your tests in provided/tests/data.
  • +
+

To avoid any trouble, the contents of the provided/ directory must never be modified!

+

Start by copying the files you need from provided/src/ into the done/ directory at the root of the project and registering it in git (git add); for instance:

+
cp provided/src/*.h provided/src/Makefile provided/src/imgfs*.c provided/src/util.c provided/src/error.c done
+git add done
+
+

You'll proceed similarly in the next weeks, whenever you'll need new files from provided/src.

+

Tasks

+

The provided code does not compile; some work is still required, in the following steps (which are further detailed below):

+
    +
  1. define the data structures required for imgFS;
  2. +
  3. parsing the command line arguments;
  4. +
  5. define the functions do_open() and do_close();
  6. +
  7. define the function do_list();
  8. +
  9. define the function do_list_cmd().
  10. +
+

After reaching that point, the code should compile without errors. You will then have to test it.

+

An example usage of the CLI (the name of which is imgfscmd) is:

+
./imgfscmd list empty.imgfs
+
+

where list is a command provided to the CLI and empty.imgfs is an argument for that command, here simply an ImgFS file (thus a file containing a whole filesystem).

+

0. STYLE!

+

Important Note: writing clean code, readable by everyone is very important. From experience, it seems that not everyone does this spontaneously at first ;-). There are tools that can help. For example, astyle is a program designed to reformat source code to follow a standard (man astyle for more details).

+

We provide you with a shortcuts (which uses astyle): see the target style in the provided Makefile (make style to use it). We recommend you do a make style before any (Git) commit.

+

1. Define data structures

+

The exact format of the header and metadata is given in the global project description. The types

+
    +
  • struct imgfs_header;
  • +
  • struct img_metadata;
  • +
  • and struct imgfs_file;
  • +
+

are to be defined in replacement of the "TODO WEEK 07: DEFINE YOUR STRUCTS HERE."" in imgfs.h.

+

2. Parsing of the command line arguments

+

The second objective of this week is to process the arguments received from the command line. For modularization purposes, we will use function pointers.

+

To achieve this, the signatures of the functions do_COMMAND_cmd() (and help()) are uniform:

+
int do_COMMAND_cmd(int argc, char* argv[])
+
+

Those functions will handle the parsing of their respective additional arguments, while the main() dispatches through them using the first CLI argument.

+

Using arrays for simplicity

+

To process all the different commands, we would like to avoid an "if-then-else" approach. Indeed, this would make adding new commands (which will arrive in the following weeks) more difficult, since it would require to add new cases for each of them. It would also make the code much less readable.

+

To avoid that, we put the various do_COMMAND_cmd() (and help()) functions in an array. We will take advantage of this to associate the names of the commands with their respective functions (e.g. the string "list" with the do_list_cmd() function), and then simply add a loop to the main() function, to search for the received command among the list of possible commands -- for the moment, "list", "create", "help" and "delete" -- and call the corresponding function.

+

In imgfscmd.c:

+
    +
  1. define a command type, a pointer to functions such as those unified above;
  2. +
  3. define a struct command_mapping type containing a string (constant) and a command.
  4. +
+

Then use these definitions to create an array named commands associating the commands +"list", "create", "help", and "delete" to the corresponding functions.
+Note: The "create", "help" and "delete" commands are not yet implemented, but you can already add them to the array.

+

Finally, complete the main() using this array inside a loop. When the right command is found, simply call the function pointed to in the corresponding array entry, passing all the command line arguments.

+

For example, if you call the program

+
./imgfscmd list imgfs_file
+
+

then your code must call do_list_cmd() with the following parameters: argc = 1 and argv = { "imgfs_file", NULL }.

+

Your code must correctly handle the case where the command is not defined: in this case, simply call help() and return ERR_INVALID_COMMAND.

+

Your code can perfectly well assume that all commands in the commands array are distinct.

+

3. do_open() and do_close()

+

Now, we will implement the functions to open and close existing imgfs files.

+

You need to write the definitions of do_open() and do_close() in the file imgfs_tools.c.

+

The do_open() function takes as arguments:

+
    +
  • the image base file name (const char *);
  • +
  • the file opening mode (const char *, e.g. "rb", "rb+");
  • +
  • the imgfs_file structure in which to store read data.
  • +
+

The function must

+
    +
  1. open the file;
  2. +
  3. read the contents of the header;
  4. +
  5. allocate the metadata array;
  6. +
  7. read the contents of the metadata.
  8. +
+

The function should return the value ERR_NONE if all went well, and otherwise an appropriate error code in case of problems. You need to handle all possible error cases in this function, using the definitions in error.h (see unit tests below).
+Note: to check the validity of a pointer given as parameter, you can use the macro M_REQUIRE_NON_NULL(ptr), which will make the function return ERR_INVALID_ARGUMENT if ptr == NULL (see util.h).

+

The do_close() function takes a single argument of structure type imgfs_file and must close the file and free the metadata array. It returns no value. Here too, remember to handle the possible error case: if the file (FILE*) is NULL. This should be a reflex when you're writing code, especially when you're using a pointer. We won't mention it again.

+

4. Define do_list()

+

Then create a new file imgfs_list.c to implement the do_list() function. If output_mode is STDOUT, the purpose of do_list() is first to print the contents of the "header" using the supplied print_header() tool function, and then to print (examples below)

+
    +
  • +

    either

    +
    << empty imgFS >>
    +
    +

    if the database does not contain any images;

    +
  • +
  • +

    or the metadata of all valid images (see print_metadata(), provided in imgfs.h).

    +
  • +
+

The case output_mode == JSON will be implemented later in the project; you may just call TO_BE_IMPLEMENTED() in this case (see util.h).

+

Warning: there may be "holes" in the metadata array: one or more invalid images may exists between two valid ones.

+

5. Complete do_list_cmd()

+

In order to be able to use the do_list() function from the command line, implement the do_list_cmd() function in imgfscmd_functions.c, which receives the command line arguments as parameters (as explained before).

+

The first element of the array is the name of the file containing the database. After checking that the parameters are correct, open the database and display its contents, using the above functions.

+

Examples and tests

+

To make it easier to understand the various functions described above, a few examples are given here. These examples are +in the provided tests (see below).

+

Black-box (end to end) testing

+

It's best to start testing your code on simple cases that you're familiar with.

+

You can test your code with the supplied .imgfs files: the command

+
./imgfscmd list ../provided/tests/data/empty.imgfs
+
+

should display (exact file here):

+
*****************************************
+********** IMGFS HEADER START ***********
+TYPE: EPFL ImgFS 2024
+VERSION: 0
+IMAGE COUNT: 0          MAX IMAGES: 10
+THUMBNAIL: 64 x 64      SMALL: 256 x 256
+*********** IMGFS HEADER END ************
+*****************************************
+<< empty imgFS >>
+
+

while

+
./imgfscmd list ../provided/tests/data/test02.imgfs
+
+

should display (exact file here) :

+
*****************************************
+********** IMGFS HEADER START ***********
+TYPE: EPFL ImgFS 2024
+VERSION: 2
+IMAGE COUNT: 2          MAX IMAGES: 100
+THUMBNAIL: 64 x 64      SMALL: 256 x 256
+*********** IMGFS HEADER END ************
+*****************************************
+IMAGE ID: pic1
+SHA: 66ac648b32a8268ed0b350b184cfa04c00c6236af3a2aa4411c01518f6061af8
+VALID: 1
+UNUSED: 0
+OFFSET ORIG.: 21664            SIZE ORIG.: 72876
+OFFSET THUMB.: 0                SIZE THUMB.: 0
+OFFSET SMALL: 0                SIZE SMALL: 0
+ORIGINAL: 1200 x 800
+*****************************************
+IMAGE ID: pic2
+SHA: 95962b09e0fc9716ee4c2a1cf173f9147758235360d7ac0a73dfa378858b8a10
+VALID: 1
+UNUSED: 0
+OFFSET ORIG.: 94540            SIZE ORIG.: 98119
+OFFSET THUMB.: 0                SIZE THUMB.: 0
+OFFSET SMALL: 0                SIZE SMALL: 0
+ORIGINAL: 1200 x 800
+*****************************************
+
+

Note: you may compare your results by using:

+
./imgfscmd list ../provided/tests/data/test02.imgfs > mon_res_02.txt
+diff -w ../provided/tests/data/list_out/test02.txt mon_res_02.txt
+
+

More details: man diff.

+

Provided tests

+

setup

+

The provided test suites require several dependencies: Check and Robot Framework (and its own dependency, parse). On (your own) Ubuntu, you can install them with:

+
sudo apt install check pip pkg-config
+
+

then, depending on how you're used to work in Python, either as root or in your Python virtual environment (maybe to be created):

+
pip install parse robotframework
+
+

(Of course you'll have to run the tests in that Python venv, if that's your usual way to work with Python.)

+
+

ON EPFL VMs, you have to setup a personnal Python virtual environment.

+

If you already have one, activate it and install the two above mentioned packages (parse and robotframework).

+

It you don't, we recommand you create your personnal Python virtual environment in myfiles:

+
cd ~/Desktop/myfile
+python -m venv mypyvenv
+cd mypyvenv
+cp -r lib lib64 ## this fixes the first warning
+cd ..
+python -m venv mypyvenv
+
+

Ignore the (second) warnings.

+

Then activate it:

+
source mypyvenv/bin/activate
+
+

and then install the required packages:

+
pip install parse robotframework
+
+

And you're done.

+

The only thing you'll have to do next time you login and you want to run the "end to end" tests, is to activate your Python virtual environment:

+
source ~/Desktop/myfiles/mypyvenv/bin/activate
+
+

Of course, you can also add that to your ~/.bashrc!

+
+

provided tests

+

We provide you with a few tests to run against your code by using make check, both unit tests (testing functions one by one) and end-to-end tests (testing the whole executable at once).

+

We strongly advise you to complete them by adding you own tests for edge cases; the imgFS files are in provided/test/data. You can check the unit tests in provided/test/unit and the end-to-end ones in provided/test/end-to-end to understand how to write your own.
+Note: Don't forget to never push modifications in the provided/ directory; instead move the test/ directory to done/ and update the TEST_DIR variable in the Makefile accordingly.

+

We also provide a make feedback (make feedback-VM-CO if you're working on EPFL VMs) which gives partial feedback on your work. This is normally used for a minimal final check of your work, before handing it in. It's better to run local tests directly on your machine beforehand (including more tests you've added yourself, if necessary).

+

The Docker image used by make feedback will be tagged latest every week, but if you want to run feedback for a specific week, change (in the Makefile at the line that defines IMAGE) this latest tag to weekNN where NN is the desired week number, e.g.:

+
IMAGE=chappeli/cs202-feedback:week07
+
+

Work organization

+

It's up to you to organize the group work as best you can, according to your objectives and constraints; but remember to divide the task properly between the two members of the group. +If you haven't already read it in full, we recommend you read the end of the foreword page.

+

Submission

+

You don't have to formally deliver your work for this first week of the project, as the first deliverable will only be due at the end of the week 10 (deadline: Sunday May 5th, 23:59), together with weeks 8 and 9 work.
+Having said that, we strongly advise you to mark with a commit when you think you've completed some part of the work and especially once you reached the end of this week (you can do other commits beforehand, of course!):

+
    +
  1. +

    add the new imgfs_list.c file to the done/ directory (of your group GitHub repository; i.e. corresponding to the project), along with your own tests if required:

    +
    git add imgfs_list.c
    +
    +
  2. +
  3. +

    also add the modified files (but NOT the .o, nor the executables!): imgfs_tools.c, imgfs.h and maybe Makefile:

    +
    git add -u
    +
    +
  4. +
  5. +

    check that everything is ok:

    +
    git status
    +
    +

    or

    +
    git status -uno
    +
    +

    to hide unwanted files, but be careful to not hide any required file!

    +
  6. +
  7. +

    create the commit:

    +
    git commit -m "final version week07"
    +
    +
  8. +
+

In fact, we strongly advise you to systematically make these regular commits, at least weekly, when your work is up and running. This will help you save your work and measure your progress.

+ +
+ + +
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/project/mainprj/01-main/index.html b/project/mainprj/01-main/index.html new file mode 100644 index 0000000..7a001bc --- /dev/null +++ b/project/mainprj/01-main/index.html @@ -0,0 +1,442 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ImgFS: Image-oriented File System --- general description | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+ + + + + + + + +
+

ImgFS: Image-oriented File System --- general description

+ +

Outline of this document

+
    +
  1. Project background
  2. +
  3. Project goals
  4. +
  5. General description
  6. +
+

Context

+

The aim of this project is to have you develop a large program in C on a "system" theme. The framework chosen this year is the construction of a command-line utility to manage images in a specific format file system, inspired by the one used by Facebook. For your information, Facebook's system is called "Haystack" and is described in the following paper: https://www.usenix.org/event/osdi10/tech/full_papers/Beaver.pdf.) You are not required to read this paper as part of the course (it's just for information) because, obviously, we'll be implementing a simplified version of this system. All the basic concepts required for this project are introduced here in a simple way, assuming only standard "user" knowledge of a computer system.

+

Social networks have to manage hundreds of millions of images. The usual file systems (such as the one used on your hard disk, for example) have efficiency problems with such large numbers of files. Furthermore, they aren't designed to handle the fact that we want to have each of these images in several resolutions, e.g. very small (icon), medium for a quick preview and normal size (original resolution).

+

In the "Haystack" approach, several images are contained in a single file. What's more, different resolutions of the same image are stored automatically. This single file contains both data (the images) and metadata (information about each image). The key idea is that the image server has a copy of this metadata in memory, to enable very rapid access to a specific photo in the right resolution.

+

This approach has a number of advantages: firstly, it reduces the number of files managed by the operating system; secondly, it elegantly implements two important aspects of image database management:

+
    +
  1. Automatic management of multiple resolutions;
  2. +
  3. The ability to not duplicate identical images submitted under different names (for example from two different users). This optimization is incredibly useful for any social network.
  4. +
+

This deduplication is done using a "hash" function, which summarize a binary content (an image in our case) into a signature much smaller. Here, we will use the "SHA-256" function, which produces a 256 bits signature, and has the useful property that it is collision resistant: it is almost impossible for two different contents to have the same signature. In this project, we will use the assumption that two images with the same signature are identical. Although it may seem surprising, many systems are based on this principle.

+

Goals

+

You will build an image server, in a version inspired and simplified of Haystack. During the first weeks, it will consist of implementing the basic functions of the system, which are:

+
    +
  • list data (metadata, image list);
  • +
  • add a new image;
  • +
  • delete an image;
  • +
  • extract an image, in a chosen specific version: "original", "small" or "thumbnail".
  • +
+

During this first part, those functions will be exposed through a command line interface (CLI). Further on, you will build a true webserver to distribute the image over the network using the HTTP protocol.

+

Global description

+

Here, we will describe the main concepts and structures you will need for this project. Their implementation details will be specified later in the weekly handouts.

+

You will use a specific format -- let's call it "imgfs" -- to represent an "image file system". A file of type imgfs contains three distinct parts:

+
    +
  • A header, of fixed size, which gathers the elements of configuration of the system; its content is created during the imgfs creation;
  • +
  • A metadata array; it is an array whose sized is specified by the max_files field of the header; each of its entry describe the metadata of a single image, especially their position in the file;
  • +
  • the images themselves; each image is stored in a contiguous part of the file, one after the other.
  • +
+

This file format will be used by the two tools that you will develop:

+
    +
  1. a command line interface allowing to manipulate those file by listing, reading, adding and removing images;
  2. +
  3. a webserver with the same capabilities, but usable over the network.
  4. +
+

Data format

+

The three parts explained above consists of the following data structures:

+
    +
  1. +

    struct imgfs_header: the header with the configuration data:

    +
      +
    • name: a string of at most MAX_IMGFS_NAME characters, the name of the database;
    • +
    • version: a 32-bits unsigned int; the version of the database, it is incremented after each insertion/deletion;
    • +
    • nb_files: a 32-bits unsigned int; the current number of images in the system;
    • +
    • max_files: a 32-bits unsigned int; the maximum number of images that the system can contain; this field is specified during the creation and must not be modified afterwards;
    • +
    • resized_res: an array of 2 times (NB_RES - 1) elements, each of which is a 16-bits unsigned int; the resolutions of the "thumbnail" and "small" images (in order: "thumbnail width", "thumbnail height", "small width", "small height"); this field is specified during the creation and must not be modified afterwards; the handling of the original resolution is explained below;
    • +
    • unused_32 and unused_64: two unsigned int (of 32 and 64 bits); unused (but intended for future evolutions or temporary information - it is often useful to include fields of this type in large-scale projects; this allows old data structures to be used directly in newer versions of the software);
    • +
    +
  2. +
  3. +

    struct img_metadata: image metadata:

    +
      +
    • +

      img_id: a string of at most MAX_IMG_ID characters, containing a unique identifier (name) for the image;

      +
    • +
    • +

      SHA: an array of SHA256_DIGEST_LENGTH unsigned char; the image hash code, as explained above;

      +
    • +
    • +

      orig_res: an array of two 32-bit unsigned int; the resolution of the original image;

      +
    • +
    • +

      size: an array of 32-bit NB_RES unsigned int; memory sizes (in bytes) of images at different resolutions ("thumbnail", "small" and "original"; in this order, given by X_RES indices defined in imgfs.h);

      +
    • +
    • +

      offset: an array of 64-bit NB_RES unsigned int; the positions in the "image database" file of images at the various possible resolutions (in the same order as for size; also use the X_RES indices defined in imgfs.h to access the elements of this array);

      +
    • +
    • +

      is_valid: a 16-bit unsigned int; indicates whether the image is in use (value NON_EMPTY) or not (value EMPTY);

      +
    • +
    • +

      unused_16: a 16-bit unsigned int; not used (but intended for future evolutions).

      +
    • +
    +
  4. +
  5. +

    struct imgfs_file:

    +
      +
    • +

      file: a FILE* indicating the file containing everything (on disk);

      +
    • +
    • +

      header: a struct imgfs_header; the general information ("header") of the image database;

      +
    • +
    • +

      metadata: a dynamic array of struct img_metadata; the "metadata" of the images in the database.

      +
    • +
    +
  6. +
+

Notes:

+
    +
  1. the size of the metadata array never changes; it is specified in the header and dynamically allocated to max_files;
  2. +
  3. to delete an image, all you have to do is change is_valid; there may therefore be "holes" in the metadata array, and unused parts in the file (since the images themselves are not deleted); the basic idea behind all this is to be prepared to lose a little space to save time; +At a more complex level, we can imagine a "garbage collector" (or a "defrag") which, in parallel, when "there's time", effectively deletes images that are no longer in use, reorganizes metadata to reduce gaps, and so on. +We won't go into such considerations in this project, but you may implement it as an extension.
  4. +
+

(To check, whatever the architecture, sizeof(struct img_metadata) must give 216.)

+ +
+ + +
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/project/mainprj/02-createdelete/index.html b/project/mainprj/02-createdelete/index.html new file mode 100644 index 0000000..3a927e8 --- /dev/null +++ b/project/mainprj/02-createdelete/index.html @@ -0,0 +1,487 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ImgFS: Image-oriented File System --- create, delete and help | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+ + + + + + + + +
+

ImgFS: Image-oriented File System --- create, delete and help

+ +

Introduction

+

This week's objective is to implement three features for our image management system:

+
    +
  • the create command, to create a new (empty) file in imgFS format (= a new image database);
  • +
  • image deletion (delete);
  • +
  • complement the help command, a standard and essential element of any command line interface.
  • +
+

One of the aims of this exercise is to learn how to write data structures to disk using basic I/O operations.

+

As in previous weeks, you'll be writing your own code, modifying the elements provided.

+

Provided material

+

Except new tests, there is no new provided material. +You will continue to modify the files used last week: imgfscmd.c and imgfscmd_functions.c.

+

Tasks

+

This week's work consists of five modifications, summarized here and detailed below if necessary:

+
    +
  1. +

    in a new imgfs_create.c file (to be created), implement the do_create() function (prototyped in imgfs.h), the purpose of which is to create a new image database in a (binary) file on disk;

    +
  2. +
  3. +

    complete the do_create_cmd() function in the imgfscmd_functions.c file in order to call do_create() correctly;

    +
  4. +
  5. +

    implement the do_delete() function (prototyped in imgfs.h) in a new imgfs_delete.c file; the do_delete() function must "delete" a specified image (we'll see below what this really means);

    +
  6. +
  7. +

    complete the do_delete_cmd() function in the imgfscmd_functions.c file in order to call do_delete() correctly;

    +
  8. +
  9. +

    define the help() function, which will print instructions for using the imgfscmd command line interface (CLI).

    +
  10. +
+

1. Define do_create().

+

do_create() must create a new database for the imgfs format. It receives the name of the database file, and a partially filled imgfs_file structure, containing only, in the header, max_files and resized_res.

+

This function should finish initializing the received imgfs_file structure before writing it to disk, first the header, then the metadata. It must use standard C input/output functions to create the new image base in a binary file on disk. If the file already exists, it is simply overwritten (without message nor error).

+

It is important to initialize all relevant elements explicitly before writing. And, of course, it's essential to write the right-sized array of metadata in the file.
+Note: the database name must be set by do_create() from the provided constant CAT_TXT.

+

It is also important to handle all possible errors. In the absence of an error, do_create() should return ERR_NONE; in the event of an error, it returns the corresponding value code as defined in error.h.

+

As the create command is only used once (to create a database) and always from the command line utility imgfscmd (it will never be launched from a Web server, for example), we are exceptionally going to add a side effect in the form of a display indicating the (true) number of objects saved on disk.
+For example, with one header then ten metadatas, we'll have the following display:

+
11 item(s) written
+
+

11 because the header and then each of the ten metadatas have been successfully written by fwrite().

+

2. Complete do_create_cmd().

+

We have provided you with an incomplete implementation of do_create_cmd(). As part of your solution, you need to create an imgfs_file, initialize the max_files and resized_res fields of its header with the values provided, then call do_create() (which will initialize the other fields).

+

Parsing create command arguments

+

The main role of do_create_cmd() is to correctly parse all of its arguments, both mandatory and optional.

+

Your solution should have the following structure:

+
    +
  • +

    start by retrieving the mandatory argument (<imgFS_filename>)

    +
  • +
  • +

    iterate on argv;

    +
  • +
  • +

    at each iteration, first determine whether it's an acceptable optional argument (-max_files, -thumb_res or -small_res; see also the help text below);

    +
  • +
  • +

    if so, check if there are still enough parameters for the corresponding values (at least one for -max_files and at least 2 for the other two); if not, return ERR_NOT_ENOUGH_ARGUMENTS;

    +
  • +
  • +

    then convert the next parameter(s) to the correct type; check that the value is correct (neither zero nor too large); if not, return either ERR_MAX_FILES (for -max_files), or ERR_RESOLUTIONS; +note that util.c, already supplied in the past, offers two tool functions (atouint16() and atouint32()) for converting a character string containing a number into its uint16 or uint32 value; we encourage you to use these two functions to convert character strings in command line arguments; they handle the various error cases in the event of converting an invalid number, or a number too large for the specified type (e.g., trying to convert 1000000 to a 16-bit number); they return 0 in these cases; use them to implement your code correctly;

    +
  • +
  • +

    if not an optional argument, return error ERR_INVALID_ARGUMENT.

    +
  • +
+

Please note:

+
    +
  • +

    optional arguments may be repeated, e.g. -max_files 1000 -max_files 1291; in this case, only the last value is valid;

    +
  • +
  • +

    the mandatory argument cannot be repeated.

    +
  • +
+

3. Define do_delete().

+

We here describe how to implement the functionality for deleting an image. The idea is as follows: we don't actually delete the contents of the image, as this would be too costly (especially in terms of time). In fact, the size of the image base file on disk never decreases, even when you ask to "delete" an image from the base.
+Rather, an image is "deleted" by

+
    +
  1. finding the image reference with the same name in the "metadata";
  2. +
  3. invalidating the reference by writing the value EMPTY in is_valid;
  4. +
  5. adjusting the "header" information.
  6. +
+

Changes must be made first to the metadata (memory, then disk), then to the header if successful.
+Note: for reasons of compatibility between systems, it is preferable to rewrite the entire "struct" to disk, rather than just the modified fields.

+

The do_delete() function takes the following arguments:

+
    +
  • an identifier (string, const char *);
  • +
  • an imgfs_file structure.
  • +
+

To write the changes to disk, you first need to set the position at the right place in the file, using fseek() (see the course and man fseek) and then fwrite().

+

Of course, if the reference in the image database does not exist (and there is no invalidation), this must be handled correctly.

+

Don't forget to update the header if the operation is successful. You also need to increase the version number (imgfs_version) by 1, adjust the number of valid images stored (nb_files) and write the header to disk.

+

4. Define do_delete_cmd()

+

Complete the code for do_delete_cmd(). If the received imgID is empty or its length is greater than MAX_IMG_ID, do_delete_cmd() should return the error ERR_INVALID_IMGID (defined in error.h).

+

5. Define help().

+

The help command is intended to be used in two different cases (already covered):

+
    +
  1. when the arguments passed to the utility are invalid;
  2. +
  3. when the user explicitly requests the list of possibilities by typing imgfscmd help.
  4. +
+

The command output must have exactly the following format:

+
imgfscmd [COMMAND] [ARGUMENTS]
+  help: displays this help.
+  list <imgFS_filename>: list imgFS content.
+  create <imgFS_filename> [options]: create a new imgFS.
+      options are:
+          -max_files <MAX_FILES>: maximum number of files.
+                                  default value is 128
+                                  maximum value is 4294967295
+          -thumb_res <X_RES> <Y_RES>: resolution for thumbnail images.
+                                  default value is 64x64
+                                  maximum value is 128x128
+          -small_res <X_RES> <Y_RES>: resolution for small images.
+                                  default value is 256x256
+                                  maximum value is 512x512
+  delete <imgFS_filename> <imgID>: delete image imgID from imgFS.
+
+

Write the function in imgfscmd_functions.c.

+

Testing

+

Testing by hand

+

It's best to start testing your code on a simple case you're familiar with.

+

Use a copy of the provided/tests/data/test02.imgfs file from previous weeks (we insist: make a copy!!) to see its contents, delete one or two image(s). Check each time by looking at the result with list.

+

Also test any edge cases you can think of.

+

Test your two new commands (use help to find out how to use create;-P ).

+

To check that the binary file has been correctly written to disk, use last week's list command.

+

Provided tests

+

We provide you with a bunch of unit and end-to-end tests, you can run them as usual.

+

If you're on your own VM, please install libvips-dev, e.g.:

+
sudo apt install libvips-dev
+
+

Personal unit tests

+

As we move forward with the project, it is important that you can write your own tests, to complete the provided ones. You can find those in provided/tests/unit/. Before adding new tests, don't forget to copy the test/ directory in done/. You will also need to modify the TEST_DIR variable in the Makefile.

+

We strongly advise you to edit these files to add your own tests, or even to create new ones as you move forward. This can be done quite simply by adding your own values or lines of code to the tests already provided, or by copying this file and drawing inspiration from it (don't forget to update the tests' Makefile accordingly). You don't need to understand everything in this file, at least not initially, but it is important you start to get familiar with its content.

+

That said, for those who want to go further, the main test functions available in the environment we use (Check) are described over there: https://libcheck.github.io/check/doc/check_html/check_4.html#Convenience-Test-Functions. For example, to test whether two int are equal, use the ck_assert_int_eq macro: ck_assert_int_eq(a, b).

+

We have also defined the following "functions" in tests.h:

+
    +
  • ck_assert_err(int actual_error, int expected_error) : assert that actual_error is expected_error ;
  • +
  • ck_assert_err_none(int error) : assert that error is ERR_NONE ;
  • +
  • ck_assert_invalid_arg(int error) : assert that error is ERR_INVALID_ARGUMENT (i.e. correspond to the return code of a function which received a invalid argument; see error.h) ;
  • +
  • ck_assert_ptr_nonnull(void* ptr) : assert that ptr is not NULL ;
  • +
  • ck_assert_ptr_null(void* ptr) : assert that ptr is NULL.
  • +
+

Finally, we'd like to remind you that just because 100% of the tests provided here pass doesn't mean you'll get 100% of the points. Firstly, because these tests may not be exhaustive (it's also part of a programmer's job to think about tests), but also and above all (as indicated on the page explaining the project grading scale, because we attach great importance to the quality of your code, which will therefore be evaluated by a human review (and not blindly by a machine).

+ +
+ + +
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/project/mainprj/03-dedup/index.html b/project/mainprj/03-dedup/index.html new file mode 100644 index 0000000..cc7c56d --- /dev/null +++ b/project/mainprj/03-dedup/index.html @@ -0,0 +1,438 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ImgFS: Image-oriented File System --- Lazy resize and deduplication | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+ + + + + + + + +
+

ImgFS: Image-oriented File System --- Lazy resize and deduplication

+ +

Introduction

+

This week consists of two distinct objectives (remember to divide up the work):

+
    +
  • prepare for the implementation of the image manipulation functions (read and insert) which will be finalized next week;
  • +
  • incorporate the elements that will enable the "de-duplication" of saved images (to avoid duplicates of identical images).
  • +
+

Notice also that the work up to this week (included, i.e. weeks 7, 8 and 9) is the first of the two deliverables that will be evaluated for this project. More details in the foreword.
+So don't forget to submit it before the deadline. Submission procedure is indicated at the end of this handout.

+

Materials provided

+

This week we provide you new tests as usual, as well as the script used to submit your first version of the project.

+

Tasks

+

1. VIPS library and Makefile modifications

+

One of the aims of this project course is to learn how to incorporate complex external libraries into your own work. In our case, we will make use of the VIPS library, for compressing images.

+

First, you need to update your Makefile to include the library in the compilation, by adding the following lines:

+
# Add options for the compiler to include the library's headers
+CFLAGS += $(shell pkg-config vips --cflags)
+
+# Add the library to the linker
+LDLIBS += $(shell pkg-config vips --libs)
+
+

Then, you need to

+
    +
  • initialize the library by calling VIPS_INIT() at the start of your main() function, and give it argv[0] as parameter;
  • +
  • call vips_shutdown() at the end of the execution.
  • +
+

To help you, please take a look at the online documentation of this library. You will need to use the following functions:

+ +

Be aware that the first three functions take a variable number of parameters, thus you must terminate the parameter list by passing a NULL pointer.

+

We stress that it's a significant part of your work this week to understand how to use this library.

+

Note: You must be very careful when managing allocated memory and using VIPS at the same time. VIPS executes some operations lazily, i.e. they are deferred to the last moment. This means that, even if it does seem that you won't need an object anymore, it may actually still be needed to complete operations later on.

+

2. Creating and managing derivative images

+

One of the main functions of imgFS is to transparently and efficiently manage the different resolutions of the same image (as a reminder: in this project, we'll have the original resolution and the "small" and "thumbnail" resolutions).

+

As a first step this week, you'll need to implement a function called lazily_resize(). Its name suggests its usage: in computing, "lazy" corresponds to a commonly used strategy of deferring the work until the last moment, avoiding unnecessary work.
+(Teacher's note: don't confuse "computer science" with "studies in computer science" ;-)).

+

This function has three arguments:

+
    +
  • an integer corresponding to an internal code for one of the resolutions derived from the image: THUMB_RES or SMALL_RES (see imgfs.h);
    +(note: if ORIG_RES is passed, the function simply does nothing and returns no error (ERR_NONE));
  • +
  • an imgfs_file structure (the one we're working with);
  • +
  • and an index, of type size_t, position/index of the image to be processed.
  • +
+

It must implement the following logic:

+
    +
  • check the legitimacy of the arguments, and if necessary return an appropriate error value (see error.h and error.c);
  • +
  • if the requested image already exists in the corresponding resolution, do nothing;
  • +
  • in all other cases, first create a new variant of the specified image, in the specified resolution; the image must not be cropped (keep aspect ratio) but should fit in the dimensions specified in the header (see resized_res field) for the requested resolution; this is already the case when using vips_thumbnail_image() with the simplest (= almost none) options;
  • +
  • then copy the contents of this new image to the end of the imgFS file;
  • +
  • finally, update the contents of the metadata in memory and on disk.
  • +
+

To create the new image variant, you'll use the VIPS library introduced below.

+

Your solution should consist of:

+
    +
  • a new image_content.c file implementing the lazily_resize() function;
  • +
  • the necessary changes to your Makefile (see above).
  • +
+

3. Image de-duplication

+

The second component of the week concerns the de-duplication of images, to avoid the same image (same content) being present several times in the database. For a social network, this type of optimization saves a lot of space (and time).
+To do this, you need to write a do_name_and_content_dedup() function, to be defined in a new image_dedup.c file (and prototyped in image_dedup.h).

+

This function returns an error code (int) and takes two arguments (in this order):

+
    +
  • +

    a previously opened imgFS file;

    +
  • +
  • +

    an index (type uint32_t here) which specifies the position of a given image in the metadata array.

    +
  • +
+

In the image_dedup.c file, implement this function as follows.

+

For all valid images in the imgfs_file (other than the one at position index and in ascending positions):

+
    +
  • +

    if the name (img_id) of the image is identical to that of the image at position index, return ERR_DUPLICATE_ID; this is to ensure that the image database does not contain two images with the same internal identifier;

    +
  • +
  • +

    (then, ) if the SHA value of the image is identical to that of the image at position index, we can avoid duplicating the image at position index (for all its resolutions).

    +
  • +
+

To de-duplicate, you need to modify the metadata at the index position, to reference the attributes of the copy found (its three offsets and sizes; note that the original size is necessarily the same).

+

Note: don't modify the name (img_id) of the image at the index position: it's only the contents that are de-duplicated; you'll have two images with different names, but pointing to the same contents.
+This is, by the way, a good illustration of how indirection tables are used in file-systems.

+

If the image at position index has no duplicate content, set its ORIG_RES offset to 0.
+If the image at position index has no duplicate name (img_id), return ERR_NONE.

+

Tests

+

As always, we provide you with a few tests, to run with make check. We strongly advise you to write your own tests to complete those. Once you have finished your testing, you can also use the make feedback.

+

Submission

+

As mentioned in the introduction, this week's work, together with the work of weeks 7 to 8, constitutes the first submission of the project.

+

The deadline for this assignment is Sunday May 05, 23:59; make sure you don't fall behind schedule and properly divide up the work between you.

+

The easiest way to submit is to do

+
make submit1
+
+

from your done/ directory. This simply adds a project01_1 tag to your commit (in the main branch).

+

Although you can do as many make submit1 as you want, we really recommend you to do it only when you are sure you want to deliver your work.

+ +
+ + +
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/project/mainprj/04-readinsert/index.html b/project/mainprj/04-readinsert/index.html new file mode 100644 index 0000000..f1db43f --- /dev/null +++ b/project/mainprj/04-readinsert/index.html @@ -0,0 +1,459 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ImgFS: Image-oriented File System --- Finalizing `read` and `insert` | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+ + + + + + + + +
+

ImgFS: Image-oriented File System --- Finalizing `read` and `insert`

+ +

Introduction

+

This week, you'll implement the commands read (extract an image from the image database) and insert (insert an image into the database). To do this, you'll use features developed last week.

+

Warning: +if you're working ahead on the submission, don't forget to make a make submit before "polluting" your first rendering with early work for this week (which shall not be part of the part submitted for grading).
+If in doubt/difficulty, ask an assistant (or teacher).

+

Provided material

+

As in the previous weeks, we're providing you with test material for this week.

+

Moreover, in order to reduce the workload, we also provide you with four functions to be added in your code. These functions can be found in provided/src/week10_provided_code.txt and consist in:

+
    +
  • +

    resolution_atoi(), to be added to imgfs_tools.c;

    +

    the purpose of this function is to transform a string specifying an image resolution into one of the enumerations specifying a resolution type, namely:

    +
      +
    • return THUMB_RES if the argument is either "thumb" or "thumbnail";
    • +
    • return SMALL_RES if the argument is "small";
    • +
    • return ORIG_RES if argument is either "orig" or "original";
    • +
    • return -1 in all other cases, including if the argument is NULL;
    • +
    +

    this function is needed to process the command line arguments of the read command;

    +
  • +
  • +

    get_resolution(), to be added to image_content.c;

    +

    the purpose of this function is to retrieve the resolution of a JPEG image; +it takes an image_buffer as input, which is a pointer to a memory region containing a JPEG image, and image_size which is the size of this region; and it "outputs" (fills, actually) the two parameters height and width;

    +

    the function returns ERR_NONE if there is no problem, or ERR_IMGLIB if there is a VIPS error;

    +

    this function is needed by the insert command;

    +

    Note for those who look at the provided code and may be puzzled by the cast: the prototype of vips_jpegload_buffer() is in fact wrong, as its first argument should be const void* (instead of void *; we read from these data!). In fact, if you take a look at their code, that function only calls vips_blob_new() whose second argument is correctly qualified as const void * (well, even if there is that horrible casting). So we can safely pass a const image_buffer to vips_jpegload_buffer() (by casting it, unfortunately... :-();

    +
  • +
  • +

    the two do_read_cmd() and do_insert_cmd(), to be added to imgfscmd_functions.c; they do not compile as such yet since they require three utility functions (to be written, see below).

    +
  • +
+

Tasks

+

What you have to do this week, is to implement the do_read() and do_insert() functions, as well as three utility functions for +do_read_cmd() and do_insert_cmd().

+

do_insert()

+

The do_insert() function adds an image to the "imgFS". Create a new imgfs_insert.c file to implement it.

+

The implementation logic contains several steps, in an order that must be respected.

+

Find a free position in the index

+

First of all, check that the current number of images is less than max_files. Return ERR_IMGFS_FULL if this is not the case.

+

Next, you have to find an empty entry in the metadata table. When this is the case, you must:

+
    +
  • place the image's SHA256 hash value in the SHA field (if necessary, review what you did in the warmup regarding SHA256 computation);
  • +
  • copy the img_id string into the corresponding field;
  • +
  • store the image size (passed as parameter) in the corresponding ORIG_RES field (beware of type change);
  • +
  • use the get_resolution() function (see above) to determine the image width and height; put these values into the orig_res fields of the metadata.
  • +
+

Image de-duplication

+

Call last week's do_name_and_content_dedup() function using the correct parameters. In the event of an error, do_insert() returns the same error code.

+

Writing the image to disk

+

First, check whether the de-duplication step has found (or not) another copy of the same image. To do this, test whether the original resolution offset is zero (if necessary, review the do_name_and_content_dedup() function).

+

If the image does not exist, write its contents at the end of the file. Don't forget to finish initializing the metadata.

+

Updating image database data

+

Update all the necessary image database header fields. Version shall be inscreased by 1.

+

Finally, all that's left to do is write the header, and then the corresponding metadata entry to disk (your code must not write all the metadata to disk for each operation!).

+

do_read()

+

The second main function of the week is do_read(), to be implemented in a new file, imgfs_read.c.

+

This function must first find the entry in the metadata table corresponding to the supplied identifier.

+

If successful, determine whether the image already exists in the requested resolution (offset or size null). If not, call the lazily_resize() function from last week to create the image at the required resolution. (Note: this should never be the case for ORIG_RES).

+

At this point, the position of the image (in the correct resolution) in the file is known, as is its size; you can then read the contents of the file image into a dynamically allocated memory region.

+

If successful, the output parameters image_buffer and image_size should contain the memory address and size of the image.

+

Be careful to handle possible error cases:

+
    +
  • return the error code received in the event of an internal function error;
  • +
  • return ERR_IO in the event of a read error;
  • +
  • return ERR_OUT_OF_MEMORY in the event of a memory allocation error;
  • +
  • and return ERR_IMAGE_NOT_FOUND if the requested identifier could not be found.
  • +
+

Note: in case any of you are wondering: please note that read on a duplicated image does not modify any of its duplicates. Indeed, lazily_resize() has no impact on other images than the one under consideration (and was written before do_name_and_content_dedup()). Such a behavior (which must be your program's behavior) isn't a big deal in practice, because:

+
    +
  1. searching for all duplicates at each operation would be too costly in general;
  2. +
  3. it will be the role of a garbage collector to do this kind of work, once in a while (e.g. every night) and on all the image database;
  4. +
  5. and it should often be the case that a duplicated image is, when it arrives, the duplicate of an image already in use, i.e. an image that already has its "small" and "thumb" versions; in this case, the new inserted image (duplicate) will already share its "small" and "thumb" versions with its original, already present in the database.
  6. +
+

Integration into the main program

+

We already provided you with the two wrap-up functions do_read_cmd() and do_insert_cmd() (see top of this handout), but they still require three utility functions (in imgfscmd_functions.c):

+
static void create_name(const char* img_id, int resolution, char** new_name);
+static int write_disk_image(const char *filename, const char *image_buffer, uint32_t image_size);
+static int read_disk_image(const char *path, char **image_buffer, uint32_t *image_size);
+
+

The purpose of create_name() is to create, in new_name the name of the file to use to save the read image (do_read_cmd()), +using the following naming convention:

+
image_id + resolution_suffix + '.jpg'
+
+

where:

+
    +
  • image_id is the image identifier;
  • +
  • and resolution_suffix corresponds to _orig, _small or _thumb;
  • +
+

for instance, if the image id is "myid" and the resolution is SMALL_RES, then new_name will contain "myid_small.jpg".
+Also have a look at its call for further details if needed.

+

write_disk_image() is a very simple tool function (five lines or so) to write the content of the provided image_buffer, the size of which is image_size, to a file, the name of which is provided. Have a look at its call for further details if needed.

+

This function returns ERR_IO on error and ERR_NONE otherwise.

+

Finaly, read_disk_image() reads an image from disk, the filename of which is provided in path. It reads the image into image_buffer and sets image_size to its corresponding size.

+

This function returns ERR_IO in case of a filesystem error, ERR_OUT_OF_MEMORY in case of a memory allocation error, and ERR_NONE otherwise.

+

Update help

+

Finaly, modify the help command to reflect the new commands:

+
> ./imgfscmd help
+imgfscmd [COMMAND] [ARGUMENTS]
+  help: displays this help.
+  list <imgFS_filename>: list imgFS content.
+  create <imgFS_filename> [options]: create a new imgFS.
+      options are:
+          -max_files <MAX_FILES>: maximum number of files.
+                                  default value is 128
+                                  maximum value is 4294967295
+          -thumb_res <X_RES> <Y_RES>: resolution for thumbnail images.
+                                  default value is 64x64
+                                  maximum value is 128x128
+          -small_res <X_RES> <Y_RES>: resolution for small images.
+                                  default value is 256x256
+                                  maximum value is 512x512
+  read   <imgFS_filename> <imgID> [original|orig|thumbnail|thumb|small]:
+      read an image from the imgFS and save it to a file.
+      default resolution is "original".
+  insert <imgFS_filename> <imgID> <filename>: insert a new image in the imgFS.
+  delete <imgFS_filename> <imgID>: delete image imgID from imgFS.
+
+ +
+ + +
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/project/mainprj/05-socket/index.html b/project/mainprj/05-socket/index.html new file mode 100644 index 0000000..24720f0 --- /dev/null +++ b/project/mainprj/05-socket/index.html @@ -0,0 +1,629 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ImgFS: Image-oriented File System --- Network layers: socket layer | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+ + + + + + + + +
+

ImgFS: Image-oriented File System --- Network layers: socket layer

+ +

Introduction

+

This week we start a new aspect of the project: adding HTTP access (server and client) to our Image Database. Basically, we want to convert our imgfscmd application to a client-server application that uses HTTP (over TCP as its transport-layer protocol). +This work be structured as follows over the next three weeks:

+
    +
  • +

    this week: create a socket layer for network communications; and use that layer to create a simple HTTP server (to be made more complex next week);

    +
  • +
  • +

    next week: create a (simplified) HTTP layer over the socket layer that contains all the functionalities needed for this project (mainly: parse HTTP requests designed for this project), but in a blocking way (handles only one connection at a time);

    +
  • +
  • +

    and in the last week, create a server that can serve (!) our image database commands (read, insert, ...) through HTTP access; and use it via an HTTP client; and in a non blocking way (multiple connections via a multi-threaded program).

    +
  • +
+

We thus have three logical layers, each of which shall be tested on its own:

+
    +
  • +

    the socket layer, to be tested with tcp-test-client.c and tcp-test-server.c (to be done);

    +
  • +
  • +

    the "generic" (but incomplete) HTTP layer, to be tested with http-test-server.c (provided) and curl;

    +
  • +
  • +

    the ImgFS-over-HTTP layer, to be tested with imgfs_server and either curl (early tests) or a browser, using index.html (already provided).

    +
  • +
+

For this week, we focus on the transport layer (TCP), simply using standard Unix sockets in C to provide the four following functions (see socket_layer.h):

+
    +
  • +

    tcp_server_init(), to initialize a network communication over TCP;

    +
  • +
  • +

    tcp_accept(), to create a blocking call that accepts a new TCP connection;

    +
  • +
  • +

    tcp_read(), to create a blocking call that reads the active socket once and stores the output in buf;

    +
  • +
  • +

    tcp_send() to send a response message.

    +
  • +
+

Most of these functions are simply interfaces to sys/socket.h C functions socket(2), bind(2), listen(2), accept(2), recv(2) and send(2). We strongly recommend you have a look at the corresponding man-pages.

+

We then use that layer to create a simple HTTP-server API. +There, you'll have to implement two functions:

+
    +
  • +

    http_receive(), to create a call and read from it;

    +
  • +
  • +

    http_reply() to send a response message.

    +
  • +
+

http_init(), to initialize an HTTP communication, and http_close(), to close it, are provided. +The fifth function that appears in http_net.h, http_serve_file(), will be implemented later.

+

Provided material

+

In the provided/src directory, you can find the following files (some of which have certainly already been copied to your done/):

+
    +
  • socket_layer.h: prototypes of the tcp_*() functions, which interact with UNIX socket and serve as basis for our HTTP web server;
  • +
  • http_net.h: prototypes of the HTTP layer, responsible for receiving incoming requests, and generating HTTP responses;
  • +
  • http_prot.h: parse HTTP requests;
  • +
  • imgfs_server_service.h: core functions of the imgfs HTTP server: sets up and shutdown server, dispatch requests;
  • +
  • http_net.c: implementation of the HTTP layer,
  • +
  • imgfs_server.c: the main code of our server,
  • +
  • imgfs_server_service.c: the implementation of the core functions to offer HTTP services to our ImgFS database;
  • +
  • http-test-server.c: a simple test of the HTTP layer.
  • +
+

Tasks

+

Socket layer

+

tcp_server_init()

+

In a file socket_layer.c (to be created), define the tcp_server_init() function (see its prototype in socket_layer.h) which:

+
    +
  • creates a TCP socket (see socket(2) man-page; use AF_INET and SOCK_STREAM);
  • +
  • creates the proper server address (struct sockaddr_in type); notice that for portability, the port number received as argument shall be converted using htons() (see htons(3) man-page);
  • +
  • binds the socket to the address (see bind(2)); note: there is no problem passing a pointer to a struct sockaddr_in as a pointer to a struct sockaddr;
  • +
  • and starts listening for incoming connections (see listen(2));
  • +
+

The function returns the socket id.

+

Whenever an error is encountered, this function prints an informative message on stderr (see perror(3)), closes what should be, and returns ERR_IO. Sockets must be closed using close(3).

+

tcp_accept()

+

The tcp_accept() function (to be defined also in socket_layer.c) is simply a (one line of code) frontend to the accept(2) function. +We don't make any use of the addr and addr_len arguments of accept() (use NULL).

+

This function returns the return value of accept().

+

tcp_read() and tcp_send()

+

Similarly, tcp_read() and tcp_send() are also frontends to recv(2) and send(2) functions, respectively. They return either ERR_INVALID_ARGUMENT if they received an improper argument, or the return value of the system function called.

+

First simple test

+

Test framework

+

To test your implementation by creating two simple programs (see usage examples below):

+
    +
  • +

    a client (tcp-test-client.c) that takes two arguments from the command line: a port (number) and a (short) file;

    +
  • +
  • +

    a server (tcp-test-server.c) that takes one argument from the command line: a port (number).

    +
  • +
+

The client test if the file exists and has a size less than 2048. If it's the case, it:

+
    +
  • sends the length to the server;
  • +
  • waits for positive acknowledgment;
  • +
  • then it sends file to the server;
  • +
  • waits for acknowledgment
  • +
  • and then stops.
  • +
+

The server waits for connections and when it receives a file (length first):

+
    +
  • sends acknowledgment message telling whether the size is smaller than 1024 (or not);
  • +
  • if not it returns to start;
  • +
  • if yes it waits for a file (of that size) and prints it's content,
  • +
  • then send acknowledgment,
  • +
  • and starts the whole loop again.
  • +
+

The server never terminates, as it may have to serve several clients/requests.

+

Important point

+

You need to make sure that the two ends of the communication will +never get stuck waiting for each other at the same point in +time (this would lead in a "deadlock").

+

However, when sending several messages using TCP, the boundaries of +these messages get lost. For instance, if you use a TCP socket to +transmit "Hello" and "Goodbye" as two separate messages, the receiver may +interpret this as one single message: "HelloGoodbye". This is because +all data transmitted using TCP get "serialized" into a single +byte-stream.

+

We thus need to construct our messages in a way such that we can +deserialize the byte-stream back to the original messages. We can for +instance make use of a delimiting character of string. For instance, +if we know that the character "|" can never be part our message, we +can transmit "Hello", then "|", then "Goodbye" to make the remote end +(who may thus receive "Hello|Goodbye" altogether) understand that +those are two different messages. In this case, the role of "|" is +that of a delimiter.

+

If there is no character that can act as a delimiter for our protocol, +you may add headers containing meta-data about the following message. +These headers can be then used by the other end to deserialize the +messages.

+

To keep this test simple, we simply designed it in a two messages +passing: first the size, then the content. But an issue may happen if +the file sent starts with some digits. We thus propose you to add a +simple delimiter character at the end of the size message.

+

Similarly we should have a way to delimit the end of the file (otherwise the next size may still be considered to be part of a former file). We propose you to add a simple delimiter string, e.g. "<EOF>".

+

Example

+

Server (in one terminal):

+
./tcp-test-server 6789
+
+Server started on port 6789
+Waiting for a size...
+Received a size: 32 --> accepted
+About to receive file of 32 bytes
+Received a file:
+Hello there!
+How are you doing?
+
+Waiting for a size...
+...
+
+

Client (in another terminal):

+
./tcp-test-client 6789 ../provided/tests/data/hello_there.txt
+
+Talking to 6789
+Sending size 32:
+Server responded: "Small file"
+Sending ../provided/tests/data/hello_there.txt:
+Accepted
+Done
+
+

You can launch the client several times, with different files +(for instance ../provided/tests/data/aiw.txt).

+

(Terminate the server with Ctrl-C.)

+

Use Wireshark to debug

+

Use Wireshark to debug your code.

+

Try many clients at the same time:

+
for i in $(seq 5); do ./tcp-test-client 6789 ../provided/tests/data/2047.txt > log-$i 2>&1 & done
+
+

What happens? (maybe nothing particular, actually)

+

--> concurrent access will not be addressed at this layer but in the last week in the HTTP layer.

+

Simple HTTP layer

+

HTTP messages handler

+

In order to be generic (and be able to use our HTTP layer for other services than the one used in this project), we separate the handling of the content of the HTTP requests/services from the handling of the HTTP protocol itself.

+

This separation is done by passing a function, responsible for the handling of the content of the HTTP requests/services, to the initialization of the HTTP connection. Such a function is called a "HTTP messages handler".

+

To be able to pass it to the initialization function, we need a specific type: EventCallback, to be defined in http_net.h as a pointer to a function taking a pointer to struct http_message and an int as parameters, and returning an int.

+
http_receive()
+

In a file http_net.c (copy if from provided; this file offers the API to a (simplified) generic HTTP server), the http_receive() function is the main function to handle HTTP connections. But in order to prepare for multi-threaded version (last week), we recommend you to split it into two parts:

+
    +
  • +

    connects the socket with tcp_accept() (returns ERR_IO in case of error);

    +
  • +
  • +

    (if no error,) handles the connection through a tool function (we propose to name it handle_connection()).

    +
  • +
+

Of course, most of the work now remains to be done in handle_connection().

+

For future compatibility, its signature has to be:

+
static void* handle_connection(void* arg)
+
+

In our case, it receives a pointer to an int containing the socket file descriptor. +And it returns a pointer to an int containing some error code (ERR_NONE if none). This may seem far-fetched (why not receive and return an int ?), but this will be required when adding multi-threading. We provided two examples of how to handle that.

+

The handle_connection() function:

+
    +
  • +

    reads the HTTP header from the socket into some buffer (max size of HTTP headers is provided in MAX_HEADER_SIZE from http_net.h); notice that this may require several call to tcp_read(): read as long as the headers do not contain HTTP_HDR_END_DELIM (and you didn't read more than MAX_HEADER_SIZE); you can use strstr(3) to find HTTP_HDR_END_DELIM in the buffer;

    +
  • +
  • +

    handles error cases;

    +
  • +
  • +

    sends the reply using http_reply(): if the headers contains "test: ok" (use strstr(3) once again), use the HTTP_OK status, otherwise HTTP_BAD_REQUEST; the other parameters can be empty; if http_reply() fails, handle_connection() returns &our_ERR_IO.

    +
  • +
+
http_reply()
+

The http_reply() function is a tool function to send a general reply a bit more complex than the above two, with some content.

+
    +
  • +

    allocates a buffer at the proper size (to be computed, read further);

    +
  • +
  • +

    starts filling this buffer with the header in the format:

    +
      HTTP_PROTOCOL_ID <status> HTTP_LINE_DELIM <headers> Content-Length: <body_len> HTTP_HDR_END_DELIM
    +
    +

    where <status>, <headers> and <body_len> have to be replaced by the corresponding parameter values;

    +

    for instance, the call

    +
      http_reply(1234, HTTP_OK, "Content-Type: text/html; charset=utf-8" HTTP_LINE_DELIM, buffer, 6789);
    +
    +

    will create the header

    +
      "HTTP/1.1 200 OK\r\nContent-Type: text/html; charset=utf-8\r\nContent-Length: 6789\r\n\r\n"
    +
    +
  • +
  • +

    then adds (copies) the body to the end of the buffer;

    +
  • +
  • +

    and send everything to the socket.

    +
  • +
+

The body parameter may be NULL (as long as body_len is 0). It is useful for responses with an empty body.

+

Tests with a very simple HTTP server

+

Use the provided http-test-server.c to make some tests. Simply launch this server; and, as a client, use curl:

+
curl -v localhost:8000
+curl -H 'test: ok'   -v localhost:8000
+curl -H 'test: fail' -v localhost:8000
+
+

Simple ImgFS server

+

Main

+

The final step for this week is to create a simple version of our future HTTP server for ImgFS services. +This is separated over two files (copy them from provided):

+
    +
  • imgfs_server_service.c, which implements the main functionalities needed by our server;
  • +
  • imgfs_server.c, which runs the server.
  • +
+

In imgfs_server_service.c:

+
    +
  1. +

    declared two static global variables, one to store the ImgFS file and another to store the port number (uint16_t);

    +
  2. +
  3. +

    define the function server_startup(), which receives argc and argv, and:

    +
      +
    • checks to have at least one argument (which is the ImgFS file name);
    • +
    • opens the ImgFS file (and handles errors, if any);
    • +
    • prints the header of the (properly opened) ImgFS file;
    • +
    • handles the optional second argument: if it's a valid port number, use it; otherwise use DEFAULT_LISTENING_PORT;
    • +
    • initializes the HTTP connection
    • +
    • prints "ImgFS server started on http://localhost:" plus port number, if everything was ok.
    • +
    +
  4. +
+

In imgfs_server.c:

+
    +
  1. call server_startup();
  2. +
  3. loop on http_receive() as long as there are no error (see http-test-server.c for an example);
  4. +
+

Signal handling for proper shutdown

+

Finally, we'd like to properly close the server. For this we will add a signal handler that will close the HTTP connection and the ImgFS file on server termination.

+

First of all, add a call to http_close() into server_shutdown().

+

Then, to imgfs_server.c:

+
    +
  • +

    add the function
    +static void signal_handler(int sig _unused)
    +which simply calls server_shutdown(), then stops the program using exit(0);

    +
  • +
  • +

    and call set_signal_handler() from the main().

    +
  • +
+

Try it by sending a Ctrl-C to a running server.

+

Tests

+

You can test your new server with the same curl commands as above. Test different port numbers.

+

There is no other "end-to-end" test for this week (except the self-made, mentioned in this handout) since we did not finish the implementation of a "final product".

+

Similarly, there is no unit-test, since we don't really have independent tool functions this week.

+ +
+ + +
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/project/mainprj/06-http/index.html b/project/mainprj/06-http/index.html new file mode 100644 index 0000000..f6200c7 --- /dev/null +++ b/project/mainprj/06-http/index.html @@ -0,0 +1,585 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ImgFS: Image-oriented File System --- Network layers: HTTP layer | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+ + + + + + + + +
+

ImgFS: Image-oriented File System --- Network layers: HTTP layer

+ +

Introduction

+

This week we continue our client-server application by adding a (simplified) HTTP server layer. +Last week, our HTTP layer was only able to detect some specific string in the header. We now want to be able to read and write full HTTP requests (only the ones needed for our purposes; not the full RFCs (9110-9112) ;-)). Mainly, your work this week will consist in writing http_prot.c and use it.

+

To recap the design of our ImgFS client-server architecture: it has been layered as, from lower to upper level:

+
    +
  • socket_layer: TCP client and server;
  • +
  • http_net: minimal HTTP network services (no parsing of the content);
  • +
  • http_prot: (simple) HTTP content parsing;
  • +
  • imgfs_server_service: tools to build an ImgFS server over HTTP (the client will be either curl or your browser; you won't write any HTTP client);
  • +
  • imgfs_server: the ImgFS server (over HTTP) itself.
  • +
+

Regarding the communication design, the three steps that could be considered are:

+
    +
  1. single blocking connection, waiting for incoming message and replying to them, forever (until some termination signal);
  2. +
  3. multithreaded blocking connections; this allows several parallel communications to the server;
  4. +
  5. polling non blocking connections.
  6. +
+

This week we will implement version 1 and next week move to version 2. Polling won't be addressed in this project (but those who'd like to, can do it).

+

We thus have three things to be done this week:

+
    +
  1. +

    tools to parse and create HTTP messages (http_prot.c);

    +
  2. +
  3. +

    create a more appropriate (but still generic) handle_connection() (in http_net.c);

    +
  4. +
  5. +

    develop ad-hoc services for our ImgFS server (imgfs_server_service.c).

    +
  6. +
+

IMPORTANT NOTICE: it's really important you proceed step by step and test each progress separately to be sure you're building upon safe grounds. We will propose you several testing steps but feel free to develop/use your own whenever needed!

+

Also, help yourself by displaying informed error message whenever possible. For instance, instead of writing:

+
fprintf(stderr, "error with URL parameter\n");
+
+

it may be more effective to do something like:

+
fprintf(stderr, "http_get_var(): URL parameter \"%s\" not found in \"%s\"\n", name, url->val);
+
+

You can also use debug_printf() whenever needed.

+

Provided material

+

This week, we provide you with unit tests in tests/unit/unit-test-http.c and, in src/week12_provided_code.txt, some code to be added to imgfs_server_service.c.

+

To do

+

Parsing of HTTP messages

+

strings

+

The first thing to pay really attention about is the difference between strings used by HTTP, which are not null-terminated, and the C "strings" (null-terminated char*). When using a C "string", always ensure it is indeed null-terminated (to go the other way round is not a problem as the size will always be send over HTTP: simply use C "string" size minus one).

+

To properly handle HTTP string, we propose you the struct http_string type (in http_prot.h; have a look!). +Similarly, to make your life easier, we also propose a few other data structures. Feel free to use them when needed!

+

Printing those HTTP strings is a bit tricky; using the usual "%s" will not work, since the string is not null-terminated. You can instead use the "%.*s" specifier, and pass the length of the string before its value :

+
struct http_string s = {.val = "Hello world!<this is outside the http string>", .len = 12};
+printf("C string: %s\n", s.val);
+// C string: Hello world!<this is outside the http string>
+printf("HTTP string: %.*s\n", s.len, s.val);
+// HTTP string: Hello world!
+
+

http_match_uri() and http_match_verb()

+

Let's start with the simple http_match_uri() and http_match_verb() functions: see their description in http_prot.h and implement them. Notice the difference between URI, where only the prefix matter (e.g. HTTP string "https://localhost:8000/imgfs/read?res=orig&img_id=mure.jpg" matches any of the C strings "https://", "https://localhost:8000/", "https://localhost:8000/imgfs", etc.; this is very simple indeed) and "verbs" where the whole string matters (e.g. HTTP string "POST" does not match C string "POS", nor "POST /localhost:8000/imgfs").

+

As usual, pay attention to receive valid arguments.

+

You can test your function with the above examples, as well as those:

+
"/universal/resource/identifier" match uri "/universal/resource/"
+"/universal/resource/identifier" match uri "/universal"
+
+{val = "POST / HTTP/1.1", len = 4} match verb "POST"
+{val = "GET / HTTP/1.1" , len = 3} match verb "GET"
+{val = "GET / HTTP/1.1" , len = 3} does not match verb "GET /"
+{val = "GET / HTTP/1.1" , len = 3} does not match verb "G"
+
+

http_get_var()

+

The purpose of http_get_var() function is to extract values of parameters from URL. For instance, get "orig" for parameter "res" in http://localhost:8000/imgfs/read?res=orig&img_id=mure.jpg. Or extract "mure.jpg" for parameter "img_id" in the same URL.

+

For this we recommend:

+
    +
  1. copy the name parameter into a new string and append = to it;
  2. +
  3. look for that string into URL;
  4. +
  5. look if there is any '&' somewhere after that string; if yes consider the position of this '&' as the end of the value, otherwise consider the end of the URL as the end of the value;
  6. +
  7. copy the value into out (shall be a valid C string).
  8. +
+

Note: this method is not complete, we should also check that the parameter is located after the first "?" in the url, and right after the "?" or a "&", and decode the argument. This is left as a bonus exercise for those interested.

+

Regarding the return values:

+
    +
  • if the arguments are not valid, return ERR_INVALID_ARGUMENT;
  • +
  • if the parameter is not found, return 0;
  • +
  • if the parameter is present but the value cannot be extracted (or is too long for out_len), return ERR_RUNTIME;
  • +
  • return length of the value in case of correct extraction.
  • +
+

We strongly recommend you to write at least a few unit tests for this function. Here are some test values:

+
"http://localhost:8000/imgfs/read?res=orig&img_id=mure.jpg", "res"       -> "orig"
+"http://localhost:8000/imgfs/read?res=orig&img_id=mure.jpg", "img_id"    -> "mure.jpg"
+"http://localhost:8000/imgfs/read?res=orig&img_id=mure.jpg", "max_files" -> <not found>
+
+

Writing tests of your own is something really important in real-life projects.

+

http_parse_message()

+

The most complex function of this module is definitely http_parse_message(), the aim of which is to parse a HTTP message (only the ones needed for our purposes; not the full RFCs (9110-9112)).

+

Such a message is made of:

+
    +
  • a start-line ended by a delimiter (HTTP_LINE_DELIM); this first line either describes the requests to be implemented, or its status (successf/failure);
  • +
  • zero or more header field lines (collectively referred to as "the header");
  • +
  • an empty line (see HTTP_HDR_END_DELIM) indicating the end of the header;
  • +
  • an optional message body.
  • +
+

For simplicity, we will consider the start-line to be part of the header (we will call "the header", the start line an all the non empty header lines).

+

For instance, the message:

+
GET /imgfs/read?res=orig&img_id=mure.jpg HTTP/1.1
+Host: localhost:8000
+User-Agent: curl/8.5.0
+Accept: */*
+
+

consists only of a header (no body).

+

This example:

+
POST /imgfs/insert?&name=papillon.jpg HTTP/1.1
+Host: localhost:8000
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
+Accept: */*
+Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
+Accept-Encoding: gzip, deflate, br
+Referer: http://localhost:8000/index.html
+Content-Length: 72876
+Origin: http://localhost:8000
+DNT: 1
+Connection: keep-alive
+Sec-Fetch-Dest: empty
+Sec-Fetch-Mode: cors
+Sec-Fetch-Site: same-origin
+
+<some binary data>
+
+

has a 14 lines long header, a blank line (HTTP_HDR_END_DELIM actually), and then a body of 72876 bytes (a JPG image in this case). The body length is indicated by the Content-Length: header line.

+

For such a complex task, we recommend, as usual, to split it into relevant pieces; for instance (please read below, next 3 subsections! But also feel free to follow your own way):

+
    +
  • extract the next token between the current position and some delimiter; for instance extract "Host" from "Host: localhost:8000" with delimiter HTTP_HDR_KV_DELIM;
  • +
  • parse header lines by getting all key-value pairs;
  • +
  • then get the body.
  • +
+

Of course, feel free to develop more tool functions if appropriate.

+
get_next_token()
+

To ease the treatment of a message, we propose you to write a tool function that extract the first substring (= prefix) of a the string before some delimiter:

+
static const char* get_next_token(const char* message, const char* delimiter, struct http_string* output)
+
+

For instance get_next_token("abcdefg", "de", &token) will put "abc" (as an HTTP string, not a C string) into token, and return a pointer to "fg". +If output is a NULL pointer, which can be accepted, simply don't store the value. This may be useful to simply skip tokens without storing them.

+

Note: this function must not perform any copies of the string, instead the output must contain a reference inside the message string.

+

As for http_get_var(), you will need to write unit tests for your function. This is a bit trickier, since it's a static function -- i.e. it cannot be used from another .c file. You can use the following workaround:

+
    +
  • in your unit test file, add the prototype of get_next_token() (without static) and add #define IN_CS202_UNIT_TEST;
  • +
  • in http_prot.c instead of static, use the static_unless_test defined as follows:
  • +
+
#ifdef IN_CS202_UNIT_TEST
+#define static_unless_test
+#else
+#define static_unless_test static
+#endif
+
+

You can thus call get_next_token() from your unit-text .c code.

+

Here are some suggestions of test data:

+
message,                            delim   ->  output,             return value
+
+"abcdefg",                          "de"    ->  "abc",              "fg"
+"Content-Length: 0\r\nAccept: */*", ": "    ->  "Content-Length",   "0\r\nAccept: */*"
+"0\r\nAccept: */*",                 "\r\n"  ->  "0",                "Accept: */*"
+
+

(for the second example, use HTTP_HDR_KV_DELIM)

+

http_parse_headers()

+

Another tool function that may be worth creating is

+
static const char* http_parse_headers(const char* header_start, struct http_message* output)
+
+

to fill all headers key-value pairs of output (have a look at struct http_message in http_prot.h).

+

For this: until you find an empty line (in the HTML sense: use HTTP_LINE_DELIM), do

+
    +
  • extract the next token delimited by HTTP_HDR_KV_DELIM and store it as a new key (in the headers of output);
  • +
  • step after that HTTP_HDR_KV_DELIM delimiter;
  • +
  • then extract the next token delimited by HTTP_LINE_DELIM and store it as the value associated to the preceding key.
  • +
+

We found it useful to return the position right after the last header line, i.e. where the body starts; but feel free to choose your own: remember this is a tool function, for you.

+

Notice that the above algorithms assumes that HTTP headers end with an empty line, that is that HTTP_HDR_END_DELIM is simply twice HTTP_LINE_DELIM, which is indeed the case. +For those who want to be really strict, you can statically assert this assumption, e.g. by:

+
    _Static_assert(strcmp(HTTP_HDR_END_DELIM, HTTP_LINE_DELIM HTTP_LINE_DELIM) == 0, "HTTP_HDR_END_DELIM is not twice HTTP_LINE_DELIM");
+
+

To test this function, you will need the same trick as for get_next_token() regarding the static qualifier. +As a test example, the following string:

+
"Host: localhost:8000\r\nUser-Agent: curl/8.5.0\r\nAccept: */*\r\n\r\n"
+
+

should yield the key-value pairs:

+
"Host" -> "localhost:8000"
+"User-Agent" -> "curl/8.5.0"
+"Accept" -> "*/*"
+
+

Back to http_parse_message()

+

Once you have all your desired tools (create more on-the-fly when needed), you can write the parsing of a whole HTTP message.

+
    +
  • check the headers have been completely received (HTTP_HDR_END_DELIM shall be present, otherwise simply return 0, indicating message is incomplete);
  • +
  • parse the first line (which looks like GET /imgfs/read?res=orig&img_id=mure.jpg HTTP/1.1) by: +
      +
    • extracting the first token, delimited by a whitespace, and putting it into method field of out argument;
    • +
    • extracting the second token, delimited by a whitespace, and putting it into uri field of out argument;
    • +
    • checking but skipping the third token, delimited by HTTP_LINE_DELIM (it should match "HTTP/1.1");
    • +
    +
  • +
  • then parse all the key-value pairs of the header;
  • +
  • get the "Content-Length" value from the parsed header lines;
  • +
  • if it's present and not 0, store the body; it might be usefull to write a tool function here as well; you can also delegate this task to next week;
  • +
  • return: +
      +
    • 1 if there is no body (no Content-Length header, or is value is 0) or you were able to read the full body;
    • +
    • 0 if the message could not be fully parsed ; i.e. either you have not received all the headers or the full body.
    • +
    +
  • +
+

Test it with:

+
"GET / HTTP/1.1\r\nHost: localhost:8000\r\nAc" -> incomplete headers
+"GET / HTTP/1.1\r\nHost: localhost:8000\r\nAccept */*\r\n\r\n\r\n" -> OK
+"GET / HTTP/1.1\r\nHost: localhost:8000\r\nContent-Length: 10\r\n\r\01234" -> incomplete body (content_len: 10)
+"GET / HTTP/1.1\r\nHost: localhost:8000\r\nContent-Length: 10\r\n\r\0123456789" -> OK
+
+

Revisit handle_connection()

+

It's now time to have a more appropriate version of handle_connection() (in http_net.c), which is able to properly handle HTTP messages, in a generic manner through a global variable of type EventCallback: handle_connection() will do all the generic job and then call EventCallback for the specific parts to be done.

+

Rather than simply checking if we have a header containing "test: ok" (as done last week), we now have a bit more work to do:

+
    +
  1. parse the message contained in rcvbuf (using our newly created http_parse_message());
  2. +
  3. if we get an error (negative return value), properly exit returning this error code;
  4. +
  5. if we get a 0 return value, and we didn't extend the message yet (we will extend only once), and we have a partial body (i.e. the content length is strictly positive and the size treated so far is strictly smaller than that content length), then: +
      +
    • extend the message (rcvbuf) to MAX_HEADER_SIZE plus the content length (this is the reason why we extend only once);
    • +
    • position the reading pointer (of the next tcp_read()) to the right position, (which is rcvbuf plus the number of already read bytes);
    • +
    +
  6. +
  7. if we get a (strictly) positive return value (notice that this "if" is not an "else" of the former, since the former has many more other conditions!), then: +
      +
    • proceed by calling the EventCallback (global variable), it takes as parameters the http_message and the socket file descriptor;
    • +
    • reset variables (position, content length, etc.) for a new round of tcp_read().
    • +
    +
  8. +
+

And of course, everywhere all errors shall be properly handled, simply (deallocating/closing all what should be and) returning the corresponding error code.

+

Event callback: handle_http_message()

+

To finalize the work, we still have to write the parts specific to our ImgFS server, the EventCallback. This is the job of the handle_http_message() (of imgfs_server_service.c).

+

In order to reduce the workload, we provided you the required code in the file week12_provided_code.txt. +Include this code in your imgfs_server_service.c.

+

Plug it in

+

The very last step is to have handle_http_message() as our event handler. This is as easy as passing it to http_init() rather than NULL in server_startup().

+

Try it out with the following curl commands:

+
curl -i http://localhost:8000/imgfs                 # Should fail
+curl -i http://localhost:8000/imgfs/read            # Should succeed
+curl -i http://localhost:8000/imgfs/insert          # Should fail
+curl -X POST -i http://localhost:8000/imgfs/insert  # Should succeed
+
+

(of course, launch you server first)

+

Don't hesitate to look at curl(1) manpage to create other commands to test your program. This will be especially useful next week when we will build the final HTTP API for our server, which will use more complex requests.

+ +
+ + +
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/project/mainprj/07-webservice/index.html b/project/mainprj/07-webservice/index.html new file mode 100644 index 0000000..afaf710 --- /dev/null +++ b/project/mainprj/07-webservice/index.html @@ -0,0 +1,569 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ImgFS: Image-oriented File System --- Webserver services | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+ + + + + + + + +
+

ImgFS: Image-oriented File System --- Webserver services

+ +

Introduction

+

Now that we have the low layers of a quiet generic HTTP server, we can start offering our first real ImgFS services.

+

The main goal of this last week is to provide over HTTP, the equivalent of the command-line interface (CLI) commands. When the server will be completed, it will implement the same functionalities as the CLI imgfscmd, with the exception of the create command, which remains available only through the CLI.

+

In index.html, we provide an example of a client code, written in Javascript (as many of today's web applications) that your can use in your browser to test your server. You can also use curl on the command line as an alternative client.

+

We will also take the opportunity to improve our server so has to handle multiple connections through multi-threading.

+

There are thus basically three things to be done this week:

+
    +
  1. [ ~ 25% of the work ] allow the list command to provide the content in JSON format, useful for Web clients;
  2. +
  3. [ ~ 60% of the work ] implement the ImgFS commands in HTTP (using the work of the last two weeks);
  4. +
  5. [ ~ 15% of the work ] make our server multi-threaded.
  6. +
+

As usual, we recommend you split the work over the team members. Moreover, remember the early advice and choose what you want to do, or not, in the remaining time.

+

Provided material

+

This week, we provide you with:

+
    +
  • new unit tests added into the former tests/unit/unit-test-imgfslist.c;
  • +
  • new end-to-end tests in tests/end-to-end/week13.robot;
  • +
  • and, in src/week13_provided_code.txt, some code to be added to http_net.c.
  • +
+

Normally, the client code provided/src/index.html was already provided at the beginning of the project.

+

Tasks

+

1. List content in JSON format

+

1.0 libjson

+
1.0.a Installation
+

You will need the libjson library, which allows to parse and write data in JSON format. It is the standard format used for Javascript applications, easy to read both for the computer and a human developer (and much more simple than XML).

+

If your on your own machine and haven't already done it, start by installing the libjson library:

+
    sudo apt install libjson-c-dev
+
+

To check if you have the correct version, use apt-cache show libjson-c-dev and check that the Homepage is https://github.com/json-c/json-c/wiki (there may be several variants of this library).

+
1.0.b Usage
+

To use the library:

+
    +
  • +

    the interface is defined in <json-c/json.h> -- worth looking at; add the include in all source files that needs the library;

    +
  • +
  • +

    add the following lines to your Makefile:

    +
    # Add options for the compiler to include the library's headers
    +CFLAGS += -I/usr/include/json-c
    +
    +# Add the library to the linker
    +LDLIBS += -ljson-c
    +
    +
  • +
+

The API's documentation is located there: https://json-c.github.io/json-c/json-c-current-release/doc/html/

+

The functions you will need are:

+ +

If any of the above functions returns an error, you must return ERR_RUNTIME.

+

1.1 Update do_list()

+

The first objective is to integrate the JSON format in the application imgfscmd; this part is independent from the web server integration and can be done in parallel, for example by your teammate.

+

For this, you have to complement the do_list() function so that if its output mode is JSON, it returns a string (rather than directly printing to stdout as it does when output mode is STDOUT).

+

The function must use the libjson library (see above) to build a JSON object with the following structure:

+
{
+    "Images": ["pic1", "pic2"] // an array of the strings of the img_id fields from the metadata
+}
+
+

It is a JSON object containing an array of string, which are the img_id of the images in the filesystem, then converts it to a string to return it.

+

Beware of the lifetime/scope of the data you manipulate! Particularly, the string used in a JSON object are owned by the object, and are freed upon calling json_object_put() on it.

+

1.2 Tests

+

You can simply test you implementation by punctually editing do_list_cmd() and changing the call to do_list() so as to have JSON output rather than usual textual output and use imgfscmd list to test. For instance:

+
empty.imgfs  -> { "Images": [ ] }
+test02.imgfs -> { "Images": [ "pic1", "pic2" ] }
+
+

You can also (non exclusive) launch the two new unit-tests with:

+
make test-imgfslist
+
+

2. Develop the web server

+

2.1 Handle HTTP messages

+

The next thing to be done is to update handle_http_message() to serve our needs. For this:

+
    +
  • +

    create four functions handle_list_call(), handle_read_call(), handle_delete_call() and handle_insert_call(); these functions are the equivalent for our server of the do_X_cmd() function for the CLI and are detailed below;

    +

    for the moment make them simply return reply_302_msg(connection);

    +
  • +
  • +

    adapt handle_http_message() to call the appropriate function in each case (URI match either /list, /read, /delete or /insert (and verb is POST in this later case; as already done last week)

    +
  • +
  • +

    add a first condition which is:

    +
  • +
+
    if (http_match_verb(&msg->uri, "/") || http_match_uri(msg, "/index.html")) {
+        return http_serve_file(connection, BASE_FILE);
+    }
+
+

2.2 Handle list command

+

The server must answer with a valid HTTP response, using the JSON format, at the URI /imgfs/list. To achieve this, update the +handle_list_call() function so as to call do_list() with the proper format; and then replies.

+

The HTTP message that the list command must produce is:

+
HTTP/1.1 200 OK\r\n
+Content-Type: application/json\r\n
+Content-Length: XXX\r\n\r\n
+YYY
+
+

This can easily be achieved with the functions that you implemented in the previous weeks (and the JSON update of do_list()).

+

Test this first functionality by launching your server and querying it with curl:

+
curl -i 'http://localhost:8000/imgfs/list'
+
+

(use curl -v if you want more information to debug).

+

2.3 Handle read command

+

Next, update the function handle_read_call(), equivalent to handle_list_call() but for the URI /imgfs/read.

+

This function must use http_get_var() to get the following arguments:

+
    +
  • res: the resolution of the image queried; to be converted with resolution_atoi() (see the read from imgfscmd);
  • +
  • img_id: the identifier of the image (its "name").
  • +
+

Those two parameters are required, but the order does not matter. Example of URI:

+
http://localhost:8000/imgfs/read?res=orig&img_id=pic2
+
+

Then call the function do_read() with the correct arguments.

+

On success, return the following HTTP response:

+
HTTP/1.1 200 OK
+Content-Type: image/jpeg
+Content-Length: <XXX>
+
+<YYY>
+
+

The Content-Length must be the size of the image (in bytes).
+Note: the lines above are, as always, terminated with "\r\n", which we do not write anymore for readability)

+

If an error occurs, call the function reply_error_msg().

+

Test with:

+
curl -i 'http://localhost:8000/imgfs/read?res=orig&img_id=pic1'
+
+

Test also error cases (missing argument, wrong resolution, ...).

+

2.4 Handle delete command

+

Implement the handle_delete_call() to answer the request at the URI /imgfs/delete. +Those requests only need one argument: img_id.

+

Once the argument (valid) recovered, call the do_delete(). If successful, return the following HTTP response to make the client reload index.html:

+
HTTP/1.1 302 Found
+Location: http://<URL>/index.html
+
+

where <URL> is the HTTP address used by the server.

+

If an error occurs, call the function reply_error_msg(), as usual.

+

2.5 Handle insert command

+

Implement the function handle_insert_call(), the most complex one, to handle the URI /imgfs/insert.

+

The insertion logic is different from that used to return a list (list) or an image (read). Insertion uses the HTTP POST command, while the other two use HTTP GET. Basically, a GET contains all the arguments in the URI, whereas a POST has additional arguments in addition to the URI. In particular, the /imgfs/insert command uses a POST for the actual content of the image to be inserted.

+

To avoid overloading the server's RAM, large files are generally sent piece by piece ("chunk") in several successive POST. To simplify things in this project, we've set an image size limit in index.html that allows the image to be sent all at once in a single chunk. This avoids having to write the retrieval piece by piece and put it back together in the server!

+

The handle_insert_call() function must therefore essentially:

+
    +
  • retrieve the image name (parameter name), which we'll use as an identifier to insert it into the database;
  • +
  • retrieve (put in the heap) the unique "chunk" corresponding to its (binary) content;
  • +
  • insert the image into the ImgFS with do_insert().
  • +
+

In the event of an error, be sure to return an appropriate error message. +If successful, proceed as with delete to redisplay the index page.

+

Finalization

+

Finally, since image processing uses the VIPS library (indirectly), don't forget to start it (VIPS_INIT) when you launch the server, and close it (vips_shutdown()) when you stop it.

+

Testing

+

To test your web server, simply launch your imgfs_server after having copied the provided index.html to your done/, then open http://localhost:8000/ in a web browser. You should get something like this (depending on the ImgFS with which you run your server; here the test02.imgfs -- which we always recommend you copy before your tests and test on the copy):

+

Default view of test02.imgfs from the webapp

+
    +
  • Click on a red cross on the right to delete.
  • +
  • Click on an image to view it in its original size (read).
  • +
  • Click on the text "Click here to upload" to add a file (insert).
  • +
+

You can also test URIs directly, e.g. http://localhost:8000/imgfs/read?res=small&img_id=pic1 to test the "small" resolution, directly in your browser, or e.g. on the command line (in another terminal):

+
curl -v 'http://localhost:8000/imgfs/read?res=small&img_id=pic1' --output myowntest.jpg
+
+

To test an insert with curl do things like:

+
curl -v -X POST 'http://localhost:8000/imgfs/insert?name=pic3' --data-binary @../provided/tests/data/brouillard.jpg
+
+

Finally, there's always make check, and then make feedback, available (tests performed via curl).

+

3. Multithreading

+

The main problem with the current server design is that we open only one single socket for the communication and that this socket is blocking: only one single communication can occur at a time. This is not convenient for a Web server... (try with several tabs to the same server in your browser).

+

The most advance way to solve this problem is to use polling non blocking connections (using poll() or even epoll() for larger servers). +In this project, we choose to implement a simplest way, also illustrating the lectures you soon had: multithreaded blocking connections. +Each socket will be open in a new thread, thus allowing several parallel communications to the server.

+

But then, of course, all access to the ImgFS shall be locked. +(We here assume that any interaction with the ImgFS may change its internal state; thus any interaction with it must be locked for the other threads and unlocked as soon as the interaction with the ImgFS is over.)

+

In http_net.c:

+

It's the handle_connection() that will be threaded. So we first have to create a thread in http_receive(). However, in order to avoid race conditions between thread on the active file descriptor used to communicate (the one returned by tcp_accept()), this value has to be stored (on the heap) separately for each call to http_receive().

+

Concretely, in http_receive():

+
    +
  1. make the value returned by tcp_accept() be stored on the heap; and of course free() it whenever needed (don't forget error cases); let's name this value: active_socket (needed below);
  2. +
  3. create and initialize to PTHREAD_CREATE_DETACHED some pthread attributes; see pthread_attr_init() and pthread_attr_setdetachstate() man-pages; notice that "detached" threads automatically release their resources on exit (but then there is no way to get their return value; we'll ignore them);
  4. +
  5. create a thread (see pthread_create()) that will run handle_connection() with active_socket as a parameter.
  6. +
  7. Don't forget to release the pthread_attr_t with pthread_attr_destroy().
  8. +
+

Note: this is a practice exercise for programming threads in C. There is thus a part of understanding, reading man-pages, (asking questions,) on your side.

+

Now that handle_connection() is multi-threaded, we simply don't want the SIGTERM and SIGINT signals to be intercepted by it (but leave them to the main thread). +For this, simply add this code at the beginning of handle_connection():

+
    sigset_t mask;
+    sigemptyset(&mask);
+    sigaddset(&mask, SIGINT );
+    sigaddset(&mask, SIGTERM);
+    pthread_sigmask(SIG_BLOCK, &mask, NULL);
+
+

Notice also that since handle_connection() is now multi-threaded, we have to close and release its active_socket on exit (which, depending on your design, was maybe previously handled by http_receive()).

+

Finally, in imgfs_server_service.c, we have to lock all access to the ImgFS:

+
    +
  1. declare a global variable of type pthread_mutex_t;
  2. +
  3. initialize it in server_startup() (see pthread_mutex_init() man-page); and release it in server_shutdown() (see pthread_mutex_destroy());
  4. +
  5. add a lock (pthread_mutex_lock()) and unlock around all your do_X() calls (all the calls that interact with the ImgFS data).
  6. +
+

Test the multithreaded approach by launching several client at the same time: multiple tabs in your browser and multiple curl calls.

+

Final submission

+

So this is the end! Next week will indeed be "free", no new content, only to finalize your project before the deadline which is:
+SUNDAY JUNE 02, 11:59pm

+

For this deadline, there is nothing special to be done, except to commit and push, and to provide a (short) README.md file which must contain:

+
    +
  • what you did and what you did not in the project (= up to where you went);
  • +
  • any particular remark about your project (specific aspect, changes in the conception, ...);
  • +
  • anything else you want us to know (about the project).
  • +
+

Don't forget to push everything before the above deadline. The content of your project will be the state of your main branch at the deadline (in case this is relevant for you: thus don't forget to merge your branch(es) into the main branch).

+ +
+ + +
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/project/mainprj/index.html b/project/mainprj/index.html new file mode 100644 index 0000000..a23ee7d --- /dev/null +++ b/project/mainprj/index.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Project | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/project/mainprj/webapp.png b/project/mainprj/webapp.png new file mode 100644 index 0000000000000000000000000000000000000000..341f17c4ae7c7330d03dd8070fadd0a0291a1e0c GIT binary patch literal 20625 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 literal 0 HcmV?d00001 diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..3e1ded4 --- /dev/null +++ b/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / + +Sitemap: https://projprogsys-epfl.github.io/sitemap.xml diff --git a/site.webmanifest b/site.webmanifest new file mode 100644 index 0000000..4ce700f --- /dev/null +++ b/site.webmanifest @@ -0,0 +1 @@ +{"name":"Zola Theme AdiDoks","short_name":"AdiDoks","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#fff","background_color":"#fff","display":"standalone"} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..b3f6eb7 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,79 @@ + + + + https://projprogsys-epfl.github.io/ + + + https://projprogsys-epfl.github.io/project/ + + + https://projprogsys-epfl.github.io/project/index/ + + + https://projprogsys-epfl.github.io/project/index/foreword/ + + + https://projprogsys-epfl.github.io/project/index/warmup/ + + + https://projprogsys-epfl.github.io/project/mainprj/ + + + https://projprogsys-epfl.github.io/project/mainprj/01-imgfs/ + + + https://projprogsys-epfl.github.io/project/mainprj/01-main/ + + + https://projprogsys-epfl.github.io/project/mainprj/02-createdelete/ + + + https://projprogsys-epfl.github.io/project/mainprj/03-dedup/ + + + https://projprogsys-epfl.github.io/project/mainprj/04-readinsert/ + + + https://projprogsys-epfl.github.io/project/mainprj/05-socket/ + + + https://projprogsys-epfl.github.io/project/mainprj/06-http/ + + + https://projprogsys-epfl.github.io/project/mainprj/07-webservice/ + + + https://projprogsys-epfl.github.io/tutorials/ + + + https://projprogsys-epfl.github.io/tutorials/dbg-ptr/ + 2022-03-01 + + + https://projprogsys-epfl.github.io/tutorials/docker/ + 2022-01-01 + + + https://projprogsys-epfl.github.io/tutorials/gdb/ + 2022-03-01 + + + https://projprogsys-epfl.github.io/tutorials/git-recitation/ + 2022-01-01 + + + https://projprogsys-epfl.github.io/tutorials/make/ + 2024-02-21 + + + https://projprogsys-epfl.github.io/tutorials/page/1/ + + + https://projprogsys-epfl.github.io/tutorials/vmvb/ + 2022-01-01 + + + https://projprogsys-epfl.github.io/tutorials/vmware/ + 2022-01-01 + + diff --git a/source/complexe.c b/source/complexe.c new file mode 100644 index 0000000..12a15e4 --- /dev/null +++ b/source/complexe.c @@ -0,0 +1,118 @@ +// C99 + +#include +#include +#include // fabs() + +// ---------------------------------------------------------------------- +typedef struct { + double x; + double y; +} Complexe; + +// ---------------------------------------------------------------------- +void affiche(const Complexe* z); +Complexe* bad_addition(const Complexe* z1, const Complexe* z2); +Complexe* addition(const Complexe* z1, const Complexe* z2); +int small_c(const Complexe* z); + +// ---------------------------------------------------------------------- +#define PRECISION 1e-10 +#define small_lf(x) (fabs(x) < PRECISION) +#define small_c(pz) (small_lf((pz)->x) && small_lf((pz)->y)) + +// ---------------------------------------------------------------------- +void myfree(const Complexe** ptr) +{ + free((void*) *ptr); + *ptr = NULL; +} + +// ====================================================================== +int main(void) +{ + const Complexe a = { 3.0, -2.0 }; + const Complexe* p_b; + + affiche(&a); + affiche(p_b); // ERR: use non init ptr + + const Complexe b = { -5.0, 1.0 }; + p_b = &b; + affiche(p_b); + + affiche(bad_addition(&a, p_b)); + + affiche(addition(&a, p_b)); // ERR: memory leak (result non free) + + const Complexe* p_c = addition(&a, p_b); + affiche(p_c); + const Complexe* p_d = p_c; + myfree(&p_c); + + const Complexe* p_e = addition(&a, p_d); // ERR: use free ptr + affiche(p_e); + myfree(&p_e); + + Complexe* tab = NULL; + const size_t size = 2; + tab = calloc(size, sizeof(Complexe)); + for (size_t i = 0; i <= size; ++i) { // ERR: buffer overflow + p_c = addition(&a, p_b); // temporary value + tab[i] = *p_c; // make a copy of temporary (for whatever reason...) + myfree(&p_c); // delete temporary + } + + myfree(&p_b); // ERR: free ptr on stack + + // ERR: memory leak (tab non free) + + return 0; +} + +// ====================================================================== +void affiche(const Complexe* p_z) +{ + if (small_c(p_z)) { + puts("0"); + return; + } + + double y_affiche = p_z->y; + + if (! small_lf(p_z->x)) { + printf("%g", p_z->x); + if (p_z->y > 0.0) + putchar('+'); + else if (p_z->y < 0.0) { + putchar('-'); + y_affiche = -p_z->y; + } + } + if (! small_lf(y_affiche)) { + if (small_lf(p_z->x) && small_lf(y_affiche + 1.0)) { + putchar('-'); + } else if (! small_lf(y_affiche - 1.0)) { + printf("%g", y_affiche); + } + putchar('i'); + } + putchar('\n'); +} + +// ====================================================================== +Complexe* bad_addition(const Complexe* p_z1, const Complexe* p_z2) +{ + Complexe z3 = { p_z1->x + p_z2->x, p_z1->y + p_z2->y }; + return &z3; // ERR: local address returned +} + +// ====================================================================== +Complexe* addition(const Complexe* p_z1, const Complexe* p_z2) +{ + Complexe* p_z3 = malloc(sizeof(Complexe)); + *p_z3 = (Complexe) { + p_z1->x + p_z2->x, p_z1->y + p_z2->y + }; + return p_z3; +} diff --git a/tutorials/dbg-ptr/index.html b/tutorials/dbg-ptr/index.html new file mode 100644 index 0000000..e187b0f --- /dev/null +++ b/tutorials/dbg-ptr/index.html @@ -0,0 +1,404 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Débogage dynamique | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+
+
+
+ + +

Le but de ce tutoriel est de vous apprendre à utiliser des outils de débogage des aspects mémoire (dynamiques, donc ; « run-time »). Mais avant tout, n'oubliez pas déjà d'utiliser les autres outils présentés pour le débogage : les options du compilateur, l'analyseur statique et gdb.

+

Dans ce tutoriel ci, nous allons présenter Address Sanitizer (alias « ASAN ») et Valgrind.

+

Mais pour cela, nous allons avoir besoin de bugs mémoire. Téléchargez ici un programme comprenant un florilège d'erreurs sur les pointeurs :

+
    +
  1. utilisation de pointeur non initialisé ;
  2. +
  3. retour d'adresse de variable locale ;
  4. +
  5. utilisation de pointeur désalloué ;
  6. +
  7. débordement « de tampon » ;
  8. +
  9. désallocation de pointeur sur la pile (alloué statiquement) ;
  10. +
  11. fuite de mémoire (pointeur non désalloué).
  12. +
+

Commencez par regarder le programme fourni et comprendre son fonctionnement et ses erreurs (indiquées).

+

Les bonnes vielles méthodes

+

Avant d'utiliser de nouveaux outils, essayez de compiler puis d'analyser statiquement le code fourni.

+

Avec ces outils (options du compilateur et scan-build), vous devriez facilement trouver les erreurs 1 et 2 ci-dessus.
+Laissez les pour le moment.

+

ASAN

+

Address Sanitizer (alias « ASAN ») est un outil d'analyse des défauts d'accès mémoire utilisant le compilateur. Pour l'utiliser, il faut ajouter l'option

+
-fsanitize=address
+
+

au compilateur.

+

Compilez avec cette option (ainsi que -g, en tout cas, et toutes les autres options que vous souhaitez), puis lancez le programme. Vous devriez obtenir quelque chose comme :

+
3-2i
+0
+-5+i
+AddressSanitizer:DEADLYSIGNAL
+=================================================================
+==165699==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x55bf9afe15e8 bp 0x7ffd6a193c50 sp 0x7ffd6a193c30 T0)
+==165699==The signal is caused by a READ memory access.
+==165699==Hint: address points to the zero page.
+    #0 0x55bf9afe15e7 in affiche complexe.c:76
+    #1 0x55bf9afe13ab in main complexe.c:38
+    #2 0x7f8874e2cbba in __libc_start_main ../csu/libc-start.c:308
+    #3 0x55bf9afe1159 in _start (complexe+0x1159)
+
+AddressSanitizer can not provide additional info.
+SUMMARY: AddressSanitizer: SEGV complexe.c:76 in affiche
+==165699==ABORTING
+
+

Cela vous dit qu'il y a un « Segmentation Fault » (SEGV) dans affiche() à la ligne 76, et que cette fonction a été appelée depuis la ligne 38 du main().
+Voyez-vous de quoi il s'agit ?

+

Nous allons y revenir plus tard, mais voyons d'abord l'autre outil.

+

Valgrind

+

Valgrind est une suite d'outils d'analyse dynamique de code utilisant une machine virtuelle et la « compilation a la volée » (just-in-time (JIT) compilation).

+

Il s'utilise en lançant simplement valgrind devant le nom du programme à exécuter. Pour cela :

+
    +
  1. +

    supprimer l'exécutable précédemment compilé (car on ne va pas utiliser en même temps valgrind et ASAN !) :

    +
     rm complexe
    +
    +
  2. +
  3. +

    recompilez mais SANS l'option -fsanitize=address (par contre gardez au moins l'option -g) ;

    +
  4. +
  5. +

    lancez :

    +
     valgrind ./complexe
    +
    +
  6. +
+

Vous devriez obtenir quelque chose comme :

+
==165821== Memcheck, a memory error detector
+==165821== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==165821== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
+==165821== Command: ./complexe
+==165821== 
+3-2i
+==165821== Use of uninitialised value of size 8
+==165821==    at 0x109336: affiche (complexe.c:76)
+==165821==    by 0x1091BE: main (complexe.c:38)
+==165821== 
+==165821== Use of uninitialised value of size 8
+==165821==    at 0x109358: affiche (complexe.c:76)
+==165821==    by 0x1091BE: main (complexe.c:38)
+==165821== 
+[... plusieurs répétitions possibles en fonction de votre machine ...]
+0  // ou une autre valeur
+-5+i
+==165821== Invalid read of size 8
+==165821==    at 0x109336: affiche (complexe.c:76)
+==165821==    by 0x109207: main (complexe.c:44)
+==165821==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
+==165821== 
+==165821== 
+==165821== Process terminating with default action of signal 11 (SIGSEGV)
+==165821==  Access not within mapped region at address 0x0
+==165821==    at 0x109336: affiche (complexe.c:76)
+==165821==    by 0x109207: main (complexe.c:44)
+==165821==  If you believe this happened as a result of a stack
+==165821==  overflow in your program's main thread (unlikely but
+==165821==  possible), you can try to increase the size of the
+==165821==  main thread stack using the --main-stacksize= flag.
+==165821==  The main thread stack size used in this run was 8388608.
+==165821== 
+==165821== HEAP SUMMARY:
+==165821==     in use at exit: 0 bytes in 0 blocks
+==165821==   total heap usage: 1 allocs, 1 frees, 1,024 bytes allocated
+==165821== 
+==165821== All heap blocks were freed -- no leaks are possible
+==165821== 
+==165821== Use --track-origins=yes to see where uninitialised values come from
+==165821== For lists of detected and suppressed errors, rerun with: -s
+==165821== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+Erreur de segmentation
+
+

On y voit plus de choses entre l'affichage de a (3-2i) et les deux affichages suivants, et même aussi autre chose avant le crash final. De quoi s'agit-il ?

+
==165821== Use of uninitialised value of size 8
+==165821==    at 0x109336: affiche (complexe.c:76)
+==165821==    by 0x1091BE: main (complexe.c:38)
+
+

vous dit que dans l'appel à la fonction affiche() réalisé à la ligne 31 du main(), vous utilisez une valeur non initialisée.
+Il vous le dit même au moins deux fois de suite. Pourquoi ?
+Simplement parce que (1) le pointeur p_b n'est pas initialisé (première erreur) et (2) la valeur pointée (adresse quelconque) ne l'a pas non plus été (seconde erreur). Ensuite, en fonction de cette valeur non initialisée, plusieurs lignes de affiche() sont encore exécutées (ou pas), donnant autant de messages d'erreur.

+

Enfin le :

+
==165821== Invalid read of size 8
+==165821==    at 0x109336: affiche (complexe.c:76)
+==165821==    by 0x109207: main (complexe.c:44)
+==165821==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
+
+

juste avant le crash, vous dit justement que vous lisez 8 octets (size 8, soient 64 bits) invalides lors de l'appel affiche() à la ligne 44 du main(). C'est la même chose que ce que nous avions déjà vu avec les options du compilateur, l'analyse statique et aussi ASAN (c'est une erreur tellement grosse que tout le monde la voit ! ;-)).

+

Il est maintenant temps de corriger ce programme.

+

Exemple de correction

+

Je vous conseille de toujours commencer par corriger les erreurs détectées avec les outils les plus simples en premier.

+

Les options du compilateur

+

Normalement, si vous avez suivi les conseils des semaines précédentes, vous devriez compiler avec assez d'options pour trouver facilement l'erreur de retour d'adresse de variable locale.

+

Corrigez la (supprimez sans autre la fonction bad_addition() et son appel), puis recompilez. Normalement, cela devrait compiler sans warning (majeur, ceux qui ont -Wcast-qual, n'utilisez pas cette option ici).

+

L'analyseur statique

+

Utilisez l'analyseur statique (scan-build ; revoir si nécessaire les autres outils présentés pour le débogage) pour trouver une autre erreur. Corrigez la (p.ex. en supprimant la ligne 37).

+

Relancez l'analyseur statique. Il en trouve une autre !
+Corrigez la également (p.ex. en déplaçant la ligne du free).

+

Relancez à nouveau l'analyseur statique. Il en trouve encore une autre !!
+Corrigez la aussi (suppression de la ligne).

+

Relancez encore une fois l'analyseur statique. Il arrive encore à en trouver deux autres !!!!
+Corrigez les aussi (suppression de la ligne 42 et ajout d'un free à la fin).

+

Relancez pour la dernière fois l'analyseur statique. Ca y est, ça passe !

+

Bilan à ce stade : 6 erreurs sur 7 trouvées.

+

ASAN

+

Compilez en ajoutant ASAN et lancez le programme.

+

Il trouve le buffer overflow :

+
==178554==ERROR: AddressSanitizer: heap-buffer-overflow on address [...]
+WRITE of size 16 at [...]
+    #0 0x556e52e43592 in main complexe.c:56
+[...]
+
+

Laissez la pour le moment et voyons ce que dit valgrind.

+

valgrind

+

Supprimez l'exécutable et recompilez le sans ASAN ; puis lancez le avec valgrind. +Il la trouve aussi :

+
==178672== Invalid write of size 8
+==178672==    at 0x1092D3: main (complexe.c:56)
+==178672==  Address 0x4a39540 is 0 bytes after a block of size 32 alloc'd
+==178672==    at 0x4838B65: calloc (vg_replace_malloc.c:762)
+==178672==    by 0x109290: main (complexe.c:53)
+==178672== 
+==178672== Invalid write of size 8
+==178672==    at 0x1092D6: main (complexe.c:56)
+==178672==  Address 0x4a39548 is 8 bytes after a block of size 32 alloc'd
+==178672==    at 0x4838B65: calloc (vg_replace_malloc.c:762)
+==178672==    by 0x109290: main (complexe.c:53)
+
+

C'est la même erreur que celle pointée par ASAN, mais valgrind la voit en 2 écritures de 8_octets, alors que ASAN la reportée comme une écriture de taille 16 octets. C'est une question de point de vue (les deux champs du Complexe, ou tout le Complexe lui-même).

+

Corrigez l'erreur et retestez avec ASAS et avec valgrind.

+

ASAN ou valgrind ?

+

C'est une question de goût. A vous de voir à l'usage.

+

Y a-t-il des erreurs que l'un voit et pas l'autre ? Personnellement, je n'en sais rien. Et j'utilise les deux pour être sûr ;-)

+

Ces outils peuvent aussi détecter les fuites de mémoire (que l'analyseur statique auraient ratées). Par exemple (supprimez les free que vous aviez ajouté) :

+
valgrind --leak-check=full ./complexe
+
+

(ASAN n'a a priori pas besoin d'option supplémentaire. Si ce n'est pas le cas sur votre machine, faites :

+
export ASAN_OPTIONS=detect_leaks=1
+
+

)

+ +
+
+
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/tutorials/docker/index.html b/tutorials/docker/index.html new file mode 100644 index 0000000..d24c8e4 --- /dev/null +++ b/tutorials/docker/index.html @@ -0,0 +1,401 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Utilisation de Docker | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+ + +

Concepts de base

+

Docker est une alternative aux machines virtuelles. C'est une architecture logicielle qui permet d'exécuter du code (y compris des logiciels système) en local sur sa machine mais dans un environnement isolé (appelé « container »). Pour en savoir plus : voir la page Wikipédia.

+

Docker utilise deux concepts de base:

+
    +
  • les images qui sont les différentes applications possibles pouvant tourner sur votre machine (par exemple une image « Ubuntu 16.04 », une image pour un server Web (« httpd »), une image pour un simple « hello world », etc.) ;
  • +
  • les containers qui sont des instances d'images en cours d'exécution ; on peut par exemple avoir plusieurs containers de l'image « Ubuntu 16.04 ».
  • +
+

Il est important de bien comprendre la distinction des deux. En particulier, des modifications effectuées dans containers ne vont pas affecter son image (contrairement à ce qui se passe avec une machine virutelle par exemple).

+

Pour voir toutes les images disponibles sur votre machine (une fois Docker installé, cf ci-dessous) :

+
docker images
+
+

Pour voir tous les containers en cours sur votre machine :

+
docker ps -a
+
+

Installation de docker

+

L'installation de Docker sur votre machine est normalement assez facile. Voir leur page d'installation pour plus de détails.

+

Vérifiez que Docker fonctionne

+
docker run hello-world
+
+

En cas de succes, vous verrez un message de confirmation "Hello from Docker".

+

Par contre, certaines installations nécessite des privilèges additionnels pour tourner Docker.

+

Si vous avez un message d'erreur, suivez les instructions ici et changez les permissions du socket si nécessaire.

+

Pour Ubuntu comme host, la marche à suivre est:

+
sudo groupadd docker
+sudo usermod -aG docker ${USER}
+sudo chmod 666 /var/run/docker.sock
+
+

Création d'une image pour le cours

+

Si vous souhaitez développer sous Docker (mais ce n' est pas ce que nous recommandons comme premier choix, en particulier à celles et ceux qui ne codent pas sur la ligne de commande (vim) mais utilisent plutôt une interface graphique), vous pouvez créer votre propre image de travail.
+Si vous n'utiliserez Docker que pour recevoir le feedback du cours, il n'est pas nécessaire de faire une image spécifique (nous fournirons notre image pour les tests).

+

Docker propose déjà plusieurs images sur son « hub ». Le plus simple pour créer une image de développement pour le cours, c'est de partir d'une image Ubuntu :

+
docker pull ubuntu
+
+

Puis lancer l'image (= créer un nouveau container ; voir tout en bas de la page pour un rappel des principales commandes) :

+
docker run -ti ubuntu bash
+
+

Au cas où l'image ne serait pas à jour (ces commandes sont à exécuter dans le shell du container Ubuntu) :

+
apt update
+apt upgrade -y
+
+

Installation des outils nécessaires pour le cours (cette commande est à exécuter dans le shell du container Ubuntu) :

+
apt install build-essential clang check wdiff colordiff git openssh-client manpages manpages-dev doxygen curl
+apt install libssl-dev libssl-doc libcurl4-openssl-dev libjson-c-dev
+
+

Quittez le container :

+
exit
+
+

Créez une nouvelle image à partir de nouvel état de votre container :

+
    +
  • +

    cherchez l'id du container :

    +
      docker ps -a
    +
    +
  • +
  • +

    créez l'image :

    +
      docker commit CONTAINER_ID projet-cs212
    +
    +

    en remplaçant CONTAINER_ID par le bon id; par exemple :

    +
      docker commit 55959d62b348 projet-cs212
    +
    +
  • +
  • +

    supprimez le container :

    +
      docker rm CONTAINER_ID
    +
    +
  • +
+

Première compilation

+

Vous pouvez maintenant lancer votre nouvelle image et, par exemple, y compiler votre projet. +Pour cela, nous vous conseillons de « mounter » le répertoire où se trouvent vos codes sources sur le container avec l'option -v de docker run.

+

Par exemple, si vous êtes sur une machine Unix, allez dans le répertoire de vos codes sources et faites :

+
docker run -ti --rm -v $(pwd):/localhost projet-cs212
+
+

Autre exemple :

+
docker run -ti --rm -v /home/chezmoi/projet:/localhost projet-cs212
+
+

Vous aurez alors accès dans le container à vos fichiers via /localhost. Par exemple :

+
ls /localhost
+
+

Vous pouvez alors y compiler votre projet. Par exemple :

+
cd /localhost
+make
+
+

Quittez le container avec :

+
exit
+
+

(ou simplement CTRL-D).

+

Quelques commandes Docker utiles

+
    +
  • +

    obtenir de l'aide :

    +
      docker help COMMAND
    +
    +

    par exemple :

    +
      docker help ps
    +
    +
  • +
  • +

    Liste de tous les containters :

    +
      docker ps -a
    +
    +
  • +
  • +

    Supprimer un container :

    +
      docker rm CONTAINER_ID
    +
    +
  • +
  • +

    Supprimer tous les containers :

    +
      docker rm $(docker ps -aq)
    +
    +
  • +
  • +

    Liste de toutes les images :

    +
      docker images
    +
    +
  • +
  • +

    Supprimer une image (qui n'a plus de container) :

    +
      docker rmi IMAGE_ID
    +
    +
  • +
  • +

    Créer un container en mode interactif et le supprimer automatiquement en fin :

    +
      docker run -ti --rm CONTAINER_ID 
    +  docker run -ti --rm CONTAINER_ID COMMANDE
    +
    +

    par exemple :

    +
      docker run -ti --rm ubuntu bash
    +
    +
  • +
  • +

    Créer un container en mode interactif sans le supprimer automatiquement :

    +
      docker run -ti CONTAINER_ID 
    +
    +
  • +
  • +

    Créer un container en mode interactif en « mountant » le système de fichier local (c.-à-d. en ayant dans le container un accès à un endroit du disque local) :

    +
      docker run -ti --rm -v local_dirname:container_dirname CONTAINER_ID 
    +
    +

    par exemple :

    +
      docker run -ti --rm -v /home/machin:/tmp/home_machin_local CONTAINER_ID 
    +
    +

    Note : les noms de fichiers/répertoires doivent être absolus (pas relatifs).

    +
  • +
  • +

    Redémarrer un container en pause :

    +
      docker start CONTAINER_ID 
    +
    +
  • +
  • +

    Copier des fichiers entre la machine locale et un container :

    +
      +
    • +

      de la machine locale au container :

      +
      docker cp local_filename CONTAINER_ID:where_to_put
      +
      +
    • +
    • +

      du container à la machine locale :

      +
      docker cp CONTAINER_ID:where_to_get local_filename
      +
      +
    • +
    +
  • +
  • +

    Créer une nouvelle image à partir de l'état d'un container :

    +
      docker commit CONTAINER_ID IMAGE_ID
    +
    +
  • +
+ +
+
+
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/tutorials/gdb/index.html b/tutorials/gdb/index.html new file mode 100644 index 0000000..dae12ed --- /dev/null +++ b/tutorials/gdb/index.html @@ -0,0 +1,533 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Utilisation du débogueur gdb | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+ + +

Un débogueur est un programme qui permet de suivre le déroulement d'un autre programme, de l'arrêter, d'ausculter l'état de la mémoire (valeur de variables par exemple), etc. ; ce qui est particulièrement utile pour rechercher des erreurs de programmation.

+

Nous expliquons ici les bases de l'utilisation d'un débogueur à l'aide du débogueur gdb à la ligne de commande, mais vous pouvez bien sûr utiliser des versions avec interface graphique, souvent intégrées dans les IDE ; les principes de base restent les mêmes ; en salles CO, vous avez par exemple ddd ou le module debuger intégré dans Geany pour lequel vous pouvez trouver un tutoriel là-bas (attention ! il s'agit d'un autre cours) ; pour d'autres GUI voir ce lien, parmi lesquelles nous vous recommandons gdbgui (site officiel ; site GitHub).

+

Vous pouvez aussi utiliser un autre débuger, comme par exemple lldb ; là aussi, les principes de base restent les mêmes. La correspondance entre les commandes gdb et lldb se trouve ici.

+

NOTE pour macOS : depuis OS X 10.9, Apple est passé à LLVM ; il n'y a donc plus gdb de base. Si vous êtes sur Mac, vous avez alors deux options :

+
    +
  1. +

    soit utiliser lldb ;

    +
  2. +
  3. +

    soit installer gdb (via brew) et le signer ;
    +OS X a un mécanisme de contrôle d'accès aux autres processus qui nécessite un binaire signé (ce qui est nécessaire pour un débuggeur) ;
    +pour signer le binaire gdb après son installation, il faut suivre les instructions qu'on peut trouver sur Internet ; par exemple :

    +
  4. +
+
    +
  • https://sourceware.org/gdb/wiki/PermissionsDarwin +L'étape de création du certificat « gdb-entitlement.xml » est nécessaire pour les Mac avec système d'exploitation Big Sur.
  • +
+

Video Tutorial

+

Avant de lire la suite, nous vous proposons en guise d'introduction de regarder un tutoriel vidéo de 23 minutes, crée par Chris Bourke et disponible sur Youtube. Ce tutoriel explique comment trouver des erreurs dans du code en utilisant le débogueur gdb. La plupart des notions évoquées dans cette vidéo sont ensuite reprise pas à pas dans la suite de ce tutoriel.

+

Quelques remarques pour vous faciliter la comprehension de ce tutoriel vidéo :

+
    +
  • +

    À 1:08, Chris dit que le débogueur, dans son exemple, se lance avec la commande suivante : gdb a.out. Il faut remarquer que, pour vous, a.out devrait être remplacé par le nom de votre programme (executable).

    +
  • +
  • +

    À 1:14, il faut (temporairement) ignorer l'histoire d'arguments du programme. Vous verrez ca plus tard dans le cours.

    +
  • +
  • +

    À 2:34, il lance le programme avec la commande ./a.out. Ici aussi, utilisez le nom de votre programme (executable) à la place de a.out.

    +
  • +
  • +

    Jusqu'à 16:17, tout devrait être assez clair (sauf les arguments du programme en 1:14, comme dit ci-dessus). À partir de là, il utilise des notions de C non encore vues en cours. Vous pouvez donc arrêter ici cette vidéo et y revenir plus tard, ou continuer à la regarder pour voir comment utiliser gdb mais sans chercher à comprendre en profondeur les problèmes de C qui sont évoqués :

    +
      +
    • De 16:17 à 21:10, il montre comment corriger des erreurs liées aux arguments du programme. Ceux-ci seront abordés en semaine 10 du cours, mais les erreurs illustrées ici pourraient très bien avoir lieu sur d'autres variables ou tableaux.
    • +
    • À 21:10, il corrige une erreur liée à l'allocation (dynamique) de la mémoire, un concept qui sera vu en semaine 6 du cours.
    • +
    +
  • +
+

Vous êtes maintenant prêts à lire et suivre les instructions et explications ci-dessous.

+

Ajouter les informations lors de la compilation

+

La première chose à faire pour pouvoir utiliser un débogueur est de demander au compilateur de mettre des informations supplémentaires dans le programme afin de permettre au débogueur de se repérer. Cela se fait en ajoutant l'option -g lors de la compilation. Par exemple :

+
gcc -g -o mon_programme mon_programme.c
+
+

Compilez de la sorte un des programmes fournis ; p.ex. :

+
gcc -g -std=c99 -o ex1 ex1.c
+
+

ou

+
gcc -g -std=c99 -o stats stats.c -lm
+
+

NOTE : nous utiliserons pour ce cours la norme C99 ; pour certains compilateurs, la compilation peut alors nécessiter l'ajout de l'option -std=c99 comme indiqué ci-dessus. Vous pouvez bien sûr aussi utiliser des normes plus récentes (p.ex. -std=c17).

+

Lancer le débogueur et l'exécution du programme

+

Ensuite, on peut exécuter le programme dans le débogueur. On lance pour cela le débogueur avec comme argument le programme à déboguer ; p.ex. :

+
gdb ./ex1
+
+

ou

+
gdb ./stats
+
+

On se retrouve dans le débogueur (c'est ici un interpréteur de commandes), dans lequel on ne voit pas grand chose pour le moment. Pour voir le code, tapez

+
layout src
+
+

Le code ne s'affiche pas encore car gdb n'a pas encore lancé notre programme. +Lancez simplement son exécution avec la commande :

+
run
+
+

Le programme se déroule alors normalement (on peut déjà remarquer l'un ou l'autre bugs ;-). Tapez Ctrl-C pour l'arrêter quand vous en avez assez).

+

Tapez

+
quit
+
+

pour quitter le débogueur.

+

Points d'arrêt

+

Si ce n'est pas déjà fait, ouvrez le code stats.c dans un éditeur pour voir de quoi il s'agit.
+Le but de ce programme est de calculer la moyenne et l'écart-type (non biaisé) de l'âge d'un ensemble de 1 à 1024 personnes.

+

Vous voyez au début du programme une variable nb_people qui est lue au clavier à la ligne 22. Utilisons le débogueur pour aller voir la valeur lue. +Pour cela, relancez le débogueur sur notre programme :

+
gdb ./stats
+
+

puis

+
layout src
+
+

Mais cette fois, ajoutons un « point d'arrêt » (breakpoint) avant de lancer l'exécution. Cela se fait à l'aide de la commande break :

+
break 22
+
+

NOTE : pour en savoir plus sur cette commande, vous pouvez taper :

+
help break
+
+

Vous verrez alors que l'on peut non seulement indiquer des numéros de ligne, mais aussi des noms de fonctions (entre autres).
+On peut par ailleurs mettre autant de point d'arrêt que l'on veut.

+

Une fois le point d'arrêt placé, lancer l'exécution :

+
run
+
+

Voir la valeur de variables

+

Cette fois le débogueur arrête l'exécution du programme à la ligne 22 et vous l'indique. +Vous pouvez à ce stade donner des commandes au débogueur comme voir la valeur d'une variable, avancer d'un pas l'exécution du programme, continuer l'exécution ou ajouter un autre point d'arrêt.
+Commençons par regarder la valeur de la variable nb_people :

+
print nb_people
+
+

vous affiche le résultat :

+
$1 = 0
+
+

($1 veut simplement dire que c'est la première expression que vous avez demandé qui est ici affichée).

+

NOTE : toutes les commande gdb peuvent être abrégées tant qu'elles ne sont pas ambiguës. Ici, on aurait donc simplement pu entrer :

+
p nb_people
+
+

A noter aussi qu'on a la complétion automatique avec la touche TAB. Essayez :

+
p nb_<TAB>
+
+

Mais il reste néanmoins fastidieux de toujours avoir à retaper des commandes print utiles. Il existe deux moyens d'éviter cela :

+
    +
  1. gdb garde toutes les commandes en mémoire ; il suffit donc de naviguer dans l'historique avec les flèches (Haut et Bas) pour retrouver une commande déjà entrée ;
  2. +
  3. la commande display affiche automatiquement l'expression demandée à chaque arrêt du débogueur (si tant est que l'expression fait sens à l'endroit de l'arrêt).
  4. +
+

Essayons la commande display (on verra mieux son effet dans un instant) :

+
display nb_people
+
+

Exécution pas à pas

+

Essayons maintenant de continuer l'exécution.
+Si vous ne savez plus où vous en êtes dans le programme, la commande :

+
where
+
+

vous l'indiquera (ici : dans la fonction main() à la ligne 22 du programme stats.c).

+

NOTE : where est en fait un alias pour backtrace ou bt, qui sont aussi souvent utilisés.

+

Pour avancer d'un pas, tapez :

+
next
+
+

Le débogueur exécute alors le scanf. C'est pour cela que vous avez le texte de la question qui apparaît.
+Répondez-y.

+

Le débogueur vous indique alors s'être arrêté à la ligne 26 (vu qu'il n'y a pas de code aux lignes 23 à 25).
+La commande next n'exécute en effet qu'une seule ligne du programme.
+Si l'on avait voulu continuer l'exécution sans ne plus s'arrêter (en fait : continuer jusqu'au prochain point d'arrêt, mais comme nous n'en avons pas d'autre...), on aurait utilisé la commande (ATTENTION ! NE le faites PAS ici) :

+
cont
+
+

Vous pouvez également remarquer qu'en plus de la ligne 26, le débogueur vous a affiché la nouvelle valeur (celle saisie) de la variable nb_people. C'est le résultat de votre display précédent. Sans cette commande display, la nouvelle valeur n'aurait pas été affichée et il vous aurait fallu entrer un nouveau print pour la voir.

+

REMARQUES :

+
    +
  1. +

    next peut s'abréger n ;

    +
  2. +
  3. +

    si l'on entre aucune commande, c'est simplement la commande précédente qui s'applique à nouveau ; cela est particulièrement pratique avec next : il suffit d'appuyer ensuite sur Enter plusieurs fois pour avancer pas à pas ;

    +
  4. +
  5. +

    next peut être complété d'un nombre de répétitions :

    +
     next 8
    +
    +

    fera par exemple 8 fois next ;
    +next tout seul est donc la même chose de next 1 ;

    +
  6. +
+

next et step

+

Une confusion fréquente lors de la prise en main de débogueur est celle entre next +et step :

+
    +
  • next passe à l'expression suivante en restant au même niveau ; sans rentrer dans les sous-routines (= appel de fonctions) ;
  • +
  • step passe à la prochaine expression à évaluer, où qu'elle soit ; même si celle-ci est dans une sous-routine (et même si ce n'est pas une sous-routine à nous).
  • +
+

Illustrons cela en ajoutant un point d'arrêt supplémentaire un peu plus loin :

+
break 42
+
+

et continuez l'exécution jusque là-bas avec un simple :

+
cont
+
+

(répondez normalement aux questions).

+

Arrivé à la ligne 42, tapez

+
next
+
+

pour continuer. Vous voyez que la ligne 42 est exécutée et que l'on passe à la ligne 43.

+

Reprenons l'exemple en relançant l'exécution depuis le début :

+
run
+y
+
+

Le débogueur arrête à nouveau l'exécution à la ligne 22. Comme cela ne nous intéresse plus, supprimons ce point d'arrêt :

+
info br
+
+

nous montre qu'il s'agit du point d'arrêt numéro 1 ; que l'on supprime :

+
delete 1
+
+

Puis l'on continue l'exécution :

+
cont
+
+

jusqu'à la ligne 42.

+

Si l'on tape maintenant step au lieu de next, on passe à la ligne...
+...28 ? [Note : cela ne fonctionne pas sur macOS sur cet exemple (printf), mais fonctionnera avec vos propres fonctions.]

+
__printf (format=0x40094d "\nMoyenne    : %g\n") at printf.c:28
+28      printf.c: No such file or directory.
+
+

Oui, 28 ! Mais pas de notre programme ; la ligne 28 de printf.c qui est le fichier qui a été compilé (il y a bien longtemps) pour donner le code de printf dans la bibliothèque C !
+Et auquel nous n'avons pas accès (il n'est certainement pas sur votre ordinateur).

+

Que s'est il passé ?

+

Avec le step, nous sommes passés à la prochaine instruction C, qui se trouve en fait être à l'intérieur de printf lui-même (il a bien fallu l'écrire !!).

+

Essayez encore quelques step (au moins 7). Vous voyez que l'on « s'enfonce » dans la bibliothèque C...
+Un

+
where
+
+

après plus de 7 step est d'ailleurs intéressant :

+
#0  _IO_vfprintf_internal (s=0x7ffff7ad1740 <_IO_2_1_stdout_>, format=0x40094d "\nMoyenne    : %g\n", ap=ap@entry=0x7fffffffdcc8) at vfprintf.c:1278
+#1  0x00007ffff7781209 in __printf (format=<optimized out>) at printf.c:33
+#2  0x0000000000400839 in main () at stats.c:42
+
+

Nous sommes dans une fonction _IO_vfprintf_internal qui a elle-même été appelée par une fonction __printf que nous avons appelée depuis la ligne 42 de notre programme.
+Ca commence à ressembler aux messages d'exceptions de Java ;-) !

+

Comme on est perdu, terminons l'exécution du programme (et ce tutoriel) avec un simple

+
cont
+
+

Annexe 1 : liste des commandes vues dans ce tutoriel

+
    +
  • +

    layout src

    +
  • +
  • +

    run ou r

    +
  • +
  • +

    help

    +
  • +
  • +

    break NUMERO_DE_LIGNE ou br NUMERO_DE_LIGNE

    +
  • +
  • +

    break NOM_DE_FONCTION ou br NOM_DE_FONCTION

    +
  • +
  • +

    delete

    +
  • +
  • +

    info br

    +
  • +
  • +

    where ou bt (ou backtrace)

    +
  • +
  • +

    print ou p

    +
  • +
  • +

    display

    +
  • +
  • +

    cont ou c

    +
  • +
  • +

    next ou n

    +
  • +
  • +

    step ou s

    +
  • +
+

Annexe 2 : déboguer un programme multi-process

+

Plus tard dans le projet, vous utiliserez peut être des tests unitaires avec la bibliothèque check. Mais ces tests unitaires se lancent un nouveau sous-processus par test (fork()) et c'est donc plus difficile à suivre. Si vous souhaitez debogguer avec gdb ces programmes de tests-unitaires, voici quelques compléments :

+
    +
  1. +

    entrez ces options dans gdb :

    +
     set follow-fork-mode child
    + set detach-on-fork off
    +
    +
  2. +
  3. +

    suivez dans quel sous-processus vous êtes avec la commande :

    +
     info infe
    +
    +
  4. +
  5. +

    changez de processus avec infe suivi d'un numéro (tel qu'indiqué par info infe) ; p.ex. :

    +
     infe 1
    +
    +
  6. +
  7. +

    ne mettez pas de breakpoints sur le code des unit-test-* eux-mêmes (car ils sont écrit avec des macros en fait), mais sur du « vrai » code C, soit celui des fonctions-outils utilisées pour ces tests, soit carrément sur votre propre code à vous.

    +
  8. +
+

Exemple :

+

Supposons que ce soit dans le 5e test que vous ayez des problèmes. Ce sera donc le 5e sous-processus qui vous intéresse.

+

Commencez alors comme d'habitude par lancer le débogueur sur le programme de tests-unitaires :

+
gdb ./unit-test-machin
+
+

Ajoutez les options suggérées :

+
set follow-fork-mode child
+set detach-on-fork off
+
+

Mettez le breakpoint à l'endroit qui vous intéresse, p.ex. ici sur une fonction fait_machin_truc() :

+
break fait_machin_truc
+
+

Et lancez l'exécution dans le débogueur :

+
run
+
+

gdb s'arrêtera au premier break (ou alors au premier crash ;-)).
+On regarde où l'on se situe :

+
info infe
+
+

On est p.ex. dans le 2e processus, c.-à-d. dans le 1er test (car le processus 1, c'est le main() et les tests créent un sous-processus à chaque fois) ; ce n'est pas celui-ci qui nous intéresse, donc on continue :

+
cont
+
+

gdb nous dit alors, par exemple, que le 2e process (« Inferior 2 ») est fini, mais il s'y trouve encore (faites « info infe » pour voir). Il faut donc ramener gdb au process père :

+
infe 1
+
+

et on continue :

+
cont
+
+

Il nous arrête à nouveau au breakpoint. On regarde à nouveau où l'on est :

+
info infe
+
+

...Et on continue comme ça jusqu'au breakpoint qui nous intéresse. +Là on peut faire des next, display, print etc. comme d'habitude.

+

On peut comme celà « se promener » de processus en processus (infe <numero>) et savoir où on est (info infe).
+Avec un peu d'habitude on arrive à s'y retrouver ;-)

+ +
+
+
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/tutorials/git-recitation/index.html b/tutorials/git-recitation/index.html new file mode 100644 index 0000000..ccd2643 --- /dev/null +++ b/tutorials/git-recitation/index.html @@ -0,0 +1,486 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Tutoriel Git | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+ + + +

Mise en place

+

La première chose à faire avant d'utiliser git est de le configurer. +Ceci n'est à faire qu'une seule fois.

+

Dans la ligne de commande, tapez le code suivant, ligne par ligne, +en remplaçant les #<XXXX># par des informations personnelles correspondantes:

+
git config --global user.name #<UN USERNAME>#
+git config --global user.email #<VOTRE EMAIL EPFL>#
+
+

Ensuite, si vous aimez la couleur sur le terminal, vous pouvez ajouter :

+
git config --global color.diff auto
+git config --global color.status auto
+git config --global color.branch auto
+
+

Ajoutons quelques alias. Pour cela, créez/éditez un fichier ~/.gitconfig +(i.e. fichier nommé « .gitconfig » à la racine de votre répertoire personnel.
+Sur les machines du CO, pensez à le recopier dans votre myfiles). +Mettez y les lignes suivantes :

+
[alias]
+    lg = log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
+    glog = log --graph --decorate --oneline --all
+unstage = reset HEAD --
+    last = log -1 HEAD
+
+

Concepts de base

+

Avant de se lancer dans l'utilisation de git, il faut en comprendre le but et la logique :

+
    +
  • +

    le but est de travailler en commun sur du contenu partagé et, pour cela, archiver les différentes versions (git est un « gestionnaire de versions ») ;

    +
  • +
  • +

    la logique est d'avoir trois niveaux :

    +
      +
    1. un dépôt commun de référence (appelé « repo » ou « server principal ») ;
    2. +
    3. un dépôt local propre à chacun, servant de référence locale (que vous n'avez pas voir) ;
    4. +
    5. un répertoire de travail local dans lequel on peut faire et défaire des choses sans conséquences tant qu'on ne les a pas validées au niveau 2 ; c'est ce répertoire que vous avez récupéré/allez récupérer avec git clone et dans lequel vous allez travailler (chacun(e)).
    6. +
    +
  • +
+

Le niveau 2 est en fait assez « abstrait » au sens où vous ne le voyez pas concrètement ; il est totalement géré par des commandes git.

+

Pour faire passer quelque chose du niveau 1 aux niveaux 2 et 3 en même temps (c.-à-d. récupérer quelque chose mis à disposition par d'autres dans le server principal), on fait (toutes ces commandes dont détaillées ci-dessous ; ici on se concentre sur les concepts) :

+
git pull
+
+

Je vous conseille de le faire assez régulièrement et en tout cas systématiquement avant vos commit/push (expliqués ci-dessous).

+

Pour valider quelque chose de local, c.-à-d. passer du niveau 3 au niveau 2 uniquement :

+
    +
  • +

    soit, pour valider une nouvelle version d'un fichier déjà connu :

    +
      git commit -m "MESSAGE" FICHIER
    +
    +

    veuillez à chaque fois mettre un message pertinent ;

    +

    p.ex., pour valider une nouvelle version du fichier core.c :

    +
      git commit -m "correction du bug de calcul" core.c
    +
    +
  • +
  • +

    soit, pour ajouter un nouveau fichier (tout ceci est repris en détails ci-dessous) :

    +
      git add FICHIER
    +  git commit -m "ajout de EXPLICATION"
    +
    +

    p.ex. pour ajouter le nouveau fichier io.c :

    +
      git add io.c
    +  git commit -m "ajout des entrées/sorties"
    +
    +

    Note : pas besoin de remettre le nom du fichier au commit suivant un ou des add ; cela permet en fait d'ajouter plusieurs fichiers d'un coup ; par exemple :

    +
      git add io_core.c
    +  git add io_errors.c
    +  git add io.h
    +  git commit -m "ajout des entrées/sorties"
    +
    +
  • +
+

Pour publier en commun ses validations locales, c.-à-d. faire passer du niveau 2 au niveau 1 :

+
git push
+
+

Nous insistons donc sur le fait que pour publier à tous une modification locale, il faut bien faire DEUX choses :

+
git commit
+
+

puis

+
git push
+
+

Reprennons tout ceci (et plus) en détails.

+

Git garde tous les états successifs (snapshots)

+

Voyons le premier principe de git : archiver le travail effectué.
+Pour cela créez un répertoire et allez-y :

+
mkdir alice
+cd alice
+
+

Ajoutez y un fichier :

+
echo "This is a README file" > README.md
+
+

puis archivez dans git l'état courant de ce répertoire :

+
git add .
+git commit -m "Initial commit: README"
+
+
    +
  • +

    git add vous permet de proposer (sans que ce soit encore confirmé) un changement ;
    +ici nous avons mis tout le répertoire courant avec son nom court : « +. », mais on aurait aussi pu ne mettre qu'un fichier, par exemple :

    +
      git add README.md
    +
    +

    Nous vous DÉCONSEILLONS d'ailleurs de faire des git add . car cela ajoute souvent plein de mauvaises choses : tous les fichiers du répertoire courant, y compris des fichiers temporaires, brouillons, etc.

    +

    Nous vous conseillons par ailleurs de faire un git status AVANT de faire vos git commit pour bien vérifier ce que vous ajoutez.

    +
  • +
  • +

    git commit confirme l'enregistrement (local) des changements proposés ;
    +il est fortement recommandé (si ce n'est obligatoire ;-)) de +commenter ses changements en ajoutant un message au commit; c'est +ce que nous avons fait avec l'option -m.

    +
  • +
+

Si quelque chose est modifié, Git peut vous le dire:

+
echo "A second line for the README" >> README.md
+git status
+
+

On pourrait proposer d'ajouter cette nouvelle modification pour un commit futur:

+
git add README.md
+
+

Cette façon de procéder en deux (puis trois, comme nous verrons tout à +l'heure) étapes peut parraître fastidieuse, mais c'est une bonne +protection contre les bêtises et un bon moyen de faire les choses +petit à petit, une à une.

+

Une fois que vous êtes prêt à enregistrer (localement) vos modification, faites un commit...
+...sans oublier d'ajouter un commentaire pertinent avec -m :

+
git commit -m "Adding a second line to the README file"
+
+

Avec Git, on peut voir tout le états enregistrés (snapshots) et même +se déplacer de l'un à l'autre (mais c'est plus avancé et vous ne +devriez pas en avoir besoin) :

+
git log
+
+

ou:

+
git lg  # si vous avez défini l'alias plus haut...
+
+

Pour se déplacer (en guise ici d'illustration, mais ce n'est pas +nécessaire de comprendre cette partie au niveau de ce cours) :

+
git checkout 5d340  # Mettez un numéro de commit approprié, ancien
+cat README.md
+
+

Voyez que c'est une ancienne version. +Revenons à l'état courant :

+
git checkout master
+cat README.md
+
+

Vous avez maintenant compris la notion d'états archivés par Git (snapshots), et donc la +différence entre le répertoire de travail courant et l'archive.

+

Le deuxième concept qu'il faut bien comprendre c'est les DEUX archives qui existent.
+Git permet en effet de travailler à plusieurs (cf section suivante) et utilise pour cela deux archives différentes :

+
    +
  • une locale, que nous avons utilisée jusque maintenant
  • +
  • une globale, sur le server Git choisi et où toutes les personnes travaillant sur un même projet vont regrouper leurs modifications.
  • +
+

Pour « pousser » vos changements enregistrés localement (avec des commit) vers le server central, il faut faire :

+
git push
+
+

Je vous recommande grandement de faire au préalable un

+
git pull
+
+

avant chacun de vos

+
git push
+
+

Le pull permet de synchroniser dans l'autre sens : aller chercher +les modifications enregistrées dans le server et les appliquer +localement.

+

Plus de détails dans la suite...

+

Git peut gérer différent états « concurrents »

+

Git est avant tout un outil de travail collaboratif que beaucoup de gens utilisent +justement pour travailler « en parallèle ». Il est donc prévu pour faciliter la +gestion de modifications « concurrentes » (ou en tout cas « parallèles » ;-)).

+

Supposons que Alice a un collaborateur, Bob, sur son projet, et qu'il ait fait +des modifications de son coté :

+
echo "Hey, this is a line added by Bob" >> README.md
+git commit -m "Add greeting from Bob" README.md
+
+

pendant, qu'en parallèle, Alice continuait aussi à travailler :

+
sed -i 's/This is a README file/This is a README file with a twist/' README.md
+git commit -am "Add a twist to the first line of the README"
+
+

Où en sommes nous ? Quels sont les états de Git ?

+

A partir du dernier état commun (dernier pull des 2 cotés), il y a en fait +deux commit bien séparés :

+
    +
  • un localement chez Bob (qui ne voit pas encore le nouveau d'Alice) ;
  • +
  • et un localement chez Alice (qui ne voit pas encore le nouveau de Bob).
  • +
+

Jusque là, pas de confusion possible, donc.

+

Alice et Bob peuvent maintenant collaborer en partageant leurs contributions. +Supposons que Bob « pousse » le premier (pas besoin de pull avant ici) :

+
git push
+
+

Quand Bob fait cela, le server central reçoit et enregistre la modification de Bob. Pas de problème ici.
+Un git lg du coté Bob montre que origin/master (celui du server) et master (celui local) sont +maintenant les mêmes.

+

Alice de son coté ne sait pas que le changement de Bob a été propagé au server central. +Quand elle essaye de « pousser » ses modifications vers le server :

+
git push
+
+

elle rencontre un problème : un message lui dit que son push a +échoué et qu'elle doit d'abord fetch(= récupérer) les modifications +enregistrées sur le server central...
+Ce qu'elle fait docilement :

+
git fetch
+
+

Avec un

+
git lg
+
+

de son coté, Alice voit qu'elle a maintenant deux commit: un appelé +origin/master, qui correspond à celui de Bob et un autre appelé +master ou HEAD qui correspond au sien.
+Si Alice veut « pousser » ses modifications vers le server central, elle doit d'abord +fusionner/regrouper (= merge) ces 2 états différents. Si il n'y a pas de conflit (modifications +parrallèles non concurrentes), cela se fait simplement comme suit :

+
git merge
+# Enter a commit message...
+
+

Elle peut vérifier l'état :

+
git lg
+
+

puis « maintenant » pousser ce nouvel état, résultant de la fusion des deux modifications :

+
git push
+
+

A partir de là, Alice et le server central sont synchronisés. Pour que Bob soit +aussi synchronisé, il lui faut aussi faire un

+
git fetch
+
+

ou plus simplement un

+
git pull
+
+

Cette commande (git pull) permet de faire un fetch puis un merge d'un seul coup.

+

Les « tags »

+

Un « tag » (étiquette) est simplement un nom donné à un état mémorisé (snapshot).
+Contrairement aux années précédentes (pour ceux qui auraient connu), nous ne les utiliserons pas spécialement. Mais vous pouvez les utilisez, si vous le souhaiter, pour marquer une version particulière de votre projet, typiquement pour vous souvenir d'une version stable. Mais c'est un détail.

+

Pour donner une étiquette à l'état courant, il suffit simplement de faire :

+
git tag -a NOM_DU_TAG -m "message"
+
+

Par exemple, si vous voulez nommer l'état courrant « version1.1 », vous faites :

+
git tag -a version1.1 -m "Version 1.1 stable"
+
+

La commande

+
git tag
+
+

donne simplement la liste de tous vos « tags ».

+

Pour voir à quoi correspond un « tag » donné : git show NOM_DU_TAG ; par exemple :

+
git show version1.1
+
+

Pour pousser le tag vers GitHub, ajoutez --tags au push:

+
git push --tags
+
+

Pour aller plus loin

+

Si vous souhaitez en apprendre plus sur Git et GitHub, vous pouvez aller voir ce tutoriel (en anglais).

+ +
+
+
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/tutorials/index.html b/tutorials/index.html new file mode 100644 index 0000000..a1b5c01 --- /dev/null +++ b/tutorials/index.html @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Tutorials | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+

Tutorials

+
+ + + +
+
+

Tutoriel Git

+ + +

+ + Semaine 1 -  + Temps estimé: 9 min + +

+ +

+
+ + + + + +
+
+

Make et Makefiles

+ + +

+ + Semaine 1 -  + Temps estimé: 24 min + +

+ +

+
+ + + + + +
+
+

Utilisation du débogueur gdb

+ + +

+ + Semaine 3 -  + Temps estimé: 12 min + +

+ +

+
+ + + + + +
+
+

Débogage dynamique

+ + +

+ + Semaine 3 -  + Temps estimé: 8 min + +

+ +

+
+ + + + + +
+
+

Utilisation de Docker

+ + +

+ + Semaine 1 -  + Temps estimé: 5 min + +

+ +

+
+ + + + + +
+
+

Creation d'une machine virtuelle VMWare

+ + +

+ + Semaine 1 -  + Temps estimé: 2 min + +

+ +

+
+ + + + + +
+
+

Creation d'une machine virtuelle VirtualBox

+ + +

+ + Semaine 1 -  + Temps estimé: 2 min + +

+ +

+
+ + + + +
+
+
+
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/tutorials/make/index.html b/tutorials/make/index.html new file mode 100644 index 0000000..0955c30 --- /dev/null +++ b/tutorials/make/index.html @@ -0,0 +1,913 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Make et Makefiles | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+ + +

Summary in four points

+

Here (as a quick introduction, or later as a reminder) is the bare minimum you need to know (but you are, of course, welcome to read on):

+
    +
  1. +

    a Makefile is just a simple text file (if it's simply called "Makefile" on its own, with no extension), which is automatically called by the make command, and which simply contains a "to-do list" (known as "targets");

    +
  2. +
  3. +

    one line of the Makefile simply describes one target and what is needed to make it (known as "dependencies"), in the format:

    +
     target: list of dependencies
    +
    +

    for example (fictitious):

    +
     cake: flour eggs butter sugar chocolate yeast
    +
    +

    and that's it! Simple as that! Except that for us, targets are executables and dependencies are .o files; for example:

    +
     calculCplx: calculCplx.o complex.o calculator.o
    +
    +
  4. +
  5. +

    compilation dependencies (for the creation of a .o file, then) are simply the corresponding .c file, together with the list of required .h files; e.g.:

    +
     calculator.o: calculator.c calculator.h complex.h
    +
    +

    Note that all these target-dependency lines for compilation can be obtained simply by typing the command:

    +
     gcc -MM *.c
    +
    +
  6. +
  7. +

    Often, by convention, the first target is called "all" and designates all the executables you wish to build with this Makefile.

    +
  8. +
+

To sum up, here's a simple but complete example of a Makefile:

+
all: calculCplx
+
+calculCplx: calculCplx.o complex.o calculator.o
+
+# These lines were copied from the gcc -MM *.c command
+
+complex.o: complex.c complex.h
+
+calculator.o: calculator.c calculator.h complex.h
+
+calculCplx.o: calculCplx.c calcGUI.h
+
+

And that's it! As simple as this!

+

Compiling programs

+

Note: this is a written tutorial. You might prefer the video lectures; choose your favorite learning way (or maybe benefit from both).

+

For the sake of modularization, the source code of a complete program written in C is often distributed over several text files called "source files". Source files are of two kinds: header files and main files (often called "definition files", or even simply "source files", hence some terminological confusion). By convention, header files have the .h extension, while definition files have the .c extension.

+

These are "glued together" by the compiler to create an executable program from the source code.

+

A pair (header file, definition file) corresponding to a given concept is called a "module".

+

What's the purpose of a header file, then?

+

A header file is ther to announce to the other modules the functionality (API) provided by the module it is part of.

+

For example, a matrix.h file will contain the module's API for matrices.

+

In header files, we typically write:

+
    +
  • +

    #pragma once (see below);

    +
  • +
  • +

    directives to include the other header files necessary for this header file only (see below);

    +
  • +
  • +

    (very frequent) declarations of types offered by the module;

    +
  • +
  • +

    (very frequent) declarations of the functions offered by the module (corresponding to the "public" part in an OO design);

    +
  • +
  • +

    (frequent) some "macros" (lines beginning with the #define symbol);

    +
  • +
  • +

    (rare) declarations of (global) variables to be shared with other modules by the current module.

    +
  • +
+

In the definition file (with extension .c), we typically write:

+
    +
  • +

    directives to include the header files necessary for this source file only (see below);

    +
  • +
  • +

    declarations of variables or functions used exclusively in the current module;

    +
  • +
  • +

    definitions of (variables and) shared functions (offered by the header file).

    +
  • +
+

Header files are not compiled directly into machine code, but their content is copied as a whole into all other modules that include them. These other modules (which need them) request a copy of a header file by indicating #include followed by the header file name. For example:

+
#include "matrix.h
+
+

in a source file that requires matrices.

+

This copy is made by the compiler when compiling the module requesting the inclusion.

+

[ Note: the inclusion of "local" files (specific to our application) is written with double quotation marks (e.g. #include "matrice.h"), whereas the inclusion of standard libraries is written with "angle brackets" (e.g. #include <stdio.h>)
+]

+

Compiling a program consists of two main stages:

+
    +
  • +

    the actual compilation stage:

    +
      +
    • syntax is checked;
    • +
    • variables and function calls are checked to ensure that all declarations exist;
    • +
    • the corresponding machine code is created in "object" files (with the extension .o);
    • +
    +
  • +
  • +

    the "linking" stage:

    +
      +
    • check that function calls correspond to their definition;
    • +
    • and that only one definition exists for each function called;
    • +
    • object files are linked together to create the final executable program.
    • +
    +
  • +
+

Let's take a look at two examples.

+

Example 1: a single file (as in your usual exercises)

+

The sum_odd.c file provided in done/ex_single is a (single) source file containing the code to request a positive number n and then calculate the sum of n first odd numbers.

+

The program starts with a #include <stdio.h> directive which requests the inclusion (= copying) of standard definitions (std) for input-output (io), such as printf().

+

Try following the steps illustrated in the image below:

+

Illustration of dependencies

+

These steps are automatically performed (transparently) when you compile an IDE. +But, in order to understand well, let's do them step by step.

+

First, we'll create the object "files" (here, only one) using the following command:

+
gcc -c sum_odd.c -o sum_odd.o
+
+

The -c option tells the compiler not to perform linking, but only compilation (hence the c as "compile").

+

This option is followed by the name of the file from which you want to create the object file, then the name you want for the object file in question (the -o option means "output").

+

Run this command and check that the object file is actually present in the directory. Don't try to read or open it - it's machine code!

+

Next, you need to link the object files. And here, there are already several of them, unbeknownst to you: the one created from our source file and those of the standard libraries used, which are automatically linked by the compiler without our having to name them explicitly.

+

To make these links, we simply use the following command:

+
gcc -o sum_odd sum_odd.o
+
+

Once again, the -o option followed by the name of the desired file (in our example, the file is called odd_sum) is used to create the executable program with that name. Note that you can put this option and its associated file name wherever you like in the command (here we've put them first, whereas in the previous example, compiling, we put them last).

+

Then we need to specify the files to be linked together to create the executable program. In our example, all we need to do is specify our only sum_odd.o (as standard libraries are linked automatically).

+

Check that the executable program has been successfully created and run it from the terminal by typing:

+
./sum_odd
+
+

Example 2: several files

+

A large program is usually broken down into several modules. In addition to bringing clarity to the program organization, this technique (known as "modular design") enables +the reuse of elements (modules) for different programs (for example, one module for matrices, another for "ask for a number", etc.).

+

Let's take a look at how such programs are produced.

+

In the done/ex_multiples directory, you'll find five source files and four header files.

+

Look at the contents of all the files and try to reconstruct the dependencies illustrated below:

+

Illustration of dependencies 2

+

To create such a program, you must first compile all .c files into object files:

+
gcc -c array_filter.c
+gcc -c array_sort.c
+gcc -c array_std.c
+gcc -c swap.c
+gcc -c main.c
+
+

And then produce the executable (called selection_sort in our example):

+
gcc -o selection_sort array_filter.o array_sort.o array_std.o swap.o main.o
+
+

Create the executable as described above (tedious, isn't it? We'll come back to that in the next section), then run it. Its purpose is to sort, using the "selection sort" algorithm, an array of integers, whose size and range of values are given by the user.

+

Protection against multiple inclusions

+

What happens if, by mistake or indirectly, the same module header is included several times? +For example, have you ever tried to include a "#include <stdio.h>" twice in one of your programs?

+

If .h files are not protected against multiple inclusions, the compiler may refuse to compile, for example because of redefinition of a type already defined in the first inclusion.

+

It is therefore necessary to protect your .h files against multiple inclusions by starting them with the line:

+
#pragma once
+
+
+

This must be the very first line of your .h files.

+

Automating compilation with make

+

Introduction

+

In the case of large (modular) programs, compiling and linking can become +tedious (perhaps you've already found it to be the case for just 5 modules...): you have to compile each module ("separate compilation") in its own object file, +then "link" all the object files produced.

+

And since it's highly likely that several modules will themselves make +call upon other modules, a modification to one of the modules may require +to recompile not only the modified module, but also those that depend on it, recursively, and of course the final executable.

+

The make tool enables you to automate the sequence of commands +that are dependent on each other. It can be used for many purposes, but its primary use (and the one we're interested in here) +is the compilation of (executable) programs from +source files. Benefits:

+
    +
  1. +

    you don't have to do it by hand;

    +
  2. +
  3. +

    it recompiles only what is strictly necessary.

    +
  4. +
+

To use make, all you have to do is write a few simple rules describing the project's various dependencies in a simple text file named Makefile (or makefile).

+

Let's see how this tool is presented to us, in its manual:

+
man make
+
+

(Don't read everthing! Just an overview to get an idea what it is about.)

+

Makefile structure

+

A Makefile is essentially made up of rules, which define, for a given target,

+
    +
  • +

    all the dependencies of the target (i.e. the elements on which the target depends),

    +
  • +
  • +

    as well as the set of commands to be performed to update the target (from its dependencies).

    +
  • +
+

It's a bit like a list of recipes:

+
    +
  • +

    "rule" = recipe;

    +
  • +
  • +

    "target" = result (e.g. chocolate cake);

    +
  • +
  • +

    "dependencies" = ingredients (e.g. flour, eggs, chocolate, sugar, butter);

    +
  • +
  • +

    "commands" = instructions for making the recipe.

    +
  • +
+

But we're not cooking here. If we illustrate these concepts with the previous example (program selection_sort), we'd have, for example a rule for linking (program selection_sort), another rule for compiling array_sort.c (into array_sort.o), and so on.

+

For the linking rule, we'd have:

+
    +
  • +

    target: selection_sort;

    +
  • +
  • +

    dependencies: array_filter.o, array_sort.o, array_std.o, swap.o and main.o.

    +

    all these .o files must exist to produce the selection_sort executable;

    +
  • +
  • +

    command: the linking command used above.

    +
  • +
+

For the array_sort.c compilation rule, we would have:

+
    +
  • +

    target: array_sort.o;

    +
  • +
  • +

    dependencies: array_sort.c, swap.h, array_filter.h (see previous figure, which shows the dependencies);

    +
  • +
  • +

    command: gcc -c array_sort.c.

    +
  • +
+

Definition and operation of rules

+

The general syntax of a rule is:

+
target: dependencies
+[tab]command 1
+[tab]command 2
+
+

where:

+
    +
  • +

    target is most often the name of a file that will be generated +by the commands (the executable program, object files, +etc.), but it can also represent a "fileless" target, such as +install or clean;

    +
  • +
  • +

    dependencies are the prerequisites for the target to be achievable, +usually the files on which the target depends (e.g. declaration files +like header files), but they can also be rules (e.g. +name of the target of another rule);

    +

    to specify several dependencies, simply separate them with a space; a rule may also have no dependencies;

    +

    if a dependency occurs several times in the same rule, only the first occurrence is taken into account by make;

    +
  • +
  • +

    the commands are the actions that make must undertake to +update the target; they are one or several shell commands;

    +

    we have one command per line, and group the commands +related to a target below the dependency line;

    +

    a special syntax feature is that each command line must begin with the tabulation character ("TAB" key), and NOT spaces; this is certainly the most archaic and enoying aspect of make!

    +

    It is possible to omit commands for a target; +then either a default rule applies, or nothing at all +(which might be useful simply for forcing dependencies/checks).

    +

    In fact, make has a number of implicit rules (typically for compilation), so we don't have to write too many things, as we'll see below.

    +
  • +
+

Another good news is that you can automatically generate a list of all dependencies using the -MM option in gcc:

+
gcc -MM *.c
+
+

Try it out! You should immediately see the link between the list of all dependencies. It's very handy to put them at the end of your Makefile.

+

Note that the order of the rules is not important, except when determining the default target (i.e. when the user types make on its own, without any arguments: the first rule is then launched; otherwise, simply type make target on the command line).

+

Exercises and examples

+

The simplest example of Makefile is... ...an empty file!

+

Thanks to its implicit rules, make already knows how to +do(=make) lots of things without you having to write anything.

+

Exercise 1

+

(in done/ex_single) Delete the files sum_odd.o and sum_odd and run make like this:

+
make sum_odd
+
+

All done. Great!

+

make "knows" that to make an X file from a X.c source file, you need to call the C compiler.

+

If you wanted to write a Makefile to do this, you could have written (try it!):

+
sum_odd: sum_odd.c
+
+

and that's it!

+

The target here is the sum_odd executable and its dependency, unique here, the sum_odd.c source file.

+

This Makefile does not specify any commands to be executed. It simply uses the default commands known to make.

+

Would we want to make the command more explicit (but why?), a more complete Makefile would have been:

+
sum_odd: sum_odd.c
+	gcc -o sum_odd sum_odd.c
+
+

where the command to switch from the dependency to the target is made explicit (preceded by an TAB character).

+

Exercise 2

+

Let's try to write a completely artificial Makefile:

+
all: dep1 dep2
+    @echo "target 'all' completed."
+
+dep1:
+    @echo "dependency 1 completed."
+
+dep2:
+    @echo "dependency 2 ok..."
+
+dep3:
+    echo "banzai!"
+
+

(You can either add these lines to the Makefile written for sum_odd if you tried the exercise above, or now create a Makefile file with the above lines).

+

If you simply type the command

+
make
+
+

you get:

+
dependency 1 completed.
+dependency 2 ok...
+target 'all' completed.
+
+

In this example, make is called on its own, with no indication of a particular target. +make will thus search the Makefile for the first acceptable target, in this case all.
+(There are particular targets that are not acceptable as default targets, but this is beyond the scope of this +introduction.)

+

The rule for this target specifies two dependencies, dep1 and dep2, which don't exist (they don't correspond to any existing files); make will thus attempt to create them successively.

+

Since dep1 has no dependencies, make immediately proceeds +to executing the commands accompanying the target, i.e. +display a message on the terminal (using the echo command).

+

The same applies to the second dependency (dep2).

+

Once all dependencies have been realized, make returns to the +the initial target, all, the build commands of which gets executed.

+

If we now type the command

+
make dep3
+
+

you get:

+
echo "banzai!"
+banzai!
+
+

In this example, the target dep3 is specified as the goal when +invocating make. This target has no dependencies; +make thus directly executes the build commands for this target +(displaying the string "banzai!").

+

Let's note a slight difference in behavior between our two examples: in the first case, the target is created by executing the commands directly, whereas in the second case, make first displays the command it will execute ("echo "banzai!"").

+

The reason for this behavior lies in the @ character preceding the command in the first case, and absent in the second. +By default, make first displays the commands it will execute before actually calling it. +To suppress this automatic display simply prefix the command with the @ character.

+

Tip: always let make display the commands it is supposed to do +(especially compilations), except for pure display commands, such as echo.

+

Compiling with Makefile

+

That's all interesting, but what use is it "in real life", since we've seen that with the default implicit rules we don't need to write anything?
+Sure! But in more complex projects, the default rules are no longer sufficient.

+

Let's say we've a program to implement a calculator for complex numbers, splited into modules as follows:

+
    +
  • +

    in addition to the standard library, we have a graphics library, LibGraph, with its header file, libgraph.h, and a library file libgraph.so;

    +
  • +
  • +

    modeling of complex numbers and their arithmetic, with its header file complex.h +and its implementation file complexe.c;

    +
  • +
  • +

    calculator modeling (basic functions, memory, parenthesis, etc.), with its header file +calculator.h, which depends on complexe.h, and source file calculator.c (no dependency);

    +
  • +
  • +

    modeling of the calculator's graphical interface, with calcGUI.h, dependent on calculator.h and libgraph.h, and calcGUI.c;

    +
  • +
  • +

    the main program (containing the main() function), provided as calculCplx.c file, which depends on calcGUI.h;

    +
  • +
  • +

    each source code (.c) also depends on its header file (.h).

    +
  • +
+

Here's an illustration:

+

Illustration of previous dependencies

+

To write the corresponding Makefile, all we have to do is to add

+
    +
  • +

    a target for each module, i.e. one target for each object file resulting from compilation of the source file;

    +
  • +
  • +

    and another one to link the whole into an executable program.

    +
  • +
+

The dependencies of each of these targets are all the files it depends on (!). +But we only consider dependencies that can be modified as part of our project. +We can therefore ignore dependencies on the graphics library, for example, just as we ignore dependencies on any other standard library.

+

These dependencies can be automatically generated using the command

+
    gcc -MM *.c
+
+

All we have to do is to copy its result into our Makefile.

+

The build commands are, of course, the compilation instruction; +but we don't need to explicitely write it, as we have seen above: make has default commands which are perfectly fine in this case.

+

The only build command that needs to be specified is the "linking" command, which puts all the object files together to form the final executable. This is because the default linking rule will not make use of the required libgraph library.

+

A possible Makefile could therefore be:

+
 all: calculCplx
+
+ calculCplx: calculCplx.o complex.o calculator.o calcGUI.o
+     gcc -o calculCplx calculCplx.o complexe.o calculatrice.o calcGUI.o -lgraph
+
+ # These lines have been copied from gcc -MM *.c
+ complex.o: complex.c complex.h
+ calculatrice.o: calculatrice.c calculatrice.h complex.h
+ calcGUI.o: calcGUI.c calcGUI.h calculator.h
+ calculCplx.o: calculCplx.c calcGUI.h
+
+

With such a Makefile, our project can be compiled using the make +command alone, as the first target, the all target, here is an alias for the calculCplx target.

+

To build this target, make must first build the targets indicated as dependencies (the set of object files +files).

+

Note that make will only (re)construct a target +if at least one of its dependencies is more recent than the target itself. +It is this mechanism that enables make to compile +only what is strictly necessary. So, if you run the +the make command a second time, after the first compile +compilation, the program will report:

+
make: Nothing to be done for `all'.
+
+

which means there's nothing new to be done! Everything is up to date.

+

Similarly, if you were to modify only the file complex.c file, the make command would only lead to the +recompilation of the latter (creation of the target complexe.o, since it's one of its dependencies), +an the linker command, which in turn updates the target calculCplx (for the same reason as above).

+

If, on the other hand, the complexe.h file is modified, the targets complex.o, calculator.o and calculCplx will be updated.

+

Finally, it should be noted that some libraries, particularly our own, must be specified when linking: this is the case, for example, the graph library. This is done by adding the -lgraph option to the end of the linker command; thus the reason for having to write the build command explicitely.

+

Exercise 3

+

In the done/ex_multiples directory, create a Makefile to compile the selection_sort program described above.

+

Test it.

+

There's a slight subtlety here: there's no selection_sort.c, but the main() function is in main.c. This is simply to make you write a rule once (instead of using the default rule). Obviously, main.c would "normally" be called selection_sort.c. But you're not allowed to rename this file (or make a symbolic link;-)`).

+

Conclusion and next steps

+

That's pretty much about the basics. The rest of this document described more advanced stuff, not strictly necessary for you, but can be useful if you want to go further than the bare minimum.

+

And if you'd prefer a more "classroom" video/presentation on the subject of separate compilation and Makefile, here's a few lecture videos (52 min.).

+

If what has been presented here is enough for you (you've already spent enough time), you can simply continue this week's series where you left it.

+
+

Advanced elements (but so useful!)

+

What has been presented so far is sufficient to enable you +to write a functional Makefile; however, as the previous +example show, writing a functional Makefile may relatively +tedious. The information in this section will enable you to +considerably increase the expressive power of the Makefile instructions, making them +easier to write.

+

Defining and using variables

+

To make writing Makefiles easier (and more concise), you can define and use +variables (actually, they're more like macro-commands, but who cares?)

+

The general syntax for defining a variable in a Makefile is:

+
NAME = value(s)
+
+

(or its more advanced variants +=, :=, ::=, ?=)
+where:

+
    +
  • +

    NAME: the name of the variable you wish to define; this name must not contain the following +characters :, # or =, nor accented letters; the use of characters other than letters, numbers or +numbers or underscores is strongly discouraged;

    +

    variable names are case-sensitive;

    +
  • +
  • +

    value(s): a list of strings, separated by spaces.

    +
  • +
+

Example:

+
RUBS = *.o *~ *.bak
+
+

Note also that for GNU make (also called gmake), the following syntax +can be used to add one or more elements to the list +of values already associated with a variable:

+
NAME += value(s)
+
+

To use a variable (i.e. to substitute it for the list of values +associated with it), simply enclose the variable name in parentheses, preceded by the $ sign:

+
$(NAME)
+
+

Example:

+
-@$(RM) $(RUBS)
+
+

which, with the above definition of RUBS, deletes all *.o, *~ and *.bak files; the RM variable is one of the predefined variables in make (remove the @ to see the command actually executed).

+

Note: These variables can be redefined when calling make; e.g.:

+
make LDLIBS=-lm ma_target
+
+

redefines the LDLIBS variable.

+

Example of using variables

+

Suppose we want to systematically specify a certain number of options to the compiler; e.g. +to enable the use of a debugger (-g), to force a level 2 optimization of the compiled code +(-O2), and to make the compiler stricly comply the C17 standard (-std=c17 -pedantic).

+

Rather than adding each of these options to every compile command (and having to re-modify everything when we want to change those options), it would be wiser to use a variable (for example CFLAGS, which is the default name used by +make) to store the options to be passed on to the compiler. Our Makefile would then become:

+
 CFLAGS = -std=c17 -pedantic
+ CFLAGS += -O2
+ CFLAGS += -g 
+
+ all: calculCplx
+
+ calculCplx: calculCplx.o complexe.o calculatrice.o calcGUI.o
+     gcc -o calculCplx calculCplx.o complexe.o calculatrice.o calcGUI.o -lgraph
+
+ # These lines have been copied from gcc -MM *.c
+ complex.o: complex.c complex.h
+ calculatrice.o: calculatrice.c calculatrice.h complex.h 
+ calcGUI.o: calcGUI.c calcGUI.h calculator.h 
+ calculCplx.o: calculCplx.c calcGUI.h
+
+

Comments

+

It's possible to add comments in a Makefile (line-oriented, i.e. like the the //... of C99 or Java), by marking the beginning of the comment with the # symbol. Note that +comments in command lines are not removed by make before its execution by the Shell. For example:

+
# Here's a comment line
+
+all: dep1 dep2
+    @echo "target 'all' completed."
+
+dep1:
+    @echo "dependency 1 completed."
+
+dep2:
+    @echo "dependency 2 ok..."
+
+dep3: # this target is not built by default
+    echo "banzai!" # comment submitted to Shell
+
+

Examples of execution:

+
$> make
+
+dependency 1 completed.
+dependency 2 ok...
+target 'all' completed.
+
+$> make dep3
+
+echo "banzai!" # comment submitted to Shell
+
+banzai!
+
+

Notice that the # comment submitted to Shell is indeed passed to the Shell, but since # is also the comment-character for the Shell, it is considered as a comment by the Shell.

+

"Automatic" variables

+

make automatically maintains a number of predefined variables, updating them as each rule gets executed, +depending on the target and its dependencies.

+

These variables include:

+
    +
  • +

    $@ name of the target (file) of the current rule;

    +
  • +
  • +

    $< list of dependencies as calculated by default make rules;

    +
  • +
  • +

    $? list of all dependencies (separated by a space) more recent than the current target (dependencies involving target updates);

    +
  • +
  • +

    $^ [GNU Make] list of all dependencies (separated by a space) on the target; if a dependency occurs several times in the same dependency list, it will only be reported once;

    +
  • +
  • +

    $(CC) compiler name (C);

    +
  • +
  • +

    $(CPPFLAGS) precompilation options;

    +
  • +
  • +

    $(CFLAGS) compiler options;

    +
  • +
  • +

    $(LDFLAGS) linker* options;

    +
  • +
  • +

    $(LDLIBS) libraries to be added.

    +
  • +
+

For instance, the calculator's Makefile could be rewritten as follows (modification of the linker command):

+
 CFLAGS = -std=c17 -pedantic
+ CFLAGS += -O2
+ CFLAGS += -g 
+
+ all: calculCplx
+
+ calculCplx: calculCplx.o complex.o calculator.o calcGUI.o
+     gcc -o $@ $^ -lgraph
+
+ complex.o: complex.c complex.h
+ calculator.o: calculator.c calculator.h complex.h 
+ calcGUI.o: calcGUI.c calcGUI.h calculator.h 
+ calculCplx.o: calculCplx.c calcGUI.h
+
+

Implicit rules

+

As mentioned above, make has a number of implicit rules (i.e. rules that the user doesn't need to specify), which enable it to "behave" in the presence of a source file without any further instructions. +For instance, it "knows" how to produce object files from sources in assembly, Fortran, Pascal, +Modula-2, Yacc, Lex, TeX, ..., and of course C and C++.

+

For example:

+
    +
  • +

    the target file.o will be automatically created from the file file.c by means of an (implicit) command of the form:

    +
      $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
    +
    +

    which can also be simplified to

    +
      $(COMPILE.c) -o $@ $<
    +
    +

    Usually, the CC variable is associated to the cc command.

    +
  • +
  • +

    a target file can be automatically created from the file.o object file, or from a set of object files (specified in the list of dependencies) of which file.o is a part, such as x.o file.o z.o, using a command of the form:

    +
      $(CC) $(LDFLAGS) -o $@ $< $(LOADLIBES) $(LDLIBS)
    +
    +
  • +
  • +

    a target file can be automatically created from the file.c source file, and possibly a set of object files (specified in the list of dependencies), such as y.o z.o, using a command of the form:

    +
      $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LOADLIBES) $(LDLIBS)
    +
    +

    which can be simplified to

    +
      $(LINK.c) -o $@ $< $(LOADLIBES) $(LDLIBS)
    +
    +
  • +
+

Therefore, we can transform our previous Makefile to make it even more concise, as follows:

+
 CPPFLAGS = -std=c17 -pedantic
+ CPPFLAGS += -O2
+ CPPFLAGS += -g 
+
+ all: calculCplx
+
+ complex.o: complex.c complex.h
+ calculator.o: calculator.c calculator.h complex.h 
+ calcGUI.o: calcGUI.c calcGUI.h calculator.h 
+ calculCplx.o: calculCplx.c calcGUI.h
+
+ calculCplx: calculCplx.o complex.o calculator.o calcGUI.o
+     $(LINK.cpp) -o $@ $^ -lgraph
+
+

or even:

+
 CFLAGS = -std=c17 -pedantic
+ CFLAGS += -O2
+ CFLAGS += -g 
+ LDLIBS = -lgraph
+
+ all: calculCplx
+
+ complex.o: complex.c complex.h
+ calculator.o: calculator.c calculator.h complex.h 
+ calcGUI.o: calcGUI.c calcGUI.h calculator.h 
+ calculCplx.o: calculCplx.c calcGUI.h
+
+ calculCplx: calculCplx.o complex.o calculator.o calcGUI.o
+
+

where we have now completely removed the command associated with the last target (executable production).

+

Line breaks

+

When an element (variable definition, list of target dependencies, commands, ... and even a comment, although this is not recommended) is too long to reasonably fit on one line, +it is possible to place a line break by telling make to consider the next line as a continuation of the previous one.

+

This is achieved by placing the \ character at the end of the line to be extend:

+
# here's a comment \
+    on two lines
+
+all: dep1 \
+     dep2
+    @echo "target 'all' done"
+
+dep1:
+    @echo "dependency 1 completed"
+
+dep2:
+    @echo "dependency 2 ok..." \
+"indeed!"
+
+

Example of execution:

+
$> make
+
+dependency 1 completed
+dependency 2 ok... indeed!
+
+target 'all' done
+
+

This example shows that clumsy use of this option +can considerably impair the readability of the Makefile.

+
+

To find out more

+

Despite the name of the previous section, we're still a long way off the possibilities of make.

+

For those who would like to know even more, don't hesitate to consult +the following references (all external):

+
    +
  • +

    GNU make website](http://www.gnu.org/software/make/)

    +
  • +
  • +

    The (GNU)make manual, taken from the previous site](http://www.gnu.org/software/make/manual/make.html)

    +
  • +
+

Finally, please note that there are many more modern redesigns of +development project management tools (CMake, SCons, GNU autotools,tools integrated into IDEs: KDevelop, Anjunta, +NetBeans, Code::Blocks, ...), but we feel that a good knowledge of the +make is a real bonus to your programmer CV.

+ +
+
+
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/tutorials/page/1/index.html b/tutorials/page/1/index.html new file mode 100644 index 0000000..a0b7534 --- /dev/null +++ b/tutorials/page/1/index.html @@ -0,0 +1,6 @@ + + + + +Redirect +

Click here to be redirected.

diff --git a/tutorials/vmvb/index.html b/tutorials/vmvb/index.html new file mode 100644 index 0000000..68a28d7 --- /dev/null +++ b/tutorials/vmvb/index.html @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Creation d'une machine virtuelle VirtualBox | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+ + +

Installation de VirtualBox

+

L'installation de VirtualBox sur votre machine est normalement assez facile. Voir leur site Web.

+

A noter que certaines machines à processeur Intel (genre HP, Lenovo, etc.) peuvent nécessiter la modification du paramètre « Intel Virtualization » (ou mot similaire) dans le BIOS. Commencez par l'installation indiquée et si nécessaire (message de VirtualBox) redémarrer pour aller modifier le BIOS.

+

Création d'une machine virtuelle pour le cours

+
    +
  • +

    Téléchargez une image Ubuntu LTS 64 bits depuis leur site de téléchargement.

    +
  • +
  • +

    Démarrez VirtualBox et créez une nouvelle machine:

    +
      +
    • Nom : ce que vous voulez
    • +
    • Type : Linux
    • +
    • Version : Ubuntu (64-bit) (note : s'il n'y a que la version 32-bit de disponible, c'est certainement que l'Intel Virtualizaton est désactivée dans le BIOS)
    • +
    • (mémoire ; au moins 2 Gio, Ubuntu 20.04 suggère même 4 Gio)
    • +
    • Créer un disque virtuel maintenant : +
        +
      • VDI
      • +
      • dynamique
      • +
      • choisissez son emplacement et sa taille
      • +
      +
    • +
    +
  • +
  • +

    Une fois la nouvelle machine créée, avant de la lancer, « chargez » lui l'image ISO Ubuntu précédemment téléchargée :

    +
      +
    • Allez dans Configuration (en ayant sélectionné la machine)
    • +
    • Stockage ; controleur IDE du cdrom
    • +
    • Cliquez sur Live CD à droite
    • +
    • et cliquez sur l'icône de CDROM entre plus à droite pour y indiquer le fichier ISO
    • +
    • OK
    • +
    +
  • +
  • +

    Une fois le « cdrom » ISO « chargez » dans la machine virtuelle (étape précédente), démarrez la et suivez simplement les instructions.

    +
  • +
  • +

    Une fois l'installation terminée, redémarrez la machine vituelle et

    +
      +
    • +

      faite une mise à jour, soit par l'outil de mise à jour (software updater), soit « à la main » dans un terminal :

      +
      sudo apt update
      +sudo apt upgrade -y
      +
      +
    • +
    • +

      installez les « Additions invitées » (« Guest Additions ») ; elles vous permettrons d'avoir une meilleure intégration de votre machine vituelle dans votre machine réelle (redimensionnement d'écran, copié-collé de l'une à l'autre, accès au disque local dans la VM, ...) :

      +
        +
      • menu « Périphériques » de VitualBox (barre en haut)
      • +
      • entrée « Insérer l'image des additions invitées »
      • +
      • lancer l'exécution et suivez la démarche
      • +
      +
    • +
    +
  • +
  • +

    Redémarrez la machine vituelle

    +
  • +
  • +

    Pour finir, installez les outils nécessaires pour le cours :

    +
      sudo apt install build-essential clang check wdiff colordiff git openssh-client manpages manpages-dev doxygen curl
    +  sudo apt install libssl-dev libssl-doc libcurl4-openssl-dev libjson-c-dev
    +
    +
  • +
+

Première compilation

+

Vous pouvez maintenant compiler votre projet sur votre VM, soit en accèdant à un disque local (Périphérique -> Dossiers partagés -> Règlages des dossiers partagés), soit en clonant votre dépôt GitHub.

+ +
+
+
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + + diff --git a/tutorials/vmware/index.html b/tutorials/vmware/index.html new file mode 100644 index 0000000..e758200 --- /dev/null +++ b/tutorials/vmware/index.html @@ -0,0 +1,282 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Creation d'une machine virtuelle VMWare | CS-202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+
+
+
+ + +

Installation de VMWare

+

L'installation de VMWare (Fusion sur OSX, Worksation Player sur Windows ou Linux) est normalement assez facile.

+

Depuis 2021, VMware n'est plus disponible sous license générale pour les étudiants de l'EPFL. L'utilisation de Virtualbox (gratuit) est recommandée.

+

A noter que certaines machines à processeur Intel (genre HP, Lenovo, etc.) peuvent nécessiter la modification du paramètre « Intel Virtualization » (ou mot similaire) dans le BIOS. Commencez par l'installation indiquée et si nécessaire (message de VMWare) redémarrer pour aller modifier le BIOS.

+

Création d'une machine virtuelle pour le cours (version Fusion sur OSX)

+
    +
  • +

    Téléchargez une image Ubuntu LTS depuis leur site de téléchargement.

    +
  • +
  • +

    Démarrez VMWare Fusion ;

    +
  • +
  • +

    File -> New -> Install from disk or image ;

    +
  • +
  • +

    Maintenant vous pouvez choisir l'image ISO Ubuntu précédemment téléchargée sur votre disque ;

    +
  • +
  • +

    Sélectionnez Easy Install, entrez le mot de passe, et cochez la check-box pour partager les fichiers avec votre ordinateur « host » ;

    +
  • +
  • +

    Sélectionnez « Customize Settings » avec les option suivantes :

    +
      +
    • Processors and Memory : au moins 2_Go de mémoire, mais pas plus que la moitié de votre mémoire totale (la machine virtuelle peut utiliser tout les processeurs) ;
    • +
    • Hard Disk : sélectionnez au moins 20 Go ;
    • +
    • Sélectionnez l'endroit sur votre disk pour sauvegarder votre VM
    • +
    +
  • +
  • +

    Après l'instalation (ça peut prendre un peu de temps), vous pouver définir la plus haute résolution de votre écran dans la VM (System settings -> Display).

    +
  • +
  • +

    Assurez vous que le clavier soit correctement configuré (System settings -> Region&Language -> Input Sources)

    +
  • +
  • +

    Faites une mise à jour, soit par l'outil de mise à jour (software updater), soit « à la main » dans un terminal :

    +
      sudo apt update
    +  sudo apt upgrade -y
    +
    +
  • +
  • +

    Assurez vous que les dossier du 'host' soit visible dans le directory '/mnt/hgfs'. Si ce n'est pas le cas, suivre les instructions ici.

    +
  • +
  • +

    Pour finir, installez les outils nécessaires pour le cours :

    +
      apt install build-essential clang check wdiff colordiff git openssh-client manpages manpages-dev doxygen curl
    +  apt install libssl-dev libssl-doc libcurl4-openssl-dev libjson-c-dev
    +
    +
  • +
+

Première compilation

+

Vous pouvez maintenant compiler votre projet sur votre VM, soit en accèdant à un disque local (Périphérique -> Dossiers partagés -> Règlages des dossiers partagés), soit en clonant votre dépôt GitHub.

+ +
+
+
+
+
+ + + + +
+
+
+
+
    + +
  • Made with Zola, by the CS-202 team; last updated on 17/05/2024
  • + +
+
+
+
    + +
+
+
+
+
+ + + + + + + + +