private-schrijfsels-en-noti.../2024/freebsd/Bhyve VM Creation - Persona...

4753 lines
193 KiB
Mason

From: <Saved by Blink>
Snapshot-Content-Location: https://omussell.github.io/bhyve-vm-creation/
Subject: Bhyve VM Creation - Personal Site - https://omussell.github.io/
Date: Thu, 22 Aug 2024 21:19:00 +0200
MIME-Version: 1.0
Content-Type: multipart/related;
type="text/html";
boundary="----MultipartBoundary--53G3hQ1v3PNvbYOTNnD5LUgHHcoBuB9Em94lZhHUft----"
------MultipartBoundary--53G3hQ1v3PNvbYOTNnD5LUgHHcoBuB9Em94lZhHUft----
Content-Type: text/html
Content-ID: <frame-EFDAFD5058F94ACD9A460EB1ACEF4641@mhtml.blink>
Content-Transfer-Encoding: quoted-printable
Content-Location: https://omussell.github.io/bhyve-vm-creation/
<!DOCTYPE html><html lang=3D"en" class=3D"js-focus-visible js" data-js-focu=
s-visible=3D""><head><meta http-equiv=3D"Content-Type" content=3D"text/html=
; charset=3DUTF-8"><link rel=3D"stylesheet" type=3D"text/css" href=3D"cid:c=
ss-9e953e84-a414-4676-aff8-25ca9436f3f7@mhtml.blink" />
=20
=20
<meta name=3D"viewport" content=3D"width=3Ddevice-width,initial-scale=
=3D1">
=20
=20
=20
<link rel=3D"canonical" href=3D"https://omussell.github.io/bhyve-vm=
-creation/">
=20
=20
<link rel=3D"prev" href=3D"https://omussell.github.io/jail-creation=
/">
=20
=20
<link rel=3D"next" href=3D"https://omussell.github.io/nginx-chacha2=
0/">
=20
<link rel=3D"icon" href=3D"https://omussell.github.io/images/mention.=
svg">
<meta name=3D"generator" content=3D"mkdocs-1.4.3, mkdocs-material-9.1=
.15">
=20
=20
=20
<title>Bhyve VM Creation - Personal Site - https://omussell.github.=
io/</title>
=20
=20
=20
<link rel=3D"stylesheet" href=3D"https://omussell.github.io/assets/st=
ylesheets/main.26e3688c.min.css">
=20
=20
<link rel=3D"stylesheet" href=3D"https://omussell.github.io/assets/=
stylesheets/palette.ecc896b0.min.css">
=20
=20
=20
=20
=20
=20
=20
=20
<link rel=3D"preconnect" href=3D"https://fonts.gstatic.com/" crosso=
rigin=3D"">
<link rel=3D"stylesheet" href=3D"https://fonts.googleapis.com/css?f=
amily=3DRoboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&a=
mp;display=3Dfallback">
=20
=20
=20
=20
=20
=20
=20
=20
=20
=20
</head>
=20
=20
=20
=20
=20
=20
=20
<body dir=3D"ltr" data-md-color-scheme=3D"default" data-md-color-primar=
y=3D"blue" data-md-color-accent=3D"indigo">
=20
=20
=20
<input class=3D"md-toggle" data-md-toggle=3D"drawer" type=3D"checkbox" =
id=3D"__drawer" autocomplete=3D"off">
<input class=3D"md-toggle" data-md-toggle=3D"search" type=3D"checkbox" =
id=3D"__search" autocomplete=3D"off">
<label class=3D"md-overlay" for=3D"__drawer"></label>
<div data-md-component=3D"skip">
=20
=20
<a href=3D"https://omussell.github.io/bhyve-vm-creation/#bhyve-vm-c=
reation" class=3D"md-skip">
Skip to content
</a>
=20
</div>
<div data-md-component=3D"announce">
=20
</div>
=20
=20
=20
=20
<header class=3D"md-header md-header--shadow" data-md-component=3D"header">
<nav class=3D"md-header__inner md-grid" aria-label=3D"Header">
<a href=3D"https://omussell.github.io/" title=3D"Personal Site" class=
=3D"md-header__button md-logo" aria-label=3D"Personal Site" data-md-compone=
nt=3D"logo">
=20
=20
<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 16 16"><path d=
=3D"M4.75 2.37a6.501 6.501 0 0 0 6.5 11.26.75.75 0 0 1 .75 1.298A7.999 7.99=
9 0 0 1 .989 4.148 8 8 0 0 1 16 7.75v1.5a2.75 2.75 0 0 1-5.072 1.475 3.999 =
3.999 0 0 1-6.65-4.19A4 4 0 0 1 12 8v1.25a1.25 1.25 0 0 0 2.5 0V7.867a6.5 6=
.5 0 0 0-9.75-5.496ZM10.5 8a2.5 2.5 0 1 0-5 0 2.5 2.5 0 0 0 5 0Z"></path></=
svg>
</a>
<label class=3D"md-header__button md-icon" for=3D"__drawer">
<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path=
d=3D"M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg>
</label>
<div class=3D"md-header__title md-header__title--active" data-md-compon=
ent=3D"header-title">
<div class=3D"md-header__ellipsis">
<div class=3D"md-header__topic">
<span class=3D"md-ellipsis">
Personal Site
</span>
</div>
<div class=3D"md-header__topic" data-md-component=3D"header-topic">
<span class=3D"md-ellipsis">
=20
Bhyve VM Creation
=20
</span>
</div>
</div>
</div>
=20
=20
=20
=20
=20
<label class=3D"md-header__button md-icon" for=3D"__search">
<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><pa=
th d=3D"M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 =
5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.=
5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"><=
/path></svg>
</label>
<div class=3D"md-search" data-md-component=3D"search" role=3D"dialog"=
>
<label class=3D"md-search__overlay" for=3D"__search"></label>
<div class=3D"md-search__inner" role=3D"search">
<form class=3D"md-search__form" name=3D"search">
<input type=3D"text" class=3D"md-search__input" name=3D"query" aria-l=
abel=3D"Search" placeholder=3D"Search" autocapitalize=3D"off" autocorrect=
=3D"off" autocomplete=3D"off" spellcheck=3D"false" data-md-component=3D"sea=
rch-query" required=3D"">
<label class=3D"md-search__icon md-icon" for=3D"__search">
<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><pa=
th d=3D"M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 =
5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.=
5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"><=
/path></svg>
<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><pa=
th d=3D"M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"><=
/path></svg>
</label>
<nav class=3D"md-search__options" aria-label=3D"Search">
=20
<button type=3D"reset" class=3D"md-search__icon md-icon" title=3D"C=
lear" aria-label=3D"Clear" tabindex=3D"-1">
<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><=
path d=3D"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 =
12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
</button>
</nav>
=20
</form>
<div class=3D"md-search__output">
<div class=3D"md-search__scrollwrap">
<div class=3D"md-search-result" data-md-component=3D"search-result"=
>
<div class=3D"md-search-result__meta">Type to start searching</di=
v>
<ol class=3D"md-search-result__list" role=3D"presentation"></ol>
</div>
</div>
</div>
</div>
</div>
=20
=20
</nav>
=20
</header>
=20
<div class=3D"md-container" data-md-component=3D"container">
=20
=20
=20
=20
=20
=20
<main class=3D"md-main" data-md-component=3D"main">
<div class=3D"md-main__inner md-grid">
=20
=20
=20
<div class=3D"md-sidebar md-sidebar--primary" data-md-compone=
nt=3D"sidebar" data-md-type=3D"navigation" style=3D"top: 53px;">
<div class=3D"md-sidebar__scrollwrap" style=3D"height: 935p=
x;">
<div class=3D"md-sidebar__inner">
=20
<nav class=3D"md-nav md-nav--primary" aria-label=3D"Navigation" data-md-lev=
el=3D"0">
<label class=3D"md-nav__title" for=3D"__drawer">
<a href=3D"https://omussell.github.io/" title=3D"Personal Site" class=
=3D"md-nav__button md-logo" aria-label=3D"Personal Site" data-md-component=
=3D"logo">
=20
=20
<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 16 16"><path d=
=3D"M4.75 2.37a6.501 6.501 0 0 0 6.5 11.26.75.75 0 0 1 .75 1.298A7.999 7.99=
9 0 0 1 .989 4.148 8 8 0 0 1 16 7.75v1.5a2.75 2.75 0 0 1-5.072 1.475 3.999 =
3.999 0 0 1-6.65-4.19A4 4 0 0 1 12 8v1.25a1.25 1.25 0 0 0 2.5 0V7.867a6.5 6=
.5 0 0 0-9.75-5.496ZM10.5 8a2.5 2.5 0 1 0-5 0 2.5 2.5 0 0 0 5 0Z"></path></=
svg>
</a>
Personal Site
</label>
=20
<ul class=3D"md-nav__list">
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/" class=3D"md-nav__link">
Home
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/lean/" class=3D"md-nav__link">
Lean
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/python/" class=3D"md-nav__link"=
>
Modern Python
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item md-nav__item--active md-nav__item--nested">
=20
=20
=20
=20
<input class=3D"md-nav__toggle md-toggle " type=3D"checkbox" id=3D"__=
nav_4" checked=3D"">
=20
=20
=20
<label class=3D"md-nav__link" for=3D"__nav_4" id=3D"__nav_4_label" =
tabindex=3D"0">
Old Posts
<span class=3D"md-nav__icon md-icon"></span>
</label>
=20
<nav class=3D"md-nav" data-md-level=3D"1" aria-labelledby=3D"__nav_4_=
label" aria-expanded=3D"true">
<label class=3D"md-nav__title" for=3D"__nav_4">
<span class=3D"md-nav__icon md-icon"></span>
Old Posts
</label>
<ul class=3D"md-nav__list">
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/jail-creation/" class=3D"md-nav=
__link">
FreeBSD Jail Creation
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item md-nav__item--active">
=20
<input class=3D"md-nav__toggle md-toggle" type=3D"checkbox" id=3D"__t=
oc">
=20
=20
=20
=20
=20
<label class=3D"md-nav__link md-nav__link--active" for=3D"__toc">
Bhyve VM Creation
<span class=3D"md-nav__icon md-icon"></span>
</label>
=20
<a href=3D"https://omussell.github.io/bhyve-vm-creation/" class=3D"md=
-nav__link md-nav__link--active">
Bhyve VM Creation
</a>
=20
=20
<nav class=3D"md-nav md-nav--secondary" aria-label=3D"Table of contents">
=20
=20
=20
=20
=20
=20
<label class=3D"md-nav__title" for=3D"__toc">
<span class=3D"md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class=3D"md-nav__list" data-md-component=3D"toc">
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/bhyve-vm-creation/#bhyve-initial-se=
tup" class=3D"md-nav__link md-nav__link--passed">
Bhyve Initial Setup
</a>
=20
</li>
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/bhyve-vm-creation/#new-vm-creation-=
script" class=3D"md-nav__link md-nav__link--passed">
New VM Creation Script
</a>
=20
</li>
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/bhyve-vm-creation/#creating-a-linux=
-guest" class=3D"md-nav__link md-nav__link--passed md-nav__link--active">
Creating a Linux guest
</a>
=20
</li>
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/bhyve-vm-creation/#pfsense-in-a-vm"=
class=3D"md-nav__link">
pfSense in a VM
</a>
=20
</li>
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/bhyve-vm-creation/#multiple-vms-usi=
ng-bhyve" class=3D"md-nav__link">
Multiple VMs using bhyve
</a>
=20
</li>
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/bhyve-vm-creation/#vm-bhyve" class=
=3D"md-nav__link">
vm-bhyve
</a>
=20
</li>
=20
</ul>
=20
</nav>
=20
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/nginx-chacha20/" class=3D"md-na=
v__link">
Compiling NGINX with ChaCha20 support
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/nsd-unbound/" class=3D"md-nav__=
link">
NSD and Unbound config
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/saltstack/" class=3D"md-nav__li=
nk">
Saltstack install and config
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/pgsql-repl/" class=3D"md-nav__l=
ink">
PostgreSQL 10.1 with replication
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/go-bazel/" class=3D"md-nav__lin=
k">
Building Go with Bazel
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/rqlite/" class=3D"md-nav__link"=
>
RQLite
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/signify/" class=3D"md-nav__link=
">
Signify
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/nginx/" class=3D"md-nav__link">
NGINX
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/quick-k8s/" class=3D"md-nav__li=
nk">
Quick Multi-Node Kubernetes Cluster
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/serverless/" class=3D"md-nav__l=
ink">
Serverless
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/fbsd-update-cache/" class=3D"md=
-nav__link">
Caching freebsd-update and pkg files
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/pi-bitwarden/" class=3D"md-nav_=
_link">
Pi Bitwarden
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/gemini/" class=3D"md-nav__link"=
>
Gemini
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/puppet-bolt/" class=3D"md-nav__=
link">
Puppet Bolt
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/microserver/" class=3D"md-nav__=
link">
Microserver NAS
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/lxc/" class=3D"md-nav__link">
LXC/LXD Containers
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/new-prog-lang/" class=3D"md-nav=
__link">
Find a New Programming Language
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/firecracker/" class=3D"md-nav__=
link">
Firecracker
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/puppet-jails-deploy/" class=3D"=
md-nav__link">
Blue/Green deploymetns with Puppet, NGINX and FreeBSD Jails
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/bonded-nic/" class=3D"md-nav__l=
ink">
Bonded NICs on Ubuntu
</a>
</li>
=20
=20
=20
=20
=20
=20
=20
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/basecamp/" class=3D"md-nav__lin=
k">
Basecamp books
</a>
</li>
=20
=20
=20
</ul>
</nav>
</li>
=20
=20
</ul>
</nav>
</div>
</div>
</div>
=20
=20
=20
<div class=3D"md-sidebar md-sidebar--secondary" data-md-compo=
nent=3D"sidebar" data-md-type=3D"toc" style=3D"top: 53px;">
<div class=3D"md-sidebar__scrollwrap" style=3D"height: 935p=
x;">
<div class=3D"md-sidebar__inner">
=20
<nav class=3D"md-nav md-nav--secondary" aria-label=3D"Table of contents">
=20
=20
=20
=20
=20
=20
<label class=3D"md-nav__title" for=3D"__toc">
<span class=3D"md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class=3D"md-nav__list" data-md-component=3D"toc">
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/bhyve-vm-creation/#bhyve-initial-se=
tup" class=3D"md-nav__link md-nav__link--passed">
Bhyve Initial Setup
</a>
=20
</li>
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/bhyve-vm-creation/#new-vm-creation-=
script" class=3D"md-nav__link md-nav__link--passed">
New VM Creation Script
</a>
=20
</li>
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/bhyve-vm-creation/#creating-a-linux=
-guest" class=3D"md-nav__link md-nav__link--passed md-nav__link--active">
Creating a Linux guest
</a>
=20
</li>
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/bhyve-vm-creation/#pfsense-in-a-vm"=
class=3D"md-nav__link">
pfSense in a VM
</a>
=20
</li>
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/bhyve-vm-creation/#multiple-vms-usi=
ng-bhyve" class=3D"md-nav__link">
Multiple VMs using bhyve
</a>
=20
</li>
=20
<li class=3D"md-nav__item">
<a href=3D"https://omussell.github.io/bhyve-vm-creation/#vm-bhyve" class=
=3D"md-nav__link">
vm-bhyve
</a>
=20
</li>
=20
</ul>
=20
</nav>
</div>
</div>
</div>
=20
=20
=20
<div class=3D"md-content" data-md-component=3D"content">
<article class=3D"md-content__inner md-typeset">
=20
=20
<h1 id=3D"bhyve-vm-creation">Bhyve VM Creation<a class=3D"headerlink" href=
=3D"https://omussell.github.io/bhyve-vm-creation/#bhyve-vm-creation" title=
=3D"Permanent link">=C2=B6</a></h1>
<h3 id=3D"bhyve-initial-setup">Bhyve Initial Setup<a class=3D"headerlink" h=
ref=3D"https://omussell.github.io/bhyve-vm-creation/#bhyve-initial-setup" t=
itle=3D"Permanent link">=C2=B6</a></h3>
<p>Enable the tap interface in <code>/etc/sysctl.conf</code> and load it on=
the currently running system</p>
<div class=3D"highlight"><pre><span></span><code>net.link.tap.up_on_open=3D=
1
sysctl -f /etc/sysctl.conf
</code></pre></div>
<p>Enable bhyve, serial console and bridge/tap interface kernel modules in =
<code>/boot/loader.conf</code>. Reboot to apply changes or use kldload.</p>
<div class=3D"highlight"><pre><span></span><code>vmm_load=3D"YES"
nmdm_load=3D"YES"
if_bridge_load=3D"YES"
if_tap_load=3D"YES"
</code></pre></div>
<p>Set up the network interfaces in <code>/etc/rc.conf</code></p>
<div class=3D"highlight"><pre><span></span><code>cloned_interfaces=3D"bridg=
e0 tap0"
ifconfig_bridge0=3D"addm re0 addm tap0"
</code></pre></div>
<p>Create a ZFS volume</p>
<div class=3D"highlight"><pre><span></span><code>zfs create -V16G -o volmod=
e=3Ddev zroot/testvm
</code></pre></div>
<p>Download the installation image</p>
<div class=3D"highlight"><pre><span></span><code tabindex=3D"0">fetch ftp:/=
/ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/11.1/FreeBSD-11.1-RELEASE-=
amd64-disc1.iso=20
</code></pre></div>
<p>Start the VM</p>
<div class=3D"highlight"><pre><span></span><code tabindex=3D"0">sh /usr/sha=
re/examples/bhyve/vmrun.sh -c 1 -m 512M -t tap0 -d /dev/zvol/zroot/testvm -=
i -I FreeBSD-11.1-RELEASE-amd64-disc1.iso testvm
</code></pre></div>
<p>Install as normal, following the menu options</p>
<h3 id=3D"new-vm-creation-script">New VM Creation Script<a class=3D"headerl=
ink" href=3D"https://omussell.github.io/bhyve-vm-creation/#new-vm-creation-=
script" title=3D"Permanent link">=C2=B6</a></h3>
<div class=3D"highlight"><pre><span></span><code tabindex=3D"0">#! /bin/sh
read -p "Enter hostname: " hostname
zfs create -V16G -o volmode=3Ddev zroot/$hostname
sh /usr/share/examples/bhyve/vmrun.sh -c 1 -m 512M -t tap0 -d /dev/zvol/zro=
ot/$hostname -i -I ~/FreeBSD-11.1-RELEASE-amd64-disc1.iso $hostname
</code></pre></div>
<h3 id=3D"creating-a-linux-guest">Creating a Linux guest<a class=3D"headerl=
ink" href=3D"https://omussell.github.io/bhyve-vm-creation/#creating-a-linux=
-guest" title=3D"Permanent link">=C2=B6</a></h3>
<p>Create a file for the hard disk</p>
<div class=3D"highlight"><pre><span></span><code>truncate -s 16G linux.img
</code></pre></div>
<p>Create the file to map the virtual devices for kernel load</p>
<div class=3D"highlight"><pre><span></span><code>~/device.map
(hd0) /root/linux.img
(cd0) /root/linux.iso
</code></pre></div>
<p>Load the kernel</p>
<div class=3D"highlight"><pre><span></span><code>grub-bhyve -m ~/device.map=
-r cd0 -M 1024M linuxguest
</code></pre></div>
<p>Grub should start, choose install as normal</p>
<p>Start the VM</p>
<div class=3D"highlight"><pre><span></span><code tabindex=3D"0">bhyve -A -H=
-P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap0 -s 3:0,virtio-blk,/=
root/linux.img -l com1,/dev/nmdm0A -c 1 -m 512M linuxguest
</code></pre></div>
<p>Access through the serial console</p>
<div class=3D"highlight"><pre><span></span><code>cu -l /dev/nmdm0B
</code></pre></div>
<h3 id=3D"pfsense-in-a-vm">pfSense in a VM<a class=3D"headerlink" href=3D"h=
ttps://omussell.github.io/bhyve-vm-creation/#pfsense-in-a-vm" title=3D"Perm=
anent link">=C2=B6</a></h3>
<p>Download the pfSense disk image from the website using fetch</p>
<div class=3D"highlight"><pre><span></span><code tabindex=3D"0">fetch https=
://frafiles.pfsense.org/mirror/downloads/pfSense-CE-2.3.1-RELEASE-2g-amd64-=
nanobsd.img.gz -o ~/pfSense.img.gz
</code></pre></div>
<p>Create the storage</p>
<div class=3D"highlight"><pre><span></span><code>zfs create -V2G -o volmode=
=3Ddev zroot/pfsense
</code></pre></div>
<p>Unzip the file, and redirect output to the storage via dd</p>
<div class=3D"highlight"><pre><span></span><code>gzip -dc pfSense.img.gz | =
dd of=3D/dev/zvol/zroot/pfsense obs=3D64k
</code></pre></div>
<p>Load the kernel and start the boot process</p>
<div class=3D"highlight"><pre><span></span><code>bhyveload -c /dev/nmdm0A -=
d /dev/zvol/zroot/pfsense -m 256MB pfsense
</code></pre></div>
<p>Start the VM</p>
<div class=3D"highlight"><pre><span></span><code tabindex=3D"0">/usr/sbin/b=
hyve -c 1 -m 256 -A -H -P -s 0:0,hostbridge -s 1:0,virtio-net,tap0 -s 3:0,a=
hci-hd,/dev/zvol/zroot/pfsense -s 4:1,lpc -l com1,/dev/nmdm0A pfsense
</code></pre></div>
<p>Connect to the VM via the serial connection with nmdm</p>
<div class=3D"highlight"><pre><span></span><code>cu -l /dev/nmdm0B
</code></pre></div>
<p>Perform initial configuration through the shell to assign the network in=
terfaces</p>
<p>Once done, use the IP address to access through the web console </p>
<p>When finished, you can shutdown/reboot</p>
<p>To de-allocate the resources, you need to destroy the VM</p>
<div class=3D"highlight"><pre><span></span><code>bhyvectl --destroy --vm=3D=
pfsense
</code></pre></div>
<h3 id=3D"multiple-vms-using-bhyve">Multiple VMs using bhyve<a class=3D"hea=
derlink" href=3D"https://omussell.github.io/bhyve-vm-creation/#multiple-vms=
-using-bhyve" title=3D"Permanent link">=C2=B6</a></h3>
<p>To allow networking on multiple vms, there should be a tap assigned to e=
ach vm, connected to the same bridge. </p>
<div class=3D"highlight"><pre><span></span><code>cloned_interfaces=3D"bridg=
e0 tap0 tap1 tap2"
ifconfig_bridge0=3D"addm re0 addm tap0 addm tap1 addm tap2"
</code></pre></div>
<p>Then when you provision vms, assign one of the tap interfaces to them.</=
p>
<h3 id=3D"vm-bhyve">vm-bhyve<a class=3D"headerlink" href=3D"https://omussel=
l.github.io/bhyve-vm-creation/#vm-bhyve" title=3D"Permanent link">=C2=B6</a=
></h3>
<p>A better way for managing a bhyve hypervisor.</p>
<p>Follow the instructions on the repo.</p>
<p>When adding the switch to a network interface, it doesn't work with re0.=
tap1 works, but then internet doesnt work in the VMs. Needs sorting.</p>
<p>zfs </p>
<p>bsd-cloud-init should be tested, it sets hostname based on openstack ima=
ge name.</p>
<p>otherwise, if we figure out how to make a template VM, you could set the=
hostname as part of transferring over the rc.conf file</p>
<p>create template VM, start it, zfs send/recv?</p>
=20
</article>
</div>
=20
=20
</div>
=20
</main>
=20
<footer class=3D"md-footer">
=20
<div class=3D"md-footer-meta md-typeset">
<div class=3D"md-footer-meta__inner md-grid">
<div class=3D"md-copyright">
=20
=20
Made with
<a href=3D"https://squidfunk.github.io/mkdocs-material/" target=3D"_bla=
nk" rel=3D"noopener">
Material for MkDocs
</a>
=20
</div>
=20
</div>
</div>
</footer>
=20
</div>
<div class=3D"md-dialog" data-md-component=3D"dialog">
<div class=3D"md-dialog__inner md-typeset"></div>
</div>
=20
=20
=20
=20
=20
=20
=20
=20
</body></html>
------MultipartBoundary--53G3hQ1v3PNvbYOTNnD5LUgHHcoBuB9Em94lZhHUft----
Content-Type: text/css
Content-Transfer-Encoding: quoted-printable
Content-Location: cid:css-9e953e84-a414-4676-aff8-25ca9436f3f7@mhtml.blink
@charset "utf-8";
:root { --md-text-font: "Roboto"; --md-code-font: "Roboto Mono"; }
------MultipartBoundary--53G3hQ1v3PNvbYOTNnD5LUgHHcoBuB9Em94lZhHUft----
Content-Type: text/css
Content-Transfer-Encoding: quoted-printable
Content-Location: https://omussell.github.io/assets/stylesheets/main.26e3688c.min.css
@charset "utf-8";
html { text-size-adjust: none; box-sizing: border-box; }
*, ::after, ::before { box-sizing: inherit; }
@media (prefers-reduced-motion) {
*, ::after, ::before { transition: none !important; }
}
body { margin: 0px; }
a, button, input, label { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
hr { border: 0px; box-sizing: initial; display: block; height: 0.05rem; ove=
rflow: visible; padding: 0px; }
small { font-size: 80%; }
sub, sup { line-height: 1em; }
img { border-style: none; }
table { border-collapse: initial; border-spacing: 0px; }
td, th { font-weight: 400; vertical-align: top; }
button { background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; f=
ont-size: inherit; margin: 0px; padding: 0px; }
input { border: 0px; outline: none; }
:root { --md-primary-fg-color: #4051b5; --md-primary-fg-color--light: #5d6c=
c0; --md-primary-fg-color--dark: #303fa1; --md-primary-bg-color: #fff; --md=
-primary-bg-color--light: #ffffffb3; --md-accent-fg-color: #526cfe; --md-ac=
cent-fg-color--transparent: #526cfe1a; --md-accent-bg-color: #fff; --md-acc=
ent-bg-color--light: #ffffffb3; }
[data-md-color-scheme=3D"default"] { color-scheme: light; }
[data-md-color-scheme=3D"default"] img[src$=3D"#gh-dark-mode-only"], [data-=
md-color-scheme=3D"default"] img[src$=3D"#only-dark"] { display: none; }
:root, [data-md-color-scheme=3D"default"] { --md-default-fg-color: #000000d=
e; --md-default-fg-color--light: #0000008a; --md-default-fg-color--lighter:=
#00000052; --md-default-fg-color--lightest: #00000012; --md-default-bg-col=
or: #fff; --md-default-bg-color--light: #ffffffb3; --md-default-bg-color--l=
ighter: #ffffff4d; --md-default-bg-color--lightest: #ffffff1f; --md-code-fg=
-color: #36464e; --md-code-bg-color: #f5f5f5; --md-code-hl-color: #ffff0080=
; --md-code-hl-number-color: #d52a2a; --md-code-hl-special-color: #db1457; =
--md-code-hl-function-color: #a846b9; --md-code-hl-constant-color: #6e59d9;=
--md-code-hl-keyword-color: #3f6ec6; --md-code-hl-string-color: #1c7d4d; -=
-md-code-hl-name-color: var(--md-code-fg-color); --md-code-hl-operator-colo=
r: var(--md-default-fg-color--light); --md-code-hl-punctuation-color: var(-=
-md-default-fg-color--light); --md-code-hl-comment-color: var(--md-default-=
fg-color--light); --md-code-hl-generic-color: var(--md-default-fg-color--li=
ght); --md-code-hl-variable-color: var(--md-default-fg-color--light); --md-=
typeset-color: var(--md-default-fg-color); --md-typeset-a-color: var(--md-p=
rimary-fg-color); --md-typeset-mark-color: #ffff0080; --md-typeset-del-colo=
r: #f5503d26; --md-typeset-ins-color: #0bd57026; --md-typeset-kbd-color: #f=
afafa; --md-typeset-kbd-accent-color: #fff; --md-typeset-kbd-border-color: =
#b8b8b8; --md-typeset-table-color: #0000001f; --md-typeset-table-color--lig=
ht: rgba(0,0,0,.035); --md-admonition-fg-color: var(--md-default-fg-color);=
--md-admonition-bg-color: var(--md-default-bg-color); --md-warning-fg-colo=
r: #000000de; --md-warning-bg-color: #ff9; --md-footer-fg-color: #fff; --md=
-footer-fg-color--light: #ffffffb3; --md-footer-fg-color--lighter: #ffffff7=
3; --md-footer-bg-color: #000000de; --md-footer-bg-color--dark: #00000052; =
--md-shadow-z1: 0 0.2rem 0.5rem #0000000d,0 0 0.05rem #0000001a; --md-shado=
w-z2: 0 0.2rem 0.5rem #0000001a,0 0 0.05rem #00000040; --md-shadow-z3: 0 0.=
2rem 0.5rem #0003,0 0 0.05rem #00000059; }
.md-icon svg { fill: currentcolor; display: block; height: 1.2rem; width: 1=
.2rem; }
body { -webkit-font-smoothing: antialiased; --md-text-font-family: var(--md=
-text-font,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif; =
--md-code-font-family: var(--md-code-font,_),SFMono-Regular,Consolas,Menlo,=
monospace; }
aside, body, input { font-feature-settings: "kern", "liga"; color: var(--md=
-typeset-color); font-family: var(--md-text-font-family); }
code, kbd, pre { font-feature-settings: "kern"; font-family: var(--md-code-=
font-family); }
:root { --md-typeset-table-sort-icon: url('data:image/svg+xml;charset=3Dutf=
-8,<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=
=3D"m18 21-4-4h3V7h-3l4-4 4 4h-3v10h3M2 19v-2h10v2M2 13v-2h7v2M2 7V5h4v2H2Z=
"/></svg>'); --md-typeset-table-sort-icon--asc: url('data:image/svg+xml;cha=
rset=3Dutf-8,<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24=
"><path d=3D"M19 17h3l-4 4-4-4h3V3h2M2 17h10v2H2M6 5v2H2V5m0 6h7v2H2v-2Z"/>=
</svg>'); --md-typeset-table-sort-icon--desc: url('data:image/svg+xml;chars=
et=3Dutf-8,<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24">=
<path d=3D"M19 7h3l-4-4-4 4h3v14h2M2 17h10v2H2M6 5v2H2V5m0 6h7v2H2v-2Z"/></=
svg>'); }
.md-typeset { -webkit-print-color-adjust: exact; font-size: 0.8rem; line-he=
ight: 1.6; }
@media print {
.md-typeset { font-size: 0.68rem; }
}
.md-typeset blockquote, .md-typeset dl, .md-typeset figure, .md-typeset ol,=
.md-typeset pre, .md-typeset ul { margin-bottom: 1em; margin-top: 1em; }
.md-typeset h1 { color: var(--md-default-fg-color--light); font-size: 2em; =
line-height: 1.3; margin: 0px 0px 1.25em; }
.md-typeset h1, .md-typeset h2 { font-weight: 300; letter-spacing: -0.01em;=
}
.md-typeset h2 { font-size: 1.5625em; line-height: 1.4; margin: 1.6em 0px 0=
.64em; }
.md-typeset h3 { font-size: 1.25em; font-weight: 400; letter-spacing: -0.01=
em; line-height: 1.5; margin: 1.6em 0px 0.8em; }
.md-typeset h2 + h3 { margin-top: 0.8em; }
.md-typeset h4 { font-weight: 700; letter-spacing: -0.01em; margin: 1em 0px=
; }
.md-typeset h5, .md-typeset h6 { color: var(--md-default-fg-color--light); =
font-size: 0.8em; font-weight: 700; letter-spacing: -0.01em; margin: 1.25em=
0px; }
.md-typeset h5 { text-transform: uppercase; }
.md-typeset hr { border-bottom: .05rem solid var(--md-default-fg-color--lig=
htest); display: flow-root; margin: 1.5em 0px; }
.md-typeset a { color: var(--md-typeset-a-color); word-break: break-word; }
.md-typeset a, .md-typeset a::before { transition: color 125ms; }
.md-typeset a:focus, .md-typeset a:hover { color: var(--md-accent-fg-color)=
; }
.md-typeset a:focus code, .md-typeset a:hover code { background-color: var(=
--md-accent-fg-color--transparent); }
.md-typeset a code { color: currentcolor; transition: background-color 125m=
s; }
.md-typeset a.focus-visible { outline-color: var(--md-accent-fg-color); out=
line-offset: 0.2rem; }
.md-typeset code, .md-typeset kbd, .md-typeset pre { color: var(--md-code-f=
g-color); direction: ltr; font-variant-ligatures: none; }
@media print {
.md-typeset code, .md-typeset kbd, .md-typeset pre { white-space: pre-wra=
p; }
}
.md-typeset code { background-color: var(--md-code-bg-color); border-radius=
: 0.1rem; -webkit-box-decoration-break: clone; font-size: 0.85em; padding: =
0px 0.294118em; word-break: break-word; }
.md-typeset code:not(.focus-visible) { -webkit-tap-highlight-color: transpa=
rent; outline: none; }
.md-typeset pre { display: flow-root; line-height: 1.4; position: relative;=
}
.md-typeset pre > code { -webkit-box-decoration-break: slice; box-shadow: n=
one; display: block; margin: 0px; outline-color: var(--md-accent-fg-color);=
overflow: auto; padding: 0.772059em 1.17647em; scrollbar-color: var(--md-d=
efault-fg-color--lighter) #0000; scrollbar-width: thin; touch-action: auto;=
word-break: normal; }
.md-typeset pre > code:hover { scrollbar-color: var(--md-accent-fg-color) #=
0000; }
.md-typeset pre > code::-webkit-scrollbar { height: 0.2rem; width: 0.2rem; =
}
.md-typeset pre > code::-webkit-scrollbar-thumb { background-color: var(--m=
d-default-fg-color--lighter); }
.md-typeset pre > code::-webkit-scrollbar-thumb:hover { background-color: v=
ar(--md-accent-fg-color); }
.md-typeset kbd { background-color: var(--md-typeset-kbd-color); border-rad=
ius: 0.1rem; box-shadow: 0 .1rem 0 .05rem var(--md-typeset-kbd-border-color=
),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-type=
set-kbd-accent-color) inset; color: var(--md-default-fg-color); display: in=
line-block; font-size: 0.75em; padding: 0px 0.666667em; vertical-align: tex=
t-top; word-break: break-word; }
.md-typeset mark { background-color: var(--md-typeset-mark-color); -webkit-=
box-decoration-break: clone; color: inherit; word-break: break-word; }
.md-typeset abbr { border-bottom: .05rem dotted var(--md-default-fg-color--=
light); cursor: help; text-decoration: none; }
@media (hover: none) {
.md-typeset abbr[title]:focus::after, .md-typeset abbr[title]:hover::afte=
r { background-color: var(--md-default-fg-color); border-radius: 0.1rem; bo=
x-shadow: var(--md-shadow-z3); color: var(--md-default-bg-color); content: =
attr(title); font-size: 0.7rem; left: 0.8rem; margin-top: 2em; padding: 0.2=
rem 0.3rem; position: absolute; right: 0.8rem; }
}
.md-typeset small { opacity: 0.75; }
[dir=3D"ltr"] .md-typeset sub, [dir=3D"ltr"] .md-typeset sup { margin-left:=
0.078125em; }
[dir=3D"rtl"] .md-typeset sub, [dir=3D"rtl"] .md-typeset sup { margin-right=
: 0.078125em; }
[dir=3D"ltr"] .md-typeset blockquote { padding-left: 0.6rem; }
[dir=3D"rtl"] .md-typeset blockquote { padding-right: 0.6rem; }
[dir=3D"ltr"] .md-typeset blockquote { border-left: .2rem solid var(--md-de=
fault-fg-color--lighter); }
[dir=3D"rtl"] .md-typeset blockquote { border-right: .2rem solid var(--md-d=
efault-fg-color--lighter); }
.md-typeset blockquote { color: var(--md-default-fg-color--light); margin-l=
eft: 0px; margin-right: 0px; }
.md-typeset ul { list-style-type: disc; }
[dir=3D"ltr"] .md-typeset ol, [dir=3D"ltr"] .md-typeset ul { margin-left: 0=
.625em; }
[dir=3D"rtl"] .md-typeset ol, [dir=3D"rtl"] .md-typeset ul { margin-right: =
0.625em; }
.md-typeset ol, .md-typeset ul { padding: 0px; }
.md-typeset ol:not([hidden]), .md-typeset ul:not([hidden]) { display: flow-=
root; }
.md-typeset ol ol, .md-typeset ul ol { list-style-type: lower-alpha; }
.md-typeset ol ol ol, .md-typeset ul ol ol { list-style-type: lower-roman; =
}
[dir=3D"ltr"] .md-typeset ol li, [dir=3D"ltr"] .md-typeset ul li { margin-l=
eft: 1.25em; }
[dir=3D"rtl"] .md-typeset ol li, [dir=3D"rtl"] .md-typeset ul li { margin-r=
ight: 1.25em; }
.md-typeset ol li, .md-typeset ul li { margin-bottom: 0.5em; }
.md-typeset ol li blockquote, .md-typeset ol li p, .md-typeset ul li blockq=
uote, .md-typeset ul li p { margin: 0.5em 0px; }
.md-typeset ol li:last-child, .md-typeset ul li:last-child { margin-bottom:=
0px; }
[dir=3D"ltr"] .md-typeset ol li ol, [dir=3D"ltr"] .md-typeset ol li ul, [di=
r=3D"ltr"] .md-typeset ul li ol, [dir=3D"ltr"] .md-typeset ul li ul { margi=
n-left: 0.625em; }
[dir=3D"rtl"] .md-typeset ol li ol, [dir=3D"rtl"] .md-typeset ol li ul, [di=
r=3D"rtl"] .md-typeset ul li ol, [dir=3D"rtl"] .md-typeset ul li ul { margi=
n-right: 0.625em; }
.md-typeset ol li ol, .md-typeset ol li ul, .md-typeset ul li ol, .md-types=
et ul li ul { margin-bottom: 0.5em; margin-top: 0.5em; }
[dir=3D"ltr"] .md-typeset dd { margin-left: 1.875em; }
[dir=3D"rtl"] .md-typeset dd { margin-right: 1.875em; }
.md-typeset dd { margin-bottom: 1.5em; margin-top: 1em; }
.md-typeset img, .md-typeset svg, .md-typeset video { height: auto; max-wid=
th: 100%; }
.md-typeset img[align=3D"left"] { margin: 1em 1em 1em 0px; }
.md-typeset img[align=3D"right"] { margin: 1em 0px 1em 1em; }
.md-typeset img[align]:only-child { margin-top: 0px; }
.md-typeset figure { display: flow-root; margin: 1em auto; max-width: 100%;=
text-align: center; width: fit-content; }
.md-typeset figure img { display: block; }
.md-typeset figcaption { font-style: italic; margin: 1em auto; max-width: 2=
4rem; }
.md-typeset iframe { max-width: 100%; }
.md-typeset table:not([class]) { background-color: var(--md-default-bg-colo=
r); border: .05rem solid var(--md-typeset-table-color); border-radius: 0.1r=
em; display: inline-block; font-size: 0.64rem; max-width: 100%; overflow: a=
uto; touch-action: auto; }
@media print {
.md-typeset table:not([class]) { display: table; }
}
.md-typeset table:not([class]) + * { margin-top: 1.5em; }
.md-typeset table:not([class]) td > :first-child, .md-typeset table:not([cl=
ass]) th > :first-child { margin-top: 0px; }
.md-typeset table:not([class]) td > :last-child, .md-typeset table:not([cla=
ss]) th > :last-child { margin-bottom: 0px; }
.md-typeset table:not([class]) td:not([align]), .md-typeset table:not([clas=
s]) th:not([align]) { text-align: left; }
[dir=3D"rtl"] .md-typeset table:not([class]) td:not([align]), [dir=3D"rtl"]=
.md-typeset table:not([class]) th:not([align]) { text-align: right; }
.md-typeset table:not([class]) th { font-weight: 700; min-width: 5rem; padd=
ing: 0.9375em 1.25em; vertical-align: top; }
.md-typeset table:not([class]) td { border-top: .05rem solid var(--md-types=
et-table-color); padding: 0.9375em 1.25em; vertical-align: top; }
.md-typeset table:not([class]) tbody tr { transition: background-color 125m=
s; }
.md-typeset table:not([class]) tbody tr:hover { background-color: var(--md-=
typeset-table-color--light); box-shadow: 0 .05rem 0 var(--md-default-bg-col=
or) inset; }
.md-typeset table:not([class]) a { word-break: normal; }
.md-typeset table th[role=3D"columnheader"] { cursor: pointer; }
[dir=3D"ltr"] .md-typeset table th[role=3D"columnheader"]::after { margin-l=
eft: 0.5em; }
[dir=3D"rtl"] .md-typeset table th[role=3D"columnheader"]::after { margin-r=
ight: 0.5em; }
.md-typeset table th[role=3D"columnheader"]::after { content: ""; display: =
inline-block; height: 1.2em; mask-image: var(--md-typeset-table-sort-icon);=
mask-repeat: no-repeat; mask-size: contain; transition: background-color 1=
25ms; vertical-align: text-bottom; width: 1.2em; }
.md-typeset table th[role=3D"columnheader"]:hover::after { background-color=
: var(--md-default-fg-color--lighter); }
.md-typeset table th[role=3D"columnheader"][aria-sort=3D"ascending"]::after=
{ background-color: var(--md-default-fg-color--light); mask-image: var(--m=
d-typeset-table-sort-icon--asc); }
.md-typeset table th[role=3D"columnheader"][aria-sort=3D"descending"]::afte=
r { background-color: var(--md-default-fg-color--light); mask-image: var(--=
md-typeset-table-sort-icon--desc); }
.md-typeset__scrollwrap { margin: 1em -0.8rem; overflow-x: auto; touch-acti=
on: auto; }
.md-typeset__table { display: inline-block; margin-bottom: 0.5em; padding: =
0px 0.8rem; }
@media print {
.md-typeset__table { display: block; }
}
html .md-typeset__table table { display: table; margin: 0px; overflow: hidd=
en; width: 100%; }
@media screen and (max-width: 44.9375em) {
.md-content__inner > pre { margin: 1em -0.8rem; }
.md-content__inner > pre code { border-radius: 0px; }
}
.md-banner { background-color: var(--md-footer-bg-color); color: var(--md-f=
ooter-fg-color); overflow: auto; }
@media print {
.md-banner { display: none; }
}
.md-banner--warning { background-color: var(--md-warning-bg-color); color: =
var(--md-warning-fg-color); }
.md-banner__inner { font-size: 0.7rem; margin: 0.6rem auto; padding: 0px 0.=
8rem; }
[dir=3D"ltr"] .md-banner__button { float: right; }
[dir=3D"rtl"] .md-banner__button { float: left; }
.md-banner__button { color: inherit; cursor: pointer; transition: opacity 0=
.25s; }
.md-banner__button:hover { opacity: 0.7; }
html { font-size: 125%; height: 100%; overflow-x: hidden; }
@media screen and (min-width: 100em) {
html { font-size: 137.5%; }
}
@media screen and (min-width: 125em) {
html { font-size: 150%; }
}
body { background-color: var(--md-default-bg-color); display: flex; flex-di=
rection: column; font-size: 0.5rem; min-height: 100%; position: relative; w=
idth: 100%; }
@media print {
body { display: block; }
}
@media screen and (max-width: 59.9375em) {
body[data-md-scrolllock] { position: fixed; }
}
.md-grid { margin-left: auto; margin-right: auto; max-width: 61rem; }
.md-container { display: flex; flex-direction: column; flex-grow: 1; }
@media print {
.md-container { display: block; }
}
.md-main { flex-grow: 1; }
.md-main__inner { display: flex; height: 100%; margin-top: 1.5rem; }
.md-ellipsis { overflow: hidden; text-overflow: ellipsis; }
.md-toggle { display: none; }
.md-option { height: 0px; opacity: 0; position: absolute; width: 0px; }
.md-option:checked + label:not([hidden]) { display: block; }
.md-option.focus-visible + label { outline-color: var(--md-accent-fg-color)=
; outline-style: auto; }
.md-skip { background-color: var(--md-default-fg-color); border-radius: 0.1=
rem; color: var(--md-default-bg-color); font-size: 0.64rem; margin: 0.5rem;=
opacity: 0; outline-color: var(--md-accent-fg-color); padding: 0.3rem 0.5r=
em; position: fixed; transform: translateY(0.4rem); z-index: -1; }
.md-skip:focus { opacity: 1; transform: translateY(0px); transition: transf=
orm 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 175ms 75ms; z-index: 10; }
@page { margin: 25mm; }
:root { --md-clipboard-icon: url('data:image/svg+xml;charset=3Dutf-8,<svg x=
mlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=3D"M19 21=
H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2=
-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"/></svg>'); }
.md-clipboard { border-radius: 0.1rem; color: var(--md-default-fg-color--li=
ghtest); cursor: pointer; height: 1.5em; outline-color: var(--md-accent-fg-=
color); outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5e=
m; transition: color 0.25s; width: 1.5em; z-index: 1; }
@media print {
.md-clipboard { display: none; }
}
.md-clipboard:not(.focus-visible) { -webkit-tap-highlight-color: transparen=
t; outline: none; }
:hover > .md-clipboard { color: var(--md-default-fg-color--light); }
.md-clipboard:focus, .md-clipboard:hover { color: var(--md-accent-fg-color)=
; }
.md-clipboard::after { background-color: currentcolor; content: ""; display=
: block; height: 1.125em; margin: 0px auto; mask-image: var(--md-clipboard-=
icon); mask-position: center center; mask-repeat: no-repeat; mask-size: con=
tain; width: 1.125em; }
.md-clipboard--inline { cursor: pointer; }
.md-clipboard--inline code { transition: color 0.25s, background-color 0.25=
s; }
.md-clipboard--inline:focus code, .md-clipboard--inline:hover code { backgr=
ound-color: var(--md-accent-fg-color--transparent); color: var(--md-accent-=
fg-color); }
@keyframes consent {=20
0% { opacity: 0; transform: translateY(100%); }
100% { opacity: 1; transform: translateY(0px); }
}
@keyframes overlay {=20
0% { opacity: 0; }
100% { opacity: 1; }
}
.md-consent__overlay { animation: 0.25s ease 0s 1 normal both running overl=
ay; backdrop-filter: blur(0.1rem); background-color: rgba(0, 0, 0, 0.54); h=
eight: 100%; opacity: 1; position: fixed; top: 0px; width: 100%; z-index: 5=
; }
.md-consent__inner { animation: 0.5s cubic-bezier(0.1, 0.7, 0.1, 1) 0s 1 no=
rmal both running consent; background-color: var(--md-default-bg-color); bo=
rder: 0px; border-radius: 0.1rem; bottom: 0px; box-shadow: rgba(0, 0, 0, 0.=
1) 0px 0px 0.2rem, rgba(0, 0, 0, 0.2) 0px 0.2rem 0.4rem; max-height: 100%; =
overflow: auto; padding: 0px; position: fixed; width: 100%; z-index: 5; }
.md-consent__form { padding: 0.8rem; }
.md-consent__settings { display: none; margin: 1em 0px; }
input:checked + .md-consent__settings { display: block; }
.md-consent__controls { margin-bottom: 0.8rem; }
.md-typeset .md-consent__controls .md-button { display: inline; }
@media screen and (max-width: 44.9375em) {
.md-typeset .md-consent__controls .md-button { display: block; margin-top=
: 0.4rem; text-align: center; width: 100%; }
}
.md-consent label { cursor: pointer; }
.md-content { flex-grow: 1; min-width: 0px; }
.md-content__inner { margin: 0px 0.8rem 1.2rem; padding-top: 0.6rem; }
@media screen and (min-width: 76.25em) {
[dir=3D"ltr"] .md-sidebar--primary:not([hidden]) ~ .md-content > .md-cont=
ent__inner { margin-left: 1.2rem; }
[dir=3D"ltr"] .md-sidebar--secondary:not([hidden]) ~ .md-content > .md-co=
ntent__inner, [dir=3D"rtl"] .md-sidebar--primary:not([hidden]) ~ .md-conten=
t > .md-content__inner { margin-right: 1.2rem; }
[dir=3D"rtl"] .md-sidebar--secondary:not([hidden]) ~ .md-content > .md-co=
ntent__inner { margin-left: 1.2rem; }
}
.md-content__inner::before { content: ""; display: block; height: 0.4rem; }
.md-content__inner > :last-child { margin-bottom: 0px; }
[dir=3D"ltr"] .md-content__button { float: right; }
[dir=3D"rtl"] .md-content__button { float: left; }
[dir=3D"ltr"] .md-content__button { margin-left: 0.4rem; }
[dir=3D"rtl"] .md-content__button { margin-right: 0.4rem; }
.md-content__button { margin: 0.4rem 0px; padding: 0px; }
@media print {
.md-content__button { display: none; }
}
.md-typeset .md-content__button { color: var(--md-default-fg-color--lighter=
); }
.md-content__button svg { display: inline; vertical-align: top; }
[dir=3D"rtl"] .md-content__button svg { transform: scaleX(-1); }
[dir=3D"ltr"] .md-dialog { right: 0.8rem; }
[dir=3D"rtl"] .md-dialog { left: 0.8rem; }
.md-dialog { background-color: var(--md-default-fg-color); border-radius: 0=
.1rem; bottom: 0.8rem; box-shadow: var(--md-shadow-z3); min-width: 11.1rem;=
opacity: 0; padding: 0.4rem 0.6rem; pointer-events: none; position: fixed;=
transform: translateY(100%); transition: transform 0.4s, opacity 0.4s; z-i=
ndex: 4; }
@media print {
.md-dialog { display: none; }
}
.md-dialog--active { opacity: 1; pointer-events: auto; transform: translate=
Y(0px); transition: transform 0.4s cubic-bezier(0.075, 0.85, 0.175, 1), opa=
city 0.4s; }
.md-dialog__inner { color: var(--md-default-bg-color); font-size: 0.7rem; }
.md-feedback { margin: 2em 0px 1em; text-align: center; }
.md-feedback fieldset { border: none; margin: 0px; padding: 0px; }
.md-feedback__title { font-weight: 700; margin: 1em auto; }
.md-feedback__inner { position: relative; }
.md-feedback__list { place-content: baseline center; display: flex; flex-wr=
ap: wrap; position: relative; }
.md-feedback__list:hover .md-icon:not(:disabled) { color: var(--md-default-=
fg-color--lighter); }
:disabled .md-feedback__list { min-height: 1.8rem; }
.md-feedback__icon { color: var(--md-default-fg-color--light); cursor: poin=
ter; flex-shrink: 0; margin: 0px 0.1rem; transition: color 125ms; }
.md-feedback__icon:not(:disabled).md-icon:hover { color: var(--md-accent-fg=
-color); }
.md-feedback__icon:disabled { color: var(--md-default-fg-color--lightest); =
pointer-events: none; }
.md-feedback__note { opacity: 0; position: relative; transform: translateY(=
0.4rem); transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity=
0.15s; }
.md-feedback__note > * { margin: 0px auto; max-width: 16rem; }
:disabled .md-feedback__note { opacity: 1; transform: translateY(0px); }
.md-footer { background-color: var(--md-footer-bg-color); color: var(--md-f=
ooter-fg-color); }
@media print {
.md-footer { display: none; }
}
.md-footer__inner { justify-content: space-between; overflow: auto; padding=
: 0.2rem; }
.md-footer__inner:not([hidden]) { display: flex; }
.md-footer__link { align-items: end; display: flex; flex-grow: 0.01; margin=
-bottom: 0.4rem; margin-top: 1rem; max-width: 100%; outline-color: var(--md=
-accent-fg-color); overflow: hidden; transition: opacity 0.25s; }
.md-footer__link:focus, .md-footer__link:hover { opacity: 0.7; }
[dir=3D"rtl"] .md-footer__link svg { transform: scaleX(-1); }
@media screen and (max-width: 44.9375em) {
.md-footer__link--prev { flex-shrink: 0; }
.md-footer__link--prev .md-footer__title { display: none; }
}
[dir=3D"ltr"] .md-footer__link--next { margin-left: auto; }
[dir=3D"rtl"] .md-footer__link--next { margin-right: auto; }
.md-footer__link--next { text-align: right; }
[dir=3D"rtl"] .md-footer__link--next { text-align: left; }
.md-footer__title { flex-grow: 1; font-size: 0.9rem; margin-bottom: 0.7rem;=
max-width: calc(100% - 2.4rem); padding: 0px 1rem; white-space: nowrap; }
.md-footer__button { margin: 0.2rem; padding: 0.4rem; }
.md-footer__direction { font-size: 0.64rem; opacity: 0.7; }
.md-footer-meta { background-color: var(--md-footer-bg-color--dark); }
.md-footer-meta__inner { display: flex; flex-wrap: wrap; justify-content: s=
pace-between; padding: 0.2rem; }
html .md-footer-meta.md-typeset a { color: var(--md-footer-fg-color--light)=
; }
html .md-footer-meta.md-typeset a:focus, html .md-footer-meta.md-typeset a:=
hover { color: var(--md-footer-fg-color); }
.md-copyright { color: var(--md-footer-fg-color--lighter); font-size: 0.64r=
em; margin: auto 0.6rem; padding: 0.4rem 0px; width: 100%; }
@media screen and (min-width: 45em) {
.md-copyright { width: auto; }
}
.md-copyright__highlight { color: var(--md-footer-fg-color--light); }
.md-social { margin: 0px 0.4rem; padding: 0.2rem 0px 0.6rem; }
@media screen and (min-width: 45em) {
.md-social { padding: 0.6rem 0px; }
}
.md-social__link { display: inline-block; height: 1.6rem; text-align: cente=
r; width: 1.6rem; }
.md-social__link::before { line-height: 1.9; }
.md-social__link svg { fill: currentcolor; max-height: 0.8rem; vertical-ali=
gn: -25%; }
.md-typeset .md-button { border: 0.1rem solid; border-radius: 0.1rem; color=
: var(--md-primary-fg-color); cursor: pointer; display: inline-block; font-=
weight: 700; padding: 0.625em 2em; transition: color 125ms, background-colo=
r 125ms, border-color 125ms; }
.md-typeset .md-button--primary { background-color: var(--md-primary-fg-col=
or); border-color: var(--md-primary-fg-color); color: var(--md-primary-bg-c=
olor); }
.md-typeset .md-button:focus, .md-typeset .md-button:hover { background-col=
or: var(--md-accent-fg-color); border-color: var(--md-accent-fg-color); col=
or: var(--md-accent-bg-color); }
[dir=3D"ltr"] .md-typeset .md-input { border-top-left-radius: 0.1rem; }
[dir=3D"ltr"] .md-typeset .md-input, [dir=3D"rtl"] .md-typeset .md-input { =
border-top-right-radius: 0.1rem; }
[dir=3D"rtl"] .md-typeset .md-input { border-top-left-radius: 0.1rem; }
.md-typeset .md-input { border-bottom: .1rem solid var(--md-default-fg-colo=
r--lighter); box-shadow: var(--md-shadow-z1); font-size: 0.8rem; height: 1.=
8rem; padding: 0px 0.6rem; transition: border 0.25s, box-shadow 0.25s; }
.md-typeset .md-input:focus, .md-typeset .md-input:hover { border-bottom-co=
lor: var(--md-accent-fg-color); box-shadow: var(--md-shadow-z2); }
.md-typeset .md-input--stretch { width: 100%; }
.md-header { background-color: var(--md-primary-fg-color); box-shadow: rgba=
(0, 0, 0, 0) 0px 0px 0.2rem, rgba(0, 0, 0, 0) 0px 0.2rem 0.4rem; color: var=
(--md-primary-bg-color); display: block; left: 0px; position: sticky; right=
: 0px; top: 0px; z-index: 4; }
@media print {
.md-header { display: none; }
}
.md-header[hidden] { transform: translateY(-100%); transition: transform 0.=
25s cubic-bezier(0.8, 0, 0.6, 1), box-shadow 0.25s; }
.md-header--shadow { box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 0.2rem, rgba(0,=
0, 0, 0.2) 0px 0.2rem 0.4rem; transition: transform 0.25s cubic-bezier(0.1=
, 0.7, 0.1, 1), box-shadow 0.25s; }
.md-header__inner { align-items: center; display: flex; padding: 0px 0.2rem=
; }
.md-header__button { color: currentcolor; cursor: pointer; margin: 0.2rem; =
outline-color: var(--md-accent-fg-color); padding: 0.4rem; position: relati=
ve; transition: opacity 0.25s; vertical-align: middle; z-index: 1; }
.md-header__button:hover { opacity: 0.7; }
.md-header__button:not([hidden]) { display: inline-block; }
.md-header__button:not(.focus-visible) { -webkit-tap-highlight-color: trans=
parent; outline: none; }
.md-header__button.md-logo { margin: 0.2rem; padding: 0.4rem; }
@media screen and (max-width: 76.1875em) {
.md-header__button.md-logo { display: none; }
}
.md-header__button.md-logo img, .md-header__button.md-logo svg { fill: curr=
entcolor; display: block; height: 1.2rem; width: auto; }
@media screen and (min-width: 60em) {
.md-header__button[for=3D"__search"] { display: none; }
}
.no-js .md-header__button[for=3D"__search"] { display: none; }
[dir=3D"rtl"] .md-header__button[for=3D"__search"] svg { transform: scaleX(=
-1); }
@media screen and (min-width: 76.25em) {
.md-header__button[for=3D"__drawer"] { display: none; }
}
.md-header__topic { display: flex; max-width: 100%; position: absolute; tra=
nsition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s; whit=
e-space: nowrap; }
.md-header__topic + .md-header__topic { opacity: 0; pointer-events: none; t=
ransform: translateX(1.25rem); transition: transform 0.4s cubic-bezier(1, 0=
.7, 0.1, 0.1), opacity 0.15s; z-index: -1; }
[dir=3D"rtl"] .md-header__topic + .md-header__topic { transform: translateX=
(-1.25rem); }
.md-header__topic:first-child { font-weight: 700; }
[dir=3D"ltr"] .md-header__title { margin-left: 1rem; }
[dir=3D"rtl"] .md-header__title { margin-right: 1rem; }
[dir=3D"ltr"] .md-header__title { margin-right: 0.4rem; }
[dir=3D"rtl"] .md-header__title { margin-left: 0.4rem; }
.md-header__title { flex-grow: 1; font-size: 0.9rem; height: 2.4rem; line-h=
eight: 2.4rem; }
.md-header__title--active .md-header__topic { opacity: 0; pointer-events: n=
one; transform: translateX(-1.25rem); transition: transform 0.4s cubic-bezi=
er(1, 0.7, 0.1, 0.1), opacity 0.15s; z-index: -1; }
[dir=3D"rtl"] .md-header__title--active .md-header__topic { transform: tran=
slateX(1.25rem); }
.md-header__title--active .md-header__topic + .md-header__topic { opacity: =
1; pointer-events: auto; transform: translateX(0px); transition: transform =
0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s; z-index: 0; }
.md-header__title > .md-header__ellipsis { height: 100%; position: relative=
; width: 100%; }
.md-header__option { display: flex; flex-shrink: 0; max-width: 100%; transi=
tion: max-width 0.25s, opacity 0.25s 0.25s; white-space: nowrap; }
[data-md-toggle=3D"search"]:checked ~ .md-header .md-header__option { max-w=
idth: 0px; opacity: 0; transition: max-width, opacity; }
.md-header__source { display: none; }
@media screen and (min-width: 60em) {
[dir=3D"ltr"] .md-header__source { margin-left: 1rem; }
[dir=3D"rtl"] .md-header__source { margin-right: 1rem; }
.md-header__source { display: block; max-width: 11.7rem; width: 11.7rem; =
}
}
@media screen and (min-width: 76.25em) {
[dir=3D"ltr"] .md-header__source { margin-left: 1.4rem; }
[dir=3D"rtl"] .md-header__source { margin-right: 1.4rem; }
}
:root { --md-nav-icon--prev: url('data:image/svg+xml;charset=3Dutf-8,<svg x=
mlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=3D"M20 11=
v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>'); --md=
-nav-icon--next: url('data:image/svg+xml;charset=3Dutf-8,<svg xmlns=3D"http=
://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=3D"M8.59 16.58 13.17 =
12 8.59 7.41 10 6l6 6-6 6-1.41-1.42Z"/></svg>'); --md-toc-icon: url('data:i=
mage/svg+xml;charset=3Dutf-8,<svg xmlns=3D"http://www.w3.org/2000/svg" view=
Box=3D"0 0 24 24"><path d=3D"M3 9h14V7H3v2m0 4h14v-2H3v2m0 4h14v-2H3v2m16 0=
h2v-2h-2v2m0-10v2h2V7h-2m0 6h2v-2h-2v2Z"/></svg>'); }
.md-nav { font-size: 0.7rem; line-height: 1.3; }
.md-nav__title { color: var(--md-default-fg-color--light); display: block; =
font-weight: 700; overflow: hidden; padding: 0px 0.6rem; text-overflow: ell=
ipsis; }
.md-nav__title .md-nav__button { display: none; }
.md-nav__title .md-nav__button img { height: 100%; width: auto; }
.md-nav__title .md-nav__button.md-logo img, .md-nav__title .md-nav__button.=
md-logo svg { fill: currentcolor; display: block; height: 2.4rem; max-width=
: 100%; object-fit: contain; width: auto; }
.md-nav__list { list-style: none; margin: 0px; padding: 0px; }
.md-nav__item { padding: 0px 0.6rem; }
[dir=3D"ltr"] .md-nav__item .md-nav__item { padding-right: 0px; }
[dir=3D"rtl"] .md-nav__item .md-nav__item { padding-left: 0px; }
.md-nav__link { align-items: center; cursor: pointer; display: flex; justif=
y-content: space-between; margin-top: 0.625em; overflow: hidden; scroll-sna=
p-align: start; text-overflow: ellipsis; transition: color 125ms; }
.md-nav__link--passed { color: var(--md-default-fg-color--light); }
.md-nav__item .md-nav__link--active { color: var(--md-typeset-a-color); }
.md-nav__item .md-nav__link--index [href] { width: 100%; }
.md-nav__link:focus, .md-nav__link:hover { color: var(--md-accent-fg-color)=
; }
.md-nav__link.focus-visible { outline-color: var(--md-accent-fg-color); out=
line-offset: 0.2rem; }
.md-nav--primary .md-nav__link[for=3D"__toc"] { display: none; }
.md-nav--primary .md-nav__link[for=3D"__toc"] .md-icon::after { background-=
color: currentcolor; display: block; height: 100%; mask-image: var(--md-toc=
-icon); width: 100%; }
.md-nav--primary .md-nav__link[for=3D"__toc"] ~ .md-nav { display: none; }
.md-nav__link > * { cursor: pointer; display: flex; }
.md-nav__icon { flex-shrink: 0; }
.md-nav__source { display: none; }
@media screen and (max-width: 76.1875em) {
.md-nav--primary, .md-nav--primary .md-nav { background-color: var(--md-d=
efault-bg-color); display: flex; flex-direction: column; height: 100%; left=
: 0px; position: absolute; right: 0px; top: 0px; z-index: 1; }
.md-nav--primary .md-nav__item, .md-nav--primary .md-nav__title { font-si=
ze: 0.8rem; line-height: 1.5; }
.md-nav--primary .md-nav__title { background-color: var(--md-default-fg-c=
olor--lightest); color: var(--md-default-fg-color--light); cursor: pointer;=
height: 5.6rem; line-height: 2.4rem; padding: 3rem 0.8rem 0.2rem; position=
: relative; white-space: nowrap; }
[dir=3D"ltr"] .md-nav--primary .md-nav__title .md-nav__icon { left: 0.4re=
m; }
[dir=3D"rtl"] .md-nav--primary .md-nav__title .md-nav__icon { right: 0.4r=
em; }
.md-nav--primary .md-nav__title .md-nav__icon { display: block; height: 1=
.2rem; margin: 0.2rem; position: absolute; top: 0.4rem; width: 1.2rem; }
.md-nav--primary .md-nav__title .md-nav__icon::after { background-color: =
currentcolor; content: ""; display: block; height: 100%; mask-image: var(--=
md-nav-icon--prev); mask-position: center center; mask-repeat: no-repeat; m=
ask-size: contain; width: 100%; }
.md-nav--primary .md-nav__title ~ .md-nav__list { background-color: var(-=
-md-default-bg-color); box-shadow: 0 .05rem 0 var(--md-default-fg-color--li=
ghtest) inset; overflow-y: auto; scroll-snap-type: y mandatory; touch-actio=
n: pan-y; }
.md-nav--primary .md-nav__title ~ .md-nav__list > :first-child { border-t=
op: 0px; }
.md-nav--primary .md-nav__title[for=3D"__drawer"] { background-color: var=
(--md-primary-fg-color); color: var(--md-primary-bg-color); font-weight: 70=
0; }
.md-nav--primary .md-nav__title .md-logo { display: block; left: 0.2rem; =
margin: 0.2rem; padding: 0.4rem; position: absolute; right: 0.2rem; top: 0.=
2rem; }
.md-nav--primary .md-nav__list { flex: 1 1 0%; }
.md-nav--primary .md-nav__item { border-top: .05rem solid var(--md-defaul=
t-fg-color--lightest); padding: 0px; }
.md-nav--primary .md-nav__item--active > .md-nav__link { color: var(--md-=
typeset-a-color); }
.md-nav--primary .md-nav__item--active > .md-nav__link:focus, .md-nav--pr=
imary .md-nav__item--active > .md-nav__link:hover { color: var(--md-accent-=
fg-color); }
.md-nav--primary .md-nav__link { margin-top: 0px; padding: 0.6rem 0.8rem;=
}
[dir=3D"ltr"] .md-nav--primary .md-nav__link .md-nav__icon { margin-right=
: -0.2rem; }
[dir=3D"rtl"] .md-nav--primary .md-nav__link .md-nav__icon { margin-left:=
-0.2rem; }
.md-nav--primary .md-nav__link .md-nav__icon { font-size: 1.2rem; height:=
1.2rem; width: 1.2rem; }
.md-nav--primary .md-nav__link .md-nav__icon::after { background-color: c=
urrentcolor; content: ""; display: block; height: 100%; mask-image: var(--m=
d-nav-icon--next); mask-position: center center; mask-repeat: no-repeat; ma=
sk-size: contain; width: 100%; }
[dir=3D"rtl"] .md-nav--primary .md-nav__icon::after { transform: scale(-1=
); }
.md-nav--primary .md-nav--secondary .md-nav { background-color: initial; =
position: static; }
[dir=3D"ltr"] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link {=
padding-left: 1.4rem; }
[dir=3D"rtl"] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link {=
padding-right: 1.4rem; }
[dir=3D"ltr"] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav=
__link { padding-left: 2rem; }
[dir=3D"rtl"] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav=
__link { padding-right: 2rem; }
[dir=3D"ltr"] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav=
.md-nav__link { padding-left: 2.6rem; }
[dir=3D"rtl"] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav=
.md-nav__link { padding-right: 2.6rem; }
[dir=3D"ltr"] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav=
.md-nav .md-nav__link { padding-left: 3.2rem; }
[dir=3D"rtl"] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav=
.md-nav .md-nav__link { padding-right: 3.2rem; }
.md-nav--secondary { background-color: initial; }
.md-nav__toggle ~ .md-nav { display: flex; opacity: 0; transform: transla=
teX(100%); transition: transform 0.25s cubic-bezier(0.8, 0, 0.6, 1), opacit=
y 125ms 50ms; }
[dir=3D"rtl"] .md-nav__toggle ~ .md-nav { transform: translateX(-100%); }
.md-nav__toggle:checked ~ .md-nav { opacity: 1; transform: translateX(0px=
); transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 125ms =
125ms; }
.md-nav__toggle:checked ~ .md-nav > .md-nav__list { backface-visibility: =
hidden; }
}
@media screen and (max-width: 59.9375em) {
.md-nav--primary .md-nav__link[for=3D"__toc"] { display: flex; }
.md-nav--primary .md-nav__link[for=3D"__toc"] .md-icon::after { content: =
""; }
.md-nav--primary .md-nav__link[for=3D"__toc"] + .md-nav__link { display: =
none; }
.md-nav--primary .md-nav__link[for=3D"__toc"] ~ .md-nav { display: flex; =
}
.md-nav__source { background-color: var(--md-primary-fg-color--dark); col=
or: var(--md-primary-bg-color); display: block; padding: 0px 0.2rem; }
}
@media screen and (min-width: 60em) and (max-width: 76.1875em) {
.md-nav--integrated .md-nav__link[for=3D"__toc"] { display: flex; }
.md-nav--integrated .md-nav__link[for=3D"__toc"] .md-icon::after { conten=
t: ""; }
.md-nav--integrated .md-nav__link[for=3D"__toc"] + .md-nav__link { displa=
y: none; }
.md-nav--integrated .md-nav__link[for=3D"__toc"] ~ .md-nav { display: fle=
x; }
}
@media screen and (min-width: 60em) {
.md-nav--secondary .md-nav__title { background: var(--md-default-bg-color=
); box-shadow: 0 0 .4rem .4rem var(--md-default-bg-color); position: sticky=
; top: 0px; z-index: 1; }
.md-nav--secondary .md-nav__title[for=3D"__toc"] { scroll-snap-align: sta=
rt; }
.md-nav--secondary .md-nav__title .md-nav__icon { display: none; }
}
@media screen and (min-width: 76.25em) {
.md-nav { transition: max-height 0.25s cubic-bezier(0.86, 0, 0.07, 1); }
.md-nav--primary .md-nav__title { background: var(--md-default-bg-color);=
box-shadow: 0 0 .4rem .4rem var(--md-default-bg-color); position: sticky; =
top: 0px; z-index: 1; }
.md-nav--primary .md-nav__title[for=3D"__drawer"] { scroll-snap-align: st=
art; }
.md-nav--primary .md-nav__title .md-nav__icon, .md-nav__toggle ~ .md-nav =
{ display: none; }
.md-nav__toggle:checked ~ .md-nav, .md-nav__toggle:indeterminate ~ .md-na=
v { display: block; }
.md-nav__item--nested > .md-nav > .md-nav__title { display: none; }
.md-nav__item--section { display: block; margin: 1.25em 0px; }
.md-nav__item--section:last-child { margin-bottom: 0px; }
.md-nav__item--section > .md-nav__link { font-weight: 700; pointer-events=
: none; }
.md-nav__item--section > .md-nav__link[for] { color: var(--md-default-fg-=
color--light); }
.md-nav__item--section > .md-nav__link--index [href] { pointer-events: au=
to; }
.md-nav__item--section > .md-nav__link .md-nav__icon { display: none; }
.md-nav__item--section > .md-nav { display: block; }
.md-nav__item--section > .md-nav > .md-nav__list > .md-nav__item { paddin=
g: 0px; }
.md-nav__icon { border-radius: 100%; height: 0.9rem; transition: backgrou=
nd-color 0.25s; width: 0.9rem; }
.md-nav__icon:hover { background-color: var(--md-accent-fg-color--transpa=
rent); }
.md-nav__icon::after { background-color: currentcolor; border-radius: 100=
%; content: ""; display: inline-block; height: 100%; mask-image: var(--md-n=
av-icon--next); mask-position: center center; mask-repeat: no-repeat; mask-=
size: contain; transition: transform 0.25s; vertical-align: -0.1rem; width:=
100%; }
[dir=3D"rtl"] .md-nav__icon::after { transform: rotate(180deg); }
.md-nav__item--nested .md-nav__toggle:checked ~ .md-nav__link .md-nav__ic=
on::after, .md-nav__item--nested .md-nav__toggle:indeterminate ~ .md-nav__l=
ink .md-nav__icon::after { transform: rotate(90deg); }
.md-nav--lifted > .md-nav__list > .md-nav__item, .md-nav--lifted > .md-na=
v__list > .md-nav__item--nested, .md-nav--lifted > .md-nav__title { display=
: none; }
.md-nav--lifted > .md-nav__list > .md-nav__item--active { display: block;=
padding: 0px; }
.md-nav--lifted > .md-nav__list > .md-nav__item--active > .md-nav__link {=
background: var(--md-default-bg-color); box-shadow: 0 0 .4rem .4rem var(--=
md-default-bg-color); font-weight: 700; margin-top: 0px; padding: 0px 0.6re=
m; position: sticky; top: 0px; z-index: 1; }
.md-nav--lifted > .md-nav__list > .md-nav__item--active > .md-nav__link:n=
ot(.md-nav__link--index) { pointer-events: none; }
.md-nav--lifted > .md-nav__list > .md-nav__item--active > .md-nav__link .=
md-nav__icon { display: none; }
.md-nav--lifted > .md-nav__list > .md-nav__item > [for] { color: var(--md=
-default-fg-color--light); }
.md-nav--lifted .md-nav[data-md-level=3D"1"] { display: block; }
[dir=3D"ltr"] .md-nav--lifted .md-nav[data-md-level=3D"1"] > .md-nav__lis=
t > .md-nav__item { padding-right: 0.6rem; }
[dir=3D"rtl"] .md-nav--lifted .md-nav[data-md-level=3D"1"] > .md-nav__lis=
t > .md-nav__item { padding-left: 0.6rem; }
.md-nav--integrated > .md-nav__list > .md-nav__item--active:not(.md-nav__=
item--nested) { padding: 0px 0.6rem; }
.md-nav--integrated > .md-nav__list > .md-nav__item--active:not(.md-nav__=
item--nested) > .md-nav__link { padding: 0px; }
[dir=3D"ltr"] .md-nav--integrated > .md-nav__list > .md-nav__item--active=
.md-nav--secondary { border-left: .05rem solid var(--md-primary-fg-color);=
}
[dir=3D"rtl"] .md-nav--integrated > .md-nav__list > .md-nav__item--active=
.md-nav--secondary { border-right: .05rem solid var(--md-primary-fg-color)=
; }
.md-nav--integrated > .md-nav__list > .md-nav__item--active .md-nav--seco=
ndary { display: block; margin-bottom: 1.25em; }
.md-nav--integrated > .md-nav__list > .md-nav__item--active .md-nav--seco=
ndary > .md-nav__title { display: none; }
}
:root { --md-search-result-icon: url('data:image/svg+xml;charset=3Dutf-8,<s=
vg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=3D"M1=
4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h7c-.41-.25-.8-.56-1.14-.9-.33-.33-.61-=
.7-.86-1.1H6V4h7v5h5v1.18c.71.16 1.39.43 2 .82V8l-6-6m6.31 16.9c1.33-2.11.6=
9-4.9-1.4-6.22-2.11-1.33-4.91-.68-6.22 1.4-1.34 2.11-.69 4.89 1.4 6.22 1.46=
.93 3.32.93 4.79.02L22 23.39 23.39 22l-3.08-3.1m-3.81.1a2.5 2.5 0 0 1-2.5-2=
.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5Z"/></s=
vg>'); }
.md-search { position: relative; }
@media screen and (min-width: 60em) {
.md-search { padding: 0.2rem 0px; }
}
.no-js .md-search { display: none; }
.md-search__overlay { opacity: 0; z-index: 1; }
@media screen and (max-width: 59.9375em) {
[dir=3D"ltr"] .md-search__overlay { left: -2.2rem; }
[dir=3D"rtl"] .md-search__overlay { right: -2.2rem; }
.md-search__overlay { background-color: var(--md-default-bg-color); borde=
r-radius: 1rem; height: 2rem; overflow: hidden; pointer-events: none; posit=
ion: absolute; top: -1rem; transform-origin: center center; transition: tra=
nsform 0.3s 0.1s, opacity 0.2s 0.2s; width: 2rem; }
[data-md-toggle=3D"search"]:checked ~ .md-header .md-search__overlay { op=
acity: 1; transition: transform 0.4s, opacity 0.1s; }
}
@media screen and (min-width: 60em) {
[dir=3D"ltr"] .md-search__overlay { left: 0px; }
[dir=3D"rtl"] .md-search__overlay { right: 0px; }
.md-search__overlay { background-color: rgba(0, 0, 0, 0.54); cursor: poin=
ter; height: 0px; position: fixed; top: 0px; transition: width 0.25s, heigh=
t 0.25s, opacity 0.25s; width: 0px; }
[data-md-toggle=3D"search"]:checked ~ .md-header .md-search__overlay { he=
ight: 200vh; opacity: 1; transition: width, height, opacity 0.25s; width: 1=
00%; }
}
@media screen and (max-width: 29.9375em) {
[data-md-toggle=3D"search"]:checked ~ .md-header .md-search__overlay { tr=
ansform: scale(45); }
}
@media screen and (min-width: 30em) and (max-width: 44.9375em) {
[data-md-toggle=3D"search"]:checked ~ .md-header .md-search__overlay { tr=
ansform: scale(60); }
}
@media screen and (min-width: 45em) and (max-width: 59.9375em) {
[data-md-toggle=3D"search"]:checked ~ .md-header .md-search__overlay { tr=
ansform: scale(75); }
}
.md-search__inner { backface-visibility: hidden; }
@media screen and (max-width: 59.9375em) {
[dir=3D"ltr"] .md-search__inner { left: 0px; }
[dir=3D"rtl"] .md-search__inner { right: 0px; }
.md-search__inner { height: 0px; opacity: 0; overflow: hidden; position: =
fixed; top: 0px; transform: translateX(5%); transition: width 0.3s, height =
0.3s, transform 0.15s cubic-bezier(0.4, 0, 0.2, 1) 0.15s, opacity 0.15s 0.1=
5s; width: 0px; z-index: 2; }
[dir=3D"rtl"] .md-search__inner { transform: translateX(-5%); }
[data-md-toggle=3D"search"]:checked ~ .md-header .md-search__inner { heig=
ht: 100%; opacity: 1; transform: translateX(0px); transition: width, height=
, transform 0.15s cubic-bezier(0.1, 0.7, 0.1, 1) 0.15s, opacity 0.15s 0.15s=
; width: 100%; }
}
@media screen and (min-width: 60em) {
[dir=3D"ltr"] .md-search__inner { float: right; }
[dir=3D"rtl"] .md-search__inner { float: left; }
.md-search__inner { padding: 0.1rem 0px; position: relative; transition: =
width 0.25s cubic-bezier(0.1, 0.7, 0.1, 1); width: 11.7rem; }
}
@media screen and (min-width: 60em) and (max-width: 76.1875em) {
[data-md-toggle=3D"search"]:checked ~ .md-header .md-search__inner { widt=
h: 23.4rem; }
}
@media screen and (min-width: 76.25em) {
[data-md-toggle=3D"search"]:checked ~ .md-header .md-search__inner { widt=
h: 34.4rem; }
}
.md-search__form { background-color: var(--md-default-bg-color); box-shadow=
: rgba(0, 0, 0, 0) 0px 0px 0.6rem; height: 2.4rem; position: relative; tran=
sition: color 0.25s, background-color 0.25s; z-index: 2; }
@media screen and (min-width: 60em) {
.md-search__form { background-color: rgba(0, 0, 0, 0.26); border-radius: =
0.1rem; height: 1.8rem; }
.md-search__form:hover { background-color: rgba(255, 255, 255, 0.12); }
}
[data-md-toggle=3D"search"]:checked ~ .md-header .md-search__form { backgro=
und-color: var(--md-default-bg-color); border-radius: 0.1rem 0.1rem 0px 0px=
; box-shadow: rgba(0, 0, 0, 0.07) 0px 0px 0.6rem; color: var(--md-default-f=
g-color); }
[dir=3D"ltr"] .md-search__input { padding-left: 3.6rem; padding-right: 2.2r=
em; }
[dir=3D"rtl"] .md-search__input { padding-left: 2.2rem; padding-right: 3.6r=
em; }
.md-search__input { background: rgba(0, 0, 0, 0); font-size: 0.9rem; height=
: 100%; position: relative; text-overflow: ellipsis; width: 100%; z-index: =
2; }
.md-search__input::placeholder { transition: color 0.25s; }
.md-search__input::placeholder, .md-search__input ~ .md-search__icon { colo=
r: var(--md-default-fg-color--light); }
@media screen and (max-width: 59.9375em) {
.md-search__input { font-size: 0.9rem; height: 2.4rem; width: 100%; }
}
@media screen and (min-width: 60em) {
[dir=3D"ltr"] .md-search__input { padding-left: 2.2rem; }
[dir=3D"rtl"] .md-search__input { padding-right: 2.2rem; }
.md-search__input { color: inherit; font-size: 0.8rem; }
.md-search__input::placeholder { color: var(--md-primary-bg-color--light)=
; }
.md-search__input + .md-search__icon { color: var(--md-primary-bg-color);=
}
[data-md-toggle=3D"search"]:checked ~ .md-header .md-search__input { text=
-overflow: clip; }
[data-md-toggle=3D"search"]:checked ~ .md-header .md-search__input + .md-=
search__icon { color: var(--md-default-fg-color--light); }
[data-md-toggle=3D"search"]:checked ~ .md-header .md-search__input::place=
holder { color: rgba(0, 0, 0, 0); }
}
.md-search__icon { cursor: pointer; display: inline-block; height: 1.2rem; =
transition: color 0.25s, opacity 0.25s; width: 1.2rem; }
.md-search__icon:hover { opacity: 0.7; }
[dir=3D"ltr"] .md-search__icon[for=3D"__search"] { left: 0.5rem; }
[dir=3D"rtl"] .md-search__icon[for=3D"__search"] { right: 0.5rem; }
.md-search__icon[for=3D"__search"] { position: absolute; top: 0.3rem; z-ind=
ex: 2; }
[dir=3D"rtl"] .md-search__icon[for=3D"__search"] svg { transform: scaleX(-1=
); }
@media screen and (max-width: 59.9375em) {
[dir=3D"ltr"] .md-search__icon[for=3D"__search"] { left: 0.8rem; }
[dir=3D"rtl"] .md-search__icon[for=3D"__search"] { right: 0.8rem; }
.md-search__icon[for=3D"__search"] { top: 0.6rem; }
.md-search__icon[for=3D"__search"] svg:first-child { display: none; }
}
@media screen and (min-width: 60em) {
.md-search__icon[for=3D"__search"] { pointer-events: none; }
.md-search__icon[for=3D"__search"] svg:last-child { display: none; }
}
[dir=3D"ltr"] .md-search__options { right: 0.5rem; }
[dir=3D"rtl"] .md-search__options { left: 0.5rem; }
.md-search__options { pointer-events: none; position: absolute; top: 0.3rem=
; z-index: 2; }
@media screen and (max-width: 59.9375em) {
[dir=3D"ltr"] .md-search__options { right: 0.8rem; }
[dir=3D"rtl"] .md-search__options { left: 0.8rem; }
.md-search__options { top: 0.6rem; }
}
[dir=3D"ltr"] .md-search__options > .md-icon { margin-left: 0.2rem; }
[dir=3D"rtl"] .md-search__options > .md-icon { margin-right: 0.2rem; }
.md-search__options > .md-icon { color: var(--md-default-fg-color--light); =
opacity: 0; transform: scale(0.75); transition: transform 0.15s cubic-bezie=
r(0.1, 0.7, 0.1, 1), opacity 0.15s; }
.md-search__options > .md-icon:not(.focus-visible) { -webkit-tap-highlight-=
color: transparent; outline: none; }
[data-md-toggle=3D"search"]:checked ~ .md-header .md-search__input:valid ~ =
.md-search__options > .md-icon { opacity: 1; pointer-events: auto; transfor=
m: scale(1); }
[data-md-toggle=3D"search"]:checked ~ .md-header .md-search__input:valid ~ =
.md-search__options > .md-icon:hover { opacity: 0.7; }
[dir=3D"ltr"] .md-search__suggest { padding-left: 3.6rem; padding-right: 2.=
2rem; }
[dir=3D"rtl"] .md-search__suggest { padding-left: 2.2rem; padding-right: 3.=
6rem; }
.md-search__suggest { align-items: center; color: var(--md-default-fg-color=
--lighter); display: flex; font-size: 0.9rem; height: 100%; opacity: 0; pos=
ition: absolute; top: 0px; transition: opacity 50ms; white-space: nowrap; w=
idth: 100%; }
@media screen and (min-width: 60em) {
[dir=3D"ltr"] .md-search__suggest { padding-left: 2.2rem; }
[dir=3D"rtl"] .md-search__suggest { padding-right: 2.2rem; }
.md-search__suggest { font-size: 0.8rem; }
}
[data-md-toggle=3D"search"]:checked ~ .md-header .md-search__suggest { opac=
ity: 1; transition: opacity 0.3s 0.1s; }
[dir=3D"ltr"] .md-search__output { border-bottom-left-radius: 0.1rem; }
[dir=3D"ltr"] .md-search__output, [dir=3D"rtl"] .md-search__output { border=
-bottom-right-radius: 0.1rem; }
[dir=3D"rtl"] .md-search__output { border-bottom-left-radius: 0.1rem; }
.md-search__output { overflow: hidden; position: absolute; width: 100%; z-i=
ndex: 1; }
@media screen and (max-width: 59.9375em) {
.md-search__output { bottom: 0px; top: 2.4rem; }
}
@media screen and (min-width: 60em) {
.md-search__output { opacity: 0; top: 1.9rem; transition: opacity 0.4s; }
[data-md-toggle=3D"search"]:checked ~ .md-header .md-search__output { box=
-shadow: var(--md-shadow-z3); opacity: 1; }
}
.md-search__scrollwrap { backface-visibility: hidden; background-color: var=
(--md-default-bg-color); height: 100%; overflow-y: auto; touch-action: pan-=
y; }
@media (-webkit-max-device-pixel-ratio: 1), (max-resolution: 1dppx) {
.md-search__scrollwrap { transform: translateZ(0px); }
}
@media screen and (min-width: 60em) and (max-width: 76.1875em) {
.md-search__scrollwrap { width: 23.4rem; }
}
@media screen and (min-width: 76.25em) {
.md-search__scrollwrap { width: 34.4rem; }
}
@media screen and (min-width: 60em) {
.md-search__scrollwrap { max-height: 0px; scrollbar-color: var(--md-defau=
lt-fg-color--lighter) #0000; scrollbar-width: thin; }
[data-md-toggle=3D"search"]:checked ~ .md-header .md-search__scrollwrap {=
max-height: 75vh; }
.md-search__scrollwrap:hover { scrollbar-color: var(--md-accent-fg-color)=
#0000; }
.md-search__scrollwrap::-webkit-scrollbar { height: 0.2rem; width: 0.2rem=
; }
.md-search__scrollwrap::-webkit-scrollbar-thumb { background-color: var(-=
-md-default-fg-color--lighter); }
.md-search__scrollwrap::-webkit-scrollbar-thumb:hover { background-color:=
var(--md-accent-fg-color); }
}
.md-search-result { color: var(--md-default-fg-color); word-break: break-wo=
rd; }
.md-search-result__meta { background-color: var(--md-default-fg-color--ligh=
test); color: var(--md-default-fg-color--light); font-size: 0.64rem; line-h=
eight: 1.8rem; padding: 0px 0.8rem; scroll-snap-align: start; }
@media screen and (min-width: 60em) {
[dir=3D"ltr"] .md-search-result__meta { padding-left: 2.2rem; }
[dir=3D"rtl"] .md-search-result__meta { padding-right: 2.2rem; }
}
.md-search-result__list { list-style: none; margin: 0px; padding: 0px; user=
-select: none; }
.md-search-result__item { box-shadow: 0 -.05rem var(--md-default-fg-color--=
lightest); }
.md-search-result__item:first-child { box-shadow: none; }
.md-search-result__link { display: block; outline: none; scroll-snap-align:=
start; transition: background-color 0.25s; }
.md-search-result__link:focus, .md-search-result__link:hover { background-c=
olor: var(--md-accent-fg-color--transparent); }
.md-search-result__link:last-child p:last-child { margin-bottom: 0.6rem; }
.md-search-result__more > summary { cursor: pointer; display: block; outlin=
e: none; position: sticky; scroll-snap-align: start; top: 0px; z-index: 1; =
}
.md-search-result__more > summary::marker { display: none; }
.md-search-result__more > summary::-webkit-details-marker { display: none; =
}
.md-search-result__more > summary > div { color: var(--md-typeset-a-color);=
font-size: 0.64rem; padding: 0.75em 0.8rem; transition: color 0.25s, backg=
round-color 0.25s; }
@media screen and (min-width: 60em) {
[dir=3D"ltr"] .md-search-result__more > summary > div { padding-left: 2.2=
rem; }
[dir=3D"rtl"] .md-search-result__more > summary > div { padding-right: 2.=
2rem; }
}
.md-search-result__more > summary:focus > div, .md-search-result__more > su=
mmary:hover > div { background-color: var(--md-accent-fg-color--transparent=
); color: var(--md-accent-fg-color); }
.md-search-result__more[open] > summary { background-color: var(--md-defaul=
t-bg-color); }
.md-search-result__article { overflow: hidden; padding: 0px 0.8rem; positio=
n: relative; }
@media screen and (min-width: 60em) {
[dir=3D"ltr"] .md-search-result__article { padding-left: 2.2rem; }
[dir=3D"rtl"] .md-search-result__article { padding-right: 2.2rem; }
}
[dir=3D"ltr"] .md-search-result__icon { left: 0px; }
[dir=3D"rtl"] .md-search-result__icon { right: 0px; }
.md-search-result__icon { color: var(--md-default-fg-color--light); height:=
1.2rem; margin: 0.5rem; position: absolute; width: 1.2rem; }
@media screen and (max-width: 59.9375em) {
.md-search-result__icon { display: none; }
}
.md-search-result__icon::after { background-color: currentcolor; content: "=
"; display: inline-block; height: 100%; mask-image: var(--md-search-result-=
icon); mask-position: center center; mask-repeat: no-repeat; mask-size: con=
tain; width: 100%; }
[dir=3D"rtl"] .md-search-result__icon::after { transform: scaleX(-1); }
.md-search-result .md-typeset { color: var(--md-default-fg-color--light); f=
ont-size: 0.64rem; line-height: 1.6; }
.md-search-result .md-typeset h1 { color: var(--md-default-fg-color); font-=
size: 0.8rem; font-weight: 400; line-height: 1.4; margin: 0.55rem 0px; }
.md-search-result .md-typeset h1 mark { text-decoration: none; }
.md-search-result .md-typeset h2 { color: var(--md-default-fg-color); font-=
size: 0.64rem; font-weight: 700; line-height: 1.6; margin: 0.5em 0px; }
.md-search-result .md-typeset h2 mark { text-decoration: none; }
.md-search-result__terms { color: var(--md-default-fg-color); display: bloc=
k; font-size: 0.64rem; font-style: italic; margin: 0.5em 0px; }
.md-search-result mark { background-color: initial; color: var(--md-accent-=
fg-color); text-decoration: underline; }
.md-select { position: relative; z-index: 1; }
.md-select__inner { background-color: var(--md-default-bg-color); border-ra=
dius: 0.1rem; box-shadow: var(--md-shadow-z2); color: var(--md-default-fg-c=
olor); left: 50%; margin-top: 0.2rem; max-height: 0px; opacity: 0; position=
: absolute; top: calc(100% - 0.2rem); transform: translate3d(-50%, 0.3rem, =
0px); transition: transform 0.25s 375ms, opacity 0.25s 0.25s, max-height 0.=
5s; }
.md-select:focus-within .md-select__inner, .md-select:hover .md-select__inn=
er { max-height: 10rem; opacity: 1; transform: translate3d(-50%, 0px, 0px);=
transition: transform 0.25s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.25s,=
max-height; }
.md-select__inner::after { border-width: 0px 0.2rem 0.2rem; border-bottom-s=
tyle: solid; border-bottom-color: var(--md-default-bg-color); border-left-s=
tyle: solid; border-left-color: rgba(0, 0, 0, 0); border-right-style: solid=
; border-right-color: rgba(0, 0, 0, 0); border-top-style: initial; border-t=
op-color: initial; content: ""; height: 0px; left: 50%; margin-left: -0.2re=
m; margin-top: -0.2rem; position: absolute; top: 0px; width: 0px; }
.md-select__list { border-radius: 0.1rem; font-size: 0.8rem; list-style-typ=
e: none; margin: 0px; max-height: inherit; overflow: auto; padding: 0px; }
.md-select__item { line-height: 1.8rem; }
[dir=3D"ltr"] .md-select__link { padding-left: 0.6rem; padding-right: 1.2re=
m; }
[dir=3D"rtl"] .md-select__link { padding-left: 1.2rem; padding-right: 0.6re=
m; }
.md-select__link { cursor: pointer; display: block; outline: none; scroll-s=
nap-align: start; transition: background-color 0.25s, color 0.25s; width: 1=
00%; }
.md-select__link:focus, .md-select__link:hover { color: var(--md-accent-fg-=
color); }
.md-select__link:focus { background-color: var(--md-default-fg-color--light=
est); }
.md-sidebar { align-self: flex-start; flex-shrink: 0; padding: 1.2rem 0px; =
position: sticky; top: 2.4rem; width: 12.1rem; }
@media print {
.md-sidebar { display: none; }
}
@media screen and (max-width: 76.1875em) {
[dir=3D"ltr"] .md-sidebar--primary { left: -12.1rem; }
[dir=3D"rtl"] .md-sidebar--primary { right: -12.1rem; }
.md-sidebar--primary { background-color: var(--md-default-bg-color); disp=
lay: block; height: 100%; position: fixed; top: 0px; transform: translateX(=
0px); transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow =
0.25s; width: 12.1rem; z-index: 5; }
[data-md-toggle=3D"drawer"]:checked ~ .md-container .md-sidebar--primary =
{ box-shadow: var(--md-shadow-z3); transform: translateX(12.1rem); }
[dir=3D"rtl"] [data-md-toggle=3D"drawer"]:checked ~ .md-container .md-sid=
ebar--primary { transform: translateX(-12.1rem); }
.md-sidebar--primary .md-sidebar__scrollwrap { inset: 0px; margin: 0px; o=
verflow: hidden; position: absolute; scroll-snap-type: none; }
}
@media screen and (min-width: 76.25em) {
.md-sidebar { height: 0px; }
.no-js .md-sidebar { height: auto; }
.md-header--lifted ~ .md-container .md-sidebar { top: 4.8rem; }
}
.md-sidebar--secondary { display: none; order: 2; }
@media screen and (min-width: 60em) {
.md-sidebar--secondary { height: 0px; }
.no-js .md-sidebar--secondary { height: auto; }
.md-sidebar--secondary:not([hidden]) { display: block; }
.md-sidebar--secondary .md-sidebar__scrollwrap { touch-action: pan-y; }
}
.md-sidebar__scrollwrap { scrollbar-gutter: stable; backface-visibility: hi=
dden; margin: 0px 0.2rem; overflow-y: auto; scrollbar-color: var(--md-defau=
lt-fg-color--lighter) #0000; scrollbar-width: thin; }
.md-sidebar__scrollwrap::-webkit-scrollbar { height: 0.2rem; width: 0.2rem;=
}
.md-sidebar__scrollwrap:focus-within, .md-sidebar__scrollwrap:hover { scrol=
lbar-color: var(--md-accent-fg-color) #0000; }
.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb, .md-sidebar_=
_scrollwrap:hover::-webkit-scrollbar-thumb { background-color: var(--md-def=
ault-fg-color--lighter); }
.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb:hover, .md-si=
debar__scrollwrap:hover::-webkit-scrollbar-thumb:hover { background-color: =
var(--md-accent-fg-color); }
@supports selector(::-webkit-scrollbar) {
.md-sidebar__scrollwrap { scrollbar-gutter: auto; }
[dir=3D"ltr"] .md-sidebar__inner { padding-right: calc(100% - 11.5rem); }
[dir=3D"rtl"] .md-sidebar__inner { padding-left: calc(100% - 11.5rem); }
}
@media screen and (max-width: 76.1875em) {
.md-overlay { background-color: rgba(0, 0, 0, 0.54); height: 0px; opacity=
: 0; position: fixed; top: 0px; transition: width 0.25s, height 0.25s, opac=
ity 0.25s; width: 0px; z-index: 5; }
[data-md-toggle=3D"drawer"]:checked ~ .md-overlay { height: 100%; opacity=
: 1; transition: width, height, opacity 0.25s; width: 100%; }
}
@keyframes facts {=20
0% { height: 0px; }
100% { height: 0.65rem; }
}
@keyframes fact {=20
0% { opacity: 0; transform: translateY(100%); }
50% { opacity: 0; }
100% { opacity: 1; transform: translateY(0px); }
}
:root { --md-source-forks-icon: url('data:image/svg+xml;charset=3Dutf-8,<sv=
g xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 16 16"><path d=3D"M5 =
5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1=
1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V=
8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.7=
5 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 =
1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"/></svg>'); --md-source=
-repositories-icon: url('data:image/svg+xml;charset=3Dutf-8,<svg xmlns=3D"h=
ttp://www.w3.org/2000/svg" viewBox=3D"0 0 16 16"><path d=3D"M2 2.5A2.5 2.5 =
0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0=
0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495=
0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 1=
2.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1=
.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"/></svg>'); --md=
-source-stars-icon: url('data:image/svg+xml;charset=3Dutf-8,<svg xmlns=3D"h=
ttp://www.w3.org/2000/svg" viewBox=3D"0 0 16 16"><path d=3D"M8 .25a.75.75 0=
0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 =
4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l=
.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 =
1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75=
0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-=
3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2=
.694Z"/></svg>'); --md-source-version-icon: url('data:image/svg+xml;charset=
=3Dutf-8,<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 16 16"><p=
ath d=3D"M1 7.775V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.51=
3l6.25 6.25a1.75 1.75 0 0 1 0 2.474l-5.026 5.026a1.75 1.75 0 0 1-2.474 0l-6=
.25-6.25A1.752 1.752 0 0 1 1 7.775Zm1.5 0c0 .066.026.13.073.177l6.25 6.25a.=
25.25 0 0 0 .354 0l5.025-5.025a.25.25 0 0 0 0-.354l-6.25-6.25a.25.25 0 0 0-=
.177-.073H2.75a.25.25 0 0 0-.25.25ZM6 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z"/></sv=
g>'); }
.md-source { backface-visibility: hidden; display: block; font-size: 0.65re=
m; line-height: 1.2; outline-color: var(--md-accent-fg-color); transition: =
opacity 0.25s; white-space: nowrap; }
.md-source:hover { opacity: 0.7; }
.md-source__icon { display: inline-block; height: 2.4rem; vertical-align: m=
iddle; width: 2rem; }
[dir=3D"ltr"] .md-source__icon svg { margin-left: 0.6rem; }
[dir=3D"rtl"] .md-source__icon svg { margin-right: 0.6rem; }
.md-source__icon svg { margin-top: 0.6rem; }
[dir=3D"ltr"] .md-source__icon + .md-source__repository { padding-left: 2re=
m; }
[dir=3D"rtl"] .md-source__icon + .md-source__repository { padding-right: 2r=
em; }
[dir=3D"ltr"] .md-source__icon + .md-source__repository { margin-left: -2re=
m; }
[dir=3D"rtl"] .md-source__icon + .md-source__repository { margin-right: -2r=
em; }
[dir=3D"ltr"] .md-source__repository { margin-left: 0.6rem; }
[dir=3D"rtl"] .md-source__repository { margin-right: 0.6rem; }
.md-source__repository { display: inline-block; max-width: calc(100% - 1.2r=
em); overflow: hidden; text-overflow: ellipsis; vertical-align: middle; }
.md-source__facts { display: flex; font-size: 0.55rem; gap: 0.4rem; list-st=
yle-type: none; margin: 0.1rem 0px 0px; opacity: 0.75; overflow: hidden; pa=
dding: 0px; width: 100%; }
.md-source__repository--active .md-source__facts { animation: 0.25s ease-in=
0s 1 normal none running facts; }
.md-source__fact { overflow: hidden; text-overflow: ellipsis; }
.md-source__repository--active .md-source__fact { animation: 0.4s ease-out =
0s 1 normal none running fact; }
[dir=3D"ltr"] .md-source__fact::before { margin-right: 0.1rem; }
[dir=3D"rtl"] .md-source__fact::before { margin-left: 0.1rem; }
.md-source__fact::before { background-color: currentcolor; content: ""; dis=
play: inline-block; height: 0.6rem; mask-position: center center; mask-repe=
at: no-repeat; mask-size: contain; vertical-align: text-top; width: 0.6rem;=
}
.md-source__fact:nth-child(n+2) { flex-shrink: 0; }
.md-source__fact--version::before { mask-image: var(--md-source-version-ico=
n); }
.md-source__fact--stars::before { mask-image: var(--md-source-stars-icon); =
}
.md-source__fact--forks::before { mask-image: var(--md-source-forks-icon); =
}
.md-source__fact--repositories::before { mask-image: var(--md-source-reposi=
tories-icon); }
.md-tabs { background-color: var(--md-primary-fg-color); color: var(--md-pr=
imary-bg-color); display: block; line-height: 1.3; overflow: auto; width: 1=
00%; z-index: 3; }
@media print {
.md-tabs { display: none; }
}
@media screen and (max-width: 76.1875em) {
.md-tabs { display: none; }
}
.md-tabs[hidden] { pointer-events: none; }
[dir=3D"ltr"] .md-tabs__list { margin-left: 0.2rem; }
[dir=3D"rtl"] .md-tabs__list { margin-right: 0.2rem; }
.md-tabs__list { contain: content; list-style: none; margin: 0px; overflow:=
auto; padding: 0px; scrollbar-width: none; white-space: nowrap; }
.md-tabs__list::-webkit-scrollbar { display: none; }
.md-tabs__item { display: inline-block; height: 2.4rem; padding-left: 0.6re=
m; padding-right: 0.6rem; }
.md-tabs__link { backface-visibility: hidden; display: block; font-size: 0.=
7rem; margin-top: 0.8rem; opacity: 0.7; outline-color: var(--md-accent-fg-c=
olor); outline-offset: 0.2rem; transition: transform 0.4s cubic-bezier(0.1,=
0.7, 0.1, 1), opacity 0.25s; }
.md-tabs__link--active, .md-tabs__link:focus, .md-tabs__link:hover { color:=
inherit; opacity: 1; }
.md-tabs__item:nth-child(2) .md-tabs__link { transition-delay: 20ms; }
.md-tabs__item:nth-child(3) .md-tabs__link { transition-delay: 40ms; }
.md-tabs__item:nth-child(4) .md-tabs__link { transition-delay: 60ms; }
.md-tabs__item:nth-child(5) .md-tabs__link { transition-delay: 80ms; }
.md-tabs__item:nth-child(6) .md-tabs__link { transition-delay: 0.1s; }
.md-tabs__item:nth-child(7) .md-tabs__link { transition-delay: 0.12s; }
.md-tabs__item:nth-child(8) .md-tabs__link { transition-delay: 0.14s; }
.md-tabs__item:nth-child(9) .md-tabs__link { transition-delay: 0.16s; }
.md-tabs__item:nth-child(10) .md-tabs__link { transition-delay: 0.18s; }
.md-tabs__item:nth-child(11) .md-tabs__link { transition-delay: 0.2s; }
.md-tabs__item:nth-child(12) .md-tabs__link { transition-delay: 0.22s; }
.md-tabs__item:nth-child(13) .md-tabs__link { transition-delay: 0.24s; }
.md-tabs__item:nth-child(14) .md-tabs__link { transition-delay: 0.26s; }
.md-tabs__item:nth-child(15) .md-tabs__link { transition-delay: 0.28s; }
.md-tabs__item:nth-child(16) .md-tabs__link { transition-delay: 0.3s; }
.md-tabs[hidden] .md-tabs__link { opacity: 0; transform: translateY(50%); t=
ransition: transform 0.1s, opacity 0.1s; }
:root { --md-tag-icon: url('data:image/svg+xml;charset=3Dutf-8,<svg xmlns=
=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=3D"m5.41 21 .=
71-4h-4l.35-2h4l1.06-6h-4l.35-2h4l.71-4h2l-.71 4h6l.71-4h2l-.71 4h4l-.35 2h=
-4l-1.06 6h4l-.35 2h-4l-.71 4h-2l.71-4h-6l-.71 4h-2M9.53 9l-1.06 6h6l1.06-6=
h-6Z"/></svg>'); }
.md-typeset .md-tags { margin-bottom: 0.75em; margin-top: -0.125em; }
[dir=3D"ltr"] .md-typeset .md-tag { margin-right: 0.5em; }
[dir=3D"rtl"] .md-typeset .md-tag { margin-left: 0.5em; }
.md-typeset .md-tag { background: var(--md-default-fg-color--lightest); bor=
der-radius: 2.4rem; display: inline-block; font-size: 0.64rem; font-weight:=
700; letter-spacing: normal; line-height: 1.6; margin-bottom: 0.5em; paddi=
ng: 0.3125em 0.9375em; vertical-align: middle; }
.md-typeset .md-tag[href] { -webkit-tap-highlight-color: transparent; color=
: inherit; outline: none; transition: color 125ms, background-color 125ms; =
}
.md-typeset .md-tag[href]:focus, .md-typeset .md-tag[href]:hover { backgrou=
nd-color: var(--md-accent-fg-color); color: var(--md-accent-bg-color); }
[id] > .md-typeset .md-tag { vertical-align: text-top; }
.md-typeset .md-tag-icon::before { background-color: var(--md-default-fg-co=
lor--lighter); content: ""; display: inline-block; height: 1.2em; margin-ri=
ght: 0.4em; mask-image: var(--md-tag-icon); mask-position: center center; m=
ask-repeat: no-repeat; mask-size: contain; transition: background-color 125=
ms; vertical-align: text-bottom; width: 1.2em; }
.md-typeset .md-tag-icon[href]:focus::before, .md-typeset .md-tag-icon[href=
]:hover::before { background-color: var(--md-accent-bg-color); }
@keyframes pulse {=20
0% { box-shadow: 0 0 0 0 var(--md-default-fg-color--lightest); transform:=
scale(0.95); }
75% { box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0.625em; transform: scale(=
1); }
100% { box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; transform: scale(0.9=
5); }
}
:root { --md-tooltip-width: 20rem; }
.md-tooltip { backface-visibility: hidden; background-color: var(--md-defau=
lt-bg-color); border-radius: 0.1rem; box-shadow: var(--md-shadow-z2); color=
: var(--md-default-fg-color); font-family: var(--md-text-font-family); left=
: clamp(var(--md-tooltip-0,0rem) + .8rem,var(--md-tooltip-x),100vw + var(--=
md-tooltip-0,0rem) + .8rem - var(--md-tooltip-width) - 2 * .8rem); max-widt=
h: calc(-1.6rem + 100vw); opacity: 0; position: absolute; top: var(--md-too=
ltip-y); transform: translateY(-0.4rem); transition: transform 0.25s, opaci=
ty 0.25s, z-index 0.25s; width: var(--md-tooltip-width); z-index: 0; }
.md-tooltip--active { opacity: 1; transform: translateY(0px); transition: t=
ransform 0.25s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.25s, z-index; z-in=
dex: 2; }
.focus-visible > .md-tooltip, .md-tooltip:target { outline: var(--md-accent=
-fg-color) auto; }
.md-tooltip__inner { font-size: 0.64rem; padding: 0.8rem; }
.md-tooltip__inner.md-typeset > :first-child { margin-top: 0px; }
.md-tooltip__inner.md-typeset > :last-child { margin-bottom: 0px; }
.md-annotation { font-weight: 400; outline: none; white-space: normal; }
[dir=3D"rtl"] .md-annotation { direction: rtl; }
.md-annotation:not([hidden]) { display: inline-block; line-height: 1.325; }
.md-annotation__index { cursor: pointer; font-family: var(--md-code-font-fa=
mily); font-size: 0.85em; margin: 0px 1ch; outline: none; position: relativ=
e; user-select: none; z-index: 0; }
.md-annotation .md-annotation__index { color: rgb(255, 255, 255); transitio=
n: z-index 0.25s; }
.md-annotation .md-annotation__index:focus, .md-annotation .md-annotation__=
index:hover { color: rgb(255, 255, 255); }
.md-annotation__index::after { background-color: var(--md-default-fg-color-=
-lighter); border-radius: 2ch 2ch 2ch 2ch / 2ch 2ch 2ch 2ch; content: ""; h=
eight: 2.2ch; left: -0.125em; margin: 0px -0.4ch; padding: 0px 0.4ch; posit=
ion: absolute; top: 0px; transition: color 0.25s, background-color 0.25s; w=
idth: max(2.2ch, 100% + 1.2ch); z-index: -1; }
@media not all and (prefers-reduced-motion) {
[data-md-visible] > .md-annotation__index::after { animation: 2s ease 0s =
infinite normal none running pulse; }
}
.md-tooltip--active + .md-annotation__index::after { animation: auto ease 0=
s 1 normal none running none; transition: color 0.25s, background-color 0.2=
5s; }
code .md-annotation__index { font-family: var(--md-code-font-family); font-=
size: inherit; }
.md-tooltip--active + .md-annotation__index, :hover > .md-annotation__index=
{ color: var(--md-accent-bg-color); }
.md-tooltip--active + .md-annotation__index::after, :hover > .md-annotation=
__index::after { background-color: var(--md-accent-fg-color); }
.md-tooltip--active + .md-annotation__index { animation: auto ease 0s 1 nor=
mal none running none; transition: none; z-index: 2; }
.md-annotation__index [data-md-annotation-id] { display: inline-block; line=
-height: 90%; }
.md-annotation__index [data-md-annotation-id]::before { content: attr(data-=
md-annotation-id); display: inline-block; padding-bottom: 0.1em; transform:=
scale(1.15); transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1); ve=
rtical-align: 0.065em; }
@media not print {
.md-annotation__index [data-md-annotation-id]::before { content: "+"; }
:focus-within > .md-annotation__index [data-md-annotation-id]::before { t=
ransform: scale(1.25) rotate(45deg); }
}
[dir=3D"ltr"] .md-top { margin-left: 50%; }
[dir=3D"rtl"] .md-top { margin-right: 50%; }
.md-top { background-color: var(--md-default-bg-color); border-radius: 1.6r=
em; box-shadow: var(--md-shadow-z2); color: var(--md-default-fg-color--ligh=
t); cursor: pointer; display: block; font-size: 0.7rem; outline: none; padd=
ing: 0.4rem 0.8rem; position: fixed; top: 3.2rem; transform: translate(-50%=
); transition: color 125ms, background-color 125ms, transform 125ms cubic-b=
ezier(0.4, 0, 0.2, 1), opacity 125ms; z-index: 2; }
@media print {
.md-top { display: none; }
}
[dir=3D"rtl"] .md-top { transform: translate(50%); }
.md-top[hidden] { opacity: 0; pointer-events: none; transform: translate(-5=
0%, 0.2rem); transition-duration: 0ms; }
[dir=3D"rtl"] .md-top[hidden] { transform: translate(50%, 0.2rem); }
.md-top:focus, .md-top:hover { background-color: var(--md-accent-fg-color);=
color: var(--md-accent-bg-color); }
.md-top svg { display: inline-block; vertical-align: -0.5em; }
@keyframes hoverfix {=20
0% { pointer-events: none; }
}
:root { --md-version-icon: url('data:image/svg+xml;charset=3Dutf-8,<svg xml=
ns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 320 512"><!--! Font Awesom=
e Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fo=
ntawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT=
License) Copyright 2023 Fonticons, Inc.--><path d=3D"M137.4 374.6c12.5 12.=
5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S301 191.9 288 191.9L3=
2 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"/></svg>'); }
.md-version { flex-shrink: 0; font-size: 0.8rem; height: 2.4rem; }
[dir=3D"ltr"] .md-version__current { margin-left: 1.4rem; margin-right: 0.4=
rem; }
[dir=3D"rtl"] .md-version__current { margin-left: 0.4rem; margin-right: 1.4=
rem; }
.md-version__current { color: inherit; cursor: pointer; outline: none; posi=
tion: relative; top: 0.05rem; }
[dir=3D"ltr"] .md-version__current::after { margin-left: 0.4rem; }
[dir=3D"rtl"] .md-version__current::after { margin-right: 0.4rem; }
.md-version__current::after { background-color: currentcolor; content: ""; =
display: inline-block; height: 0.6rem; mask-image: var(--md-version-icon); =
mask-position: center center; mask-repeat: no-repeat; mask-size: contain; w=
idth: 0.4rem; }
.md-version__list { background-color: var(--md-default-bg-color); border-ra=
dius: 0.1rem; box-shadow: var(--md-shadow-z2); color: var(--md-default-fg-c=
olor); list-style-type: none; margin: 0.2rem 0.8rem; max-height: 0px; opaci=
ty: 0; overflow: auto; padding: 0px; position: absolute; scroll-snap-type: =
y mandatory; top: 0.15rem; transition: max-height 0.5s, opacity 0.25s 0.25s=
; z-index: 3; }
.md-version:focus-within .md-version__list, .md-version:hover .md-version__=
list { max-height: 10rem; opacity: 1; transition: max-height, opacity 0.25s=
; }
@media (pointer: coarse) {
.md-version:hover .md-version__list { animation: 0.25s ease 0s 1 normal f=
orwards running hoverfix; }
.md-version:focus-within .md-version__list { animation: auto ease 0s 1 no=
rmal none running none; }
}
.md-version__item { line-height: 1.8rem; }
[dir=3D"ltr"] .md-version__link { padding-left: 0.6rem; padding-right: 1.2r=
em; }
[dir=3D"rtl"] .md-version__link { padding-left: 1.2rem; padding-right: 0.6r=
em; }
.md-version__link { cursor: pointer; display: block; outline: none; scroll-=
snap-align: start; transition: color 0.25s, background-color 0.25s; white-s=
pace: nowrap; width: 100%; }
.md-version__link:focus, .md-version__link:hover { color: var(--md-accent-f=
g-color); }
.md-version__link:focus { background-color: var(--md-default-fg-color--ligh=
test); }
:root { --md-admonition-icon--note: url('data:image/svg+xml;charset=3Dutf-8=
,<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=3D=
"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m3.1 5.07=
c.14 0 .28.05.4.16l1.27 1.27c.23.22.23.57 0 .78l-1 1-2.05-2.05 1-1c.1-.11.2=
4-.16.38-.16m-1.97 1.74 2.06 2.06-6.06 6.06H7.07v-2.06l6.06-6.06Z"/></svg>'=
); --md-admonition-icon--abstract: url('data:image/svg+xml;charset=3Dutf-8,=
<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=3D"=
M17 9H7V7h10m0 6H7v-2h10m-3 6H7v-2h7M12 3a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0=
0 1-1-1 1 1 0 0 1 1-1m7 0h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2=
H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Z"/></svg=
>'); --md-admonition-icon--info: url('data:image/svg+xml;charset=3Dutf-8,<s=
vg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=3D"M1=
3 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0=
10-10A10 10 0 0 0 12 2Z"/></svg>'); --md-admonition-icon--tip: url('data:i=
mage/svg+xml;charset=3Dutf-8,<svg xmlns=3D"http://www.w3.org/2000/svg" view=
Box=3D"0 0 24 24"><path d=3D"M17.66 11.2c-.23-.3-.51-.56-.77-.82-.67-.6-1.4=
3-1.03-2.07-1.66C13.33 7.26 13 4.85 13.95 3c-.95.23-1.78.75-2.49 1.32-2.59 =
2.08-3.61 5.75-2.39 8.9.04.1.08.2.08.33 0 .22-.15.42-.35.5-.23.1-.47.04-.66=
-.12a.58.58 0 0 1-.14-.17c-1.13-1.43-1.31-3.48-.55-5.12C5.78 10 4.87 12.3 5=
14.47c.06.5.12 1 .29 1.5.14.6.41 1.2.71 1.73 1.08 1.73 2.95 2.97 4.96 3.22=
2.14.27 4.43-.12 6.07-1.6 1.83-1.66 2.47-4.32 1.53-6.6l-.13-.26c-.21-.46-.=
77-1.26-.77-1.26m-3.16 6.3c-.28.24-.74.5-1.1.6-1.12.4-2.24-.16-2.9-.82 1.19=
-.28 1.9-1.16 2.11-2.05.17-.8-.15-1.46-.28-2.23-.12-.74-.1-1.37.17-2.06.19.=
38.39.76.63 1.06.77 1 1.98 1.44 2.24 2.8.04.14.06.28.06.43.03.82-.33 1.72-.=
93 2.27Z"/></svg>'); --md-admonition-icon--success: url('data:image/svg+xml=
;charset=3Dutf-8,<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 2=
4 24"><path d=3D"M21 7 9 19l-5.5-5.5 1.41-1.41L9 16.17 19.59 5.59 21 7Z"/><=
/svg>'); --md-admonition-icon--question: url('data:image/svg+xml;charset=3D=
utf-8,<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path=
d=3D"m15.07 11.25-.9.92C13.45 12.89 13 13.5 13 15h-2v-.5c0-1.11.45-2.11 1.=
17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41a2 2 0 0 0-2-2 2 2 0 0 0-2 2H8a4 4 =
0 0 1 4-4 4 4 0 0 1 4 4 3.2 3.2 0 0 1-.93 2.25M13 19h-2v-2h2M12 2A10 10 0 0=
0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10c0-5.53-4.5-10-10-10Z"/></svg>')=
; --md-admonition-icon--warning: url('data:image/svg+xml;charset=3Dutf-8,<s=
vg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=3D"M1=
3 14h-2V9h2m0 9h-2v-2h2M1 21h22L12 2 1 21Z"/></svg>'); --md-admonition-icon=
--failure: url('data:image/svg+xml;charset=3Dutf-8,<svg xmlns=3D"http://www=
.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=3D"M19 6.41 17.59 5 12 10.5=
9 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 1=
2 19 6.41Z"/></svg>'); --md-admonition-icon--danger: url('data:image/svg+xm=
l;charset=3Dutf-8,<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 =
24 24"><path d=3D"m11.5 20 4.86-9.73H13V4l-5 9.73h3.5V20M12 2c2.75 0 5.1 1 =
7.05 2.95C21 6.9 22 9.25 22 12s-1 5.1-2.95 7.05C17.1 21 14.75 22 12 22s-5.1=
-1-7.05-2.95C3 17.1 2 14.75 2 12s1-5.1 2.95-7.05C6.9 3 9.25 2 12 2Z"/></svg=
>'); --md-admonition-icon--bug: url('data:image/svg+xml;charset=3Dutf-8,<sv=
g xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=3D"M11=
13h2v1h-2v-1m10-8v6c0 5.5-3.8 10.7-9 12-5.2-1.3-9-6.5-9-12V5l9-4 9 4m-4 5h=
-2.2c-.2-.6-.6-1.1-1.1-1.5l1.2-1.2-.7-.7L12.8 8H12c-.2 0-.5 0-.7.1L9.9 6.6l=
-.8.8 1.2 1.2c-.5.3-.9.8-1.1 1.4H7v1h2v1H7v1h2v1H7v1h2.2c.4 1.2 1.5 2 2.8 2=
s2.4-.8 2.8-2H17v-1h-2v-1h2v-1h-2v-1h2v-1m-6 2h2v-1h-2v1Z"/></svg>'); --md-=
admonition-icon--example: url('data:image/svg+xml;charset=3Dutf-8,<svg xmln=
s=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=3D"M7 2v2h1v=
14a4 4 0 0 0 4 4 4 4 0 0 0 4-4V4h1V2H7m4 14c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 =
1-.4 1-1 1m2-4c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1m1-5h-4V4h4v3Z"/></=
svg>'); --md-admonition-icon--quote: url('data:image/svg+xml;charset=3Dutf-=
8,<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=
=3D"M14 17h3l2-4V7h-6v6h3M6 17h3l2-4V7H5v6h3l-2 4Z"/></svg>'); }
.md-typeset .admonition, .md-typeset details { background-color: var(--md-a=
dmonition-bg-color); border: 0.05rem solid rgb(68, 138, 255); border-radius=
: 0.2rem; box-shadow: var(--md-shadow-z1); color: var(--md-admonition-fg-co=
lor); display: flow-root; font-size: 0.64rem; margin: 1.5625em 0px; padding=
: 0px 0.6rem; break-inside: avoid; }
@media print {
.md-typeset .admonition, .md-typeset details { box-shadow: none; }
}
.md-typeset .admonition > *, .md-typeset details > * { box-sizing: border-b=
ox; }
.md-typeset .admonition .admonition, .md-typeset .admonition details, .md-t=
ypeset details .admonition, .md-typeset details details { margin-bottom: 1e=
m; margin-top: 1em; }
.md-typeset .admonition .md-typeset__scrollwrap, .md-typeset details .md-ty=
peset__scrollwrap { margin: 1em -0.6rem; }
.md-typeset .admonition .md-typeset__table, .md-typeset details .md-typeset=
__table { padding: 0px 0.6rem; }
.md-typeset .admonition > .tabbed-set:only-child, .md-typeset details > .ta=
bbed-set:only-child { margin-top: 0px; }
html .md-typeset .admonition > :last-child, html .md-typeset details > :las=
t-child { margin-bottom: 0.6rem; }
[dir=3D"ltr"] .md-typeset .admonition-title, [dir=3D"ltr"] .md-typeset summ=
ary { padding-left: 2rem; padding-right: 0.6rem; }
[dir=3D"rtl"] .md-typeset .admonition-title, [dir=3D"rtl"] .md-typeset summ=
ary { padding-left: 0.6rem; padding-right: 2rem; }
[dir=3D"ltr"] .md-typeset .admonition-title, [dir=3D"ltr"] .md-typeset summ=
ary { border-left-width: 0.2rem; }
[dir=3D"rtl"] .md-typeset .admonition-title, [dir=3D"rtl"] .md-typeset summ=
ary { border-right-width: 0.2rem; }
[dir=3D"ltr"] .md-typeset .admonition-title, [dir=3D"ltr"] .md-typeset summ=
ary { border-top-left-radius: 0.1rem; }
[dir=3D"ltr"] .md-typeset .admonition-title, [dir=3D"ltr"] .md-typeset summ=
ary, [dir=3D"rtl"] .md-typeset .admonition-title, [dir=3D"rtl"] .md-typeset=
summary { border-top-right-radius: 0.1rem; }
[dir=3D"rtl"] .md-typeset .admonition-title, [dir=3D"rtl"] .md-typeset summ=
ary { border-top-left-radius: 0.1rem; }
.md-typeset .admonition-title, .md-typeset summary { background-color: rgba=
(68, 138, 255, 0.1); border: none; font-weight: 700; margin: 0px -0.6rem; p=
adding-bottom: 0.4rem; padding-top: 0.4rem; position: relative; }
html .md-typeset .admonition-title:last-child, html .md-typeset summary:las=
t-child { margin-bottom: 0px; }
[dir=3D"ltr"] .md-typeset .admonition-title::before, [dir=3D"ltr"] .md-type=
set summary::before { left: 0.6rem; }
[dir=3D"rtl"] .md-typeset .admonition-title::before, [dir=3D"rtl"] .md-type=
set summary::before { right: 0.6rem; }
.md-typeset .admonition-title::before, .md-typeset summary::before { backgr=
ound-color: rgb(68, 138, 255); content: ""; height: 1rem; mask-image: var(-=
-md-admonition-icon--note); mask-position: center center; mask-repeat: no-r=
epeat; mask-size: contain; position: absolute; top: 0.625em; width: 1rem; }
.md-typeset .admonition-title code, .md-typeset summary code { box-shadow: =
0 0 0 .05rem var(--md-default-fg-color--lightest); }
.md-typeset .admonition.note, .md-typeset details.note { border-color: rgb(=
68, 138, 255); }
.md-typeset .note > .admonition-title, .md-typeset .note > summary { backgr=
ound-color: rgba(68, 138, 255, 0.1); }
.md-typeset .note > .admonition-title::before, .md-typeset .note > summary:=
:before { background-color: rgb(68, 138, 255); mask-image: var(--md-admonit=
ion-icon--note); }
.md-typeset .note > .admonition-title::after, .md-typeset .note > summary::=
after { color: rgb(68, 138, 255); }
.md-typeset .admonition.abstract, .md-typeset details.abstract { border-col=
or: rgb(0, 176, 255); }
.md-typeset .abstract > .admonition-title, .md-typeset .abstract > summary =
{ background-color: rgba(0, 176, 255, 0.1); }
.md-typeset .abstract > .admonition-title::before, .md-typeset .abstract > =
summary::before { background-color: rgb(0, 176, 255); mask-image: var(--md-=
admonition-icon--abstract); }
.md-typeset .abstract > .admonition-title::after, .md-typeset .abstract > s=
ummary::after { color: rgb(0, 176, 255); }
.md-typeset .admonition.info, .md-typeset details.info { border-color: rgb(=
0, 184, 212); }
.md-typeset .info > .admonition-title, .md-typeset .info > summary { backgr=
ound-color: rgba(0, 184, 212, 0.1); }
.md-typeset .info > .admonition-title::before, .md-typeset .info > summary:=
:before { background-color: rgb(0, 184, 212); mask-image: var(--md-admoniti=
on-icon--info); }
.md-typeset .info > .admonition-title::after, .md-typeset .info > summary::=
after { color: rgb(0, 184, 212); }
.md-typeset .admonition.tip, .md-typeset details.tip { border-color: rgb(0,=
191, 165); }
.md-typeset .tip > .admonition-title, .md-typeset .tip > summary { backgrou=
nd-color: rgba(0, 191, 165, 0.1); }
.md-typeset .tip > .admonition-title::before, .md-typeset .tip > summary::b=
efore { background-color: rgb(0, 191, 165); mask-image: var(--md-admonition=
-icon--tip); }
.md-typeset .tip > .admonition-title::after, .md-typeset .tip > summary::af=
ter { color: rgb(0, 191, 165); }
.md-typeset .admonition.success, .md-typeset details.success { border-color=
: rgb(0, 200, 83); }
.md-typeset .success > .admonition-title, .md-typeset .success > summary { =
background-color: rgba(0, 200, 83, 0.1); }
.md-typeset .success > .admonition-title::before, .md-typeset .success > su=
mmary::before { background-color: rgb(0, 200, 83); mask-image: var(--md-adm=
onition-icon--success); }
.md-typeset .success > .admonition-title::after, .md-typeset .success > sum=
mary::after { color: rgb(0, 200, 83); }
.md-typeset .admonition.question, .md-typeset details.question { border-col=
or: rgb(100, 221, 23); }
.md-typeset .question > .admonition-title, .md-typeset .question > summary =
{ background-color: rgba(100, 221, 23, 0.1); }
.md-typeset .question > .admonition-title::before, .md-typeset .question > =
summary::before { background-color: rgb(100, 221, 23); mask-image: var(--md=
-admonition-icon--question); }
.md-typeset .question > .admonition-title::after, .md-typeset .question > s=
ummary::after { color: rgb(100, 221, 23); }
.md-typeset .admonition.warning, .md-typeset details.warning { border-color=
: rgb(255, 145, 0); }
.md-typeset .warning > .admonition-title, .md-typeset .warning > summary { =
background-color: rgba(255, 145, 0, 0.1); }
.md-typeset .warning > .admonition-title::before, .md-typeset .warning > su=
mmary::before { background-color: rgb(255, 145, 0); mask-image: var(--md-ad=
monition-icon--warning); }
.md-typeset .warning > .admonition-title::after, .md-typeset .warning > sum=
mary::after { color: rgb(255, 145, 0); }
.md-typeset .admonition.failure, .md-typeset details.failure { border-color=
: rgb(255, 82, 82); }
.md-typeset .failure > .admonition-title, .md-typeset .failure > summary { =
background-color: rgba(255, 82, 82, 0.1); }
.md-typeset .failure > .admonition-title::before, .md-typeset .failure > su=
mmary::before { background-color: rgb(255, 82, 82); mask-image: var(--md-ad=
monition-icon--failure); }
.md-typeset .failure > .admonition-title::after, .md-typeset .failure > sum=
mary::after { color: rgb(255, 82, 82); }
.md-typeset .admonition.danger, .md-typeset details.danger { border-color: =
rgb(255, 23, 68); }
.md-typeset .danger > .admonition-title, .md-typeset .danger > summary { ba=
ckground-color: rgba(255, 23, 68, 0.1); }
.md-typeset .danger > .admonition-title::before, .md-typeset .danger > summ=
ary::before { background-color: rgb(255, 23, 68); mask-image: var(--md-admo=
nition-icon--danger); }
.md-typeset .danger > .admonition-title::after, .md-typeset .danger > summa=
ry::after { color: rgb(255, 23, 68); }
.md-typeset .admonition.bug, .md-typeset details.bug { border-color: rgb(24=
5, 0, 87); }
.md-typeset .bug > .admonition-title, .md-typeset .bug > summary { backgrou=
nd-color: rgba(245, 0, 87, 0.1); }
.md-typeset .bug > .admonition-title::before, .md-typeset .bug > summary::b=
efore { background-color: rgb(245, 0, 87); mask-image: var(--md-admonition-=
icon--bug); }
.md-typeset .bug > .admonition-title::after, .md-typeset .bug > summary::af=
ter { color: rgb(245, 0, 87); }
.md-typeset .admonition.example, .md-typeset details.example { border-color=
: rgb(124, 77, 255); }
.md-typeset .example > .admonition-title, .md-typeset .example > summary { =
background-color: rgba(124, 77, 255, 0.1); }
.md-typeset .example > .admonition-title::before, .md-typeset .example > su=
mmary::before { background-color: rgb(124, 77, 255); mask-image: var(--md-a=
dmonition-icon--example); }
.md-typeset .example > .admonition-title::after, .md-typeset .example > sum=
mary::after { color: rgb(124, 77, 255); }
.md-typeset .admonition.quote, .md-typeset details.quote { border-color: rg=
b(158, 158, 158); }
.md-typeset .quote > .admonition-title, .md-typeset .quote > summary { back=
ground-color: rgba(158, 158, 158, 0.1); }
.md-typeset .quote > .admonition-title::before, .md-typeset .quote > summar=
y::before { background-color: rgb(158, 158, 158); mask-image: var(--md-admo=
nition-icon--quote); }
.md-typeset .quote > .admonition-title::after, .md-typeset .quote > summary=
::after { color: rgb(158, 158, 158); }
:root { --md-footnotes-icon: url('data:image/svg+xml;charset=3Dutf-8,<svg x=
mlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=3D"M19 7v=
4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.42L5.83 13H21V7h-2Z"/></svg>'); }
.md-typeset .footnote { color: var(--md-default-fg-color--light); font-size=
: 0.64rem; }
[dir=3D"ltr"] .md-typeset .footnote > ol { margin-left: 0px; }
[dir=3D"rtl"] .md-typeset .footnote > ol { margin-right: 0px; }
.md-typeset .footnote > ol > li { transition: color 125ms; }
.md-typeset .footnote > ol > li:target { color: var(--md-default-fg-color);=
}
.md-typeset .footnote > ol > li:focus-within .footnote-backref { opacity: 1=
; transform: translateX(0px); transition: none; }
.md-typeset .footnote > ol > li:hover .footnote-backref, .md-typeset .footn=
ote > ol > li:target .footnote-backref { opacity: 1; transform: translateX(=
0px); }
.md-typeset .footnote > ol > li > :first-child { margin-top: 0px; }
.md-typeset .footnote-ref { font-size: 0.75em; font-weight: 700; }
html .md-typeset .footnote-ref { outline-offset: 0.1rem; }
.md-typeset [id^=3D"fnref:"]:target > .footnote-ref { outline: auto; }
.md-typeset .footnote-backref { color: var(--md-typeset-a-color); display: =
inline-block; font-size: 0px; opacity: 0; transform: translateX(0.25rem); t=
ransition: color 0.25s, transform 0.25s 0.25s, opacity 125ms 0.25s; vertica=
l-align: text-bottom; }
@media print {
.md-typeset .footnote-backref { color: var(--md-typeset-a-color); opacity=
: 1; transform: translateX(0px); }
}
[dir=3D"rtl"] .md-typeset .footnote-backref { transform: translateX(-0.25re=
m); }
.md-typeset .footnote-backref:hover { color: var(--md-accent-fg-color); }
.md-typeset .footnote-backref::before { background-color: currentcolor; con=
tent: ""; display: inline-block; height: 0.8rem; mask-image: var(--md-footn=
otes-icon); mask-position: center center; mask-repeat: no-repeat; mask-size=
: contain; width: 0.8rem; }
[dir=3D"ltr"] .md-typeset .headerlink { margin-left: 0.5rem; }
[dir=3D"rtl"] .md-typeset .headerlink { margin-right: 0.5rem; }
.md-typeset .headerlink { color: var(--md-default-fg-color--lighter); displ=
ay: inline-block; opacity: 0; transition: color 0.25s, opacity 125ms; }
@media print {
.md-typeset .headerlink { display: none; }
}
.md-typeset .headerlink:focus, .md-typeset :hover > .headerlink, .md-typese=
t :target > .headerlink { opacity: 1; transition: color 0.25s, opacity 125m=
s; }
.md-typeset .headerlink:focus, .md-typeset .headerlink:hover, .md-typeset :=
target > .headerlink { color: var(--md-accent-fg-color); }
.md-typeset :target { --md-scroll-margin: 3.6rem; --md-scroll-offset: 0rem;=
scroll-margin-top: calc(var(--md-scroll-margin) - var(--md-scroll-offset))=
; }
@media screen and (min-width: 76.25em) {
.md-header--lifted ~ .md-container .md-typeset :target { --md-scroll-marg=
in: 6rem; }
}
.md-typeset h1:target, .md-typeset h2:target, .md-typeset h3:target { --md-=
scroll-offset: 0.2rem; }
.md-typeset h4:target { --md-scroll-offset: 0.15rem; }
.md-typeset div.arithmatex { overflow: auto; }
@media screen and (max-width: 44.9375em) {
.md-typeset div.arithmatex { margin: 0px -0.8rem; }
}
.md-typeset div.arithmatex > * { padding: 0px 0.8rem; touch-action: auto; w=
idth: min-content; margin-left: auto !important; margin-right: auto !import=
ant; }
.md-typeset div.arithmatex > * mjx-container { margin: 0px !important; }
.md-typeset del.critic { background-color: var(--md-typeset-del-color); }
.md-typeset del.critic, .md-typeset ins.critic { -webkit-box-decoration-bre=
ak: clone; }
.md-typeset ins.critic { background-color: var(--md-typeset-ins-color); }
.md-typeset .critic.comment { -webkit-box-decoration-break: clone; color: v=
ar(--md-code-hl-comment-color); }
.md-typeset .critic.comment::before { content: "/* "; }
.md-typeset .critic.comment::after { content: " */"; }
.md-typeset .critic.block { box-shadow: none; display: block; margin: 1em 0=
px; overflow: auto; padding-left: 0.8rem; padding-right: 0.8rem; }
.md-typeset .critic.block > :first-child { margin-top: 0.5em; }
.md-typeset .critic.block > :last-child { margin-bottom: 0.5em; }
:root { --md-details-icon: url('data:image/svg+xml;charset=3Dutf-8,<svg xml=
ns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=3D"M8.59 16=
.58 13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42Z"/></svg>'); }
.md-typeset details { display: flow-root; overflow: visible; padding-top: 0=
px; }
.md-typeset details[open] > summary::after { transform: rotate(90deg); }
.md-typeset details:not([open]) { box-shadow: none; padding-bottom: 0px; }
.md-typeset details:not([open]) > summary { border-radius: 0.1rem; }
[dir=3D"ltr"] .md-typeset summary { padding-right: 1.8rem; }
[dir=3D"rtl"] .md-typeset summary { padding-left: 1.8rem; }
[dir=3D"ltr"] .md-typeset summary { border-top-left-radius: 0.1rem; }
[dir=3D"ltr"] .md-typeset summary, [dir=3D"rtl"] .md-typeset summary { bord=
er-top-right-radius: 0.1rem; }
[dir=3D"rtl"] .md-typeset summary { border-top-left-radius: 0.1rem; }
.md-typeset summary { cursor: pointer; display: block; min-height: 1rem; }
.md-typeset summary.focus-visible { outline-color: var(--md-accent-fg-color=
); outline-offset: 0.2rem; }
.md-typeset summary:not(.focus-visible) { -webkit-tap-highlight-color: tran=
sparent; outline: none; }
[dir=3D"ltr"] .md-typeset summary::after { right: 0.4rem; }
[dir=3D"rtl"] .md-typeset summary::after { left: 0.4rem; }
.md-typeset summary::after { background-color: currentcolor; content: ""; h=
eight: 1rem; mask-image: var(--md-details-icon); mask-position: center cent=
er; mask-repeat: no-repeat; mask-size: contain; position: absolute; top: 0.=
625em; transform: rotate(0deg); transition: transform 0.25s; width: 1rem; }
[dir=3D"rtl"] .md-typeset summary::after { transform: rotate(180deg); }
.md-typeset summary::marker { display: none; }
.md-typeset summary::-webkit-details-marker { display: none; }
.md-typeset .emojione, .md-typeset .gemoji, .md-typeset .twemoji { display:=
inline-flex; height: 1.125em; vertical-align: text-top; }
.md-typeset .emojione svg, .md-typeset .gemoji svg, .md-typeset .twemoji sv=
g { fill: currentcolor; max-height: 100%; width: 1.125em; }
.highlight .o, .highlight .ow { color: var(--md-code-hl-operator-color); }
.highlight .p { color: var(--md-code-hl-punctuation-color); }
.highlight .cpf, .highlight .l, .highlight .s, .highlight .s1, .highlight .=
s2, .highlight .sb, .highlight .sc, .highlight .si, .highlight .ss { color:=
var(--md-code-hl-string-color); }
.highlight .cp, .highlight .se, .highlight .sh, .highlight .sr, .highlight =
.sx { color: var(--md-code-hl-special-color); }
.highlight .il, .highlight .m, .highlight .mb, .highlight .mf, .highlight .=
mh, .highlight .mi, .highlight .mo { color: var(--md-code-hl-number-color);=
}
.highlight .k, .highlight .kd, .highlight .kn, .highlight .kp, .highlight .=
kr, .highlight .kt { color: var(--md-code-hl-keyword-color); }
.highlight .kc, .highlight .n { color: var(--md-code-hl-name-color); }
.highlight .bp, .highlight .nb, .highlight .no { color: var(--md-code-hl-co=
nstant-color); }
.highlight .nc, .highlight .ne, .highlight .nf, .highlight .nn { color: var=
(--md-code-hl-function-color); }
.highlight .nd, .highlight .ni, .highlight .nl, .highlight .nt { color: var=
(--md-code-hl-keyword-color); }
.highlight .c, .highlight .c1, .highlight .ch, .highlight .cm, .highlight .=
cs, .highlight .sd { color: var(--md-code-hl-comment-color); }
.highlight .na, .highlight .nv, .highlight .vc, .highlight .vg, .highlight =
.vi { color: var(--md-code-hl-variable-color); }
.highlight .ge, .highlight .gh, .highlight .go, .highlight .gp, .highlight =
.gr, .highlight .gs, .highlight .gt, .highlight .gu { color: var(--md-code-=
hl-generic-color); }
.highlight .gd, .highlight .gi { border-radius: 0.1rem; margin: 0px -0.125e=
m; padding: 0px 0.125em; }
.highlight .gd { background-color: var(--md-typeset-del-color); }
.highlight .gi { background-color: var(--md-typeset-ins-color); }
.highlight .hll { background-color: var(--md-code-hl-color); display: block=
; margin: 0px -1.17647em; padding: 0px 1.17647em; }
.highlight span.filename { background-color: var(--md-code-bg-color); borde=
r-bottom: .05rem solid var(--md-default-fg-color--lightest); border-top-lef=
t-radius: 0.1rem; border-top-right-radius: 0.1rem; display: flow-root; font=
-size: 0.85em; font-weight: 700; margin-top: 1em; padding: 0.661765em 1.176=
47em; position: relative; }
.highlight span.filename + pre { margin-top: 0px; }
.highlight span.filename + pre > code { border-top-left-radius: 0px; border=
-top-right-radius: 0px; }
.highlight [data-linenos]::before { background-color: var(--md-code-bg-colo=
r); box-shadow: -.05rem 0 var(--md-default-fg-color--lightest) inset; color=
: var(--md-default-fg-color--light); content: attr(data-linenos); float: le=
ft; left: -1.17647em; margin-left: -1.17647em; margin-right: 1.17647em; pad=
ding-left: 1.17647em; position: sticky; user-select: none; z-index: 3; }
.highlight code a[id] { position: absolute; visibility: hidden; }
.highlight code[data-md-copying] .hll { display: contents; }
.highlight code[data-md-copying] .md-annotation { display: none; }
.highlighttable { display: flow-root; }
.highlighttable tbody, .highlighttable td { display: block; padding: 0px; }
.highlighttable tr { display: flex; }
.highlighttable pre { margin: 0px; }
.highlighttable th.filename { flex-grow: 1; padding: 0px; text-align: left;=
}
.highlighttable th.filename span.filename { margin-top: 0px; }
.highlighttable .linenos { background-color: var(--md-code-bg-color); borde=
r-bottom-left-radius: 0.1rem; border-top-left-radius: 0.1rem; font-size: 0.=
85em; padding: 0.772059em 0px 0.772059em 1.17647em; user-select: none; }
.highlighttable .linenodiv { box-shadow: -.05rem 0 var(--md-default-fg-colo=
r--lightest) inset; padding-right: 0.588235em; }
.highlighttable .linenodiv pre { color: var(--md-default-fg-color--light); =
text-align: right; }
.highlighttable .code { flex: 1 1 0%; min-width: 0px; }
.linenodiv a { color: inherit; }
.md-typeset .highlighttable { direction: ltr; margin: 1em 0px; }
.md-typeset .highlighttable > tbody > tr > .code > div > pre > code { borde=
r-bottom-left-radius: 0px; border-top-left-radius: 0px; }
.md-typeset .highlight + .result { border-top-color: ; border-top-style: ; =
border-right-color: ; border-right-style: ; border-right-width: ; border-bo=
ttom-color: ; border-bottom-style: ; border-bottom-width: ; border-left-col=
or: ; border-left-style: ; border-left-width: ; border-image-source: ; bord=
er-image-slice: ; border-image-width: ; border-image-outset: ; border-image=
-repeat: ; border-bottom-left-radius: 0.1rem; border-bottom-right-radius: 0=
.1rem; border-top-width: 0.1rem; margin-top: -1.125em; overflow: visible; p=
adding: 0px 1em; }
.md-typeset .highlight + .result::after { clear: both; content: ""; display=
: block; }
@media screen and (max-width: 44.9375em) {
.md-content__inner > .highlight { margin: 1em -0.8rem; }
.md-content__inner > .highlight > .filename, .md-content__inner > .highli=
ght > .highlighttable > tbody > tr > .code > div > pre > code, .md-content_=
_inner > .highlight > .highlighttable > tbody > tr > .filename span.filenam=
e, .md-content__inner > .highlight > .highlighttable > tbody > tr > .lineno=
s, .md-content__inner > .highlight > pre > code { border-radius: 0px; }
.md-content__inner > .highlight + .result { border-left-width: 0px; borde=
r-radius: 0px; border-right-width: 0px; margin-left: -0.8rem; margin-right:=
-0.8rem; }
}
.md-typeset .keys kbd::after, .md-typeset .keys kbd::before { -webkit-font-=
smoothing: initial; color: inherit; margin: 0px; position: relative; }
.md-typeset .keys span { color: var(--md-default-fg-color--light); padding:=
0px 0.2em; }
.md-typeset .keys .key-alt::before, .md-typeset .keys .key-left-alt::before=
, .md-typeset .keys .key-right-alt::before { content: "=E2=8E=87"; padding-=
right: 0.4em; }
.md-typeset .keys .key-command::before, .md-typeset .keys .key-left-command=
::before, .md-typeset .keys .key-right-command::before { content: "=E2=8C=
=98"; padding-right: 0.4em; }
.md-typeset .keys .key-control::before, .md-typeset .keys .key-left-control=
::before, .md-typeset .keys .key-right-control::before { content: "=E2=8C=
=83"; padding-right: 0.4em; }
.md-typeset .keys .key-left-meta::before, .md-typeset .keys .key-meta::befo=
re, .md-typeset .keys .key-right-meta::before { content: "=E2=97=86"; paddi=
ng-right: 0.4em; }
.md-typeset .keys .key-left-option::before, .md-typeset .keys .key-option::=
before, .md-typeset .keys .key-right-option::before { content: "=E2=8C=A5";=
padding-right: 0.4em; }
.md-typeset .keys .key-left-shift::before, .md-typeset .keys .key-right-shi=
ft::before, .md-typeset .keys .key-shift::before { content: "=E2=87=A7"; pa=
dding-right: 0.4em; }
.md-typeset .keys .key-left-super::before, .md-typeset .keys .key-right-sup=
er::before, .md-typeset .keys .key-super::before { content: "=E2=9D=96"; pa=
dding-right: 0.4em; }
.md-typeset .keys .key-left-windows::before, .md-typeset .keys .key-right-w=
indows::before, .md-typeset .keys .key-windows::before { content: "=E2=8A=
=9E"; padding-right: 0.4em; }
.md-typeset .keys .key-arrow-down::before { content: "=E2=86=93"; padding-r=
ight: 0.4em; }
.md-typeset .keys .key-arrow-left::before { content: "=E2=86=90"; padding-r=
ight: 0.4em; }
.md-typeset .keys .key-arrow-right::before { content: "=E2=86=92"; padding-=
right: 0.4em; }
.md-typeset .keys .key-arrow-up::before { content: "=E2=86=91"; padding-rig=
ht: 0.4em; }
.md-typeset .keys .key-backspace::before { content: "=E2=8C=AB"; padding-ri=
ght: 0.4em; }
.md-typeset .keys .key-backtab::before { content: "=E2=87=A4"; padding-righ=
t: 0.4em; }
.md-typeset .keys .key-caps-lock::before { content: "=E2=87=AA"; padding-ri=
ght: 0.4em; }
.md-typeset .keys .key-clear::before { content: "=E2=8C=A7"; padding-right:=
0.4em; }
.md-typeset .keys .key-context-menu::before { content: "=E2=98=B0"; padding=
-right: 0.4em; }
.md-typeset .keys .key-delete::before { content: "=E2=8C=A6"; padding-right=
: 0.4em; }
.md-typeset .keys .key-eject::before { content: "=E2=8F=8F"; padding-right:=
0.4em; }
.md-typeset .keys .key-end::before { content: "=E2=A4=93"; padding-right: 0=
.4em; }
.md-typeset .keys .key-escape::before { content: "=E2=8E=8B"; padding-right=
: 0.4em; }
.md-typeset .keys .key-home::before { content: "=E2=A4=92"; padding-right: =
0.4em; }
.md-typeset .keys .key-insert::before { content: "=E2=8E=80"; padding-right=
: 0.4em; }
.md-typeset .keys .key-page-down::before { content: "=E2=87=9F"; padding-ri=
ght: 0.4em; }
.md-typeset .keys .key-page-up::before { content: "=E2=87=9E"; padding-righ=
t: 0.4em; }
.md-typeset .keys .key-print-screen::before { content: "=E2=8E=99"; padding=
-right: 0.4em; }
.md-typeset .keys .key-tab::after { content: "=E2=87=A5"; padding-left: 0.4=
em; }
.md-typeset .keys .key-num-enter::after { content: "=E2=8C=A4"; padding-lef=
t: 0.4em; }
.md-typeset .keys .key-enter::after { content: "=E2=8F=8E"; padding-left: 0=
.4em; }
:root { --md-tabbed-icon--prev: url('data:image/svg+xml;charset=3Dutf-8,<sv=
g xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=3D"M15=
.41 16.58 10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.42Z"/></svg>'); --md-tabb=
ed-icon--next: url('data:image/svg+xml;charset=3Dutf-8,<svg xmlns=3D"http:/=
/www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=3D"M8.59 16.58 13.17 12=
8.59 7.41 10 6l6 6-6 6-1.41-1.42Z"/></svg>'); }
.md-typeset .tabbed-set { border-radius: 0.1rem; display: flex; flex-flow: =
column wrap; margin: 1em 0px; position: relative; }
.md-typeset .tabbed-set > input { height: 0px; opacity: 0; position: absolu=
te; width: 0px; }
.md-typeset .tabbed-set > input:target { --md-scroll-offset: 0.625em; }
.md-typeset .tabbed-labels { box-shadow: 0 -.05rem var(--md-default-fg-colo=
r--lightest) inset; display: flex; max-width: 100%; overflow: auto; scrollb=
ar-width: none; }
@media print {
.md-typeset .tabbed-labels { display: contents; }
}
@media screen {
.js .md-typeset .tabbed-labels { position: relative; }
.js .md-typeset .tabbed-labels::before { background: var(--md-accent-fg-c=
olor); bottom: 0px; content: ""; display: block; height: 2px; left: 0px; po=
sition: absolute; transform: translateX(var(--md-indicator-x)); transition:=
width 225ms cubic-bezier(0.4, 0, 0.2, 1), transform 0.25s; width: var(--md=
-indicator-width); }
}
.md-typeset .tabbed-labels::-webkit-scrollbar { display: none; }
.md-typeset .tabbed-labels > label { border-bottom: 0.1rem solid rgba(0, 0,=
0, 0); border-radius: 0.1rem 0.1rem 0px 0px; color: var(--md-default-fg-co=
lor--light); cursor: pointer; flex-shrink: 0; font-size: 0.64rem; font-weig=
ht: 700; padding: 0.78125em 1.25em 0.625em; scroll-margin-inline-start: 1re=
m; transition: background-color 0.25s, color 0.25s; white-space: nowrap; wi=
dth: auto; }
@media print {
.md-typeset .tabbed-labels > label:first-child { order: 1; }
.md-typeset .tabbed-labels > label:nth-child(2) { order: 2; }
.md-typeset .tabbed-labels > label:nth-child(3) { order: 3; }
.md-typeset .tabbed-labels > label:nth-child(4) { order: 4; }
.md-typeset .tabbed-labels > label:nth-child(5) { order: 5; }
.md-typeset .tabbed-labels > label:nth-child(6) { order: 6; }
.md-typeset .tabbed-labels > label:nth-child(7) { order: 7; }
.md-typeset .tabbed-labels > label:nth-child(8) { order: 8; }
.md-typeset .tabbed-labels > label:nth-child(9) { order: 9; }
.md-typeset .tabbed-labels > label:nth-child(10) { order: 10; }
.md-typeset .tabbed-labels > label:nth-child(11) { order: 11; }
.md-typeset .tabbed-labels > label:nth-child(12) { order: 12; }
.md-typeset .tabbed-labels > label:nth-child(13) { order: 13; }
.md-typeset .tabbed-labels > label:nth-child(14) { order: 14; }
.md-typeset .tabbed-labels > label:nth-child(15) { order: 15; }
.md-typeset .tabbed-labels > label:nth-child(16) { order: 16; }
.md-typeset .tabbed-labels > label:nth-child(17) { order: 17; }
.md-typeset .tabbed-labels > label:nth-child(18) { order: 18; }
.md-typeset .tabbed-labels > label:nth-child(19) { order: 19; }
.md-typeset .tabbed-labels > label:nth-child(20) { order: 20; }
}
.md-typeset .tabbed-labels > label:hover { color: var(--md-accent-fg-color)=
; }
.md-typeset .tabbed-content { width: 100%; }
@media print {
.md-typeset .tabbed-content { display: contents; }
}
.md-typeset .tabbed-block { display: none; }
@media print {
.md-typeset .tabbed-block { display: block; }
.md-typeset .tabbed-block:first-child { order: 1; }
.md-typeset .tabbed-block:nth-child(2) { order: 2; }
.md-typeset .tabbed-block:nth-child(3) { order: 3; }
.md-typeset .tabbed-block:nth-child(4) { order: 4; }
.md-typeset .tabbed-block:nth-child(5) { order: 5; }
.md-typeset .tabbed-block:nth-child(6) { order: 6; }
.md-typeset .tabbed-block:nth-child(7) { order: 7; }
.md-typeset .tabbed-block:nth-child(8) { order: 8; }
.md-typeset .tabbed-block:nth-child(9) { order: 9; }
.md-typeset .tabbed-block:nth-child(10) { order: 10; }
.md-typeset .tabbed-block:nth-child(11) { order: 11; }
.md-typeset .tabbed-block:nth-child(12) { order: 12; }
.md-typeset .tabbed-block:nth-child(13) { order: 13; }
.md-typeset .tabbed-block:nth-child(14) { order: 14; }
.md-typeset .tabbed-block:nth-child(15) { order: 15; }
.md-typeset .tabbed-block:nth-child(16) { order: 16; }
.md-typeset .tabbed-block:nth-child(17) { order: 17; }
.md-typeset .tabbed-block:nth-child(18) { order: 18; }
.md-typeset .tabbed-block:nth-child(19) { order: 19; }
.md-typeset .tabbed-block:nth-child(20) { order: 20; }
}
.md-typeset .tabbed-block > .highlight:first-child > pre, .md-typeset .tabb=
ed-block > pre:first-child { margin: 0px; }
.md-typeset .tabbed-block > .highlight:first-child > pre > code, .md-typese=
t .tabbed-block > pre:first-child > code { border-top-left-radius: 0px; bor=
der-top-right-radius: 0px; }
.md-typeset .tabbed-block > .highlight:first-child > .filename { border-top=
-left-radius: 0px; border-top-right-radius: 0px; margin: 0px; }
.md-typeset .tabbed-block > .highlight:first-child > .highlighttable { marg=
in: 0px; }
.md-typeset .tabbed-block > .highlight:first-child > .highlighttable > tbod=
y > tr > .filename span.filename, .md-typeset .tabbed-block > .highlight:fi=
rst-child > .highlighttable > tbody > tr > .linenos { border-top-left-radiu=
s: 0px; border-top-right-radius: 0px; margin: 0px; }
.md-typeset .tabbed-block > .highlight:first-child > .highlighttable > tbod=
y > tr > .code > div > pre > code { border-top-left-radius: 0px; border-top=
-right-radius: 0px; }
.md-typeset .tabbed-block > .highlight:first-child + .result { margin-top: =
-0.125em; }
.md-typeset .tabbed-block > .tabbed-set { margin: 0px; }
.md-typeset .tabbed-button { align-self: center; border-radius: 100%; color=
: var(--md-default-fg-color--light); cursor: pointer; display: block; heigh=
t: 0.9rem; margin-top: 0.1rem; pointer-events: auto; transition: background=
-color 0.25s; width: 0.9rem; }
.md-typeset .tabbed-button:hover { background-color: var(--md-accent-fg-col=
or--transparent); color: var(--md-accent-fg-color); }
.md-typeset .tabbed-button::after { background-color: currentcolor; content=
: ""; display: block; height: 100%; mask-image: var(--md-tabbed-icon--prev)=
; mask-position: center center; mask-repeat: no-repeat; mask-size: contain;=
transition: background-color 0.25s, transform 0.25s; width: 100%; }
.md-typeset .tabbed-control { background: linear-gradient(to right,var(--md=
-default-bg-color) 60%,#0000); display: flex; height: 1.9rem; justify-conte=
nt: start; pointer-events: none; position: absolute; transition: opacity 12=
5ms; width: 1.2rem; }
[dir=3D"rtl"] .md-typeset .tabbed-control { transform: rotate(180deg); }
.md-typeset .tabbed-control[hidden] { opacity: 0; }
.md-typeset .tabbed-control--next { background: linear-gradient(to left,var=
(--md-default-bg-color) 60%,#0000); justify-content: end; right: 0px; }
.md-typeset .tabbed-control--next .tabbed-button::after { mask-image: var(-=
-md-tabbed-icon--next); }
@media screen and (max-width: 44.9375em) {
[dir=3D"ltr"] .md-content__inner > .tabbed-set .tabbed-labels { padding-l=
eft: 0.8rem; }
[dir=3D"rtl"] .md-content__inner > .tabbed-set .tabbed-labels { padding-r=
ight: 0.8rem; }
.md-content__inner > .tabbed-set .tabbed-labels { margin: 0px -0.8rem; ma=
x-width: 100vw; scroll-padding-inline-start: 0.8rem; }
[dir=3D"ltr"] .md-content__inner > .tabbed-set .tabbed-labels::after { pa=
dding-right: 0.8rem; }
[dir=3D"rtl"] .md-content__inner > .tabbed-set .tabbed-labels::after { pa=
dding-left: 0.8rem; }
.md-content__inner > .tabbed-set .tabbed-labels::after { content: ""; }
[dir=3D"ltr"] .md-content__inner > .tabbed-set .tabbed-labels ~ .tabbed-c=
ontrol--prev { padding-left: 0.8rem; }
[dir=3D"rtl"] .md-content__inner > .tabbed-set .tabbed-labels ~ .tabbed-c=
ontrol--prev { padding-right: 0.8rem; }
[dir=3D"ltr"] .md-content__inner > .tabbed-set .tabbed-labels ~ .tabbed-c=
ontrol--prev { margin-left: -0.8rem; }
[dir=3D"rtl"] .md-content__inner > .tabbed-set .tabbed-labels ~ .tabbed-c=
ontrol--prev { margin-right: -0.8rem; }
.md-content__inner > .tabbed-set .tabbed-labels ~ .tabbed-control--prev {=
width: 2rem; }
[dir=3D"ltr"] .md-content__inner > .tabbed-set .tabbed-labels ~ .tabbed-c=
ontrol--next { padding-right: 0.8rem; }
[dir=3D"rtl"] .md-content__inner > .tabbed-set .tabbed-labels ~ .tabbed-c=
ontrol--next { padding-left: 0.8rem; }
[dir=3D"ltr"] .md-content__inner > .tabbed-set .tabbed-labels ~ .tabbed-c=
ontrol--next { margin-right: -0.8rem; }
[dir=3D"rtl"] .md-content__inner > .tabbed-set .tabbed-labels ~ .tabbed-c=
ontrol--next { margin-left: -0.8rem; }
.md-content__inner > .tabbed-set .tabbed-labels ~ .tabbed-control--next {=
width: 2rem; }
}
@media screen {
.md-typeset .tabbed-set > input:first-child:checked ~ .tabbed-labels > :f=
irst-child, .md-typeset .tabbed-set > input:nth-child(10):checked ~ .tabbed=
-labels > :nth-child(10), .md-typeset .tabbed-set > input:nth-child(11):che=
cked ~ .tabbed-labels > :nth-child(11), .md-typeset .tabbed-set > input:nth=
-child(12):checked ~ .tabbed-labels > :nth-child(12), .md-typeset .tabbed-s=
et > input:nth-child(13):checked ~ .tabbed-labels > :nth-child(13), .md-typ=
eset .tabbed-set > input:nth-child(14):checked ~ .tabbed-labels > :nth-chil=
d(14), .md-typeset .tabbed-set > input:nth-child(15):checked ~ .tabbed-labe=
ls > :nth-child(15), .md-typeset .tabbed-set > input:nth-child(16):checked =
~ .tabbed-labels > :nth-child(16), .md-typeset .tabbed-set > input:nth-chil=
d(17):checked ~ .tabbed-labels > :nth-child(17), .md-typeset .tabbed-set > =
input:nth-child(18):checked ~ .tabbed-labels > :nth-child(18), .md-typeset =
.tabbed-set > input:nth-child(19):checked ~ .tabbed-labels > :nth-child(19)=
, .md-typeset .tabbed-set > input:nth-child(2):checked ~ .tabbed-labels > :=
nth-child(2), .md-typeset .tabbed-set > input:nth-child(20):checked ~ .tabb=
ed-labels > :nth-child(20), .md-typeset .tabbed-set > input:nth-child(3):ch=
ecked ~ .tabbed-labels > :nth-child(3), .md-typeset .tabbed-set > input:nth=
-child(4):checked ~ .tabbed-labels > :nth-child(4), .md-typeset .tabbed-set=
> input:nth-child(5):checked ~ .tabbed-labels > :nth-child(5), .md-typeset=
.tabbed-set > input:nth-child(6):checked ~ .tabbed-labels > :nth-child(6),=
.md-typeset .tabbed-set > input:nth-child(7):checked ~ .tabbed-labels > :n=
th-child(7), .md-typeset .tabbed-set > input:nth-child(8):checked ~ .tabbed=
-labels > :nth-child(8), .md-typeset .tabbed-set > input:nth-child(9):check=
ed ~ .tabbed-labels > :nth-child(9) { color: var(--md-accent-fg-color); }
.md-typeset .no-js .tabbed-set > input:first-child:checked ~ .tabbed-labe=
ls > :first-child, .md-typeset .no-js .tabbed-set > input:nth-child(10):che=
cked ~ .tabbed-labels > :nth-child(10), .md-typeset .no-js .tabbed-set > in=
put:nth-child(11):checked ~ .tabbed-labels > :nth-child(11), .md-typeset .n=
o-js .tabbed-set > input:nth-child(12):checked ~ .tabbed-labels > :nth-chil=
d(12), .md-typeset .no-js .tabbed-set > input:nth-child(13):checked ~ .tabb=
ed-labels > :nth-child(13), .md-typeset .no-js .tabbed-set > input:nth-chil=
d(14):checked ~ .tabbed-labels > :nth-child(14), .md-typeset .no-js .tabbed=
-set > input:nth-child(15):checked ~ .tabbed-labels > :nth-child(15), .md-t=
ypeset .no-js .tabbed-set > input:nth-child(16):checked ~ .tabbed-labels > =
:nth-child(16), .md-typeset .no-js .tabbed-set > input:nth-child(17):checke=
d ~ .tabbed-labels > :nth-child(17), .md-typeset .no-js .tabbed-set > input=
:nth-child(18):checked ~ .tabbed-labels > :nth-child(18), .md-typeset .no-j=
s .tabbed-set > input:nth-child(19):checked ~ .tabbed-labels > :nth-child(1=
9), .md-typeset .no-js .tabbed-set > input:nth-child(2):checked ~ .tabbed-l=
abels > :nth-child(2), .md-typeset .no-js .tabbed-set > input:nth-child(20)=
:checked ~ .tabbed-labels > :nth-child(20), .md-typeset .no-js .tabbed-set =
> input:nth-child(3):checked ~ .tabbed-labels > :nth-child(3), .md-typeset =
.no-js .tabbed-set > input:nth-child(4):checked ~ .tabbed-labels > :nth-chi=
ld(4), .md-typeset .no-js .tabbed-set > input:nth-child(5):checked ~ .tabbe=
d-labels > :nth-child(5), .md-typeset .no-js .tabbed-set > input:nth-child(=
6):checked ~ .tabbed-labels > :nth-child(6), .md-typeset .no-js .tabbed-set=
> input:nth-child(7):checked ~ .tabbed-labels > :nth-child(7), .md-typeset=
.no-js .tabbed-set > input:nth-child(8):checked ~ .tabbed-labels > :nth-ch=
ild(8), .md-typeset .no-js .tabbed-set > input:nth-child(9):checked ~ .tabb=
ed-labels > :nth-child(9), .no-js .md-typeset .tabbed-set > input:first-chi=
ld:checked ~ .tabbed-labels > :first-child, .no-js .md-typeset .tabbed-set =
> input:nth-child(10):checked ~ .tabbed-labels > :nth-child(10), .no-js .md=
-typeset .tabbed-set > input:nth-child(11):checked ~ .tabbed-labels > :nth-=
child(11), .no-js .md-typeset .tabbed-set > input:nth-child(12):checked ~ .=
tabbed-labels > :nth-child(12), .no-js .md-typeset .tabbed-set > input:nth-=
child(13):checked ~ .tabbed-labels > :nth-child(13), .no-js .md-typeset .ta=
bbed-set > input:nth-child(14):checked ~ .tabbed-labels > :nth-child(14), .=
no-js .md-typeset .tabbed-set > input:nth-child(15):checked ~ .tabbed-label=
s > :nth-child(15), .no-js .md-typeset .tabbed-set > input:nth-child(16):ch=
ecked ~ .tabbed-labels > :nth-child(16), .no-js .md-typeset .tabbed-set > i=
nput:nth-child(17):checked ~ .tabbed-labels > :nth-child(17), .no-js .md-ty=
peset .tabbed-set > input:nth-child(18):checked ~ .tabbed-labels > :nth-chi=
ld(18), .no-js .md-typeset .tabbed-set > input:nth-child(19):checked ~ .tab=
bed-labels > :nth-child(19), .no-js .md-typeset .tabbed-set > input:nth-chi=
ld(2):checked ~ .tabbed-labels > :nth-child(2), .no-js .md-typeset .tabbed-=
set > input:nth-child(20):checked ~ .tabbed-labels > :nth-child(20), .no-js=
.md-typeset .tabbed-set > input:nth-child(3):checked ~ .tabbed-labels > :n=
th-child(3), .no-js .md-typeset .tabbed-set > input:nth-child(4):checked ~ =
.tabbed-labels > :nth-child(4), .no-js .md-typeset .tabbed-set > input:nth-=
child(5):checked ~ .tabbed-labels > :nth-child(5), .no-js .md-typeset .tabb=
ed-set > input:nth-child(6):checked ~ .tabbed-labels > :nth-child(6), .no-j=
s .md-typeset .tabbed-set > input:nth-child(7):checked ~ .tabbed-labels > :=
nth-child(7), .no-js .md-typeset .tabbed-set > input:nth-child(8):checked ~=
.tabbed-labels > :nth-child(8), .no-js .md-typeset .tabbed-set > input:nth=
-child(9):checked ~ .tabbed-labels > :nth-child(9) { border-color: var(--md=
-accent-fg-color); }
}
.md-typeset .tabbed-set > input:first-child.focus-visible ~ .tabbed-labels =
> :first-child, .md-typeset .tabbed-set > input:nth-child(10).focus-visible=
~ .tabbed-labels > :nth-child(10), .md-typeset .tabbed-set > input:nth-chi=
ld(11).focus-visible ~ .tabbed-labels > :nth-child(11), .md-typeset .tabbed=
-set > input:nth-child(12).focus-visible ~ .tabbed-labels > :nth-child(12),=
.md-typeset .tabbed-set > input:nth-child(13).focus-visible ~ .tabbed-labe=
ls > :nth-child(13), .md-typeset .tabbed-set > input:nth-child(14).focus-vi=
sible ~ .tabbed-labels > :nth-child(14), .md-typeset .tabbed-set > input:nt=
h-child(15).focus-visible ~ .tabbed-labels > :nth-child(15), .md-typeset .t=
abbed-set > input:nth-child(16).focus-visible ~ .tabbed-labels > :nth-child=
(16), .md-typeset .tabbed-set > input:nth-child(17).focus-visible ~ .tabbed=
-labels > :nth-child(17), .md-typeset .tabbed-set > input:nth-child(18).foc=
us-visible ~ .tabbed-labels > :nth-child(18), .md-typeset .tabbed-set > inp=
ut:nth-child(19).focus-visible ~ .tabbed-labels > :nth-child(19), .md-types=
et .tabbed-set > input:nth-child(2).focus-visible ~ .tabbed-labels > :nth-c=
hild(2), .md-typeset .tabbed-set > input:nth-child(20).focus-visible ~ .tab=
bed-labels > :nth-child(20), .md-typeset .tabbed-set > input:nth-child(3).f=
ocus-visible ~ .tabbed-labels > :nth-child(3), .md-typeset .tabbed-set > in=
put:nth-child(4).focus-visible ~ .tabbed-labels > :nth-child(4), .md-typese=
t .tabbed-set > input:nth-child(5).focus-visible ~ .tabbed-labels > :nth-ch=
ild(5), .md-typeset .tabbed-set > input:nth-child(6).focus-visible ~ .tabbe=
d-labels > :nth-child(6), .md-typeset .tabbed-set > input:nth-child(7).focu=
s-visible ~ .tabbed-labels > :nth-child(7), .md-typeset .tabbed-set > input=
:nth-child(8).focus-visible ~ .tabbed-labels > :nth-child(8), .md-typeset .=
tabbed-set > input:nth-child(9).focus-visible ~ .tabbed-labels > :nth-child=
(9) { background-color: var(--md-accent-fg-color--transparent); }
.md-typeset .tabbed-set > input:first-child:checked ~ .tabbed-content > :fi=
rst-child, .md-typeset .tabbed-set > input:nth-child(10):checked ~ .tabbed-=
content > :nth-child(10), .md-typeset .tabbed-set > input:nth-child(11):che=
cked ~ .tabbed-content > :nth-child(11), .md-typeset .tabbed-set > input:nt=
h-child(12):checked ~ .tabbed-content > :nth-child(12), .md-typeset .tabbed=
-set > input:nth-child(13):checked ~ .tabbed-content > :nth-child(13), .md-=
typeset .tabbed-set > input:nth-child(14):checked ~ .tabbed-content > :nth-=
child(14), .md-typeset .tabbed-set > input:nth-child(15):checked ~ .tabbed-=
content > :nth-child(15), .md-typeset .tabbed-set > input:nth-child(16):che=
cked ~ .tabbed-content > :nth-child(16), .md-typeset .tabbed-set > input:nt=
h-child(17):checked ~ .tabbed-content > :nth-child(17), .md-typeset .tabbed=
-set > input:nth-child(18):checked ~ .tabbed-content > :nth-child(18), .md-=
typeset .tabbed-set > input:nth-child(19):checked ~ .tabbed-content > :nth-=
child(19), .md-typeset .tabbed-set > input:nth-child(2):checked ~ .tabbed-c=
ontent > :nth-child(2), .md-typeset .tabbed-set > input:nth-child(20):check=
ed ~ .tabbed-content > :nth-child(20), .md-typeset .tabbed-set > input:nth-=
child(3):checked ~ .tabbed-content > :nth-child(3), .md-typeset .tabbed-set=
> input:nth-child(4):checked ~ .tabbed-content > :nth-child(4), .md-typese=
t .tabbed-set > input:nth-child(5):checked ~ .tabbed-content > :nth-child(5=
), .md-typeset .tabbed-set > input:nth-child(6):checked ~ .tabbed-content >=
:nth-child(6), .md-typeset .tabbed-set > input:nth-child(7):checked ~ .tab=
bed-content > :nth-child(7), .md-typeset .tabbed-set > input:nth-child(8):c=
hecked ~ .tabbed-content > :nth-child(8), .md-typeset .tabbed-set > input:n=
th-child(9):checked ~ .tabbed-content > :nth-child(9) { display: block; }
:root { --md-tasklist-icon: url('data:image/svg+xml;charset=3Dutf-8,<svg xm=
lns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=3D"M1 12C1=
5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12Zm16.28-2.72=
a.751.751 0 0 0-.018-1.042.751.751 0 0 0-1.042-.018l-5.97 5.97-2.47-2.47a.7=
51.751 0 0 0-1.042.018.751.751 0 0 0-.018 1.042l3 3a.75.75 0 0 0 1.06 0Z"/>=
</svg>'); --md-tasklist-icon--checked: url('data:image/svg+xml;charset=3Dut=
f-8,<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 24 24"><path d=
=3D"M1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12Z=
m16.28-2.72a.751.751 0 0 0-.018-1.042.751.751 0 0 0-1.042-.018l-5.97 5.97-2=
.47-2.47a.751.751 0 0 0-1.042.018.751.751 0 0 0-.018 1.042l3 3a.75.75 0 0 0=
1.06 0Z"/></svg>'); }
.md-typeset .task-list-item { list-style-type: none; position: relative; }
[dir=3D"ltr"] .md-typeset .task-list-item [type=3D"checkbox"] { left: -2em;=
}
[dir=3D"rtl"] .md-typeset .task-list-item [type=3D"checkbox"] { right: -2em=
; }
.md-typeset .task-list-item [type=3D"checkbox"] { position: absolute; top: =
0.45em; }
.md-typeset .task-list-control [type=3D"checkbox"] { opacity: 0; z-index: -=
1; }
[dir=3D"ltr"] .md-typeset .task-list-indicator::before { left: -1.5em; }
[dir=3D"rtl"] .md-typeset .task-list-indicator::before { right: -1.5em; }
.md-typeset .task-list-indicator::before { background-color: var(--md-defau=
lt-fg-color--lightest); content: ""; height: 1.25em; mask-image: var(--md-t=
asklist-icon); mask-position: center center; mask-repeat: no-repeat; mask-s=
ize: contain; position: absolute; top: 0.15em; width: 1.25em; }
.md-typeset [type=3D"checkbox"]:checked + .task-list-indicator::before { ba=
ckground-color: rgb(0, 230, 118); mask-image: var(--md-tasklist-icon--check=
ed); }
:root > * { --md-mermaid-font-family: var(--md-text-font-family),sans-serif=
; --md-mermaid-edge-color: var(--md-code-fg-color); --md-mermaid-node-bg-co=
lor: var(--md-accent-fg-color--transparent); --md-mermaid-node-fg-color: va=
r(--md-accent-fg-color); --md-mermaid-label-bg-color: var(--md-default-bg-c=
olor); --md-mermaid-label-fg-color: var(--md-code-fg-color); }
.mermaid { line-height: normal; margin: 1em 0px; }
@media screen and (min-width: 45em) {
[dir=3D"ltr"] .md-typeset .inline { float: left; }
[dir=3D"rtl"] .md-typeset .inline { float: right; }
[dir=3D"ltr"] .md-typeset .inline { margin-right: 0.8rem; }
[dir=3D"rtl"] .md-typeset .inline { margin-left: 0.8rem; }
.md-typeset .inline { margin-bottom: 0.8rem; margin-top: 0px; width: 11.7=
rem; }
[dir=3D"ltr"] .md-typeset .inline.end { float: right; }
[dir=3D"rtl"] .md-typeset .inline.end { float: left; }
[dir=3D"ltr"] .md-typeset .inline.end { margin-left: 0.8rem; margin-right=
: 0px; }
[dir=3D"rtl"] .md-typeset .inline.end { margin-left: 0px; margin-right: 0=
.8rem; }
}
------MultipartBoundary--53G3hQ1v3PNvbYOTNnD5LUgHHcoBuB9Em94lZhHUft----
Content-Type: text/css
Content-Transfer-Encoding: quoted-printable
Content-Location: https://omussell.github.io/assets/stylesheets/palette.ecc896b0.min.css
@charset "utf-8";
@media screen {
[data-md-color-scheme=3D"slate"] { --md-hue: 232; --md-default-fg-color: =
hsla(var(--md-hue),75%,95%,1); --md-default-fg-color--light: hsla(var(--md-=
hue),75%,90%,0.62); --md-default-fg-color--lighter: hsla(var(--md-hue),75%,=
90%,0.32); --md-default-fg-color--lightest: hsla(var(--md-hue),75%,90%,0.12=
); --md-default-bg-color: hsla(var(--md-hue),15%,21%,1); --md-default-bg-co=
lor--light: hsla(var(--md-hue),15%,21%,0.54); --md-default-bg-color--lighte=
r: hsla(var(--md-hue),15%,21%,0.26); --md-default-bg-color--lightest: hsla(=
var(--md-hue),15%,21%,0.07); --md-code-fg-color: hsla(var(--md-hue),18%,86%=
,1); --md-code-bg-color: hsla(var(--md-hue),15%,15%,1); --md-code-hl-color:=
#4287ff26; --md-code-hl-number-color: #e6695b; --md-code-hl-special-color:=
#f06090; --md-code-hl-function-color: #c973d9; --md-code-hl-constant-color=
: #9383e2; --md-code-hl-keyword-color: #6791e0; --md-code-hl-string-color: =
#2fb170; --md-code-hl-name-color: var(--md-code-fg-color); --md-code-hl-ope=
rator-color: var(--md-default-fg-color--light); --md-code-hl-punctuation-co=
lor: var(--md-default-fg-color--light); --md-code-hl-comment-color: var(--m=
d-default-fg-color--light); --md-code-hl-generic-color: var(--md-default-fg=
-color--light); --md-code-hl-variable-color: var(--md-default-fg-color--lig=
ht); --md-typeset-color: var(--md-default-fg-color); --md-typeset-a-color: =
var(--md-primary-fg-color); --md-typeset-mark-color: #4287ff4d; --md-typese=
t-kbd-color: hsla(var(--md-hue),15%,94%,0.12); --md-typeset-kbd-accent-colo=
r: hsla(var(--md-hue),15%,94%,0.2); --md-typeset-kbd-border-color: hsla(var=
(--md-hue),15%,14%,1); --md-typeset-table-color: hsla(var(--md-hue),75%,95%=
,0.12); --md-typeset-table-color--light: hsla(var(--md-hue),75%,95%,0.035);=
--md-admonition-fg-color: var(--md-default-fg-color); --md-admonition-bg-c=
olor: var(--md-default-bg-color); --md-footer-bg-color: hsla(var(--md-hue),=
15%,12%,0.87); --md-footer-bg-color--dark: hsla(var(--md-hue),15%,10%,1); -=
-md-shadow-z1: 0 0.2rem 0.5rem #0003,0 0 0.05rem #0000001a; --md-shadow-z2:=
0 0.2rem 0.5rem #0000004d,0 0 0.05rem #00000040; --md-shadow-z3: 0 0.2rem =
0.5rem #0006,0 0 0.05rem #00000059; color-scheme: dark; }
[data-md-color-scheme=3D"slate"] img[src$=3D"#gh-light-mode-only"], [data=
-md-color-scheme=3D"slate"] img[src$=3D"#only-light"] { display: none; }
[data-md-color-scheme=3D"slate"][data-md-color-primary=3D"pink"] { --md-t=
ypeset-a-color: #ed5487; }
[data-md-color-scheme=3D"slate"][data-md-color-primary=3D"purple"] { --md=
-typeset-a-color: #bd78c9; }
[data-md-color-scheme=3D"slate"][data-md-color-primary=3D"deep-purple"] {=
--md-typeset-a-color: #a682e3; }
[data-md-color-scheme=3D"slate"][data-md-color-primary=3D"indigo"] { --md=
-typeset-a-color: #6c91d5; }
[data-md-color-scheme=3D"slate"][data-md-color-primary=3D"teal"] { --md-t=
ypeset-a-color: #00ccb8; }
[data-md-color-scheme=3D"slate"][data-md-color-primary=3D"green"] { --md-=
typeset-a-color: #71c174; }
[data-md-color-scheme=3D"slate"][data-md-color-primary=3D"deep-orange"] {=
--md-typeset-a-color: #ff9575; }
[data-md-color-scheme=3D"slate"][data-md-color-primary=3D"brown"] { --md-=
typeset-a-color: #c7846b; }
[data-md-color-scheme=3D"slate"][data-md-color-primary=3D"black"], [data-=
md-color-scheme=3D"slate"][data-md-color-primary=3D"blue-grey"], [data-md-c=
olor-scheme=3D"slate"][data-md-color-primary=3D"grey"], [data-md-color-sche=
me=3D"slate"][data-md-color-primary=3D"white"] { --md-typeset-a-color: #6c9=
1d5; }
[data-md-color-switching] *, [data-md-color-switching] ::after, [data-md-=
color-switching] ::before { transition-duration: 0ms !important; }
}
[data-md-color-accent=3D"red"] { --md-accent-fg-color: #ff1947; --md-accent=
-fg-color--transparent: #ff19471a; --md-accent-bg-color: #fff; --md-accent-=
bg-color--light: #ffffffb3; }
[data-md-color-accent=3D"pink"] { --md-accent-fg-color: #f50056; --md-accen=
t-fg-color--transparent: #f500561a; --md-accent-bg-color: #fff; --md-accent=
-bg-color--light: #ffffffb3; }
[data-md-color-accent=3D"purple"] { --md-accent-fg-color: #df41fb; --md-acc=
ent-fg-color--transparent: #df41fb1a; --md-accent-bg-color: #fff; --md-acce=
nt-bg-color--light: #ffffffb3; }
[data-md-color-accent=3D"deep-purple"] { --md-accent-fg-color: #7c4dff; --m=
d-accent-fg-color--transparent: #7c4dff1a; --md-accent-bg-color: #fff; --md=
-accent-bg-color--light: #ffffffb3; }
[data-md-color-accent=3D"indigo"] { --md-accent-fg-color: #526cfe; --md-acc=
ent-fg-color--transparent: #526cfe1a; --md-accent-bg-color: #fff; --md-acce=
nt-bg-color--light: #ffffffb3; }
[data-md-color-accent=3D"blue"] { --md-accent-fg-color: #4287ff; --md-accen=
t-fg-color--transparent: #4287ff1a; --md-accent-bg-color: #fff; --md-accent=
-bg-color--light: #ffffffb3; }
[data-md-color-accent=3D"light-blue"] { --md-accent-fg-color: #0091eb; --md=
-accent-fg-color--transparent: #0091eb1a; --md-accent-bg-color: #fff; --md-=
accent-bg-color--light: #ffffffb3; }
[data-md-color-accent=3D"cyan"] { --md-accent-fg-color: #00bad6; --md-accen=
t-fg-color--transparent: #00bad61a; --md-accent-bg-color: #fff; --md-accent=
-bg-color--light: #ffffffb3; }
[data-md-color-accent=3D"teal"] { --md-accent-fg-color: #00bda4; --md-accen=
t-fg-color--transparent: #00bda41a; --md-accent-bg-color: #fff; --md-accent=
-bg-color--light: #ffffffb3; }
[data-md-color-accent=3D"green"] { --md-accent-fg-color: #00c753; --md-acce=
nt-fg-color--transparent: #00c7531a; --md-accent-bg-color: #fff; --md-accen=
t-bg-color--light: #ffffffb3; }
[data-md-color-accent=3D"light-green"] { --md-accent-fg-color: #63de17; --m=
d-accent-fg-color--transparent: #63de171a; --md-accent-bg-color: #fff; --md=
-accent-bg-color--light: #ffffffb3; }
[data-md-color-accent=3D"lime"] { --md-accent-fg-color: #b0eb00; --md-accen=
t-fg-color--transparent: #b0eb001a; --md-accent-bg-color: #000000de; --md-a=
ccent-bg-color--light: #0000008a; }
[data-md-color-accent=3D"yellow"] { --md-accent-fg-color: #ffd500; --md-acc=
ent-fg-color--transparent: #ffd5001a; --md-accent-bg-color: #000000de; --md=
-accent-bg-color--light: #0000008a; }
[data-md-color-accent=3D"amber"] { --md-accent-fg-color: #fa0; --md-accent-=
fg-color--transparent: #ffaa001a; --md-accent-bg-color: #000000de; --md-acc=
ent-bg-color--light: #0000008a; }
[data-md-color-accent=3D"orange"] { --md-accent-fg-color: #ff9100; --md-acc=
ent-fg-color--transparent: #ff91001a; --md-accent-bg-color: #000000de; --md=
-accent-bg-color--light: #0000008a; }
[data-md-color-accent=3D"deep-orange"] { --md-accent-fg-color: #ff6e42; --m=
d-accent-fg-color--transparent: #ff6e421a; --md-accent-bg-color: #fff; --md=
-accent-bg-color--light: #ffffffb3; }
[data-md-color-primary=3D"red"] { --md-primary-fg-color: #ef5552; --md-prim=
ary-fg-color--light: #e57171; --md-primary-fg-color--dark: #e53734; --md-pr=
imary-bg-color: #fff; --md-primary-bg-color--light: #ffffffb3; }
[data-md-color-primary=3D"pink"] { --md-primary-fg-color: #e92063; --md-pri=
mary-fg-color--light: #ec417a; --md-primary-fg-color--dark: #c3185d; --md-p=
rimary-bg-color: #fff; --md-primary-bg-color--light: #ffffffb3; }
[data-md-color-primary=3D"purple"] { --md-primary-fg-color: #ab47bd; --md-p=
rimary-fg-color--light: #bb69c9; --md-primary-fg-color--dark: #8c24a8; --md=
-primary-bg-color: #fff; --md-primary-bg-color--light: #ffffffb3; }
[data-md-color-primary=3D"deep-purple"] { --md-primary-fg-color: #7e56c2; -=
-md-primary-fg-color--light: #9574cd; --md-primary-fg-color--dark: #673ab6;=
--md-primary-bg-color: #fff; --md-primary-bg-color--light: #ffffffb3; }
[data-md-color-primary=3D"indigo"] { --md-primary-fg-color: #4051b5; --md-p=
rimary-fg-color--light: #5d6cc0; --md-primary-fg-color--dark: #303fa1; --md=
-primary-bg-color: #fff; --md-primary-bg-color--light: #ffffffb3; }
[data-md-color-primary=3D"blue"] { --md-primary-fg-color: #2094f3; --md-pri=
mary-fg-color--light: #42a5f5; --md-primary-fg-color--dark: #1975d2; --md-p=
rimary-bg-color: #fff; --md-primary-bg-color--light: #ffffffb3; }
[data-md-color-primary=3D"light-blue"] { --md-primary-fg-color: #02a6f2; --=
md-primary-fg-color--light: #28b5f6; --md-primary-fg-color--dark: #0287cf; =
--md-primary-bg-color: #fff; --md-primary-bg-color--light: #ffffffb3; }
[data-md-color-primary=3D"cyan"] { --md-primary-fg-color: #00bdd6; --md-pri=
mary-fg-color--light: #25c5da; --md-primary-fg-color--dark: #0097a8; --md-p=
rimary-bg-color: #fff; --md-primary-bg-color--light: #ffffffb3; }
[data-md-color-primary=3D"teal"] { --md-primary-fg-color: #009485; --md-pri=
mary-fg-color--light: #26a699; --md-primary-fg-color--dark: #007a6c; --md-p=
rimary-bg-color: #fff; --md-primary-bg-color--light: #ffffffb3; }
[data-md-color-primary=3D"green"] { --md-primary-fg-color: #4cae4f; --md-pr=
imary-fg-color--light: #68bb6c; --md-primary-fg-color--dark: #398e3d; --md-=
primary-bg-color: #fff; --md-primary-bg-color--light: #ffffffb3; }
[data-md-color-primary=3D"light-green"] { --md-primary-fg-color: #8bc34b; -=
-md-primary-fg-color--light: #9ccc66; --md-primary-fg-color--dark: #689f38;=
--md-primary-bg-color: #fff; --md-primary-bg-color--light: #ffffffb3; }
[data-md-color-primary=3D"lime"] { --md-primary-fg-color: #cbdc38; --md-pri=
mary-fg-color--light: #d3e156; --md-primary-fg-color--dark: #b0b52c; --md-p=
rimary-bg-color: #000000de; --md-primary-bg-color--light: #0000008a; }
[data-md-color-primary=3D"yellow"] { --md-primary-fg-color: #ffec3d; --md-p=
rimary-fg-color--light: #ffee57; --md-primary-fg-color--dark: #fbc02d; --md=
-primary-bg-color: #000000de; --md-primary-bg-color--light: #0000008a; }
[data-md-color-primary=3D"amber"] { --md-primary-fg-color: #ffc105; --md-pr=
imary-fg-color--light: #ffc929; --md-primary-fg-color--dark: #ffa200; --md-=
primary-bg-color: #000000de; --md-primary-bg-color--light: #0000008a; }
[data-md-color-primary=3D"orange"] { --md-primary-fg-color: #ffa724; --md-p=
rimary-fg-color--light: #ffa724; --md-primary-fg-color--dark: #fa8900; --md=
-primary-bg-color: #000000de; --md-primary-bg-color--light: #0000008a; }
[data-md-color-primary=3D"deep-orange"] { --md-primary-fg-color: #ff6e42; -=
-md-primary-fg-color--light: #ff8a66; --md-primary-fg-color--dark: #f4511f;=
--md-primary-bg-color: #fff; --md-primary-bg-color--light: #ffffffb3; }
[data-md-color-primary=3D"brown"] { --md-primary-fg-color: #795649; --md-pr=
imary-fg-color--light: #8d6e62; --md-primary-fg-color--dark: #5d4037; --md-=
primary-bg-color: #fff; --md-primary-bg-color--light: #ffffffb3; }
[data-md-color-primary=3D"grey"] { --md-primary-fg-color: #757575; --md-pri=
mary-fg-color--light: #9e9e9e; --md-primary-fg-color--dark: #616161; --md-p=
rimary-bg-color: #fff; --md-primary-bg-color--light: #ffffffb3; --md-typese=
t-a-color: #4051b5; }
[data-md-color-primary=3D"blue-grey"] { --md-primary-fg-color: #546d78; --m=
d-primary-fg-color--light: #607c8a; --md-primary-fg-color--dark: #455a63; -=
-md-primary-bg-color: #fff; --md-primary-bg-color--light: #ffffffb3; --md-t=
ypeset-a-color: #4051b5; }
[data-md-color-primary=3D"light-green"]:not([data-md-color-scheme=3D"slate"=
]) { --md-typeset-a-color: #72ad2e; }
[data-md-color-primary=3D"lime"]:not([data-md-color-scheme=3D"slate"]) { --=
md-typeset-a-color: #8b990a; }
[data-md-color-primary=3D"yellow"]:not([data-md-color-scheme=3D"slate"]) { =
--md-typeset-a-color: #b8a500; }
[data-md-color-primary=3D"amber"]:not([data-md-color-scheme=3D"slate"]) { -=
-md-typeset-a-color: #d19d00; }
[data-md-color-primary=3D"orange"]:not([data-md-color-scheme=3D"slate"]) { =
--md-typeset-a-color: #e68a00; }
[data-md-color-primary=3D"white"] { --md-primary-fg-color: #fff; --md-prima=
ry-fg-color--light: #ffffffb3; --md-primary-fg-color--dark: #00000012; --md=
-primary-bg-color: #000000de; --md-primary-bg-color--light: #0000008a; --md=
-typeset-a-color: #4051b5; }
[data-md-color-primary=3D"white"] .md-button { color: var(--md-typeset-a-co=
lor); }
[data-md-color-primary=3D"white"] .md-button--primary { background-color: v=
ar(--md-typeset-a-color); border-color: var(--md-typeset-a-color); color: r=
gb(255, 255, 255); }
@media screen and (min-width: 60em) {
[data-md-color-primary=3D"white"] .md-search__form { background-color: rg=
ba(0, 0, 0, 0.07); }
[data-md-color-primary=3D"white"] .md-search__form:hover { background-col=
or: rgba(0, 0, 0, 0.32); }
[data-md-color-primary=3D"white"] .md-search__input + .md-search__icon { =
color: rgba(0, 0, 0, 0.87); }
}
@media screen and (min-width: 76.25em) {
[data-md-color-primary=3D"white"] .md-tabs { border-bottom: 0.05rem solid=
rgba(0, 0, 0, 0.07); }
}
[data-md-color-primary=3D"black"] { --md-primary-fg-color: #000; --md-prima=
ry-fg-color--light: #0000008a; --md-primary-fg-color--dark: #000; --md-prim=
ary-bg-color: #fff; --md-primary-bg-color--light: #ffffffb3; --md-typeset-a=
-color: #4051b5; }
[data-md-color-primary=3D"black"] .md-button { color: var(--md-typeset-a-co=
lor); }
[data-md-color-primary=3D"black"] .md-button--primary { background-color: v=
ar(--md-typeset-a-color); border-color: var(--md-typeset-a-color); color: r=
gb(255, 255, 255); }
[data-md-color-primary=3D"black"] .md-header { background-color: rgb(0, 0, =
0); }
@media screen and (max-width: 59.9375em) {
[data-md-color-primary=3D"black"] .md-nav__source { background-color: rgb=
a(0, 0, 0, 0.87); }
}
@media screen and (min-width: 60em) {
[data-md-color-primary=3D"black"] .md-search__form { background-color: rg=
ba(255, 255, 255, 0.12); }
[data-md-color-primary=3D"black"] .md-search__form:hover { background-col=
or: rgba(255, 255, 255, 0.3); }
}
@media screen and (max-width: 76.1875em) {
html [data-md-color-primary=3D"black"] .md-nav--primary .md-nav__title[fo=
r=3D"__drawer"] { background-color: rgb(0, 0, 0); }
}
@media screen and (min-width: 76.25em) {
[data-md-color-primary=3D"black"] .md-tabs { background-color: rgb(0, 0, =
0); }
}
------MultipartBoundary--53G3hQ1v3PNvbYOTNnD5LUgHHcoBuB9Em94lZhHUft----
Content-Type: text/css
Content-Transfer-Encoding: quoted-printable
Content-Location: https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback
@charset "utf-8";
@font-face { font-family: Roboto; font-style: italic; font-weight: 300; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOjC=
nqEu92Fr1Mu51TjASc3CsTYl4BOQ3o.woff2") format("woff2"); unicode-range: U+46=
0-52F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 300; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOjC=
nqEu92Fr1Mu51TjASc-CsTYl4BOQ3o.woff2") format("woff2"); unicode-range: U+30=
1, U+400-45F, U+490-491, U+4B0-4B1, U+2116; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 300; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOjC=
nqEu92Fr1Mu51TjASc2CsTYl4BOQ3o.woff2") format("woff2"); unicode-range: U+1F=
00-1FFF; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 300; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOjC=
nqEu92Fr1Mu51TjASc5CsTYl4BOQ3o.woff2") format("woff2"); unicode-range: U+37=
0-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 300; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOjC=
nqEu92Fr1Mu51TjASc1CsTYl4BOQ3o.woff2") format("woff2"); unicode-range: U+10=
2-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+=
303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 300; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOjC=
nqEu92Fr1Mu51TjASc0CsTYl4BOQ3o.woff2") format("woff2"); unicode-range: U+10=
0-2AF, U+304, U+308, U+329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, =
U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 300; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOjC=
nqEu92Fr1Mu51TjASc6CsTYl4BO.woff2") format("woff2"); unicode-range: U+0-FF,=
U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2=
000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U=
+FFFD; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 400; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOkC=
nqEu92Fr1Mu51xFIzIXKMnyrYk.woff2") format("woff2"); unicode-range: U+460-52=
F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 400; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOkC=
nqEu92Fr1Mu51xMIzIXKMnyrYk.woff2") format("woff2"); unicode-range: U+301, U=
+400-45F, U+490-491, U+4B0-4B1, U+2116; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 400; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOkC=
nqEu92Fr1Mu51xEIzIXKMnyrYk.woff2") format("woff2"); unicode-range: U+1F00-1=
FFF; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 400; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOkC=
nqEu92Fr1Mu51xLIzIXKMnyrYk.woff2") format("woff2"); unicode-range: U+370-37=
7, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 400; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOkC=
nqEu92Fr1Mu51xHIzIXKMnyrYk.woff2") format("woff2"); unicode-range: U+102-10=
3, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-=
304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 400; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOkC=
nqEu92Fr1Mu51xGIzIXKMnyrYk.woff2") format("woff2"); unicode-range: U+100-2A=
F, U+304, U+308, U+329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20=
AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 400; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOkC=
nqEu92Fr1Mu51xIIzIXKMny.woff2") format("woff2"); unicode-range: U+0-FF, U+1=
31, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-=
206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFF=
D; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 700; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOjC=
nqEu92Fr1Mu51TzBic3CsTYl4BOQ3o.woff2") format("woff2"); unicode-range: U+46=
0-52F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 700; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOjC=
nqEu92Fr1Mu51TzBic-CsTYl4BOQ3o.woff2") format("woff2"); unicode-range: U+30=
1, U+400-45F, U+490-491, U+4B0-4B1, U+2116; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 700; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOjC=
nqEu92Fr1Mu51TzBic2CsTYl4BOQ3o.woff2") format("woff2"); unicode-range: U+1F=
00-1FFF; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 700; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOjC=
nqEu92Fr1Mu51TzBic5CsTYl4BOQ3o.woff2") format("woff2"); unicode-range: U+37=
0-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 700; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOjC=
nqEu92Fr1Mu51TzBic1CsTYl4BOQ3o.woff2") format("woff2"); unicode-range: U+10=
2-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+=
303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 700; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOjC=
nqEu92Fr1Mu51TzBic0CsTYl4BOQ3o.woff2") format("woff2"); unicode-range: U+10=
0-2AF, U+304, U+308, U+329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, =
U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Roboto; font-style: italic; font-weight: 700; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOjC=
nqEu92Fr1Mu51TzBic6CsTYl4BO.woff2") format("woff2"); unicode-range: U+0-FF,=
U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2=
000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U=
+FFFD; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 300; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOlC=
nqEu92Fr1MmSU5fCRc4AMP6lbBP.woff2") format("woff2"); unicode-range: U+460-5=
2F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 300; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOlC=
nqEu92Fr1MmSU5fABc4AMP6lbBP.woff2") format("woff2"); unicode-range: U+301, =
U+400-45F, U+490-491, U+4B0-4B1, U+2116; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 300; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOlC=
nqEu92Fr1MmSU5fCBc4AMP6lbBP.woff2") format("woff2"); unicode-range: U+1F00-=
1FFF; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 300; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOlC=
nqEu92Fr1MmSU5fBxc4AMP6lbBP.woff2") format("woff2"); unicode-range: U+370-3=
77, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 300; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOlC=
nqEu92Fr1MmSU5fCxc4AMP6lbBP.woff2") format("woff2"); unicode-range: U+102-1=
03, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303=
-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 300; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOlC=
nqEu92Fr1MmSU5fChc4AMP6lbBP.woff2") format("woff2"); unicode-range: U+100-2=
AF, U+304, U+308, U+329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+2=
0AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 300; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOlC=
nqEu92Fr1MmSU5fBBc4AMP6lQ.woff2") format("woff2"); unicode-range: U+0-FF, U=
+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+200=
0-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+F=
FFD; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 400; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOmC=
nqEu92Fr1Mu72xKKTU1Kvnz.woff2") format("woff2"); unicode-range: U+460-52F, =
U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 400; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOmC=
nqEu92Fr1Mu5mxKKTU1Kvnz.woff2") format("woff2"); unicode-range: U+301, U+40=
0-45F, U+490-491, U+4B0-4B1, U+2116; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 400; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOmC=
nqEu92Fr1Mu7mxKKTU1Kvnz.woff2") format("woff2"); unicode-range: U+1F00-1FFF=
; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 400; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOmC=
nqEu92Fr1Mu4WxKKTU1Kvnz.woff2") format("woff2"); unicode-range: U+370-377, =
U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 400; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOmC=
nqEu92Fr1Mu7WxKKTU1Kvnz.woff2") format("woff2"); unicode-range: U+102-103, =
U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304=
, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 400; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOmC=
nqEu92Fr1Mu7GxKKTU1Kvnz.woff2") format("woff2"); unicode-range: U+100-2AF, =
U+304, U+308, U+329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-=
20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 400; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOmC=
nqEu92Fr1Mu4mxKKTU1Kg.woff2") format("woff2"); unicode-range: U+0-FF, U+131=
, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-20=
6F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;=
}
@font-face { font-family: Roboto; font-style: normal; font-weight: 700; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOlC=
nqEu92Fr1MmWUlfCRc4AMP6lbBP.woff2") format("woff2"); unicode-range: U+460-5=
2F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 700; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOlC=
nqEu92Fr1MmWUlfABc4AMP6lbBP.woff2") format("woff2"); unicode-range: U+301, =
U+400-45F, U+490-491, U+4B0-4B1, U+2116; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 700; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOlC=
nqEu92Fr1MmWUlfCBc4AMP6lbBP.woff2") format("woff2"); unicode-range: U+1F00-=
1FFF; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 700; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOlC=
nqEu92Fr1MmWUlfBxc4AMP6lbBP.woff2") format("woff2"); unicode-range: U+370-3=
77, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 700; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOlC=
nqEu92Fr1MmWUlfCxc4AMP6lbBP.woff2") format("woff2"); unicode-range: U+102-1=
03, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303=
-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 700; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOlC=
nqEu92Fr1MmWUlfChc4AMP6lbBP.woff2") format("woff2"); unicode-range: U+100-2=
AF, U+304, U+308, U+329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+2=
0AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Roboto; font-style: normal; font-weight: 700; fon=
t-display: fallback; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOlC=
nqEu92Fr1MmWUlfBBc4AMP6lQ.woff2") format("woff2"); unicode-range: U+0-FF, U=
+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+200=
0-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+F=
FFD; }
@font-face { font-family: "Roboto Mono"; font-style: italic; font-weight: 4=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlco8Vk=
KjG.woff2") format("woff2"); unicode-range: U+460-52F, U+1C80-1C88, U+20B4,=
U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "Roboto Mono"; font-style: italic; font-weight: 4=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-Ulco8Vk=
KjG.woff2") format("woff2"); unicode-range: U+301, U+400-45F, U+490-491, U+=
4B0-4B1, U+2116; }
@font-face { font-family: "Roboto Mono"; font-style: italic; font-weight: 4=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlco8Vk=
KjG.woff2") format("woff2"); unicode-range: U+370-377, U+37A-37F, U+384-38A=
, U+38C, U+38E-3A1, U+3A3-3FF; }
@font-face { font-family: "Roboto Mono"; font-style: italic; font-weight: 4=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlco8Vk=
KjG.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129=
, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, =
U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: "Roboto Mono"; font-style: italic; font-weight: 4=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEleUlco8Vk=
KjG.woff2") format("woff2"); unicode-range: U+100-2AF, U+304, U+308, U+329,=
U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60=
-2C7F, U+A720-A7FF; }
@font-face { font-family: "Roboto Mono"; font-style: italic; font-weight: 4=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ulco8Vk=
A.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2=
BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+2074, U+20AC, =
U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Roboto Mono"; font-style: italic; font-weight: 7=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlco8Vk=
KjG.woff2") format("woff2"); unicode-range: U+460-52F, U+1C80-1C88, U+20B4,=
U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "Roboto Mono"; font-style: italic; font-weight: 7=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-Ulco8Vk=
KjG.woff2") format("woff2"); unicode-range: U+301, U+400-45F, U+490-491, U+=
4B0-4B1, U+2116; }
@font-face { font-family: "Roboto Mono"; font-style: italic; font-weight: 7=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlco8Vk=
KjG.woff2") format("woff2"); unicode-range: U+370-377, U+37A-37F, U+384-38A=
, U+38C, U+38E-3A1, U+3A3-3FF; }
@font-face { font-family: "Roboto Mono"; font-style: italic; font-weight: 7=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlco8Vk=
KjG.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129=
, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, =
U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: "Roboto Mono"; font-style: italic; font-weight: 7=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEleUlco8Vk=
KjG.woff2") format("woff2"); unicode-range: U+100-2AF, U+304, U+308, U+329,=
U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60=
-2C7F, U+A720-A7FF; }
@font-face { font-family: "Roboto Mono"; font-style: italic; font-weight: 7=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ulco8Vk=
A.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2=
BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+2074, U+20AC, =
U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Roboto Mono"; font-style: normal; font-weight: 4=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0me8iUI0lk=
Q.woff2") format("woff2"); unicode-range: U+460-52F, U+1C80-1C88, U+20B4, U=
+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "Roboto Mono"; font-style: normal; font-weight: 4=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0me8iUI0lk=
Q.woff2") format("woff2"); unicode-range: U+301, U+400-45F, U+490-491, U+4B=
0-4B1, U+2116; }
@font-face { font-family: "Roboto Mono"; font-style: normal; font-weight: 4=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0me8iUI0lk=
Q.woff2") format("woff2"); unicode-range: U+370-377, U+37A-37F, U+384-38A, =
U+38C, U+38E-3A1, U+3A3-3FF; }
@font-face { font-family: "Roboto Mono"; font-style: normal; font-weight: 4=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0me8iUI0lk=
Q.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, =
U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+=
329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: "Roboto Mono"; font-style: normal; font-weight: 4=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0me8iUI0lk=
Q.woff2") format("woff2"); unicode-range: U+100-2AF, U+304, U+308, U+329, U=
+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2=
C7F, U+A720-A7FF; }
@font-face { font-family: "Roboto Mono"; font-style: normal; font-weight: 4=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.w=
off2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC,=
U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+2074, U+20AC, U+2=
122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Roboto Mono"; font-style: normal; font-weight: 7=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0me8iUI0lk=
Q.woff2") format("woff2"); unicode-range: U+460-52F, U+1C80-1C88, U+20B4, U=
+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "Roboto Mono"; font-style: normal; font-weight: 7=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0me8iUI0lk=
Q.woff2") format("woff2"); unicode-range: U+301, U+400-45F, U+490-491, U+4B=
0-4B1, U+2116; }
@font-face { font-family: "Roboto Mono"; font-style: normal; font-weight: 7=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0me8iUI0lk=
Q.woff2") format("woff2"); unicode-range: U+370-377, U+37A-37F, U+384-38A, =
U+38C, U+38E-3A1, U+3A3-3FF; }
@font-face { font-family: "Roboto Mono"; font-style: normal; font-weight: 7=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0me8iUI0lk=
Q.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, =
U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+=
329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: "Roboto Mono"; font-style: normal; font-weight: 7=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0me8iUI0lk=
Q.woff2") format("woff2"); unicode-range: U+100-2AF, U+304, U+308, U+329, U=
+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2=
C7F, U+A720-A7FF; }
@font-face { font-family: "Roboto Mono"; font-style: normal; font-weight: 7=
00; font-display: fallback; src: url("https://fonts.gstatic.com/s/robotomon=
o/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.w=
off2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC,=
U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+2074, U+20AC, U+2=
122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
------MultipartBoundary--53G3hQ1v3PNvbYOTNnD5LUgHHcoBuB9Em94lZhHUft------