From 409b7ee834cff4c1099733066a68d908e801b627 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 10 Nov 2023 20:16:29 +0000 Subject: [PATCH] deploy: 161813e7393696957b91d9f14ae7f38c353b91a1 --- .nojekyll | 0 assets/inference.png | Bin 0 -> 67560 bytes assets/logo.png | Bin 0 -> 36089 bytes config_loader.html | 847 +++++++ dataset/cached_qc_dataset.html | 723 ++++++ dataset/config_dataset.html | 731 ++++++ dataset/dataset_helper.html | 839 +++++++ dataset/mixed_cached_qc_dataset.html | 739 ++++++ dataset/qc_dataset.html | 785 +++++++ .../figure-html/cell-17-output-1.png | Bin 0 -> 59382 bytes .../figure-html/cell-12-output-1.png | Bin 0 -> 9278 bytes .../figure-html/cell-13-output-2.png | Bin 0 -> 18156 bytes .../figure-html/cell-14-output-1.png | Bin 0 -> 51101 bytes .../figure-html/cell-16-output-1.png | Bin 0 -> 8552 bytes .../figure-html/cell-22-output-1.png | Bin 0 -> 8552 bytes .../figure-html/cell-23-output-2.png | Bin 0 -> 14291 bytes .../figure-html/cell-24-output-1.png | Bin 0 -> 17407 bytes .../figure-html/cell-7-output-2.png | Bin 0 -> 9278 bytes .../figure-html/cell-12-output-1.png | Bin 0 -> 32006 bytes .../figure-html/cell-14-output-1.png | Bin 0 -> 32175 bytes .../figure-html/cell-16-output-1.png | Bin 0 -> 29902 bytes .../figure-html/cell-17-output-1.png | Bin 0 -> 7257 bytes .../figure-html/cell-20-output-1.png | Bin 0 -> 29786 bytes .../figure-html/cell-20-output-2.png | Bin 0 -> 19471 bytes .../figure-html/cell-20-output-3.png | Bin 0 -> 21448 bytes .../figure-html/cell-20-output-4.png | Bin 0 -> 21249 bytes .../figure-html/cell-20-output-5.png | Bin 0 -> 28095 bytes examples/editing_and_masking.html | 1049 +++++++++ examples/hello_circuit.html | 904 ++++++++ examples/unitary_compilation.html | 978 ++++++++ index.html | 854 +++++++ index_files/figure-html/cell-3-output-2.png | Bin 0 -> 11180 bytes inference/infer_compilation.html | 978 ++++++++ inference/infer_gate_hist.html | 736 ++++++ inference/infer_misc.html | 741 ++++++ inference/infer_srv.html | 922 ++++++++ metrics.html | 796 +++++++ models/config_model.html | 728 ++++++ models/frozen_open_clip.html | 875 +++++++ models/layers.html | 880 +++++++ ...1-a31f2432-fbf6-4ef8-b023-91ea2bfb84ca.png | Bin 0 -> 47605 bytes models/transformers.html | 763 +++++++ models/unet_qc.html | 815 +++++++ models/unitary_encoder.html | 739 ++++++ pipeline/diffusion_pipeline.html | 725 ++++++ pipeline/diffusion_pipeline_special.html | 745 ++++++ pipeline/pipeline.html | 743 ++++++ platform/qcircuit_dataset_construction.html | 957 ++++++++ .../figure-html/cell-11-output-3.png | Bin 0 -> 7564 bytes .../figure-html/cell-7-output-3.png | Bin 0 -> 14244 bytes platform/qcircuit_evaluation.html | 754 ++++++ platform/qcircuit_metrics.html | 772 +++++++ platform/qcircuit_util.html | 782 +++++++ platform/simulation/qcircuit_sim.html | 951 ++++++++ .../figure-html/cell-7-output-2.png | Bin 0 -> 10415 bytes .../figure-html/cell-7-output-4.png | Bin 0 -> 10415 bytes .../figure-html/cell-9-output-2.png | Bin 0 -> 10559 bytes printing.html | 883 ++++++++ robots.txt | 1 + scheduler/scheduler.html | 722 ++++++ scheduler/scheduler_ddim.html | 736 ++++++ scheduler/scheduler_ddpm.html | 736 ++++++ search.json | 639 ++++++ site_libs/bootstrap/bootstrap-icons.css | 2018 +++++++++++++++++ site_libs/bootstrap/bootstrap-icons.woff | Bin 0 -> 164168 bytes site_libs/bootstrap/bootstrap.min.css | 10 + site_libs/bootstrap/bootstrap.min.js | 7 + site_libs/clipboard/clipboard.min.js | 7 + site_libs/quarto-html/anchor.min.js | 9 + site_libs/quarto-html/popper.min.js | 6 + .../quarto-syntax-highlighting.css | 203 ++ site_libs/quarto-html/quarto.js | 902 ++++++++ site_libs/quarto-html/tippy.css | 1 + site_libs/quarto-html/tippy.umd.min.js | 2 + site_libs/quarto-nav/headroom.min.js | 7 + site_libs/quarto-nav/quarto-nav.js | 277 +++ site_libs/quarto-search/autocomplete.umd.js | 3 + site_libs/quarto-search/fuse.min.js | 9 + site_libs/quarto-search/quarto-search.js | 1140 ++++++++++ sitemap.xml | 139 ++ styles.css | 37 + util.html | 926 ++++++++ util_files/figure-html/cell-15-output-1.png | Bin 0 -> 26947 bytes 83 files changed, 33271 insertions(+) create mode 100644 .nojekyll create mode 100644 assets/inference.png create mode 100644 assets/logo.png create mode 100644 config_loader.html create mode 100644 dataset/cached_qc_dataset.html create mode 100644 dataset/config_dataset.html create mode 100644 dataset/dataset_helper.html create mode 100644 dataset/mixed_cached_qc_dataset.html create mode 100644 dataset/qc_dataset.html create mode 100644 examples/0_hello_circuit_files/figure-html/cell-17-output-1.png create mode 100644 examples/1_editing_and_masking_files/figure-html/cell-12-output-1.png create mode 100644 examples/1_editing_and_masking_files/figure-html/cell-13-output-2.png create mode 100644 examples/1_editing_and_masking_files/figure-html/cell-14-output-1.png create mode 100644 examples/1_editing_and_masking_files/figure-html/cell-16-output-1.png create mode 100644 examples/1_editing_and_masking_files/figure-html/cell-22-output-1.png create mode 100644 examples/1_editing_and_masking_files/figure-html/cell-23-output-2.png create mode 100644 examples/1_editing_and_masking_files/figure-html/cell-24-output-1.png create mode 100644 examples/1_editing_and_masking_files/figure-html/cell-7-output-2.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-12-output-1.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-14-output-1.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-16-output-1.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-17-output-1.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-20-output-1.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-20-output-2.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-20-output-3.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-20-output-4.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-20-output-5.png create mode 100644 examples/editing_and_masking.html create mode 100644 examples/hello_circuit.html create mode 100644 examples/unitary_compilation.html create mode 100644 index.html create mode 100644 index_files/figure-html/cell-3-output-2.png create mode 100644 inference/infer_compilation.html create mode 100644 inference/infer_gate_hist.html create mode 100644 inference/infer_misc.html create mode 100644 inference/infer_srv.html create mode 100644 metrics.html create mode 100644 models/config_model.html create mode 100644 models/frozen_open_clip.html create mode 100644 models/layers.html create mode 100644 models/layers_files/figure-html/ab364029-0d4a-461b-aaf4-da0ac25381eb-1-a31f2432-fbf6-4ef8-b023-91ea2bfb84ca.png create mode 100644 models/transformers.html create mode 100644 models/unet_qc.html create mode 100644 models/unitary_encoder.html create mode 100644 pipeline/diffusion_pipeline.html create mode 100644 pipeline/diffusion_pipeline_special.html create mode 100644 pipeline/pipeline.html create mode 100644 platform/qcircuit_dataset_construction.html create mode 100644 platform/qcircuit_dataset_construction_files/figure-html/cell-11-output-3.png create mode 100644 platform/qcircuit_dataset_construction_files/figure-html/cell-7-output-3.png create mode 100644 platform/qcircuit_evaluation.html create mode 100644 platform/qcircuit_metrics.html create mode 100644 platform/qcircuit_util.html create mode 100644 platform/simulation/qcircuit_sim.html create mode 100644 platform/simulation/qcircuit_sim_files/figure-html/cell-7-output-2.png create mode 100644 platform/simulation/qcircuit_sim_files/figure-html/cell-7-output-4.png create mode 100644 platform/simulation/qcircuit_sim_files/figure-html/cell-9-output-2.png create mode 100644 printing.html create mode 100644 robots.txt create mode 100644 scheduler/scheduler.html create mode 100644 scheduler/scheduler_ddim.html create mode 100644 scheduler/scheduler_ddpm.html create mode 100644 search.json create mode 100644 site_libs/bootstrap/bootstrap-icons.css create mode 100644 site_libs/bootstrap/bootstrap-icons.woff create mode 100644 site_libs/bootstrap/bootstrap.min.css create mode 100644 site_libs/bootstrap/bootstrap.min.js create mode 100644 site_libs/clipboard/clipboard.min.js create mode 100644 site_libs/quarto-html/anchor.min.js create mode 100644 site_libs/quarto-html/popper.min.js create mode 100644 site_libs/quarto-html/quarto-syntax-highlighting.css create mode 100644 site_libs/quarto-html/quarto.js create mode 100644 site_libs/quarto-html/tippy.css create mode 100644 site_libs/quarto-html/tippy.umd.min.js create mode 100644 site_libs/quarto-nav/headroom.min.js create mode 100644 site_libs/quarto-nav/quarto-nav.js create mode 100644 site_libs/quarto-search/autocomplete.umd.js create mode 100644 site_libs/quarto-search/fuse.min.js create mode 100644 site_libs/quarto-search/quarto-search.js create mode 100644 sitemap.xml create mode 100644 styles.css create mode 100644 util.html create mode 100644 util_files/figure-html/cell-15-output-1.png diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/assets/inference.png b/assets/inference.png new file mode 100644 index 0000000000000000000000000000000000000000..463a803cb507a668b27bf4d0867695d984f5bc81 GIT binary patch literal 67560 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 V5OZsotc3so002ovPDHLkV1iZ)*2e$< literal 0 HcmV?d00001 diff --git a/config_loader.html b/config_loader.html new file mode 100644 index 0000000..c9cbe8c --- /dev/null +++ b/config_loader.html @@ -0,0 +1,847 @@ + + + + + + + + + +genQC - Config loader + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Config loader

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

Code using omegaconf to handle IO.

+
+

IO

+
+

source

+
+

class_to_str

+
+
 class_to_str (cls)
+
+
+

source

+
+
+

load_config

+
+
 load_config (file_path)
+
+
+

source

+
+
+

config_to_dict

+
+
 config_to_dict (config)
+
+
+

source

+
+
+

save_dataclass_yaml

+
+
 save_dataclass_yaml (data_obj, file_path)
+
+
+

source

+
+
+

save_dict_yaml

+
+
 save_dict_yaml (dict_obj, file_path)
+
+

Test

+
+
@dataclass
+class MyConfig:    
+    target:str = class_to_str(OmegaConf)
+    clr_dim: int = 80
+    features: list[int]=None
+    
+c = MyConfig()
+c.features = [1,2,3]
+
+OmegaConf.structured(c)
+
+
{'target': 'omegaconf.omegaconf.OmegaConf', 'clr_dim': 80, 'features': [1, 2, 3]}
+
+
+
+
+
+

Object config load

+

Mostly taken from: https://github.com/Stability-AI/stablediffusion

+
+

source

+
+

get_obj_from_str

+
+
 get_obj_from_str (string, reload=False)
+
+
+

source

+
+
+

instantiate_from_config

+
+
 instantiate_from_config (config)
+
+
+

source

+
+
+

load_model_from_config

+
+
 load_model_from_config (config, ckpt, device)
+
+ + +
+
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/dataset/cached_qc_dataset.html b/dataset/cached_qc_dataset.html new file mode 100644 index 0000000..3952ec9 --- /dev/null +++ b/dataset/cached_qc_dataset.html @@ -0,0 +1,723 @@ + + + + + + + + + +genQC - Cached quantum circuit dataset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Cached quantum circuit dataset

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

Quantum circuit dataset that caches the y prompts using the CLIP encoder. This speeds up training significantly!

+
+

source

+
+

Cached_OpenClip_Dataset

+
+
 Cached_OpenClip_Dataset (device:torch.device=device(type='cpu'),
+                          **parameters)
+
+

Adds .caching to the Quantum circuit dataset class.

+ + +
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/dataset/config_dataset.html b/dataset/config_dataset.html new file mode 100644 index 0000000..8e819fe --- /dev/null +++ b/dataset/config_dataset.html @@ -0,0 +1,731 @@ + + + + + + + + + +genQC - Config dataset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Config dataset

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

source

+
+

Config_Dataset_config

+
+
 Config_Dataset_config (store_dict:dict)
+
+

Config dataclass used for storage.

+
+

source

+
+
+

Config_Dataset

+
+
 Config_Dataset (device:torch.device=device(type='cpu'), **parameters)
+
+

Base class for datasets, manages loading and saving.

+ + +
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/dataset/dataset_helper.html b/dataset/dataset_helper.html new file mode 100644 index 0000000..d888f10 --- /dev/null +++ b/dataset/dataset_helper.html @@ -0,0 +1,839 @@ + + + + + + + + + +genQC - Dataset helper functions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Dataset helper functions

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

Some comonly used functions for datasets.

+
+

Checking

+
+

source

+
+

check_duplicate_in_dataset

+
+
 check_duplicate_in_dataset (x, dataset)
+
+

Check if ‘x’ is in ‘dataset’

+
+

source

+
+
+

check_duplicates_in_dataset

+
+
 check_duplicates_in_dataset (xs, dataset, return_ind=False, invert=False)
+
+

Checks if xs is are dataset. Boolean invert changes if we count duplicates (False) or ones that are not in dataset (True). Uses torch.vmap which copies dataset for every element in xs.

+

Check if this works:

+
+
xs = torch.tensor(
+    [[0.7, 1, 0.5], 
+     [0.3, 1, 0.5],
+     [  0, 1, 0.5]])
+
+d = torch.tensor([
+    [0.11, 1, 0.5],
+    [0.70, 1, 0.5],      #here a dup
+    [0.71, 1, 0.5],
+    [0.3 , 1, 0.5]])
+
+check_duplicates_in_dataset(xs, d, return_ind=True)
+
+
(2, tensor([0, 1]))
+
+
+
+
+
+

Manipulating

+
+

source

+
+

shuffle_tensor_dataset

+
+
 shuffle_tensor_dataset (x, y=None, *z)
+
+

Assumes numpy or tensor objects with same length.

+
+

source

+
+
+

get_unique_elements_indices

+
+
 get_unique_elements_indices (tensor)
+
+

Returns indices of unique_elements in tensor.

+
+

source

+
+
+

uniquify_tensor_dataset

+
+
 uniquify_tensor_dataset (x, y=None, *z)
+
+

x has to be tensor, assumes numpy or tensor obj for y and z

+
+

source

+
+
+

balance_tensor_dataset

+
+
 balance_tensor_dataset (x, y, *z, samples:int=None,
+                         make_unique:bool=True, y_uniques=None,
+                         shuffle_lables:bool=True, add_balance_fn:<built-
+                         infunctioncallable>=None)
+
+

Assumes x is tensor and y is tensor or numpy.

+ + +
+
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/dataset/mixed_cached_qc_dataset.html b/dataset/mixed_cached_qc_dataset.html new file mode 100644 index 0000000..c2c14aa --- /dev/null +++ b/dataset/mixed_cached_qc_dataset.html @@ -0,0 +1,739 @@ + + + + + + + + + +genQC - Mixed cached dataset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Mixed cached dataset

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

Dataset that combines and handles multiple cached datasets, e.g. for multiple qubits. Here we also handle paddings.

+
+

source

+
+

Mixed_Cached_OpenClip_Dataset_config

+
+
 Mixed_Cached_OpenClip_Dataset_config (store_dict:dict, optimized:bool,
+                                       dataset_to_gpu:bool,
+                                       random_samples:int,
+                                       num_of_qubits:int, min_gates:int,
+                                       max_gates:int, gate_pool:list[str],
+                                       pad_constant:int, collate_fn:str,
+                                       bucket_batch_size:int,
+                                       num_down_scales:int)
+
+
+

source

+
+
+

Mixed_Cached_OpenClip_Dataset

+
+
 Mixed_Cached_OpenClip_Dataset (device:torch.device=device(type='cpu'),
+                                **parameters)
+
+

Dataset that uses multiple cached dataset and combines them with padding, either i) Bucket or ii) Max. Also provides a corresponding collate_fn for training.

+ + +
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/dataset/qc_dataset.html b/dataset/qc_dataset.html new file mode 100644 index 0000000..564f3a2 --- /dev/null +++ b/dataset/qc_dataset.html @@ -0,0 +1,785 @@ + + + + + + + + + +genQC - Quantum circuit dataset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Quantum circuit dataset

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

Dataset for quantum circuits.

+
+

source

+
+

Qc_Config_Dataset_config

+
+
 Qc_Config_Dataset_config (store_dict:dict, optimized:bool,
+                           dataset_to_gpu:bool, random_samples:int,
+                           num_of_qubits:int, min_gates:int,
+                           max_gates:int, gate_pool:list[str])
+
+
+

source

+
+
+

Qc_Config_Dataset

+
+
 Qc_Config_Dataset (device:torch.device=device(type='cpu'), **parameters)
+
+

Dataset for quantum circuits, access gate_pool directly and all other paras with .params_config

+
+
init = {k:None for k in Qc_Config_Dataset.req_params}
+init["gate_pool"]  = ["qiskit.circuit.library.standard_gates.h.HGate",
+                      "qiskit.circuit.library.standard_gates.x.CXGate"]
+init["store_dict"] = {"x":"tensor", "y":"tensor_list"}
+
+a = Qc_Config_Dataset(**init)
+a.get_config()
+
+
{'target': '__main__.Qc_Config_Dataset',
+ 'device': 'cpu',
+ 'comment': '',
+ 'save_path': None,
+ 'save_datetime': '11/09/2023 18:48:57',
+ 'params': Qc_Config_Dataset_config(store_dict={'x': 'tensor', 'y': 'tensor_list'}, optimized=None, dataset_to_gpu=None, random_samples=None, num_of_qubits=None, min_gates=None, max_gates=None, gate_pool=['qiskit.circuit.library.standard_gates.h.HGate', 'qiskit.circuit.library.standard_gates.x.CXGate'])}
+
+
+ + +
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/examples/0_hello_circuit_files/figure-html/cell-17-output-1.png b/examples/0_hello_circuit_files/figure-html/cell-17-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f955cfb0323edbee0e5a3bc04413e926150056c5 GIT binary patch literal 59382 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
|)4`>BW`{-`J#e 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 literal 0 HcmV?d00001 diff --git a/examples/1_editing_and_masking_files/figure-html/cell-12-output-1.png b/examples/1_editing_and_masking_files/figure-html/cell-12-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..cb530d94bd05fc61a19010d1637b515188bb5d55 GIT binary patch literal 9278 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 EH;1EVt^fc4 literal 0 HcmV?d00001 diff --git a/examples/1_editing_and_masking_files/figure-html/cell-14-output-1.png b/examples/1_editing_and_masking_files/figure-html/cell-14-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..83a7b6967401877b9fbd2ae79b9a686d79838716 GIT binary patch literal 51101 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 literal 0 HcmV?d00001 diff --git a/examples/1_editing_and_masking_files/figure-html/cell-16-output-1.png b/examples/1_editing_and_masking_files/figure-html/cell-16-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..b4891a3970d74e4a24f384c985069eb9d577a400 GIT binary patch literal 8552 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 Kx=7LD@&5sH?!vzS literal 0 HcmV?d00001 diff --git a/examples/1_editing_and_masking_files/figure-html/cell-22-output-1.png b/examples/1_editing_and_masking_files/figure-html/cell-22-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..b4891a3970d74e4a24f384c985069eb9d577a400 GIT binary patch literal 8552 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 Kx=7LD@&5sH?!vzS literal 0 HcmV?d00001 diff --git a/examples/1_editing_and_masking_files/figure-html/cell-23-output-2.png b/examples/1_editing_and_masking_files/figure-html/cell-23-output-2.png new file mode 100644 index 0000000000000000000000000000000000000000..787b12cecd12b1479d49416ee059832be6025e0f GIT binary patch literal 14291 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 z%0DR1fy8X6jc6`Eh=Jssno0#4s;$EaO3MwY(-^C*$fSKVB0PIBZypm&SJGt)NwM$R zGCZsXp%=rp`PP1EiCY1-IWqmPCH*L&WM0uvSBmXSeJXRITNn@qMr0E@`+Ac-GDX-d zImQ&IBJ~{8Hiddn>bd}k8P9E!zMT-k^d85yRsH4ucMd3R5I-vsu2KFb+kpBhH}B9m zG*`3z^hG%~qr2-p`)SG44hLbt<-JVH=Hp#3g+3UXUPGhwE#>=p7VAL`*d}$uYsp*O z_es^5;;y(xhYwnRR;;~KTYlC&mJayXG!3TeDs@z={eB~+v2;q@E^TF~mm63O9Wse- zdzc+ad?2On`00v6FqFymruUUMKE1H!e2Osq53}qY8X}bBRHSL)j|+`OtNLoicsAa& zRZd6{B?M2=mklqHwe9JrWg)vS|8toZJn5gQxc~Lje~QZx$o;FaHx_s(GBW=skQKq- zey&S-dkF8xO(yL{vE|Z_Dr`)!rzkp$%Lk{x_y3zx`t>g@OkzF))l;Sp3eW3;&DRbb!c!DM?M88;TQK_H6P_57Z*gjpTkYo>!Ta z&`o9DUVkL$8u;(hGbJS@3irQ<0f0&g$x?)kp`p)H_Y3OkzO8suLc7P}0u6{=ZWBlG zxt3O#yW<$OfOp2qo;zB#Cc0kl!%}BpMa~A3c;@~3yjNB=+E*Tm!F5Bl9 z64K#R9wMzHTZTSF(5Tvt59Q9WWDjm61Jy8M}zE(bvMQ z4i|^Fdc2H@(U)5H2{evs06&U=8G4rOc%Bp$6Pxv}PfSkEJ1gyISpx@>6|qY{#<{Idvd+Z$0tJe4);hv-H2}!Z*&RDfqd*Dq8Dx{zDxU`%fYo z<>weX+u;!r5fnsD2}1$3{&-0i&;r45x-9o^@XmFuhAU&DB>N=Lpk+03d3+z8N8~8mg&DN!+Tz7&E&w2#{d(o`*E9u=;HQv6-kNfX)5Xsh~~u8JcnbC1dfo$)EEDjSZF%) zi(f=m_BLYTVg87{w~tRWo)Vtt^%n1{4Oo6zrNtwogC-dU6%Q-c?gqG6zQMD-oJgVb zi)K6@KNB2GS$-j3g#@psCBUI?SaLj$*}MCSQod}{nAH$5QP-#Z>L<+kkDmcxVjVGk z%uG3VaVTZ65R77QLJjOV;NO2SV|*2O`JF42=?w|$n2saTQ1*foS>g!**^MjWr}B_ literal 0 HcmV?d00001 diff --git a/examples/1_editing_and_masking_files/figure-html/cell-24-output-1.png b/examples/1_editing_and_masking_files/figure-html/cell-24-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..aec183a57eab3caf2be1314731937bd51926ed45 GIT binary patch literal 17407 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 SgMW1ykXOnti(b6>@IL?oyyT1k literal 0 HcmV?d00001 diff --git a/examples/1_editing_and_masking_files/figure-html/cell-7-output-2.png b/examples/1_editing_and_masking_files/figure-html/cell-7-output-2.png new file mode 100644 index 0000000000000000000000000000000000000000..cb530d94bd05fc61a19010d1637b515188bb5d55 GIT binary patch literal 9278 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%0At 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 literal 0 HcmV?d00001 diff --git a/examples/2_unitary_compilation_files/figure-html/cell-14-output-1.png b/examples/2_unitary_compilation_files/figure-html/cell-14-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..2d97e693f886837b26f90d26972ee258fb50289f GIT binary patch literal 32175 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 literal 0 HcmV?d00001 diff --git a/examples/2_unitary_compilation_files/figure-html/cell-16-output-1.png b/examples/2_unitary_compilation_files/figure-html/cell-16-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..c1dc9b0eb0e8836e8df5646eccfb329d6eff29e8 GIT binary patch literal 29902 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 literal 0 HcmV?d00001 diff --git a/examples/2_unitary_compilation_files/figure-html/cell-20-output-1.png b/examples/2_unitary_compilation_files/figure-html/cell-20-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..fe8596ec3f138d2a1c490fc6f75efd39d9fabd16 GIT binary patch literal 29786 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 literal 0 HcmV?d00001 diff --git a/examples/2_unitary_compilation_files/figure-html/cell-20-output-3.png b/examples/2_unitary_compilation_files/figure-html/cell-20-output-3.png new file mode 100644 index 0000000000000000000000000000000000000000..aaedb7f2d21dc569e59d70301fa352b9ad1f828d GIT binary patch literal 21448 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¥brx7UCYo&{7Vx@>eEXr9H-G_{LQZ zN0ITpb(7>kCBn?g<3R`SniQ_Ye8$Q(P``SeFV?a# zl^t#OD)W0yniedUJsa(vG?dZJxpr;*F<;D|g4nL*xB*VfvShGRXI?rCJhQw{EtL zJV`s{N%OV;KhkK$sYB8QV>3nAvkeyX$loYV1UJSe;($z3*wZ5Y*iK4y^=(Oy4+v(j z1>;b&$6pl8FO)6UMYAuj072o+X!W?UI*rmAhnlEy&TZJ`tn9qJm!JTX!%XiDni=4r zO%k-EiUAF?B515cg1#xEC{_!H-4ZU3;Z8l(RV7gL z9p~9+K*(K>ft3|(a#U!I@%j$Y5K!OC8)tf;JuJT6-MfdxecK9JLg=7arkoagPY)pd z9z@W|m6~=UBA95U-d4WGCX$O+4n^*7@^;c&DoL-N_2Cc@JiGEG?kEIQZ}fqK`_o+q z8aSMoUQ4`X+D$M zg@kZ12zYzu*wlG+#~@`2#>~4%`6UnLW3|Z0Arzo&ckh05d~=dc>ng%ql)B8uRR7kt zNMH1i%kFnR8EY1lZK6bJd0?+#;8h2zIiDRYpJPtYa&`|*)!L#}vO*0s!&jnSDD*$M zB?6j@t3mB7mz|W33A7M^Zo{>ix*7*ZN9Rtu*euY!0Ys^};5I1qpkk);kjK+(oTxu_ zs*?r8#eGHLrjD7CK%2|B9mlc6OB1Eq1q5O-3-unR3!fM$S%G0NfkLg|B}>gaEs)s- zJ*Lu6;HBM=beh)DwrAwG3>RNeKH1>SeqI}ekf6GYO^u_l&9wisP7+XL+G`g(R|e+* zc{uA+`0JN(-O;a*(JQx7b-wqa-AOjehX_I*+mcpHQ=4>a2vDRjp2m@wS&#OtML>@5 zz{>o3cIQ@pxfq_Yug{x;`_&!qKHP7Lc=wj-+7Ut39fyu0b_TDXj8r*Z(42v2` z*Xuyjh}Ce`CvamHT4?d)=GstZxXaems&gW^8HJ$3;s?#ijMA+ycYU;eIZra^oU~z1 z*2D|$8ZD!j^o|+apxEAbm*RLDz8RBdOz^%uiL}$61Imge~H1xv2!MeXZBT1czGxB zs|1Vnu0C6eY)~x}*oU_+A)^kbd{A~A7;%#savxAAj4SLXOCJ#P`Pkw}w>#H~-GGEt z0X5?3{enrvlkB>wM>C*qIB<03DAR=1ZX{XQx zov=~Zu!#Y$GeeDyS-@nFh}Mvin&+2Ow+I_o{dLH%)b96c z0KMO|56V=8F-&uua3TC+Uo@ZwRV$CauuuF`(Ml1LJs0v>)Vtme9HNSi7^VE_@SnOD zhpplq2FOts7fnF{``bh{ z_Kr*7&H>nFT{&ZaRPtmK8m1R8+)#%yxvtSiY|-K3VmIC|pj&>jzgX#*m*jJt`|$^L zuK4A-%Ztw?g3UWMr0cK<^6yLRH>KUJM>?v@=P8m{ z{Bg0b>y-|t)vwT?k5tn1q@^GK8B#cCv(MA7!QMG&4La<+KDr9-?V*vWkn9BRgCmDv z2RCuR_PP^EX}ezV89_tMI^`#=r)<_&RPdtSYpo_Yruq0do;br0UpJ8Zm@{&Xfuht& z!vn|DF)i}_-!w!LmnoH~=?JKcC4|zJJCR$>qoouSY&-=P@{{!~$0p8TYz&|trM@mT zN<{e1evMEO6xOl1=ACoUg4_c1Em5HN9G|R*^GUzpI_sn7PqYQjzS#+7|6uCXHaZY? z8Z&94XX4eVh7}DX46Z_ckOFZ^jv~o=aFEwToCpoh6*27PQ_F!u%z9$$O+ZxAEBQ%) z1G7ll%msqJo3!T?6-CTjQ+N2@0#Qb#;lRA#e}S$Q+FT9wA*CvV8OwV@?#O_$V6NlD zXb;-&DP?nl3yxcu@P{|igTvJZyNk~OyEY)%FEPj8OCmd#LZd&UI^in8oFDPaq=#yd zbn1W19oPeXqIzVOEzACUQa8$sXLi6MFw8l1fM=!a;RD+$ z&sxTW14kiSjQpMgwF?AJdUR&?ta(~`=JE4(Es@?U#K>^)aN_j3yZ1j=*6cmooW6bH zxvYmj%NP#D`%Dp$&Mg&rchqh6$AiVd(X6Y*5hmMRbiqSn4-T{191R2-+|Y4(@zyKr z=YH`md%Jz+r+LrcmgH#hT3-JAmVx2Jaxq@u21?KOl?HcKnpbY{tbKXv-n@Kv1tZ|l z@MJfyRM9Z^pkSXVlJYjwWn|aBIisjm!1j<`d-IK%GO|lTa}+uteGHdf&tz6EiHX{L z+5UI_WUad<9-EBCI2aT-c;BgrPW77q@5TJT=3Z0sQZLf5GxxINQ z8>ihJP=7$@@LSN9QWqUyt9aY`D=T+?x&Jh%&hzd!abZ>9N?oh%ds99a=mER#YYet* zzOt?J%lq|9Yu#UO)1U3T>x0hAMS4LYAN;0+2KD%%ou${;yt1yl0Ou5ey@}_aw^_V- zX47+cw|DQPKf=lk4F4wGi}-bSDR6Twa7Ff#rl9lR3)6~UUdjtvEpq=jaKSP|HrN;j z72voaXaGNwKl5oBaEW*3^~9BjUe*B{?^)LzUQJZ{nyY@bn>%9%aE>8li}S7>t4kcy zGl9!>Z|7d>Ykv0U(7PKdrYrSJ^AvesD44Djzfb@iHxO_T5e8BXkB_)|GaH|oep&Uc zwbEPLq;Fv*l0iMr!0owLY-TFn0hUzirxd?>naArnpE^6e?$qS2)4(2VSKp+dNlT{j zF1?Y_-3;`wg9Bvf%kNO)^jYR6@xVZo+U@JLHh&+`7Xmxqgn@hm1qv1rUqQH_HT*Cc z;E4ffQbz=)NNBsZ-cT1$HGk}uu;hq~_Bpwz{VIiJyMvMzt>t3|b~c2&p7%|vKQC_? z&eU+i5i~prDdP`#nE{uutZr_24qQ)tC4eHKNhPp#!!d<|&K zRJr*Hr4qnAvoyfEe9E8tepWEXTG&&X3hLDSqoD3&dyWrdR_OugI+1il3%8|OhQ6JE-xpo zMnXbL1zwL`x(NPP4Tf=pr)MrNbzIaPEnVDAoGeI`OkCdBIl97y}7INjV&jOF|$dG`LbQj#<0ZuHzs;XM20kp{-PWB{-AHZ@Nn506$j%AvMh z{$OisTT;TVmxudQ%Kf^8-Ns__g6@lV1w3b7oYl2jTMvsre>TFLcQmoWQ;ac8^q!FW z8eul6P0YD_KEav1pI_+=7}CEUKgbN+NdI|5LUK@1{vOyh+dan#xdsYW$ki!)&oT0{AU%YJVCNXPz1~3$_Q^G!z+uD~em%F|{k*cVufG8^y7kxL+5vC9?XrDdVI={ULu2x_-IF2>nng4#90$Y5lu1mPXhmYprJAXxw|fhU-Mk*!RGKxW*_H%InWm zpet5v-+C2aB7C$`Ov`*us?dGi$nZ`51$>dk*R|Rs2eI7&^}~t%+RO`AZk^vbM5$+H zV=x+&;(t;yloPXW8~dp4kGmWD!!nfOGcuFBAYj>28GQekltBAsB3M=SysOn!#5A=H zT{VB!#YjjTw5ed6<{-qeR89rZ?sSW+FZ_;o4EH0JD(DEShl%usO6{$dqL9;NijO3G@OdzPe+Qu-=x=Gg|!%Th0 z8ci|py@5tbiQKC7TK%@Rwp|NH?c;wGV7Oa)41D7WORRc^BAN9mHHX%Bc;_;@uC{*f z^r-HXk0qAT@AxgD6ew0KypyQmzN4g!KCdCXqZp`}!+2$h?@=*U+!n$saWETkXb*n6 zgsttkO~qHOu4{ff7ED}_ii)ZWcC7-J4BLCx-D-A2Qe3})x;-(4BdI7=uL6`Pdg zpqwmT^L(tzeO<7>uTL58n+8rD+S%8V*c2_c!V0p)e!b1(u;szpqVIlei>@iH_l+^~ zLdAxMtDX}2kP1rjzw^o_@UQEj{TYcaot4|cv_ko9I*R?3xEilr8#jr5(LE8B?~m(u z4t#b;9jjIa`&ZrK11ab)FFdUuF0qXnDKwMaKHkO(ad2>S-IogZJ~A?5DK9VI)O`Rx zjfZ!(f|Wod4-!tmb0J$>^<1<*%{VLF=1`4FsNecOf_-iId+eQ73Py2Gd7x{Cl1D>a z%^pXqWkSOz#mNLkxUyI2^pE%F1e|7n9M%|dzAdk&r4@bhr&VGJh|R$FCuSJa=F4KI$J;iOwJ@+8IDJPT z{K~%Qx8v)l;7!}(t95*qVRbTYO_cu@tasyb4_gW=nPs3*sN|93c%>$Hi~`|s*S0{6 zgF|6)agmh;9;$K&q6X{~Gs+5^QPYd7Sn-DNJzLi>g4Rqf_kYC;V@RN3Xf{) z?CiAL*iAk?mi69WBM0-nE98*CUA4kH?mh`4n!*gl*fgMUQ;2za!QV~GgQ-%a@~!y_ z+a8aRCmij^w9Y`Cl7UR4 z%vwXc7(AC~cZ(eU@~3oJEg4!WY-Q;GaN$a1TpWJZGYw|= z!bCf_xw%=d$UKM{3T)8Ufsa$gw3VV%b?ZM%Dyh(Wg<+n%a^V4SxZCqsN4H6!m2LCe zgV>!Mpdt+P!Y*<^)-T)Ii6^fkkSaoU!}sKufD8Z8x;R>fW=1*BcgH<8X^=MtagK5X z8XfQIzR;6;ag~KEj%G{wr@y=6Y3+C(J-T!- zyg8i_@1O>hmceJ^ISg21udOy#Ca+rHByGSBD{<-ytlf+mFJ|MI>9AEckm9GSLfn^bK{wHwZ-12dvo=(FvM~#dp zuTK5?`F8^)j-Qi}k#XrUI063$WU+?9&1bEWVOn*oKf{^8;I;e- z6bzyseVx_E$3F6xJy87_iV06u;X6D1DnJ(p)Kw0~{l+U@+1c4IA5<4kcL_}n0K1nT z$lxUhWU4H`eEKqBE2b`2<*{soMT}tv5D*~`MjVP`xr4h(F$20(d$eZj!dNx^Pki{p zfzz30{%~(KhiHE%54zo5mQa~X**W=rDbM{iG&PaHe5yHCZw3Gl@lalvu+#6lJE*;k z^*br1pch5}cL(iFdkMxK&0R5jBhh=U!X$+2*)v_RZG(f_#(Blv!V1p6J9~j)%rrip zz71UU)jv;xmmUI!pOx^7RHEmuRYEF9e))^o*jO;JKH`}mz&ld9HCXZM!>jASVz7h25CCfj|GQmC7p4&?is;u0tUSNhcW94rT!KzA$yO$?`P%%!((dcW86p%Z#L;2K2 z;yfx3e#f)u2K`nMKad8y-4C2)@2pd5fXR7RE@D7fv(u+gN!S}LvF?2ka+gm=Hk7Vc zmJx=ab*xqej;Xg|J}HOs_!sFRVcicMLMvp`hmZ#_=IP2DC<`scS$ z9ZEAtYcX7wp||d2mj}dhen8^j$|9@$Vtd18apEv9LM`z22~JKFZzR@2puot)Pa zoDZONcx7RM1Xl0UAp$BR6L4}oFJapr$>z1wE9*L+=q~7`EWd;=vHgl&cB|SwIa*&X zt0UwY!FDxkc5(XcKY#X&SS9CyKx$}xzu^kc0;XTNAH<{D<8NE(ffV$Eu$JFuAnV)A zKO%lF>8_PN>97n5w6+co00_ga-Uw}sZV3x}8Z8P=TSh+}qRg$L+P!8g*tx)`v2fVvwX8GX3huEMK zqC3&6bU}5C?HhQCGIYiA$r3e=((jLy7zhiW(>nv>jIVIcWM&f(&;+V*$?E5&-ctKf zj4$EvaJ@BzHuK}h^R!I=kpR6B<-7hlO*LI+k?2c_$wW~RuZ5MBZAWV zcb~29L-XVw{v&53BpYAN9}rLe*Q4%#^-zbIJMkNr6uYgGt=%;(2C(r_-w_Rk^D>0$ z!gsb5e=nye0uKT&-kQ2=B5f4=qqj@73;cYXB9G^d)zGUX38|G0*`yr`%rUa<3tUL|%t@~3 z$QAhBZO8;WTSd*Fd*XLfcMZvvw+6h085uG}OPmDT(?uc>3#FqD{d`!_baGn3VS2qB z^->kR14qt6h=+BgsN4d$4RMO+Q^L&Sv7WO#da{+C$PHGGVe-Y<2=s%m@e1oHgq3HMsa8p5d{zr4uPmC|GEFg5qhm3orzT% zu*NRloNQ+K3HQmEeUt>APP2oaE&5g+dlaK6?ooK|m;N33QEiCryq?ga$4n$I{;3MS z=qEd)vC^tc|Dm4+3bW&CYfhAaYbw(>Y|b2eN`@iJeNSWq53=EOgvPWdK}|-oV7i9ErG0W^=rp{P3!O(A zw(hww>UB>DW5^i%X(*_7eH4L%;O-GCt@c=)WfsJC_a4`yMWWo-<)sXFVnVI zo8+0Sn+#vBv|XXdX~x0KL!|A4(K7gAaq$RE4LIOq-GpiAgs;8(JJ<7hU=q$@F6^mEBBL`eA&(>)#K zEYidcA%h|Xd`W4nZy#Fxf1E7o$OF|wiwpFi*Op8YTv>GgQx zG@y*D@0;u~mu2F=dm!`XHnu`!fup9KB*oCCMYLfTyP;Z>lV= zw#BUbQ(9aVV?vn8_f0o{jk?)PO0TiL{HT8+-Ez_>1LNo%b&EULcNtL^DFPfp-H7YRwD^YbZCUZG8O)wn!SB~`iiv5zm!8WDmpA5ox{@wI+w#|>vrb&l zrxa$7{T?5m129G+9Kd^3YRJGjBs)8Mpw7>am=Z4aXNEDead9b;QkL2cw}R-O-?ZuT z4>x5+jfSdIJCmK(?;>tL%ia_k%m+uU=Z!e2)QB#CI8=R#s1lwn~2s{Tc4W8{B!-Vjc(O$xwXLQB-74#t2Nv zVJwSr^3L48@8>zDPi4VrhT@+^S<6Vx(imnPb^K1}1YIG^y(_-5VGM(f`vg5kF4(in zs`QyrL;j6NDt)I%C(97Bl=aGE>x%Bob>SUeC;U3q{D(YJ`Y6Q&eki46Of+t+UZbn8)w>WjK_0&dXpvaK*U8+J#>JzNV z@S_aIj;F|E8;1(R{3li&3vtu~o6OLOYERWJjCUBOw|5TJrA!^8=(-epbHkN96K5nd zx6G?qjEx-Fc@_~dx)AE^(1Y!-V@&+V^Zf%UdnxOdslYliQ2lG82CvbR8R3tnQnxCfEAuINQE| zU3mD7s=F2Gz*eGlu;|COj5BJ6CS24Q=Mw(oDm6$z-hDw12DHepo8dN8r3kT0C_7bT zXZvp}b7t0(UInxSM<0A5HwRU}^*}XowLkxsbv5q| z>B3i(TSA=l1ooE`{$2Z3CH4_%M+~)6b@DZA!tV!dR(Dg-4^(BN&-c08mxwJ^QPczz z%~#dy<>$bH8FI&1cEurei!J5hAf;S9yuxQQ@aQja+U;JO4zN;5CfQKC-a>VC^>f|0 zXz!Z7)>EkNMoH)XeEZKeHti$<+fG9I@*IJ{IP19~^qgJ=9ze;MFSzzQ(>}1jVO0&v z$6;0}8gMZ=CSMtrCP9;164N_n)HhwnxQwt@RQsZk&VA=jKmDAf?eASL0gLvV#DtGV z!nYbgqY{e%sbmVj^YBP0IYBOWCNFv~H$vD_K{r!IqExcN$$3seIoffKJ=V4^+IITF zlf)igC1|t0nrlUJ@&O|5GW0;dZ(*@8u_>f%nc}HD0{@WCHTQp5tGJ<(zKc zmys?BiKi@$$nbgcP~}&xP_WF*T;p8yW4Il0?lAt11Pu%Fly%_&qTKiEJ!6mcNCOfz zr2YNi;9#jI)gNRN=^#5KOy906cqV*m5K-5=adiK{iM*|h_4~CQ2^GD=u$BnT0DYTe z7K@!w8y%CWkG$ZuYkT+?A)%A{mNyES%AZ%e^-@aW`K&@gUd-=%>>-c)nFi1kKq6=e zO?af^OYL*U#tg>2mh<*5(qsx^_mlsw;^p~PH(piv*pPCBdkY%*@q7gXYcsCKs8xpO-xPV+Q3*dUtM4ndPNRT=!Q8 zgQ;I1x55$X-Qm&4HH*HzkymrLgN2mY(uI|eVAHWP5kW(S?uLZ@F!95zkX{V;;yChH z0jYUfBqN5K{7#-T)mIqff`7@Jy~6+J0kq2iy6z?4QYeGyu!kk@lcUs)MVQX_BmivO z8ek#2lRUG?VPNvNAUZtQE484@a+9wHYds7P84B((=sB3XL|&C@*)ZWX$WOsm0nqxF(db#yA!LXCpsJFgyJM6_ z!E_3*4TZEQgZy(tXSSU1S*N|iMJ6^L!=LAYt#ygEV6l)G$J zK03gFyF{ssuN{{Mg69bUCK`aL2v(`;TevPda?MlRt5v1MH$Kkw?Hyc~Z~lZUt*jT| zE^|fG`xFkOX2PD7x~*2pS^4PeZI(uD*!Q@v!uu-qEEY_+XkKA^+nNB7jHiE*6Wyy% zK;fB6VCmf-NG+3GT#33XkLuRLr2SK_#{Qx($6B7+$Z+p3od;LUeYZ{Tvf1nVOf1F4WmOCL zzBxhf5Xko1=WK+7j)v-vHT`_oLqE4NU2yM0_Mp8n`OoywA3mJjU0ps7H^Y#vMnpbH zJUC~II|$WO8}UWCghe`+4%jXfBB)m)T(bqzaZksXAxl=Emc}To9LLC|l>4%*R3;Mc z9|pKoAd8QZLOZ_07i{Z{kH|JQP@tk_jaNpiftqa|zTwQsf>LLnx{+;T%DZGg$x zW~iAxImzmq-1&EJAgktFR(jf$Zc7ReoTwLkUy5FB~)u32l=@0w@4KxVK1P#nB?m5F_woKN=9G)hAk_eVVG zeA&gYHJX~xgY>I#N353KXBq`5`$jO^`AQyZD0tmoV*pHSDUg4>J?JoBg?d%72 ze2;OAm=(F7y0E2F%;}Zjpknvl$!~s?ymnvo_?=St`Ig6sex9i4TBG&tw4)2o&LqJ{WbTB=Mzs(6nW3IO_Wm_8u=P5{4k(ZH#JZCgYoDVnu3>M$fKz=vZm zLT@t*c6%|GQ3q@1lr^Dmg7;M~k2$ZO(E?!Z|$hflB5bC*Sa zvva@s_o^g$wEwqMGX#?WoP_Cq{n}$@`MYFfTXzD+O`7Qbd(0%Nb&Vw9QT?1+@9<{! z6QwGt@YctXzaCimJoxXwM-8wR`8O3eX)E0L19*v(e1{9#du^BQ^X^Z}Y=>(fQVI5 zC%t6`pcEJ;hC%t*XN_6e&i3i5*nAW3*>^hAm?O^J*XGj249u~Y?)~D@DuoNw{4Xs^dkX}XlWe8f|%rT>LW?dX%~2FbJ2c{|9pet)7b zY`~E5PA>&U3vEHB(lZ&Ms|<$>E@NH)qSQYa|L&9|lbg0Cp4W_-E(p^&2ge4qaZkx* zG%vfBEyoQd(h~RXo!skKb?HbbggOw}SA*M^{lemC*J&-oWgOz-5w^=BPmR>7_>0(O z*{}oS+={0iWUe*)0)@y@(%Tj@ioGtmeuiXfD$ikfT}xM{PM`CMQVtI$pMjGj+9rD? zgzU3sr=s+5Y=%a)F1`>VT;63PiqjR*);oGXQ0fn$uqEHP$VeOG+&s-eRp`78bYFP! z=Scvgsn)5!6DwqKJa21pK>PBPCx+zOkYcjSPRig0$Ec(IXw~zj0a=^)dcqU6Y>r%8 zU&OG@uzX+YDx6gwVrS-PNAm7BK-TPy*;YBeu|sH1?3zc_O!ZM_jwspMNSr3`RgpBi z8Xuz^JGb0uh#O>LMp$X6vkdY05Y2=OW&iesNhk zP_wMd`b0)jnj>uL`oTfpp)2L_Ro&e8R^I%scuC(Gb8hL<*F@-5=^(D^aWB27wWq0AE~q zsgbvkj)jJ+Mo4rx6k>6N2-!w_z=BK{nGg>D%D_xwt)>(;s5Mrr7J_>Z7uYoQOU3v_ zM2;B=yQW3|Lq4$N9brIRALz9P7;AoD%d)}E=I^|$S5-&DP3GPMn% z6^|_~4$7^4 zyma9b$&(-adEH&EjJgUwgXGnZl?EqoFIzefX+ZRE>$joDob&3RFqeH$*R>Q__)@ko zJby_(V}BM#=};^a=JvBxI5}cemIFc}slI1dur{|FR$`qmrgOC2SJT%JgQzvjMNqp! z%{_8*H9zd-YJbJAWMG%%#;cwS+kc6~v%yu*N*=S1u;qElW^|i`ngo#zTCEPftJv>n{WKrdfcEVU$y8-NeYI#2XQkusx@sqy?ZcAzdm3Q zA<0{GD7h>YJi69|#fRm>prwSDoZj(Lp_T6$lF(vtozvmCmFH3HwtFEZ>Ot)1Z+WL^f#S!^83ISIn^(-Rh!-9jbkWgu zY@W6^HPSad0!#H1=lD0yJnd~!$(tu!Y{tl}pc6a9idaJF3TVa!&OCGsvpUQ@!`*RG zZv_UdzG-ROqW|r>vYNQ%^4>>qjuZu!zHbq`8PmDb@m?nMuX<)BgC$f+WRY6t$U#kL(?tS`VnAKVuXU5u#p(%#bK z__OSw=Wn4^*LcZ@q(I8`)1a?9i9*Ch{KTU_3C|x)VYWGzot2%>vNQJU{U$7*KK8gw zf-vKo@G<(7H)%ga12xWy5PY@XL$SQc+(m}*Q7kU)v~8ebyrv@e@PW0ssqT*H*vlXhdhc~54PK@jPL6`SJL*HL{fwLL?xSDTW6Fuqb)c14J!Yepby<} zEf=(SoyR;@h~yiBJ_p%YMLppwBz1Ur4z4-%Iu5t=d}^&q-0Ky-9dgYuRDI%Hq5Xq!Xf}SRYLj@^e=9x5rN6 zN27IKSgeg9muMZLbv0S!w`z}St5pcSzq4MD#o6*RRqI2}e|=f$+5-ybis;+Pk9Q5p((#klL~dBFe(6 zrnW-S(OdreDT95(!Z5-0yp__OzP+gH!fv0Z7q>l|@OBw4)>STur!QJ5!~5~Hn>$HY zKK8e>-cqHMX-!>KJE*@zKbE3&mts`=ktu9wP!>seQc0KBzgDcALyG*v#RPCE_q8$9 ze3G|vv1ONCxMn6J_`%J#Toi?FI0d$ixNzwSO;xkgjf_#$}2t0s=u;>%j)GB*rV zbO^6kZxh*l*Y%0OSR}#U>>vU<8i)~A9?QO7oEuxlgHN|>Sd9d1%jx$VX^L%fDRz11>|_=p*<)u z0%VCgs7^T9Mf)v+YQmx?FXkVOI=cRl31*|8psJrKJBzH!`@#k9XpUYB=k=0Z`%_R} z>l#!oQKdc+l`~s=qIcJR6i6A54Ju@p)~eQVEg`hK zpj>p6&caT_>lH5(hF^X}oGr0B-xyid=r^w9xEg$X$K-!NAe#cdj)Y_FlB(D5nHM)s zxZ0P58h(F1+b9qy9sf8E;>PCWufP(;Sak8X#| zCB^QDU0*Nb&l9xJ8@iO-n#vBzZRLOY1uA3tn)f&zuxz1_|CyTj)-k6R!)^FM+zr%J z;Bs}TLLbwodijyclMm^;v+|#O!&j~~v6fXA zM;i=fY_)H)zs1&GV-nL1!G3eGlxrQ<#-!D|Y^L8I*Z?()@K$Oc6?u!#cMTg?qn|Jv z*HVf{KG_NW7Rn+Ij%vZL<2Nc^bv#O#V=Ac*Caz;#98KRdv-&U89Q-Z|J%{TtJjVF| zg>zjS)5S`hR)g9g_$_*LWu@NBmwC2&9xva*5e(#|ce&Xr#@mi?_S^e>^4X8Xd{aVD z_VMmH<t9!J#aob8#`I8 zBLlfYE0O_@zAzMGm94)TvnH_xNrW{^!E@*LOA^3=%l;nYn}OB`u9OFHLrFrIWrrbw z7(K7?;^N|{Z{M!XR+wr7XcR+A%d3Q%-iQ_6Brrg{XPQa_n7KeIKE^g>Owk;aj8)Mn zN&kwNATRw?EM^_ox0ZH;-l&{=R!3zPvzIbky-&AVKl~Exs)dM3M5iD)t!mPKw=V?p zQ}miCB2T@meh;oJ2K6?xxT$y$xt4=#_|);@3g-HzZ?f3+-Cu1h$GJD`#1^v5O&uKa zExQv?09pctiiXZz0)Tx{1LZVQ;(LGDmh(&>mxD!M*}eyaAzC|ywr}0XzWwNqBbgZq z{hhJ^zRPaw`1Ez>F8{qi{aYwM>=bbY2mwf%4%KRkHOHzJ-|h|B1)>qhn4G&%SK$p_OHEvwJIC&q(IVEzTZY zt3+xb0nb52PwnxRg1nlENh)y$pdyNYVFr}Qpp5H$r!MnwUtRFbNUF3j@wabVMfCR5 z`gQei96O#)8i#VRTE_M5_M`jLT%8+kqKZY`8buSM`AScYe&<)*9Ckfj${D2DZ=5=D zzY3ox_;qYxR+x$b<1i^P@$IO7@~1(iVr^aB!~NZ%(uF&N0s{9>#U_ry<|Qq#e$CF2 z3add5iP3?ii%>c0+J%fZ-v5iFjS79ZKEkAC{{rt%em5ZXv{Td*7555H3vxW>#ig7K z)N9%E3^a2;u=A{yJ}aw-Q!m4QJ`U{~pm6to(_Exk2|FBaF}}v!T0+XwS~G7=*}@H+ zo#$qL$kGIA$_o8v(#mSgJNcw)CF&Z;U;=iNvq;g&-hF$&+p}2a)b+fisUGaOUtixJ ziFies)YOe-ugCcVwO0nc3G>N*wVJ1ySE0+)>&w@SKbC0-i(Q%`eFix@T&D=hpJ|_3dfx=qIx zlG)R)=bD01QgV-_M2lxP2^}T#b|>FsVtLsz{3P4cF|^aL%G`zACnW8BnC$Y4WAEdc z7hyiv4L%e+AtOurw$8#;vo=-!TWw)zJl~eP-HNBuyGRCad#!Ne%d2|yukuUpJU z?xjco7v^lPt9=lfP{7qmaNzSLa1cuSRbEh*QfIS4Gq*HZ9UXInKd>dcLG79L{%$T6 zaQs@BrT>a=Du7AKDJi+GWFcSEi7~@GU-0(oj~^F*3B5`BN0dowX)Gt?B2eVgT19+q z(Nr;4qn-@>V)BSK)UZ(^ttMOMiK`TY_^~2Oz?(A8eJ^C#Db;{&*T1Q$2}ybQk?c^% z(UHW@?O%=`LaqL6Oxeu1krKSxJS}db`}+Epl7kku42eBFFs>;WBdSCnP!w{h8R_IL9S{Hu-q6UtVxvs61fy z>)FzijfBH>Spz|)&s2f;_ih>O7Z^CR?JPTt3dA%xjnm)ztDvm<1>IiJ{hJLV6OYIG zbj?&^I51&(zRxzd4}vHhVxp5C*WRnPcasu3%vg@RbZq#vFmDR8pFq{|lP!xheLlw& ziX9@CC<*{p`R7jqq{~(D7F=$&!C|KgZ(#+mjr@VjN_5u!>xWfu{(?G1X_}P6mDz@M zzA*pG+i(SLQ0e*=^L9pt$R-``mDP&$)2odwjH%!cH2KeL1rie1!pgQ}Y9l9Fg;fcM_4xOV~&LU;Xgx!Yj?%rZ_qE2;Jch{WvS7Mo#cB{6F4djROPoTDA5)m!QL~hQ z?hnBq40xZK z4wDSy6|a)2F9|(VY(4wy5r&K@Q$6`-$RDArsL@{=jAbQ@&!mORxz3UbB68L9bQwuZ zX?I`GVw7Tp_o692+P<58t9Urxkk+~gXu<1G3+|V6VDKlBw$nDgw|~^_>8g2A%1<${ zm_cAV0b-n9iFe=E3k8(SzPhN;cIM4Db!^NS+2smlJ_EIhPr>)drH?pK`?0CU9E}!T z=atqOlFCU)-aj!=OTHfd%&n|Hw?6!mQl@W-!tBdm&hluJDT#+9P4VJZY{&GD0gO;is@RG|6{%R0R@~*{I zLag(gBDrnp44YY_OSM+FrpQmWF((-aDt1bO8w`m;EN{ed%Dfy=?f6(yz~G`{7X4E? z?tqdTbRC810uSileZ$C?SvvF2%N1f49C39ayogeI4Mk*0-phi|nK6A9jt& zl`%LeYmg`)Be`~`u|Qaq3Qirp7hodi|4@IIy@4q&XJCB=C;+A_X~J-+3-W^G6?(E9 zZ&enEnp_dZ1d;p)-DA)dzU zM}f-7sXGpU>7M1ajW$(}<6_dqmbEj`O#A`3GQu@N#*o#O{!yE?SBt?omiI^(-S%1w z_R7E^he`NUEhm)~wHe^Cy4O^SsqLhP1zu_cJMp@~nJh_jh)ri^j(8>%6f|QNE`)g!gll9?@JztqWHq?#8kf z+J8KI!IW;C=h9b(12rdaz^J0K4c?<~JLnu)CbI7`8jq5^9A;tG55k8egMzxOlS8}}UlOdG!=fie%IA-plW1BdD{DOdfLhso+=sm{H_F|!SNWf*rq zT29gdb(MeM{HA)VS?V7Xr;2ELTtloKl~$ejcoZ7*Bk>udfYeGMYgxeXg)yQ`Hf8FQja zaqIJQ9|Kt(7G?zkwgj%?jZ+9LRS0yKp9{>pOP|DSi-8_-Edji01@T ztcOGPk@di@HNT+V~tvYvv=5xuC(EtGFFQb zxo1kSXU>tF&s7iIb@d3txcf(GaE^0$=H&X8&F+;D9LDo}g;dhUua|KrNuwrp0Kc5$ zLxI~fWE9iTr+f%mt<>3lZ7H#=`bdTk+jw5@3OwlZC6%#JtVMB3zEk3Y>svXUg_I$&_{hMLe0 zPpQG$5SMb%tM%vKPQ3b0jLf~i#2SCvo0ST;z-yShF?jmt8`Ha$t=j^B*`1UpoX(f; z{Vq3DgDg<-HauWy`@(vYq4AZ>ix(beFRRMD_#kTH;e`2Lpr~Srv{$)dAG(gk6Xqss z+I(Y){MkPgWY@-d>a%}2G%xZQ43SxsT%Kye&MQxYG`4@jS(%fGMwx&4 zIiQ?O;r%q{$+%-o&5o7+Jk1LRbMEnay188u@gI@XB@)vh080({Z=$0JmH%EJ@O1Y7 zBenX(a(BRl`dM~HQ^d%gR-48?lt7msU3 zWj{&xn_887{V&q_o?yX$TOrQWv|L=f^4m?<_^ECQ)~ZA8Ei2%RZy4OX0e<1vO$@0S z2<*tevJz|kR+%3y`s-m&F&305ArfFbk@BXM= zPVN<;k~I>*CElIuVF-p{NYC7J0+<-%?!9-fH?(Qa7#Z7Xd5zM)}sOIQp+>K zQX(I5wQ-_6A;0nkzDkvS)P2SK?}bRD8HxQIk{Wi#N2pql)wRR*+tmV6`dZy3PttzV zi!pckJ=fa{(7+7iOV=d&PLo8UXTMm~lGAE9pPqv=7ia4Ul#M;y{&_t<-6jqSi9cb5 zodjb}>OcsE+e4z|Y3Fq%{^|{hu=n3$4D<4n@Ww$iGAL(3yG(e_LqXTyKXs5e zq?(e&j07457sQ4ciPk&)XE5}krnXLyv}4I>vUd&=&^6LL|5~^-e=E@Za4i#bbrTEU zLKr2C;E^#gnE)uO0gYO5V&0_y>2$5XaC-s#Z0WN;GaS}Wv+Bw%IXK1oWLmB-lU-=m zTM;e!40I5^B9VF>xWdd75NLJxE>`c!OfZwr9dQesCroZq57@?AvG;NT#!zi?ya89exw z4CgMRC$hVC`o27lk4nEA+%e$O^XmLL8}|59dZqr%59Io@kk5Te{Ga1X{xc>wn$k_I z5sR+N|3q=q^&2|FEaK=-bzf4NRQBR4x=jxfR)7>}0bF<7B!xP)<_w8-R~G4+CeXL> zIqTfZJ{(KmdoJ8Q#{`iY9ao9C;lI!!?J=kU5vhfjaz(LI=#S!H%)9hl7CYg=(eq>^ z(yIRj_=Gu`|J&`ZlFYEN`Q^)(0km=5ySd zz|;lq@o0-D3$Z`(oH#AJs`86*67V1gCz}CdlqWL3`z*Ey1c3^4U1{@tUVc!wYclWB zL#4Wf>nto7sA%*OL~L*1++k~G7$}1K(RTUr9Zs;oEQy;DwFekR7?S7CNEWDB&E*exCKuYo!oo#@xXwSaF(UEIUD;|EB z#O2yqDkP{wu^Rd1mco%uYd5!_`jTe=C}x5{3I+J@{eH?DtD~--4jLF`K|@(Cv1@hI zzHBkpDybJh>MIm^x`F%ly?#lF8Gm8F(s{?#Jlo_kaEFfi$4WU)V})v42h4+^wJ7cw zL7sve!HxOf)I>&TEMF1ZGn`Ky=MKhacyCb6!S-R$ZOaNjr-<>?5;@Nx%Dk`+b7GolH&(=Ah^;ZLVHq^Jwt9Ilx^6km_yKHQ{EupGi z-p=N0c$ReAp<9VU^)tPdj||)$k@}7^>ew3nUt(cChH2a^< zB^~-bL(r}Rdvf*?#qMjnr)r#Bo?TvRN1OX2@Wj3^We5j<AlPOHDUrA5yIoc^J@M%+ARPIx}Nsg72h)R-gX00==kJ z4jZZJuc-qdC zjpn31u9g9o8*-8iQl6|p(tDDiv7Oj{$|5hGtfH%{yEIu>cLLgl7fObV`iU*`4&%b$ z))-7FGc3%^=fxE)Ogd&(pKQ?W-tkZdx6a_c!kHfsoYjR`Ok(5uZXxjS_$@1q@ahLQ zNSpQTC=X_NVr?6YZr{Cj{FgVjk@CE|5tG-@c$qrBLS{=d`Is+8cByX?dE)OS%W{ik zGiWb`5Xw+=BS_qj>9tM7S5R(%&(P;cYocPskg}kDZAVZAx%vpGy^O`|F!p8HnjMYw zkSNQDSxY#U46bV#-ajQc7}?@{M_t%Nx|1%fM|y!kn*+MwcrORb(Plg7pN_V26-x=7 zfd`4WuMIe3#WDfli_FaA5EC;@mkrYb7(2i|Gpp7r6+pjdV<6=axPga>dwHn&VJ^}( zPJgpYpKH~~R*5!DDBscW!8&#=(tVB{Xug)r=$~xOJ$ra|X!|;89B3#39%W#jv#o2! z<=yu(lg5j4v$H?voQSpbTzV5XPgu%g0*p+!oTu}mt2J?M?rF153Yo_2Nb_OZbgErO zM_BZ5$=Y0r8;Z;wR9@q3`@XYYUK5F*!F35o3OLJod ztDszMWq!qxZC`#$j->#usA@=Mcp(*V?})#*3mMGOw%zzuFDSD-S(`@f zwJkJ1;OB=iFN4*epZevN(_iwemIgZd<&WY+8i%sr`v+UFjnv>&t6_TOulB~hKOap| z-3b6yCm@+@k~(`W?aaB0*7YAQxCKr{dtV;a06$C z5NFE!X!e1VByRrWUdqi=`-Vhgfn>$VTv<*Hy3o2K@9Hwref!)*`(Z`a zY;=o_2wd^}G$~NS;abrGUm?d3mp8V@Wq6PzeJcyq*RNk` zHNJy;G7KIcZ0|NvsbqoIyQ5+ZVPg*9wgX(Cmltp>XYpk%R&tkp58idI97o_TP&R|+ zp4qoA*Xy+gz4>POyg9y=4TVb$>XpCIZ88&9{ok57*Py1(G>)fRE31+TmQe(`Rj?SB zSWzPo2#A3~Vo8Q@a|1*x#$eKLGXV)VM_LGoN)rqMLev0qNk~IOxP*WpE((KO1X}JE zK_zLZMD7Ue8=21R?o9VXXFu%ukPqj~ne)EqWRmm#pXc|Z?BH|WwT(zIjo)3HLQzEt z5uN;a)zoKZ5wjDIaTyc)rYWmfN!B-$G3 zdPMc2PzZ*?noRl2{U=W~ZmMRUhr&F&s44|xjob*f5p-2Z0vSFnV{6~TR1RXLxd@KW zAtdhd8fQJ;DcOA}_|xUPR}O5Kn=^xt*xB0$>YAM^LCU@-RR^a5@ljdw#`^rKEodVL zj;5c04di2&nGdC?R?d|LmW{Rgl~H?;X?zh-nBd1$8Kngg=f~_>i?JIea%`t7hPF6n zhH`zVHVH^i$6a0&xGDSopw{q~Flh!v8Gin|=F~wdSdA@lqwrDwsHCAG_$GRe-Wl>f zK?hAy!S@N6NUA_5r~_1^n=SeP_L4<8*Xas%zh7Yg8^!plJY%8q+DX5*i&L8BYo23w zEy!~muAy(U7q9(qH-gv`~OWx3nGk@>BS&^x?@~NSg(<%bBNc48GcXZI2N}7MnYBtR$L!Wa4 z6p9oW@b0K6z3y=gx>)S1*T}Zo2ZAJ$AVHfxcKIa~D5z-K$)`GP5fT)MIR!tKe_8)- zo@3Vd_(GB=E;D*)Ne!b5cs;G&gOOOFq~`VVo++}V*JYhBM;PI7XN^j|ckpxm>d*Ra zZuzLUWIVjK7@r85nA1t8ArntD5}eCk7q?pd>Dj*tlgCc?EC}n$rN0RC+YU3CEk&gQ zBgjdQ`0m1m7tNa9D*L=}SiLi`NlKJMZ<1&ljT@G<&S##bKkt$=ZM;Imvz$96eR`H( z0`kBY7Qn}zd0(8%?nY3c*<10MI~Na2sgR_#W`cqB0lmqET~ME16*p%3riz#>(PC%zcyHH+YLsIK1CvQhl=nQIG^r zcefk^L$reXn=tS7H@yOTt2LHWg?mS9BfolfpbRwj=eAlrLd;tb_U&{ie93o2_kh8% zz~TnWEg=Xhr=LFd2qC z-6{tu;1BK8*MR`tI3Ax?NNlnT7&beRAT*Z|a@GfwG0%;NPb)*$!c$MFqU!w#^~OJZ zy*DQa6!8)Z@}LKa69-{peU`z*WYh!Y+cco&O0RA5L8K7-1ju$nm zi(-hwOoi3Q=L~BOx!>tv>=zp-xWj)x1Fi)z2!|Wn8t(2GNhh-H6+#H)HI4U=$&Ayl zqI+VYTUutjz}oir&A{~ETD8yR`sxA-kY%KGXdENxe1NxukV1aPX!8WI;bwwy^iZ|a z)q%1P!PDlED*>q#{J#WQ|C^M?>Y;{9~^+EC5Whez=;MkWUy~#E>aabRC2^A@k`y^c}Rr$jn#e=tL0s_+R?ZV=JPfIpa y7~PECUX!_Q&P@0DAE^GHk_Y@b<-q^tS?jL0mf5stP>4=K0Kt0T-78O?z4}jbgJ6sR literal 0 HcmV?d00001 diff --git a/examples/2_unitary_compilation_files/figure-html/cell-20-output-5.png b/examples/2_unitary_compilation_files/figure-html/cell-20-output-5.png new file mode 100644 index 0000000000000000000000000000000000000000..815fae6ea03069cbb2b43062fb5293eb4ee21529 GIT binary patch literal 28095 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

H|TSV$6M}s_B2wRV=1N; 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 X;O+h_uZSt)fmKn^kS~>e@ce%P(iN`W literal 0 HcmV?d00001 diff --git a/examples/editing_and_masking.html b/examples/editing_and_masking.html new file mode 100644 index 0000000..742c289 --- /dev/null +++ b/examples/editing_and_masking.html @@ -0,0 +1,1049 @@ + + + + + + + + + +genQC - Editing and masking of circuits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + +
+ + + +
+ +
+
+

Editing and masking of circuits

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

In this notebook we show editing and masking of circuits.

+
+
from genQC.imports import *
+from genQC.pipeline.diffusion_pipeline import DiffusionPipeline
+from genQC.inference.infer_srv import convert_tensors_to_srvs, schmidt_rank_vector
+import genQC.platform.qcircuit_dataset_construction as data_const
+import genQC.util as util
+from qiskit.quantum_info import DensityMatrix
+
+
+
device = util.infer_torch_device()  # use cuda if we can
+util.MemoryCleaner.purge_mem()      # clean existing memory alloc
+
+
[INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul.
+
+
+
+

Setup and load

+

Load the pre-trained model

+
+
model_path = "../../saves/qc_unet_config_SRV_3to8_qubit/"
+pipeline   = DiffusionPipeline.from_config_file(model_path, device)
+
+
[INFO]: `genQC.models.unet_qc.QC_Cond_UNet` instantiated from given config on cuda.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cuda.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.
+
+
+

Set 20 sample steps and use rescaled guidance-formula.

+
+
pipeline.guidance_sample_mode = "rescaled"
+pipeline.scheduler.set_timesteps(40) 
+g = 7.5
+
+
+
+

1. Editing

+

Sample a random circuit with desired parameters as the circuit we want to edit:

+
+
srv_init       = [1, 1, 1, 2, 2]   # psi_0 state
+desired_length = 5                 # 5 gates initially placed
+
+
+
init_qc = data_const.get_specific_rnd_srv_circuit(srv_init, desired_length, pipeline.gate_pool)
+print("SRV is", schmidt_rank_vector(DensityMatrix(init_qc)))
+init_qc.draw("mpl")
+
+
SRV is [1, 1, 1, 2, 2]
+
+
+

+
+
+

The editing taks is analogous to image editing, we do img2img with conditioning and copy non-edit areas at every time step. Also called latent_filling.

+
+
def create_edited_circuits(pipeline, samples, qc, prompt, new_length, num_of_qubits, system_size, t_start_index):
+    #-------------------------------------------
+    # set mask - appending mask!
+    old_length = len(qc.data)
+
+    qubit_mask = torch.ones((system_size, new_length), device=device)
+    qubit_mask[:, :old_length] = 0
+    
+    #-------------------------------------------
+    # prepare and encode
+ 
+    gate_classes = data_const.gate_pool_to_gate_classes(pipeline.gate_pool)
+   
+    emb_org_image = data_const.encode_circuit(qc, system_size, gate_classes, new_length).unsqueeze(0).to(device)
+    emb_org_image = pipeline.model.embedd_clrs(emb_org_image)
+
+    emb_org_images = emb_org_image.repeat(samples, *[1]*(emb_org_image.dim()-1))
+    
+    #-------------------------------------------
+    # prep condition
+    
+    c = pipeline.text_encoder.tokenize_and_push_to_device(str(prompt))
+    c = c.repeat(samples, *[1]*(c.dim()-1))
+
+    #-------------------------------------------
+    # latent fill
+    out_tensor = pipeline.latent_filling(emb_org_images, qubit_mask, c=c, g=g, no_bar=False, t_start_index=t_start_index)
+    out_tensor = pipeline.model.invert_clr(out_tensor)
+    out_tensor = out_tensor[:, :num_of_qubits]
+    out_tensor = torch.unique(out_tensor, dim=0) # we only are interested in unique circuits
+   
+    qc_list, error_cnt, srv_list = convert_tensors_to_srvs(out_tensor, pipeline.gate_pool, place_barrier=True)
+
+    return qc_list, srv_list
+
+
+
samples    = 16   # how many circuits we sample
+new_length = 16   # how many gates the model can place 
+
+srv_target    = [2, 2, 2, 2, 2]  # desired target SRV
+
+num_of_qubits = len(srv_target)
+t_start_index = t_start_index = int(0.05 * pipeline.scheduler.timesteps.shape[0])  # time step index at which we start denoising
+
+prompt = f"Generate SRV: {srv_target}"  # model was trained with this phrase
+prompt
+
+
'Generate SRV: [2, 2, 2, 2, 2]'
+
+
+
+
# returns only distinct circuits
+edited_qc, srv_list = create_edited_circuits(pipeline, samples, init_qc, prompt, new_length, num_of_qubits, num_of_qubits, t_start_index)
+
+ +
+
+

Pick only correct ones:

+
+
correct_edited_qc = []
+for qc,srv in zip(edited_qc, srv_list):
+    if srv==srv_target: correct_edited_qc.append(qc)
+print(f"We found {len(correct_edited_qc)} correct distinct solutions.")
+
+
We found 12 correct distinct solutions.
+
+
+

Compare: initial circuit

+
+
init_qc.draw("mpl")
+
+

+
+
+

v.s. edited:

+
+
print("SRV is", schmidt_rank_vector(DensityMatrix(correct_edited_qc[0])))
+correct_edited_qc[0].draw("mpl", plot_barriers=False)
+
+
SRV is [2, 2, 2, 2, 2]
+
+
+

+
+
+
+
fig, axs = plt.subplots(2,4, figsize=(18,5), constrained_layout=True)
+for qc,ax in zip(correct_edited_qc, axs.flatten()): 
+    qc.draw("mpl", plot_barriers=False, ax=ax)
+plt.show()
+
+

+
+
+
+
+

2. Masking

+

First we set a desired mask, i.e. a specific layout of a quantum processor.

+
+
max_gates     = 16
+num_of_qubits = 5
+
+d = 3
+#------
+def con_set(q1, q2, x, d): 
+    qubit_mask[q1, x:x+d] = 1
+    qubit_mask[q2, x:x+d] = 1
+    return x+d
+
+#------
+x = 0
+
+qubit_mask = torch.zeros((num_of_qubits, max_gates), device=device) # mask: ones are getting filled, zeros are fixed !
+x = con_set(0, 1, x, d)
+x = con_set(1, 2, x, d)
+x = con_set(1, 3, x, d)
+x = con_set(3, 4, x, d)
+
+
+
def plot_mask():
+    fig = plt.figure(figsize=(3.7,2), constrained_layout=True)
+    plt.imshow(qubit_mask.cpu(), cmap="Greens")
+    plt.xticks(range(0, qubit_mask.shape[1], 2),fontsize=9)
+    plt.yticks(range(num_of_qubits), fontsize=9)
+    plt.xlabel("Gate sequence / time", fontsize=12)
+    plt.ylabel("Qubits", fontsize=12)
+    plt.show()
+plot_mask()
+
+

+
+
+
+
def get_emb_org_images(pipeline, samples, system_size, max_gates, target_num_gates, target_num_bits, qubit_mask):
+    org_image = torch.zeros((1, system_size, max_gates), device=device, dtype=torch.int32) 
+    
+    padd_tok = len(pipeline.gate_pool) + 1
+    padd_pos = (torch.ceil(torch.tensor(target_num_gates) / 4) * 4).to(torch.int32)
+    org_image[:,                :, padd_pos:] = padd_tok
+    org_image[:, target_num_bits:,          ] = padd_tok
+
+    emb_org_image  = pipeline.model.embedd_clrs(org_image)
+    emb_org_images = emb_org_image.repeat(samples, *[1]*(emb_org_image.dim()-1))
+    
+    return emb_org_images
+
+
+
def generate_pattern_SRV(pipeline, prompt, samples, system_size, num_of_qubits, max_gates, qubit_mask, t_start_index=0, target_num_gates=None, target_num_bits=None): 
+
+    if not exists(target_num_gates):
+        target_num_gates = max_gates
+
+    if not exists(target_num_bits):
+        target_num_bits = num_of_qubits
+    
+    emb_org_images = get_emb_org_images(pipeline, samples, system_size, max_gates, target_num_gates, target_num_bits, qubit_mask)
+
+    #----------------
+    # prep condition
+
+    c = pipeline.text_encoder.tokenize_and_push_to_device(str(prompt))
+    c = c.repeat(samples, *[1]*(c.dim()-1))
+
+    #----------------
+    # latent fill
+    
+    out_tensor = pipeline.latent_filling(emb_org_images, qubit_mask, c=c, g=g, no_bar=False, t_start_index=t_start_index)
+    out_tensor = pipeline.model.invert_clr(out_tensor)
+    out_tensor = out_tensor[:, :num_of_qubits]
+    out_tensor = torch.unique(out_tensor, dim=0)
+     
+    qc_list, error_cnt, srv_list = convert_tensors_to_srvs(out_tensor, pipeline.gate_pool, place_barrier=True)
+
+    return qc_list, srv_list
+
+

Now generate circuits corresponding to the mask.

+
+
samples    = 512              # how many circuits we sample
+srv_target = [2, 1, 2, 2, 2]  # desired target SRV
+
+assert len(srv_target)==qubit_mask.shape[0]
+
+prompt = f"Generate SRV: {srv_target}"  # model was trained with this phrase
+prompt
+
+
'Generate SRV: [2, 1, 2, 2, 2]'
+
+
+
+
qc_list, srv_list = generate_pattern_SRV(pipeline, prompt, samples, num_of_qubits, num_of_qubits, max_gates, qubit_mask, t_start_index=1)
+
+ +
+
+

Pick only correct ones:

+
+
correct_qc = []
+for qc,srv in zip(qc_list, srv_list):
+    if srv==srv_target: correct_qc.append(qc)
+print(f"We found {len(correct_qc)} correct distinct solutions.")
+
+
We found 9 correct distinct solutions.
+
+
+

Let’s plot them. Mask:

+
+
plot_mask()
+
+

+
+
+

v.s. solution:

+
+
print("SRV is", schmidt_rank_vector(DensityMatrix(correct_qc[0])))
+correct_qc[0].draw("mpl", plot_barriers=False)
+
+
SRV is [2, 1, 2, 2, 2]
+
+
+

+
+
+
+
fig, axs = plt.subplots(1, min(len(correct_qc), 4), figsize=(18,5), constrained_layout=True)
+for qc,ax in zip(correct_qc, axs.flatten()): 
+    qc.draw("mpl", plot_barriers=False, ax=ax)
+plt.show()
+
+

+
+
+ + +
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/examples/hello_circuit.html b/examples/hello_circuit.html new file mode 100644 index 0000000..81256d3 --- /dev/null +++ b/examples/hello_circuit.html @@ -0,0 +1,904 @@ + + + + + + + + + +genQC - Generate a circuit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Generate a circuit

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

A minimal example to generate a circuit. We load a pre-trained (SRV, 3 to 8 qubit) model and condition on a given Schmidt-Rank-Vector (SRV).

+
+
from genQC.imports import *
+from genQC.pipeline.diffusion_pipeline import DiffusionPipeline
+import genQC.inference.infer_srv as infer_srv
+import genQC.util as util
+
+
+
device = util.infer_torch_device()  # use cuda if we can
+util.MemoryCleaner.purge_mem()      # clean existing memory alloc
+
+
[INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul.
+
+
+
+
device
+
+
device(type='cuda')
+
+
+
+

Setup and load

+

Load the pre-trained model

+
+
model_path = "../../saves/qc_unet_config_SRV_3to8_qubit/"
+pipeline   = DiffusionPipeline.from_config_file(model_path, device)
+
+
[INFO]: `genQC.models.unet_qc.QC_Cond_UNet` instantiated from given config on cuda.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cuda.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.
+
+
+

Check on what gates the model was trained

+
+
pipeline.gate_pool
+
+
[qiskit.circuit.library.standard_gates.h.HGate,
+ qiskit.circuit.library.standard_gates.x.CXGate]
+
+
+

Set 20 sample steps and use rescaled guidance-formula.

+
+
pipeline.guidance_sample_mode = "rescaled"
+pipeline.scheduler.set_timesteps(20)
+
+
+
+

Inference / sampling

+

Set our desired condition SRV

+
+
srv           = [2, 1, 2, 1, 2]  # set your target SRV; can be 3 to 8 qubit
+num_of_qubits = len(srv)          
+
+prompt = f"Generate SRV: {srv}"  # model was trained with this phrase
+prompt
+
+
'Generate SRV: [2, 1, 2, 1, 2]'
+
+
+

Define sample parameters

+
+
g         = 7.5     # guidance scale
+max_gates = 16      # how many time steps the tensor encoding has
+samples   = 32      # how many circuits to generate
+
+

Sample tokenized circuits

+
+
out_tensor = infer_srv.generate_srv_tensors(pipeline, prompt, samples, num_of_qubits, num_of_qubits, max_gates, g, no_bar=False)
+
+ +
+
+
[INFO]: (generate_srv_tensors) Generated 32 tensors
+
+
+

Check how many distinct tensors we got:

+
+
out_tensor.unique(dim=0).shape[0]
+
+
32
+
+
+

Let’s look what is generated. Note, 3 is the padding token (or empty action).

+
+
out_tensor[:2]
+
+
tensor([[[ 0,  2,  1,  2, -2,  0,  2,  0,  0,  2,  3,  3,  3,  3,  3,  3],
+         [-2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3],
+         [ 2, -2,  0, -2,  2,  1,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3],
+         [ 0,  0,  0,  0,  0,  0, -2,  1,  0,  0,  3,  3,  3,  3,  3,  3],
+         [ 0,  0,  0,  0,  0,  0,  0,  0,  1, -2,  3,  3,  3,  3,  3,  3]],
+
+        [[ 1, -2,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3],
+         [ 0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3],
+         [ 0,  2,  0, -2,  1,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3],
+         [ 0,  0, -2,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3],
+         [ 0,  0,  2,  2,  0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3]]])
+
+
+
+
+

Convert to quiskit circuit

+

To get a quiskit circuit we need to do:

+
    +
  • apply cos. sim. to go from embeddings to token matrices (the function infer_srv.generate_srv_tensors did this already)
  • +
  • parse token matrix to quiskit and filter out error circuits
  • +
  • calculate SRV and plot circuits
  • +
+
+
qc_list, error_cnt, svr_list = infer_srv.convert_tensors_to_srvs(out_tensor, pipeline.gate_pool)
+
+

Generated error circuits:

+
+
error_cnt
+
+
0
+
+
+

What SRVs did we get:

+
+
svr_list[:4]
+
+
[[2, 1, 2, 1, 2], [2, 1, 2, 1, 2], [2, 1, 2, 1, 2], [2, 1, 2, 1, 2]]
+
+
+

That is an accuracy of:

+
+
sum(srv==x for x in svr_list)/len(svr_list)
+
+
0.9375
+
+
+

Finally plot some of the circuits:

+
+
fig, axs = plt.subplots(2, 4, figsize=(18,5), constrained_layout=True)
+for qc,is_svr,ax in zip(qc_list, svr_list, axs.flatten()): 
+    qc.draw("mpl", plot_barriers=False, ax=ax)
+    ax.set_title(f"{'Correct' if is_svr==srv else 'NOT correct'}, is SRV = {is_svr}")
+plt.show()
+
+

+
+
+ + +
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/examples/unitary_compilation.html b/examples/unitary_compilation.html new file mode 100644 index 0000000..9b9343d --- /dev/null +++ b/examples/unitary_compilation.html @@ -0,0 +1,978 @@ + + + + + + + + + +genQC - Compile unitaries + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Compile unitaries

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

In this notebook we want use the unitary compilation model.

+
+
from genQC.imports import *
+from genQC.pipeline.diffusion_pipeline import DiffusionPipeline
+from qiskit import QuantumCircuit
+from genQC.inference.infer_compilation import generate_comp_tensors, get_gate_and_U_acc
+from genQC.printing import display_colums
+import genQC.platform.qcircuit_dataset_construction as data_const
+import qiskit.quantum_info as qi
+import genQC.util as util
+import ast
+
+
+
device = util.infer_torch_device()  # use cuda if we can
+util.MemoryCleaner.purge_mem()      # clean existing memory alloc
+
+
[INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul.
+
+
+
+
def str_cond_to_gate_indices(y):   # helper function, used to check if only allowed gates were used by the model!
+    assert y[:15] == "Compile using: "
+    c            = ast.literal_eval(y[15:]) 
+    gate_classes = data_const.gate_pool_to_gate_classes(pipeline.gate_pool)
+    gate_clrs    = [0] + [gate_classes[ic] for ic in c]  # 0 is empty, always allowed!
+    return gate_clrs
+
+
+

Setup and load

+

Load the pre-trained model

+
+
model_path = "../../saves/qc_unet_config_Compilation_3_qubit/"
+pipeline   = DiffusionPipeline.from_config_file(model_path, device)
+
+
[INFO]: `genQC.models.unet_qc.QC_Compilation_UNet` instantiated from given config on cuda.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cuda.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.
+
+
+

Set 20 sample steps and use rescaled guidance-formula.

+
+
pipeline.guidance_sample_mode = "rescaled"
+pipeline.scheduler.set_timesteps(20) 
+g = 7.5
+
+

The model was trained with a gate pool of:

+
+
pipeline.gate_pool
+
+
[qiskit.circuit.library.standard_gates.h.HGate,
+ qiskit.circuit.library.standard_gates.x.CXGate,
+ qiskit.circuit.library.standard_gates.z.ZGate,
+ qiskit.circuit.library.standard_gates.x.XGate,
+ qiskit.circuit.library.standard_gates.x.CCXGate,
+ qiskit.circuit.library.standard_gates.swap.SwapGate]
+
+
+
+
+

Compile a unitary

+

Compile a given unitary \(U\). Note, there has to be a solution with the pipeline.gate_pool in order to find the exact solution.

+
+
def compile_and_plot(U, prompt):
+    U_r, U_i = torch.Tensor(np.real(U)), torch.Tensor(np.imag(U))
+    U_tensor = torch.stack([U_r, U_i], dim=0)
+    
+    out_tensor                           = generate_comp_tensors(pipeline, prompt, U_tensor, samples, num_of_qubits, num_of_qubits, max_gates, g, unique=True)
+    _, _, _, _, _, comb_corr_qc, _, _, _ = get_gate_and_U_acc(out_tensor, str_cond_to_gate_indices(prompt), U_tensor, pipeline.gate_pool, num_of_qubits, max_gates)
+    comb_corr_qc                         = sorted(comb_corr_qc, key=lambda x: len(x.data)) #sort to get the shortest solutions
+
+    fig, axs = plt.subplots(1,4, figsize=(18,5), constrained_layout=True)
+    axs[0].set_title(f"{prompt}")
+    for qc,ax in zip(comb_corr_qc, axs.flatten()): 
+        qc.draw("mpl", plot_barriers=False, ax=ax)
+    plt.show()
+
+
+
samples       = 512
+num_of_qubits = 3
+max_gates     = 12
+
+
+
prompt = "Compile using: ['h', 'cx', 'z', 'x', 'ccx', 'swap']" # model was trained with phrases like this, allow full gate set
+prompt
+
+
"Compile using: ['h', 'cx', 'z', 'x', 'ccx', 'swap']"
+
+
+
+

Exercise 1

+

Inspired from (quantumcomputing.stackexchange.com/questions/13821/generate-a-3-qubit-swap-unitary-in-terms-of-elementary-gates/13826). Note, this unitary WAS in the training set.

+
+
U = np.matrix([[1,0,0,0,0,0,0,0],
+               [0,1,0,0,0,0,0,0],
+               [0,0,1,0,0,0,0,0],
+               [0,0,0,0,1,0,0,0],
+               [0,0,0,1,0,0,0,0],
+               [0,0,0,0,0,1,0,0],
+               [0,0,0,0,0,0,1,0],
+               [0,0,0,0,0,0,0,1]], dtype=np.complex128) 
+
+assert np.allclose(U.H@U, np.identity(2**num_of_qubits)) and np.allclose(U@U.H, np.identity(2**num_of_qubits)) #check if unitary
+
+

Plot correct (exact) compiled circuits:

+
+
compile_and_plot(U, prompt)
+
+

+
+
+
+
+

Exercise 2

+

Inspired from (quantumcomputing.stackexchange.com/questions/12439/procedures-and-intuition-for-designing-simple-quantum-circuits/12440). Note, this unitary WAS in the training set.

+
+
U = np.matrix([[1,0,0,0,0,0,0,0],
+               [0,0,0,0,0,0,0,1],
+               [0,1,0,0,0,0,0,0],
+               [0,0,1,0,0,0,0,0],
+               [0,0,0,1,0,0,0,0],
+               [0,0,0,0,1,0,0,0],
+               [0,0,0,0,0,1,0,0],
+               [0,0,0,0,0,0,1,0]], dtype=np.complex128) 
+
+assert np.allclose(U.H@U, np.identity(2**num_of_qubits)) and np.allclose(U@U.H, np.identity(2**num_of_qubits)) #check if unitary
+
+

Plot correct (exact) compiled circuits:

+
+
compile_and_plot(U, prompt)
+
+

+
+
+
+
+

Exercise 3

+

A randomly generated unitary (from a random circuit). This unitary WAS NOT in the training set, it is new to the model!

+
+
U = np.matrix([[ 0.70710678,  0.        ,  0.        , 0.        ,  0.70710678,  0.        , 0.        ,  0.        ],
+               [ 0.        , -0.70710678,  0.        , 0.        ,  0.        , -0.70710678, 0.        ,  0.        ],
+               [-0.70710678,  0.        ,  0.        , 0.        ,  0.70710678,  0.        , 0.        ,  0.        ],
+               [ 0.        ,  0.70710678,  0.        , 0.        ,  0.        , -0.70710678, 0.        ,  0.        ],
+               [ 0.        ,  0.        ,  0.70710678, 0.        ,  0.        ,  0.        , 0.        ,  0.70710678],
+               [ 0.        ,  0.        ,  0.        , 0.70710678,  0.        ,  0.        , 0.70710678,  0.        ],
+               [ 0.        ,  0.        , -0.70710678, 0.        ,  0.        ,  0.        , 0.        ,  0.70710678],
+               [ 0.        ,  0.        ,  0.        ,-0.70710678,  0.        ,  0.        , 0.70710678,  0.        ]], dtype=np.complex128)
+
+assert np.allclose(U.H@U, np.identity(2**num_of_qubits)) and np.allclose(U@U.H, np.identity(2**num_of_qubits)) #check if unitary
+
+

Plot correct (exact) compiled circuits:

+
+
compile_and_plot(U, prompt)
+
+

+
+
+
+
+
+

Transpile and discover

+

Set an initial circuit we want to transpile, optimize or use for discovering sub-arrangements:

+
+
qc = QuantumCircuit(3)
+qc.h(2)
+qc.cx(0,1)
+qc.cx(2,1)
+qc.h(1)
+qc.x(1)
+qc.h(1)
+qc.x(2)
+
+U = qi.Operator(qc).to_matrix() # the unitary of the circuit
+
+#-----------------------------------------
+
+fig = qc.draw("mpl")
+fig
+
+

+
+
+

We set different gate pool targets to see what the model gives us:

+
+
cs_1 = f"Compile using: {[x().name for x in pipeline.gate_pool]}", "all"
+
+cs_2 = "Compile using: ['h', 'cx', 'z', 'ccx']" , "no x, no swap"    
+cs_3 = "Compile using: ['h', 'cx', 'x', 'ccx']" , "no z, no swap"    
+cs_4 = "Compile using: ['h', 'x', 'ccx']"       , "no cx, no z, no swap" 
+cs_5 = "Compile using: ['h', 'z', 'x', 'ccx']"  , "no cx, no swap"  
+
+cs = [cs_1, cs_2, cs_3, cs_4, cs_5]
+cs
+
+
[("Compile using: ['h', 'cx', 'z', 'x', 'ccx', 'swap']", 'all'),
+ ("Compile using: ['h', 'cx', 'z', 'ccx']", 'no x, no swap'),
+ ("Compile using: ['h', 'cx', 'x', 'ccx']", 'no z, no swap'),
+ ("Compile using: ['h', 'x', 'ccx']", 'no cx, no z, no swap'),
+ ("Compile using: ['h', 'z', 'x', 'ccx']", 'no cx, no swap')]
+
+
+
+
samples       = 512
+num_of_qubits = 3
+max_gates     = 12
+
+

Compile with the different gate-sets and plot correct (exact) compiled circuits. Note, some of the circuits might look the same but the gate time-sequences are distinct. Qiskit reorders “parallel” gates to make smaller plots.

+
+
for c, note in cs: compile_and_plot(U, c)
+
+

+
+
+

+
+
+

+
+
+

+
+
+

+
+
+ + +
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..a419a19 --- /dev/null +++ b/index.html @@ -0,0 +1,854 @@ + + + + + + + + + + +genQC - genQC · Generative Quantum Circuits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

genQC · Generative Quantum Circuits

+
+ +
+
+ Generating quantum circuits with diffusion models +
+
+ + +
+ + + + +
+ + +
+ + +

+awesome generative-models diffusion-models python-3.10 +

+

Code repository for generating quantum circuits with diffuison models. [Paper]

+

+
+

The codebase

+

All weights and functions are contained within this repo. For the CLIP model weights we use the OpenCLIP library, which will download (and cache) the CLIP model on first usage of our pipeline. In case you prefer reading a documentation rather than notebooks or code see florianfuerrutter.github.io/genQC/.

+

The repo inlcudes:

+
    +
  1. saves/ the configs and weights of the pre-trained models.
  2. +
  3. genQC/ a full release of our used diffusion pipeline.
  4. +
  5. src/examples examples how to reproduce some figures of the Paper.
  6. +
  7. src/ the source notebooks for nbdev.
  8. +
+
+
+

Examples

+
+

Minimal example

+

A minimal example to generate a 5 qubit circuit conditioned on a SRV of \([1,1,1,2,2]\):

+
+
from genQC.pipeline.diffusion_pipeline import DiffusionPipeline
+from genQC.inference.infer_srv import generate_srv_tensors, convert_tensors_to_srvs
+
+model_path = "../saves/qc_unet_config_SRV_3to8_qubit/"
+pipeline   = DiffusionPipeline.from_config_file(model_path, "cpu")  
+pipeline.scheduler.set_timesteps(20) 
+
+out_tensor           = generate_srv_tensors(pipeline, "Generate SRV: [1,1,1,2,2]", samples=1, system_size=5, num_of_qubits=5, max_gates=16, g=7.5) 
+qc_list, _, svr_list = convert_tensors_to_srvs(out_tensor, pipeline.gate_pool)
+
+
[INFO]: `genQC.models.unet_qc.QC_Cond_UNet` instantiated from given config on cpu.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cpu.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.
+
+
+
+
print(f"is SRV {svr_list[0]}")
+qc_list[0].draw("mpl")
+
+
is SRV [1, 1, 1, 2, 2]
+
+
+

+
+
+
+
+

Included examples

+

Examples are provided in the directory src/examples/.

+ +
+
+
+

Installation:

+
+

1. Clone

+
git clone https://github.com/FlorianFuerrutter/genQC.git
+cd genQC
+
+
+

2. Install genQC

+

This library is build using jupyter notebooks and nbdev. To install the library use in the clone directory:

+
pip install -e .
+

Note, this will install missing requirements automatically: [torch numpy matplotlib scipy pandas omegaconf qiskit tqdm joblib open_clip_torch ipywidgets pylatexenc]. You may want to install some of them manually beforehand, e.g. pytorch for specific cuda support pytorch.org/get-started/locally.

+
+
+

3. Run example

+

You can run the provided 0_hello_circuit example to test your installation.

+
+
+
+

License

+

The code and weights in this repository are released under the MIT License.

+
+
+

BibTeX

+

We kindly ask you to cite our paper if any of the previous material was useful for your work.

+
@article{fuerrutter2023quantum,
+      title={Quantum circuit synthesis with diffusion models}, 
+      author={Florian Fürrutter and Gorka Muñoz-Gil and Hans J. Briegel},
+      year={2023},
+      eprint={2311.02041},
+      publisher = {arXiv},
+      archivePrefix={arXiv},
+      primaryClass={quant-ph},
+      url = {https://arxiv.org/abs/2311.02041},
+      doi = {/10.48550/arXiv.2311.02041},
+}
+ + +
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/index_files/figure-html/cell-3-output-2.png b/index_files/figure-html/cell-3-output-2.png new file mode 100644 index 0000000000000000000000000000000000000000..6996b7c5155cea81cbf3550ffbfc8739697081fd GIT binary patch literal 11180 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 XSsDocLg)o!oDi6*wo19OP2_(8`ir(^ literal 0 HcmV?d00001 diff --git a/inference/infer_compilation.html b/inference/infer_compilation.html new file mode 100644 index 0000000..5c303bf --- /dev/null +++ b/inference/infer_compilation.html @@ -0,0 +1,978 @@ + + + + + + + + + +genQC - Inference compilation functions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Inference compilation functions

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

Misc

+
+

source

+
+

split_U_to_tensor

+
+
 split_U_to_tensor (U:numpy.ndarray)
+
+
+

source

+
+
+

get_new_unitary_indices

+
+
 get_new_unitary_indices (Us, dataset, silent=False)
+
+
+

source

+
+
+

get_new_unitary_indices_batch

+
+
 get_new_unitary_indices_batch (Us, dataset, auto_batch_size=32,
+                                silent=False, n_jobs=1)
+
+
+
+
+

Generation

+
+

source

+
+

generate_comp_tensors

+
+
 generate_comp_tensors (pipeline, prompt, U, samples, system_size,
+                        num_of_qubits, max_gates, g, no_bar=True,
+                        unique=False, auto_batch_size=512)
+
+
+
+
+

Accuracy

+
+

source

+
+

check_correct_gates

+
+
 check_correct_gates (qc, num_of_qubits, gate_pool, max_gates,
+                      allowed_gate_clrs)
+
+
+

source

+
+
+

check_correct_unitary_exact

+
+
 check_correct_unitary_exact (qc, U)
+
+
+

source

+
+
+

check_correct_unitary_distance

+
+
 check_correct_unitary_distance (qc, target_U, norms)
+
+
+

source

+
+
+

get_gate_and_U_acc

+
+
 get_gate_and_U_acc (out_tensor, allowed_gate_clrs, U, gate_pool,
+                     num_of_qubits, max_gates, norms=[], no_bar=True)
+
+
+
+
+

Tests

+
+

source

+
+

test_comp_acc

+
+
 test_comp_acc (pipeline, samples, system_size, gate_pool, num_of_qubits,
+                max_gates, g, str_cond_to_gate_indices:<built-
+                infunctioncallable>, Us, ys, train_dataset=None, norms=[])
+
+
+

source

+
+
+

test_comp_acc_on_testset

+
+
 test_comp_acc_on_testset (pipeline, samples, num_of_U, system_size,
+                           gate_pool, num_of_qubits, max_gates, g,
+                           str_cond_to_gate_indices:<built-
+                           infunctioncallable>, prompt_mod:<built-
+                           infunctioncallable>, test_dataset,
+                           train_dataset=None, norms=[], fix_y=None)
+
+

returns: acc_s, gate_acc_s, u_acc_s, uniques_cnt_s, error_cnt_s, num_found_circuits_s, task_qc_len_s

+
+

source

+
+
+

test_comp_acc_on_rnd_samples

+
+
 test_comp_acc_on_rnd_samples (pipeline, samples, num_of_U, system_size,
+                               gate_pool, num_of_qubits, max_gates, g,
+                               str_cond_to_gate_indices:<built-
+                               infunctioncallable>, prompt_mod:<built-
+                               infunctioncallable>, rnd_min_gates,
+                               rnd_max_gates, train_dataset=None,
+                               norms=[], fix_y=None)
+
+

returns: acc_s, gate_acc_s, u_acc_s, uniques_cnt_s, error_cnt_s, num_found_circuits_s, task_qc_len_s

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
pipeline
samples
num_of_U
system_size
gate_pool
num_of_qubits
max_gates
g
str_cond_to_gate_indicescallable
prompt_modcallabletakes a single prompt and returns it modified
rnd_min_gates
rnd_max_gates
train_datasetNoneTypeNone
normslist[]
fix_yNoneTypeNone
+
+
+
+

Plot

+
+

source

+
+

plot_hist_overview

+
+
 plot_hist_overview (out_tuple, num_of_samples_per_U, rnd_min_gates,
+                     rnd_max_gates, max_gates, num_of_qubits)
+
+ + +
+
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/inference/infer_gate_hist.html b/inference/infer_gate_hist.html new file mode 100644 index 0000000..6ac9b58 --- /dev/null +++ b/inference/infer_gate_hist.html @@ -0,0 +1,736 @@ + + + + + + + + + +genQC - Inference gate distribution + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Inference gate distribution

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

Gate length

+
+

source

+
+

get_tensor_gate_length

+
+
 get_tensor_gate_length (clr_tensor, padding_token=0)
+
+

Careful with padding tokens!

+
+

source

+
+
+

get_circuit_gate_length

+
+
 get_circuit_gate_length (qcs)
+
+ + +
+
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/inference/infer_misc.html b/inference/infer_misc.html new file mode 100644 index 0000000..1bac476 --- /dev/null +++ b/inference/infer_misc.html @@ -0,0 +1,741 @@ + + + + + + + + + +genQC - Inference miscellaneous functions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Inference miscellaneous functions

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

Misc

+
+

source

+
+

get_rnd_gatepool_subset

+
+
 get_rnd_gatepool_subset (gate_pool, min_sub_gate_pool_cnt=2)
+
+
+
+
+

Convertion

+
+

source

+
+

convert_tensors_to_circuits

+
+
 convert_tensors_to_circuits (out_tensor, gate_pool, place_barrier=False)
+
+ + +
+
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/inference/infer_srv.html b/inference/infer_srv.html new file mode 100644 index 0000000..498b90e --- /dev/null +++ b/inference/infer_srv.html @@ -0,0 +1,922 @@ + + + + + + + + + +genQC - Inference SRV functions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Inference SRV functions

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

Generation

+
+

source

+
+

get_all_srvs

+
+
 get_all_srvs (num_of_qubits)
+
+
+

source

+
+
+

generate_srv_tensors

+
+
 generate_srv_tensors (pipeline, prompt, samples, system_size,
+                       num_of_qubits, max_gates, g, no_bar=True,
+                       unique=False, auto_batch_size=512)
+
+
+
+
+

Convertion

+
+

source

+
+

convert_tensors_to_srvs

+
+
 convert_tensors_to_srvs (out_tensor, gate_pool, sort_srv=False,
+                          place_barrier=False, n_jobs=1)
+
+
+
+
+

Accuracy

+
+

source

+
+

get_srv_accuracy

+
+
 get_srv_accuracy (svr_list, target_srv)
+
+
+
+
+

Tests

+
+

source

+
+

true_sample_bin_dist

+
+
 true_sample_bin_dist (samples_per_bin, bin_size)
+
+
+

source

+
+
+

test_srv_clr_distribution_bin_samples

+
+
 test_srv_clr_distribution_bin_samples (pipeline, samples_per_bin,
+                                        system_size, num_of_qubits,
+                                        max_gates, g, gate_pool,
+                                        silent=False, device='cpu',
+                                        U=None, prompt_mod:<built-
+                                        infunctioncallable>=<function
+                                        <lambda>>, only_diag=False,
+                                        n_jobs=1)
+
+
+

source

+
+
+

test_srv_clr_distribution

+
+
 test_srv_clr_distribution (pipeline, samples_per_srv, system_size,
+                            num_of_qubits, max_gates, g, gate_pool,
+                            silent=False, device='cpu', U=None,
+                            prompt_mod:<built-
+                            infunctioncallable>=<function <lambda>>,
+                            dist_srvs=None, cond_srvs=None,
+                            only_diag=False, n_jobs=1)
+
+
+

source

+
+
+

test_guidance_dep

+
+
 test_guidance_dep (pipeline, srvs, samples, system_size, num_of_qubits,
+                    max_gates, gs, gate_pool, prompt_mod:<built-
+                    infunctioncallable>=<function <lambda>>, U=None,
+                    n_jobs=1)
+
+
+

source

+
+
+

test_srv_acc_vs_length

+
+
 test_srv_acc_vs_length (pipeline, samples, system_size, num_of_qubits,
+                         max_gates, g, gate_pool, prompt_mod:<built-
+                         infunctioncallable>=<function <lambda>>, U=None,
+                         n_jobs=1)
+
+
+

source

+
+
+

test_srv_acc_vs_maxLength

+
+
 test_srv_acc_vs_maxLength (pipeline, samples_per_bin, system_size,
+                            num_of_qubits, max_gates_list, g, gate_pool,
+                            prompt_mod:<built-
+                            infunctioncallable>=<function <lambda>>,
+                            U=None, n_jobs=1)
+
+
+

source

+
+
+

test_srv_length_distribution

+
+
 test_srv_length_distribution (pipeline, samples_per_bin, system_size,
+                               num_of_qubits, max_gates, g, gate_pool,
+                               silent=False, U=None, prompt_mod:<built-
+                               infunctioncallable>=<function <lambda>>,
+                               n_jobs=1)
+
+
+
+
+

Plot

+
+

source

+
+

plot_srv_clr_distribution_hist

+
+
 plot_srv_clr_distribution_hist (values, samples, num_of_qubits,
+                                 save=False, dist_srvs=None,
+                                 cond_srvs=None)
+
+
+

source

+
+
+

plot_srv_clr_distribution_bin_accuracy

+
+
 plot_srv_clr_distribution_bin_accuracy (values, samples, num_of_qubits,
+                                         save=False,
+                                         plot_percentages=False,
+                                         trainSet_srv=None)
+
+
+

source

+
+
+

plot_guidance_dep

+
+
 plot_guidance_dep (srvs, gs, guidance_dep_out, samples, save=False)
+
+
+

source

+
+
+

plot_srv_acc_vs_length

+
+
 plot_srv_acc_vs_length (ent_ls, ent_accs, ent_cnts, ent_labels, samples,
+                         plot_dist=True, save=False)
+
+
+

source

+
+
+

plot_srv_acc_vs_maxLength

+
+
 plot_srv_acc_vs_maxLength (ent_accs, ent_labels, max_gates_list, samples,
+                            plot_dist=True, save=False)
+
+ + +
+
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/metrics.html b/metrics.html new file mode 100644 index 0000000..bd14b69 --- /dev/null +++ b/metrics.html @@ -0,0 +1,796 @@ + + + + + + + + + +genQC - Metrics + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Metrics

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

Definition of metrics used during training.

+
+

source

+
+

Metric

+
+
 Metric (name:str, device)
+
+

Base metric class.

+
+

source

+
+
+

Mean

+
+
 Mean (name:str, device)
+
+

Mean metric, used for loss ..

+
+

source

+
+
+

Accuracy

+
+
 Accuracy (name:str, device)
+
+

Accuracy metric.

+

Example usage:

+
+
a = Accuracy("mean", "cpu")
+print(a, a.empty)
+
+a.update_state(torch.Tensor([3,2,2,1]), torch.Tensor([1,2,2,1]))
+print(a, a.empty)
+
+a.update_state(torch.Tensor([1,2,2,3]), torch.Tensor([1,2,2,3]))
+print(a, a.empty)
+
+a.reset_state()
+print(a, a.empty)
+
+
mean=nan True
+mean=0.75 False
+mean=0.875 False
+mean=nan True
+
+
+ + +
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/models/config_model.html b/models/config_model.html new file mode 100644 index 0000000..245a2b8 --- /dev/null +++ b/models/config_model.html @@ -0,0 +1,728 @@ + + + + + + + + + +genQC - Config model + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Config model

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

Model base class that handles loading and storing from/to config-files.

+
+

Model

+
+

source

+
+

Config_Model

+
+
 Config_Model ()
+
+

A basic nn.Module with IO functionality.

+ + +
+
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/models/frozen_open_clip.html b/models/frozen_open_clip.html new file mode 100644 index 0000000..f4b9606 --- /dev/null +++ b/models/frozen_open_clip.html @@ -0,0 +1,875 @@ + + + + + + + + + +genQC - Frozen OpenCLIP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Frozen OpenCLIP

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

CLIP model

+
+

source

+
+

FrozenOpenCLIPEmbedder_config

+
+
 FrozenOpenCLIPEmbedder_config (arch:str, version:str, device:str,
+                                max_length:int, freeze:bool, layer:str)
+
+
+

source

+
+
+

FrozenOpenCLIPEmbedder

+
+
 FrozenOpenCLIPEmbedder (arch='ViT-H-14', version='laion2b_s32b_b79k',
+                         device='cpu', max_length=77, freeze=True,
+                         layer='penultimate')
+
+

Loads and freezes the OpenCLIP transformer encoder for text prompts.

+
+
a = FrozenOpenCLIPEmbedder()
+
+
+
p="[1, 2, 2]"
+a.tokenize_and_push_to_device(p)
+
+
tensor([[49406,   314,   272,   267,   273,   267,   273,   316, 49407,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+             0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+             0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0]])
+
+
+
+
a.tokenize_and_push_to_device("").shape
+
+
torch.Size([1, 77])
+
+
+
+
c = a.tokenize_and_push_to_device(["1,1,2", "2,2,2"])
+enc = a(c)
+enc.shape, enc
+
+
(torch.Size([2, 77, 1024]),
+ tensor([[[-0.3134, -0.4476, -0.0082,  ...,  0.2542, -0.0324, -0.2960],
+          [ 0.0668, -1.2381,  0.9908,  ...,  0.1785,  0.1592, -0.4320],
+          [ 0.6988, -0.2168, -1.2912,  ...,  2.1063, -0.0302, -0.5666],
+          ...,
+          [ 0.4703, -1.4072, -0.4847,  ..., -0.1257, -0.1650,  0.1206],
+          [ 0.5117, -1.3949, -0.4672,  ..., -0.4288, -0.2166,  0.2904],
+          [ 0.1480, -2.1998, -1.1187,  ...,  0.0823, -0.4157,  0.6236]],
+ 
+         [[-0.3134, -0.4476, -0.0082,  ...,  0.2542, -0.0324, -0.2960],
+          [-0.1180, -1.6322,  1.2987,  ..., -0.1378, -0.1529, -0.3377],
+          [-0.7251, -0.8167, -0.9966,  ...,  2.2262, -0.2325, -0.0138],
+          ...,
+          [ 0.3887, -1.3395, -0.5868,  ..., -0.1621, -0.0594,  0.1253],
+          [ 0.4360, -1.3350, -0.5684,  ..., -0.4643, -0.1131,  0.2847],
+          [ 0.1691, -2.1725, -1.1441,  ...,  0.0633, -0.3175,  0.7041]]]))
+
+
+
+
open_clip.decode(c[1])
+
+
'<start_of_text>2 , 2 , 2 <end_of_text>!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
+
+
+
+
+
+

Cached model

+

Model takes now also (batched) scalar int values that are defined to unique conditions like \([1,2,2]=4\). If input is now such int the output is the cached pre-embedded tensor. If a non int, like a token string is passed we just do the normal embedding live.

+
+

source

+
+

CachedFrozenOpenCLIPEmbedder

+
+
 CachedFrozenOpenCLIPEmbedder (arch='ViT-H-14',
+                               version='laion2b_s32b_b79k', device='cpu',
+                               max_length=77, freeze=True,
+                               layer='penultimate')
+
+

Adds caching support to FrozenOpenCLIPEmbedder.

+
+
a = CachedFrozenOpenCLIPEmbedder()
+p = ["1,1,2", "2,2,2"]
+
+a.generate_cache(p)
+
+ +
+
+
[INFO]: caching trying to allocate memory (2, 77, 1024) on cpu approx. 0.001 GB
+
+
+
+
c_cached   = torch.tensor([0,0,1], device=a.device)
+c_uncached = a.tokenize_and_push_to_device(["1,1,2", "1,1,2", "2,2,2"])
+
+enc_cached   = a(c_cached)
+enc_uncached = a(c_uncached)
+
+enc_cached.shape, enc_uncached.shape, torch.allclose(enc_cached, enc_uncached, atol=1e-5)
+
+
(torch.Size([3, 77, 1024]), torch.Size([3, 77, 1024]), True)
+
+
+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/models/layers.html b/models/layers.html new file mode 100644 index 0000000..c29cdf1 --- /dev/null +++ b/models/layers.html @@ -0,0 +1,880 @@ + + + + + + + + + +genQC - Layers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Layers

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

Common model layers.

+
+

Basic scaling blocks

+
+

source

+
+

DownBlock2D

+
+
 DownBlock2D (in_ch, out_ch, kernel_size=2, stride=2, padding=0,
+              use_conv=True)
+
+

A 2d down scale block.

+
+

source

+
+
+

UpBlock2D

+
+
 UpBlock2D (in_ch, out_ch, kernel_size=2, stride=2, padding=0,
+            use_conv=True)
+
+

A 2d up scale block.

+
+
+
+

ResNet blocks

+
+

source

+
+

ResBlock2D

+
+
 ResBlock2D (in_ch, out_ch, kernel_size, skip=True)
+
+

A 2d residual block.

+
+

source

+
+
+

ResBlock2D_Conditional

+
+
 ResBlock2D_Conditional (in_ch, out_ch, t_emb_size, kernel_size,
+                         skip=True)
+
+

A 2d residual block with input of a time-step \(t\) embedding.

+
+
+
+

FeedForward layer

+
+

source

+
+

FeedForward

+
+
 FeedForward (in_ch, out_ch, inner_mult=1)
+
+

A small dense feed-forward network as used in transformers.

+
+
+
+

Position embedding layers

+

Create sinusoidal position embeddings, same as those from the transformer:

+

+
+

source

+
+

PositionalEncoding

+
+
 PositionalEncoding (d_model:int, dropout:float=0.0, max_len:int=5000)
+
+

An absolute pos encoding layer.

+
+

source

+
+
+

TimeEmbedding

+
+
 TimeEmbedding (d_model:int, dropout:float=0.0, max_len:int=5000)
+
+

A time embedding layer

+
+

source

+
+
+

PositionalEncodingTransposed

+
+
 PositionalEncodingTransposed (d_model:int, dropout:float=0.0,
+                               max_len:int=5000)
+
+

An absolute pos encoding layer.

+
+

source

+
+
+

PositionalEncoding2D

+
+
 PositionalEncoding2D (d_model:int, dropout:float=0.0, max_len:int=5000)
+
+

A 2D absolute pos encoding layer.

+
+
a = torch.zeros((1, 4, 3, 4))
+l = PositionalEncoding2D(d_model=4)   
+
+l(a)[0].shape
+
+
torch.Size([4, 3, 4])
+
+
+ + +
+
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/models/layers_files/figure-html/ab364029-0d4a-461b-aaf4-da0ac25381eb-1-a31f2432-fbf6-4ef8-b023-91ea2bfb84ca.png b/models/layers_files/figure-html/ab364029-0d4a-461b-aaf4-da0ac25381eb-1-a31f2432-fbf6-4ef8-b023-91ea2bfb84ca.png new file mode 100644 index 0000000000000000000000000000000000000000..3ec6b2275a268411683996be1a2dc21221ffb5a9 GIT binary patch literal 47605 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 + + + + + + + + +genQC - Transformers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Transformers

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

Attention blocks

+
+

source

+
+

BasisSelfAttnBlock

+
+
 BasisSelfAttnBlock (ch, num_heads, dropout=0)
+
+

A self attention block, i.e. a transformer encoder.

+
+

source

+
+
+

BasisCrossAttnBlock

+
+
 BasisCrossAttnBlock (ch, cond_emb_size, num_heads, dropout=0.0)
+
+

A cross attention block, i.e. a transformer decoder.

+
+
+
+

Spatial residual transformers

+
+

source

+
+

SpatialTransformerSelfAttn

+
+
 SpatialTransformerSelfAttn (ch, num_heads, depth, dropout=0.0)
+
+

A spatial residual transformer, only uses self-attention.

+
+

source

+
+
+

SpatialTransformer

+
+
 SpatialTransformer (ch, cond_emb_size, num_heads, depth, dropout=0.0)
+
+

A spatial residual transformer, uses self- and cross-attention on conditional input.

+ + +
+
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/models/unet_qc.html b/models/unet_qc.html new file mode 100644 index 0000000..8df71dc --- /dev/null +++ b/models/unet_qc.html @@ -0,0 +1,815 @@ + + + + + + + + + +genQC - Conditional qc-UNet + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Conditional qc-UNet

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

Quantum circuit U-Net architecture predicting the noise for noisy quantum circuits.

+
+

Blocks

+
+

source

+
+

UNet_block

+
+
 UNet_block (ch_in, ch_out, t_emb_size, cond_emb_size, num_heads=8,
+             num_res_blocks=1, transformer_depth=1)
+
+

The basic block of the U-Net. Is conditioned via cross-attention in SpatialTransformer and addition of the time ebedding in ResBlock2D_Conditional.

+
+

source

+
+
+

Encoder

+
+
 Encoder (model_features, t_emb_size, cond_emb_size, num_heads,
+          num_res_blocks, transformer_depths)
+
+

Encoder definition of the U-Net.

+
+

source

+
+
+

Decoder

+
+
 Decoder (model_features, t_emb_size, cond_emb_size, num_heads,
+          num_res_blocks, transformer_depths)
+
+

Decoder definition of the U-Net.

+
+
+
+

Model definition

+
+

source

+
+

QC_Cond_UNet_config

+
+
 QC_Cond_UNet_config (model_features:list[int], clr_dim:int, num_clrs:int,
+                      t_emb_size:int, cond_emb_size:int,
+                      num_heads:list[int], num_res_blocks:list[int],
+                      transformer_depths:list[int])
+
+
+

source

+
+
+

QC_Cond_UNet

+
+
 QC_Cond_UNet (model_features=[32, 32, 64], clr_dim=8, num_clrs=8,
+               t_emb_size=128, cond_emb_size=512, num_heads=[8, 8, 2],
+               num_res_blocks=[2, 2, 4], transformer_depths=[1, 2, 1])
+
+

Conditional U-Net model for quantum circuits. Implemets embedd_clrs and invert_clr functions to embed and decode color-tensors.

+
+
+
+

Unitary compilation extension

+
+

source

+
+

QC_Compilation_UNet_config

+
+
 QC_Compilation_UNet_config (model_features:list[int], clr_dim:int,
+                             num_clrs:int, t_emb_size:int,
+                             cond_emb_size:int, num_heads:list[int],
+                             num_res_blocks:list[int],
+                             transformer_depths:list[int], unitary_encoder
+                             _config:genQC.models.unitary_encoder.Unitary_
+                             encoder_config)
+
+
+

source

+
+
+

QC_Compilation_UNet

+
+
 QC_Compilation_UNet (model_features=[32, 32, 64], clr_dim=8, num_clrs=8,
+                      t_emb_size=128, cond_emb_size=512, num_heads=[8, 8,
+                      2], num_res_blocks=[2, 2, 4], transformer_depths=[1,
+                      2, 1], unitary_encoder_config=None)
+
+

Extension of the QC_Cond_UNet to accept unitary conditions.

+ + +
+
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/models/unitary_encoder.html b/models/unitary_encoder.html new file mode 100644 index 0000000..65d1c86 --- /dev/null +++ b/models/unitary_encoder.html @@ -0,0 +1,739 @@ + + + + + + + + + +genQC - Encoder for unitaries + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Encoder for unitaries

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

Model definition

+
+

source

+
+

Unitary_encoder_config

+
+
 Unitary_encoder_config (cond_emb_size:int, model_features:list[int],
+                         num_heads:int, transformer_depths:list[int],
+                         dropout:float)
+
+
+

source

+
+
+

Unitary_encoder

+
+
 Unitary_encoder (cond_emb_size, model_features=None, num_heads=8,
+                  transformer_depths=[4, 4], dropout=0.1)
+
+

Encoder for unitary conditions.

+ + +
+
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/pipeline/diffusion_pipeline.html b/pipeline/diffusion_pipeline.html new file mode 100644 index 0000000..7775160 --- /dev/null +++ b/pipeline/diffusion_pipeline.html @@ -0,0 +1,725 @@ + + + + + + + + + +genQC - Diffusion Pipeline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Diffusion Pipeline

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

source

+
+

DiffusionPipeline

+
+
 DiffusionPipeline (scheduler:genQC.scheduler.scheduler.Scheduler,
+                    model:torch.nn.modules.module.Module,
+                    text_encoder:torch.nn.modules.module.Module,
+                    device:torch.device, enable_guidance_train=True,
+                    guidance_train_p=0.1, cached_text_enc=True)
+
+

A Pipeline for diffusion models. Implements train and inference functions. Diffusion parameters are defined inside a Scheduler object.

+ + +
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/pipeline/diffusion_pipeline_special.html b/pipeline/diffusion_pipeline_special.html new file mode 100644 index 0000000..1f9396d --- /dev/null +++ b/pipeline/diffusion_pipeline_special.html @@ -0,0 +1,745 @@ + + + + + + + + + +genQC - Diffusion Pipeline Special + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Diffusion Pipeline Special

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

source

+
+

DiffusionPipeline_attnPadded

+
+
 DiffusionPipeline_attnPadded
+                               (scheduler:genQC.scheduler.scheduler.Schedu
+                               ler, model:torch.nn.modules.module.Module, 
+                               text_encoder:torch.nn.modules.module.Module
+                               , device:torch.device,
+                               enable_guidance_train=True,
+                               guidance_train_p=0.1, cached_text_enc=True)
+
+

A special DiffusionPipeline with attention masking.

+
+

source

+
+
+

DiffusionPipeline_Compilation

+
+
 DiffusionPipeline_Compilation
+                                (scheduler:genQC.scheduler.scheduler.Sched
+                                uler,
+                                model:torch.nn.modules.module.Module, text
+                                _encoder:torch.nn.modules.module.Module,
+                                device:torch.device,
+                                enable_guidance_train=True,
+                                guidance_train_p=0.1,
+                                cached_text_enc=True)
+
+

A special DiffusionPipeline that accounts for unitary conditions, i.e. compilation.

+ + +
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/pipeline/pipeline.html b/pipeline/pipeline.html new file mode 100644 index 0000000..d9db52c --- /dev/null +++ b/pipeline/pipeline.html @@ -0,0 +1,743 @@ + + + + + + + + + +genQC - Pipeline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Pipeline

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

Basic PyTorch pipeline for general training.

+
+

Helper

+
+
+

Pipeline

+

Note, uses functions that require: python>=3.9

+
+

source

+
+

Pipeline_IO

+
+
 Pipeline_IO ()
+
+

A class providing basic IO functionality.

+
+

source

+
+
+

Pipeline

+
+
 Pipeline (model:torch.nn.modules.module.Module, device:torch.device)
+
+

A Pipeline_IO class providing basic pytorch model training functionality.

+ + +
+
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/platform/qcircuit_dataset_construction.html b/platform/qcircuit_dataset_construction.html new file mode 100644 index 0000000..0a38011 --- /dev/null +++ b/platform/qcircuit_dataset_construction.html @@ -0,0 +1,957 @@ + + + + + + + + + +genQC - Quantum circuit dataset construction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Quantum circuit dataset construction

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

Functions to construct a dataset. Here we define the tokenization (encoding and decoding).

+
+

Tokenizer: encoding and decoding

+
+

source

+
+

get_target_control_qubits

+
+
 get_target_control_qubits
+                            (qc:qiskit.circuit.quantumcircuit.QuantumCircu
+                            it, gate:qiskit.circuit.gate.Gate)
+
+
+

source

+
+
+

encode_circuit

+
+
 encode_circuit (qc:qiskit.circuit.quantumcircuit.QuantumCircuit,
+                 num_of_qubits, gate_classes:dict, max_gates:int,
+                 sign_labels={'control_qubits': -1, 'target_qubits': 1},
+                 return_params=False)
+
+
+

source

+
+
+

decode_circuit

+
+
 decode_circuit (enc_tensor:torch.Tensor,
+                 gate_pool:list[qiskit.circuit.gate.Gate],
+                 place_barrier=True, sign_labels={'control_qubits': -1,
+                 'target_qubits': 1}, params_tensor=None)
+
+
+
+
+

Dataset generation

+
+

Totally random SRV circuits

+
+

source

+
+
+

get_rnd_encoded_circuit

+
+
 get_rnd_encoded_circuit (num_of_qubits, min_gates, max_gates, gate_pool,
+                          gate_classes, rng, optimized=True,
+                          return_params=False)
+
+
+

source

+
+
+

get_rnd_encoded_circuits

+
+
 get_rnd_encoded_circuits (samples, num_of_qubits=3, min_gates=3,
+                           max_gates=10, gate_pool=[<class 'qiskit.circuit
+                           .library.standard_gates.h.HGate'>, <class 'qisk
+                           it.circuit.library.standard_gates.x.CXGate'>],
+                           optimized=True, silent=False,
+                           return_params=False)
+
+
+
gate_pool=[ql.HGate, ql.CXGate, ql.CU3Gate, ql.CRXGate]
+
+print("Encode:")
+enc_t, y, params = get_rnd_encoded_circuits(samples=1, num_of_qubits=3, min_gates=6, max_gates=6, gate_pool=gate_pool, optimized=True, return_params=True)
+
+for enc_i, y_i, params_i in zip(enc_t, y, params):
+    print(f"{enc_i=}")
+    print(f"{y_i=}")
+    print(f"{params_i=}")
+
+print("Decode:")
+qc = decode_circuit(enc_t[0], gate_pool=gate_pool, params_tensor=params[0])
+display(qc.draw("mpl"))
+
+
Encode:
+enc_i=tensor([[-2,  0, -2,  3,  3,  0],
+        [ 2,  1,  2, -3, -3,  0],
+        [ 0,  0,  0,  0,  0,  1]], dtype=torch.int32)
+y_i=[2, 2, 1]
+params_i=tensor([[0.0000, 0.0000, 0.0000, 2.2710, 4.8585, 0.0000],
+        [0.0000, 0.0000, 0.0000, 0.0304, 1.1044, 0.0000],
+        [0.0000, 0.0000, 0.0000, 3.0486, 4.9504, 0.0000]])
+Decode:
+
+
+ +
+
+

+
+
+
+

source

+
+
+

gen_qc_dataset

+
+
 gen_qc_dataset (samples, num_of_qubits, min_gates, max_gates, gate_pool,
+                 optimized, silent=False)
+
+
+
+

Specific random SRV circuit

+
+

source

+
+
+

get_specific_rnd_srv_circuit

+
+
 get_specific_rnd_srv_circuit (srv, requested_length, gate_pool,
+                               max_i=2000, silent=True,
+                               fix_length_after_optimizing=True,
+                               requested_length_tolerance=0)
+
+
+
+

Unitary dataset

+
+

source

+
+
+

gen_compilation_rndGates_dataset

+
+
 gen_compilation_rndGates_dataset (samples, num_of_qubits, min_gates,
+                                   max_gates, gate_pool,
+                                   min_sub_gate_pool_cnt=1, silent=False)
+
+

Samples rnd circuit with a rnd subset of gates and return qc with gate label and unitary

+
+
gate_pool=[ql.HGate, ql.CXGate, ql.ZGate, ql.XGate, ql.CCXGate]
+
+enc_t, y, U = gen_compilation_rndGates_dataset(samples=1, num_of_qubits=3, min_gates=3, max_gates=4, gate_pool=gate_pool)
+
+np.set_printoptions(edgeitems=30, linewidth=100000, formatter=dict(float=lambda x: "%.3g" % x))
+
+print(f"\ny Label >>> {y[0]} <<<")
+print(f"\n{enc_t[0]}")
+print(f"\n{U[0]}")
+print("\nDecoded:")
+qc = decode_circuit(enc_t[0], gate_pool=gate_pool)
+display(qc.draw("mpl"))
+
+ +
+
+
generated unique circuits: 1
+
+y Label >>> Compile using: ['x'] <<<
+
+tensor([[0, 0, 0, 0],
+        [4, 0, 0, 0],
+        [0, 4, 4, 4]], dtype=torch.int32)
+
+[[0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j]
+ [0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j]
+ [0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j]
+ [0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j]
+ [0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]
+ [0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]
+ [1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]
+ [0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]]
+
+Decoded:
+
+
+

+
+
+
+
+

Graph states dataset

+
+
#place all h on all bist then only cz
+
+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/platform/qcircuit_dataset_construction_files/figure-html/cell-11-output-3.png b/platform/qcircuit_dataset_construction_files/figure-html/cell-11-output-3.png new file mode 100644 index 0000000000000000000000000000000000000000..75344cb32d97d4a0df3f094c49d0638abecd294b GIT binary patch literal 7564 zcmcgxc{r49+aHhTQAzZaN(hxgLfI8fi+$fI463^U&~?^EwP_4R(o@%{0A-ACqjxaYdB>%7kM{4LibLw$`s?7Zv{2xO0z zrm8Un@|!QXU);$Cej4}OsRAELerlF}Cf?3|aQj3C!+WjwAK&M&>%qm17}=wHXTCac5xS?v6j&b*3x~eXQf$=(G4M`vNm|9lZ(H=6!qr_cML9 zX;A(Z*%Q|TwANFpR3y&%++jF*ICy57P+0*d!`jJ6TQJ3)&!cBqz-P2_3qJ&MG1O=Z z{PJ6b^bQDQuU)(n1QH6##DfQZ=W*hMK!oZ=8IfX9N3(*jp85a(ibupOOX&RPPoJVc zjnlWLq4O3vN`gShhCOnekH|wf+t}FnA>sk|QC3Z1)(>B7kFjPxoj*K+=f~Vy|8muH zpiIxD9V@58&T*90%YpvtEbA{<=+jbhbKDdLE4(@0gckVYK{QMGYgBJC3kVsJwD)51 zzHMO#Y4uf+=POY82 zy{-sup37{5O*DH4w*MSPoj9RS)^x>l?;(uK<@d%E{4a zjuNymFo>EpvfFvshmZR3$>C?e+O&HnD=RCeSFh&Q)F^jk*6)=bkzeQHld1Qg+Ur_q zYqir60`$fvF8-YkA}!WILDi>D zosxBE;s|T7pPZhaubjr3z~SZC;1#VvY)*kyd5XY(kVp0ox?E=n7ib#}$m#P$BUxTE zXXk9^HcW0ilx|&wqg7qlCUwwy@Y8Ki-2)6k77AM;oeOJgZ6+rt!__nUU)kR~7V}r+ zk@MNEvM*a&w7WVxUzC-ZW2bZT^YNq#%{zF!t^};c5{*V@Yuq{NSnv5oP~N$IPA4vS zDTvrnXjAM*D2RpO zS}P?bCB$r25*rd<6Syj@=R^S5@()onVz42`iUSE76qkM&{mRg5gT}(z}J?# zha{~HPal+F+OY1#N}K8cF@Y%ewYjdU+3Zv>+!KXiQ8zpE{M;NN_JmGnfB#GH$m~Z2 zV&`bXLw_QY3?9#M42Zxyc)%uM`AX;n>T$!2>bFeF--f*V$GsgVv~&_rZ?-hQDJ#?F zwVWCbUezltEuAIf=(Q&eu&1?BWZhyHE5mn&?ye0}{%GoPPFmX_iD z;c%T;Nmz~I%yu<=$s8n1adEM%|6C_+00e;a=?a(4+6IAO+||`}LQV%HhLx3-ar0O| z0)g0v*visLqM$g}ECUp(VpxP@?>MeY#oYPaw#H#;HN|+#;-J!z^8vb#4@&U**b49a z-1LO+gqD+&(~5Etz0P;KZ8p)$t8#9$xTIw5gGidN%5HVWzspfv4;!|j4-pLxaX8FO&>gw76k!G%@rWX6WzyDgn)e`kIH z*4CDXEy~Qi(%09Q%X8$osEUdWxZSnAo1^-B=W=fye6AJexAE0p!nV$O)W`DU$B!*- zZQbh&17;>BnIQAEs;ck_@$np#;fkuNbKvedBjFMg52~!nF z6c$SQ`}@x}a6vme44?&zi(YaH3gX=CZr%A;StBc#>ZqiD><}c`mZ`>G*!p?}Ntw+# zB_(CBCdkr|pO>fekn@PKg+&rm+j>=nM<&FH7_^X)2M!*DtxYxOq=j7DFQVVsk|1sd z-l!6^KJ!^au>`&aZ9bAB+x{(iZsGbMUvr5ODdd;Q0srX()O!k1wF0RbsL4D<^=p?E?> zM8iO3E&kT6Te?32<+8GYLvv)pbRbj12BFHqs05i0lzDdamAL!}t-qin7-_FT#e}3J z_rZ#rOvBW#B8dtrzendkc<|s)`Vl}9j?>OZD>E8=k4!yUNpW&zvh^Hjgp#&(9!&c! z3XssjAv00JD!ZvkooUr)nn(~H%o26(QL}E;S;xcavU!sAJ0TYh4X4y|vA1={xoAx! zo+|-fvnnmR$MqqQ=e$xSzx|s<-L~P-7n6`MLn3Qu&)V(%hS`9p{2j89`0VVH1=mWo z_4M?ZmcfVyiA0*&SRS97on@}bU(*R1{O%@ytDs5UmO@%neq9ByhradP2miXJ7T;~UKSS{%gM>TEGPhp z1lBI2viR4|f~yh-bd5ZyQWI&Of1>zJ+>+zuw$Vio?%@h{7ezml$ z?8Y`_t-sjmF+e5CQr?RfpD;?kod6i`-u-PTc=aQj$PpzNqN>SbP{^k0d2b$c9ybK- zc)8JrinG|#3ll)p4~B{*qS3jHj}M8<$aIiI&)ol3hybGI=I2X;$X=5Z6Ej&!FkaGG zfDm!QAJH;7^fK{D@6oqmRih91CIVsFQ%AI5qa0!8DyQkVC^1-xZOG~DUZ{6Wu&o=P z!h0PZ8I|iT+}zwV1?9uWmoD95ZlPs(fH*qKx2^Lmin{d_hGb_PylR%!wOCuNK{Br| z4&@CFTK|(rlw@CaUCSiAaSPublV~j8e!OL%FZO2rX5eO=Zd9W2e6sw=3O^J${WM(l*vpqM2}5wAO7WHKXa(npCXe7tlnjgIIo`k$?E{p>?d)dl z%D*|x#XWoWFlBaqzjvtOFNw(I^wFjA)#-K%Szf&v9@H00H)`4F5n&k(LPA!qNlxU<>CdjFo}QkM zj&Rpqnr%?Lw?qxET}kQe5!Y+8*n-kb(yJHa;na8bfwcDHX#khGT76Gs2`YW+4?yc5dUWH&5?Gsj09QsFto2Irq+C z+N4~M@y*vGj{2zq%@kSMi1&j@GS$;Fe5qG#DOHVKW$RhZ8`&@ctAY(2&3GA}7r)LW zUPOgsD7c(>bRtFZ1O@vLp!bdD$RkyNE}C7tcJ8@@y!S8$@2dIdPa%LpjEs!Zt-Nc^ zT-q>3Zf?2G?bw31Z!b$&R~U9=>va&abWZFE#$ldp-L`(6WScN{Gs`nLoh~h${!lR9 z!t}*P@HI+3+Fz6t_ny6gUbOD!{9e6K(v77XYT7;aydQP`D2O`0{`cD`5RGMD=Nvt zIR6tXv34$`$S(YHR6!zY48@HqZ>hhZ+e08^xL^a-B_t%6Yhq5CY^IM@79)}Y8Y|AE z3X;F{Wdi>5qOj1b9x6hOu{Wvt5SIX3wdGw!!M0nx12uz4e`euu-j>4(hkm!Qu{q~A z6J1qR#RRmWrGlXqiGWXOQs$B@1rampm*|_1M6e^*u0SAmrs?=SZxhH-pvR8*t~hlU zi8IvxrO^p=r8sebovfRD=2EJ>C*l6C{mf%ducnN>ki{I@qaWt0v$X4-+PydFXb%3)sR_`8E z`zEF^TVCBl?{{X+4ibXC0ei=BfDghggQAmx*cdKuAVuv)oy@@pWW19LBaNi^0ZAnW zg%X)Mz2VeIJb*)x%pDH(Lf=((Yrc=Rl~pP%cv%fdv!CWd0OY+ki2Smogc&k^!QC?P z{}4+z)ZBgWw4taf$>#gazih@quI!C!268Fywz3x!-v82S7>Nho2CxCF$D5uoGf3$Y{bTrsHCL8GV#tt3`;ai1(u}^ygEtBwtKcC$A5Fh>4&YlXTr0 zk4HD5j34X<%(~uiSz4TlLi(orXoD^RAXG1k<=%IP<^Rhd8HoqNQBB-D|BMP7$FXnj z5e5y&@40iN^#Sj^%*=+LG60a0kEsgc`yTyhp)i)DWHbdZ#tiho!!phwmBpb@+jbQ) zrmDJnZ6eN~WmVa8sH%&UT>sZ!{}UIofA<;{%|g9uJH>EPK4Mj@q;OlsfDL}fV8cH2osu8Cfh;Uz9O|HrP!` zcvg-(zG)BW-{G~C657DFOhNe4mO@}7(R3z#2YyfT^+Ko6ZLW!afQDboJ@BDjPK$jm zX=d*3dEG^}MG{tJqT=Ft^t$kHcEF4@kVxbyQPEGp4)O3Yey$D3&M;zL;s7^yvcQR~ znzx793lNqxl%PqCGj7XL_cdzx*k&C;-YYsO(HZeB{^nWMFLb)^P5QpW8}7gX>X){# zwJjQ|hKmCsB2`NwJc~jrcw>d#+AvDnL$h_!84(d22M!&YZ-&xdOIlY% z$5x&#zWzEH+&;5B?Tm8{~#9DeL+$R6+8RcxTTBZ6|3&zRdnn0#-Ze&qdg*ef)`LLb&x$}dAFVGDiv+hu zc2G9kQH4&ei9gyte^VwcC2u^>lfI3+B(9iHVw-Sl?&kbja_^@4l>toE8<@Yg$w zHLGp+UC>ZeUB+kEx6PyT1vb_4fW%Z5eyT%KNkDV&nN5Cr9)41>Yi$+iv@&l#nn)Wy zp3sq1cOh{1RO{|NMB;Qf`{N1Za^ou%qG8OP-y=q7S$2*>XfP+c7w<2wF#AAHFCeeQ z$~v{gUs_t4pYMn{t|7eVv@gnLqA(fEK{&UdKqB`lm_fDPkDr`lE)Gtu&1bNs=}KiPPG@ALdDk8OCu(a0r)x-QYNI_)J5; zbkER`gjUt<<*{evCE)BWEG)FNv=BOTO^Prn0R=bK_;?N2 zC&81eZ-A9&MWiH7eN4^Srjnyby_$v@OM!}kE6)Xjzg}XbEl8p(=dvp*6w#jxb>R61 zK!Q5=V%xplO^9@u6yO|$ko9oD-WmfI%(rY&xu3XbNd%hxq(40pfVPqIwK;l-CR-is z)VkCk$N%=uuc)!%U#+w5g%gqG!nr_M<>)`1!_@+x6?lzCLDZx}`Ze8+ccnl{B#2ww z_|p5jAM}X7+8%d`o;pPUI||sPBdC<+@tcjX5VP>+gtFx@n$F()0wIPlqx7-!0WI`F z?2_o#xt|&WAmkYtm&=C{d7vsYff>kXZDCuZIb2ESiyn{xIQ2c$9AKr)O?do3WkLRY{Vrrxi^R7{Y*u zQMEgSo=ZVr8QRz&yA~Mk@xQ2~+(?~xPd0UEDI^C;U3UXgF_-s{*r%?ptSb*WZPqSm zTLs36h}TZx3OAGAXb2khXGT4DJ+^Ay0-@qkbQn&o-QTS?52GAtT*r{MGcOH_^R3GD zakRCfwM@Zn&BKQeQ^p19y(l7Swqr-F-!4FN#JcP72ni8=OtkEVPQJy3*OZPlnkmCz z{fbLTNr`U*4}JB=D9gYLqzj<=()w6(RlIUh1H&Cs}{ zlXt2at`~ebu$jbj=C5zU+{gLb(Uy<4jm=Zg2}~_4m>m;f1BC+@Vqqa+iOM`FGM**V zP+e4SI&s(m5pmz~K0!Ci?f`I=Len$ApQ5J&TXe^54U!o2iQ~XG11LdIAAJE?1*CF( zTAKF{Jk3X2k>A|jKAqVTaxz!UDk#vCs@uru@9$?~-HfxP*)Lx@hiikn`uf~{7zpgZ z&qs74@fZxh%37yM%ZCrl&JotTBPk9X1t>m{`M*8c>!q`n2B^S|IUY)Y=|QyA^i>Nl H+ui*y9x__f literal 0 HcmV?d00001 diff --git a/platform/qcircuit_dataset_construction_files/figure-html/cell-7-output-3.png b/platform/qcircuit_dataset_construction_files/figure-html/cell-7-output-3.png new file mode 100644 index 0000000000000000000000000000000000000000..e5454af730b25667fd316e110727ff2c047f2a5d GIT binary patch literal 14244 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 aO{qIDcka5Ue>C%~nyR|ji?7{!@IL^-hdGk~ literal 0 HcmV?d00001 diff --git a/platform/qcircuit_evaluation.html b/platform/qcircuit_evaluation.html new file mode 100644 index 0000000..0099782 --- /dev/null +++ b/platform/qcircuit_evaluation.html @@ -0,0 +1,754 @@ + + + + + + + + + +genQC - Quantum circuit evaluation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Quantum circuit evaluation

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

Gate count

+
+

source

+
+

sort_into_bins

+
+
 sort_into_bins (x, y, y_uniques)
+
+
+

source

+
+
+

extract_gate_number

+
+
 extract_gate_number (qc:qiskit.circuit.quantumcircuit.QuantumCircuit,
+                      gate_pool, max_gates)
+
+
+

source

+
+
+

get_gate_stat_from_tensors

+
+
 get_gate_stat_from_tensors (tensors, gate_pool)
+
+
+

source

+
+
+

get_gate_stat_from_circuits

+
+
 get_gate_stat_from_circuits (qcs:list, gate_pool, max_gates)
+
+ + +
+
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/platform/qcircuit_metrics.html b/platform/qcircuit_metrics.html new file mode 100644 index 0000000..73c7971 --- /dev/null +++ b/platform/qcircuit_metrics.html @@ -0,0 +1,772 @@ + + + + + + + + + +genQC - Quantum circuit metrics + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Quantum circuit metrics

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

Norms for unitary compilation.

+
+

Unitary distances

+
+

source

+
+

Unitary_FrobeniusNorm

+
+
 Unitary_FrobeniusNorm ()
+
+

Initialize self. See help(type(self)) for accurate signature.

+
+
a = torch.tensor([[1,2], [2, 1]]).float()
+b = torch.tensor([[2,3], [2, 2]]).float()
+
+g = Unitary_FrobeniusNorm
+g.distance(a,b)
+
+
tensor(1.5000)
+
+
+ + +
+
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/platform/qcircuit_util.html b/platform/qcircuit_util.html new file mode 100644 index 0000000..2e2a340 --- /dev/null +++ b/platform/qcircuit_util.html @@ -0,0 +1,782 @@ + + + + + + + + + +genQC - Quantum circuit utils + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Quantum circuit utils

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

SRV

+
+

source

+
+

get_element_matching_indices

+
+
 get_element_matching_indices (a, b)
+
+

Compares (2d) a with b. Returns the indices of b, where a element of a matches with b.

+
+

source

+
+
+

get_entanglement_bins

+
+
 get_entanglement_bins (num_of_qubits)
+
+

Returns all SRV sorted in entangle bins which correspond to a number of entangled qubits.

+
+
for srvs,label in zip(*get_entanglement_bins(5)):
+    print(label, ":", srvs)
+
+
0 qubit entangled : [[1, 1, 1, 1, 1]]
+2 qubit entangled : [[1, 1, 1, 2, 2], [1, 1, 2, 1, 2], [1, 1, 2, 2, 1], [1, 2, 1, 1, 2], [1, 2, 1, 2, 1], [1, 2, 2, 1, 1], [2, 1, 1, 1, 2], [2, 1, 1, 2, 1], [2, 1, 2, 1, 1], [2, 2, 1, 1, 1]]
+3 qubit entangled : [[1, 1, 2, 2, 2], [1, 2, 1, 2, 2], [1, 2, 2, 1, 2], [1, 2, 2, 2, 1], [2, 1, 1, 2, 2], [2, 1, 2, 1, 2], [2, 1, 2, 2, 1], [2, 2, 1, 1, 2], [2, 2, 1, 2, 1], [2, 2, 2, 1, 1]]
+4 qubit entangled : [[1, 2, 2, 2, 2], [2, 1, 2, 2, 2], [2, 2, 1, 2, 2], [2, 2, 2, 1, 2], [2, 2, 2, 2, 1]]
+5 qubit entangled : [[2, 2, 2, 2, 2]]
+
+
+ + +
+
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/platform/simulation/qcircuit_sim.html b/platform/simulation/qcircuit_sim.html new file mode 100644 index 0000000..488d782 --- /dev/null +++ b/platform/simulation/qcircuit_sim.html @@ -0,0 +1,951 @@ + + + + + + + + + +genQC - Qiskit: quantum circuit simulation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Qiskit: quantum circuit simulation

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

Circuit

+
+

source

+
+

get_number_of_gate_params

+
+
 get_number_of_gate_params (gate_cls)
+
+
+

source

+
+
+

gate_pool_to_gate_classes

+
+
 gate_pool_to_gate_classes (gate_pool:list[qiskit.circuit.gate.Gate])
+
+

Creates a vocabulary from a gate pool.

+
+

source

+
+
+

schmidt_rank_vector

+
+
 schmidt_rank_vector
+                      (densityMatrix:qiskit.quantum_info.states.densitymat
+                      rix.DensityMatrix)
+
+

Return the SRV of a qi.DensityMatrix.

+
+

source

+
+
+

rnd_circuit

+
+
 rnd_circuit (num_of_qubits, num_of_gates,
+              gate_pool:list[qiskit.circuit.gate.Gate], rng)
+
+

Create a random circuit.

+
+

source

+
+
+

optimize_circuit

+
+
 optimize_circuit (qc:qiskit.circuit.quantumcircuit.QuantumCircuit,
+                   gate_pool:list[qiskit.circuit.gate.Gate],
+                   optimization_level=2)
+
+

Use qiskit.compiler.transpile to optimize a circuit.

+
+
gs = [ql.HGate, ql.CXGate, ql.CRXGate]
+qc = rnd_circuit(num_of_qubits=3, num_of_gates=8, gate_pool=gs, rng=np.random.default_rng())
+svr = schmidt_rank_vector(qi.DensityMatrix(qc))
+display(f"Rand: svr={svr}    num_gates={len(qc.data)}", qc.draw('mpl'))
+
+qc = optimize_circuit(qc, gs)
+svr = schmidt_rank_vector(qi.DensityMatrix(qc))
+display(f"Opti: svr={svr}    num_gates={len(qc.data)}", qc.draw('mpl'))
+
+
'Rand: svr=[1, 1, 1]    num_gates=8'
+
+
+

+
+
+
'Opti: svr=[1, 1, 1]    num_gates=8'
+
+
+

+
+
+
+

source

+
+
+

plot_svr_stat

+
+
 plot_svr_stat (num_of_qubits, min_gates, max_gates, gs, samples,
+                sort=False, opt=True, rng=Generator(PCG64) at
+                0x7F4E2117AC80)
+
+

SRV distrubtion for random sampling

+
+
# gs = [ql.HGate, ql.SGate, ql.TGate, ql.CXGate]  # approx universal set
+# gs = [ql.HGate, ql.CCXGate]                     # approx universal set
+gs = [ql.HGate, ql.CXGate]
+
+plot_svr_stat(num_of_qubits=3, min_gates=6, max_gates=8, gs=gs, samples=int(1e3),  rng=np.random.default_rng())
+
+
[1, 1, 1]: 58.2%
+[2, 2, 1]: 11.5%
+[2, 2, 2]: 11.3%
+[1, 2, 2]: 9.6%
+[2, 1, 2]: 9.4%
+
+
+

+
+
+
+
+
+

SVR Test cases

+
+
def test_srv(system_dims, init, target):
+    vec = qi.Statevector(init, dims=system_dims)
+    vec *= 1/np.sqrt(vec.trace())
+    srv = schmidt_rank_vector(qi.DensityMatrix(vec)) 
+    assert srv == target, f"srv: {srv}"
+    print(f"passed test, svr: {srv}")
+    display(vec.draw('latex', prefix='|\\psi\\rangle = '))
+
+
+
#---------------- |0+> = |00>+|01>
+system_dims = (2,2)
+init = np.zeros(np.prod(system_dims), dtype=complex)
+init[0] = 1
+init[1] = 1
+test_srv(system_dims, init, [1, 1])
+
+#----------------Bell, |00>+|11>
+system_dims = (2,2)
+init = np.zeros(np.prod(system_dims), dtype=complex)
+init[0] = 1
+init[3] = 1
+test_srv(system_dims, init, [2, 2])
+  
+#----------------GHZ, |000>+|111>
+system_dims = (2,2,2)
+init = np.zeros(np.prod(system_dims), dtype=complex)
+init[0] = 1
+init[7] = 1
+test_srv(system_dims, init, [2,2,2])
+ 
+#----------------Sym, |000>+|111>+|222>
+system_dims = (3,3,3)
+init = np.zeros(np.prod(system_dims), dtype=complex)
+init[0]  = 1
+init[13] = 1
+init[26] = 1
+test_srv(system_dims, init, [3,3,3])
+      
+#----------------Wikipedia example, |000>+|101>+|210>+|311>
+system_dims = (4,4,4)
+init = np.zeros(np.prod(system_dims), dtype=complex)
+init[0]  = 1
+init[17] = 1
+init[36] = 1
+init[53] = 1
+test_srv(system_dims, init, [2, 2, 4])
+
+
passed test, svr: [1, 1]
+passed test, svr: [2, 2]
+passed test, svr: [2, 2, 2]
+passed test, svr: [3, 3, 3]
+passed test, svr: [2, 2, 4]
+
+
+

\[|\psi\rangle = \frac{\sqrt{2}}{2} |00\rangle+\frac{\sqrt{2}}{2} |01\rangle\]

+
+
+

\[|\psi\rangle = \frac{\sqrt{2}}{2} |00\rangle+\frac{\sqrt{2}}{2} |11\rangle\]

+
+
+

\[|\psi\rangle = \frac{\sqrt{2}}{2} |000\rangle+\frac{\sqrt{2}}{2} |111\rangle\]

+
+
+

$$\[\begin{align} + +|\psi\rangle = +\begin{bmatrix} +\frac{\sqrt{3}}{3} & 0 & 0 & 0 & \cdots & 0 & 0 & \frac{\sqrt{3}}{3} \\ +\end{bmatrix} +\\ +\text{dims=(3, 3, 3)} +\end{align}\]$$

+
+
+

$$\[\begin{align} + +|\psi\rangle = +\begin{bmatrix} +\frac{1}{2} & 0 & 0 & 0 & \cdots & 0 & 0 & 0 \\ +\end{bmatrix} +\\ +\text{dims=(4, 4, 4)} +\end{align}\]$$

+
+
+ + +
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/platform/simulation/qcircuit_sim_files/figure-html/cell-7-output-2.png b/platform/simulation/qcircuit_sim_files/figure-html/cell-7-output-2.png new file mode 100644 index 0000000000000000000000000000000000000000..8a4f788a2d4cdeb4edd16619d59c8b9f2d4ab662 GIT binary patch literal 10415 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 YFa2*tqQS|)@F0eYqJ~1boJq+40%8$yCIA2c literal 0 HcmV?d00001 diff --git a/platform/simulation/qcircuit_sim_files/figure-html/cell-7-output-4.png b/platform/simulation/qcircuit_sim_files/figure-html/cell-7-output-4.png new file mode 100644 index 0000000000000000000000000000000000000000..8a4f788a2d4cdeb4edd16619d59c8b9f2d4ab662 GIT binary patch literal 10415 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 YFa2*tqQS|)@F0eYqJ~1boJq+40%8$yCIA2c literal 0 HcmV?d00001 diff --git a/platform/simulation/qcircuit_sim_files/figure-html/cell-9-output-2.png b/platform/simulation/qcircuit_sim_files/figure-html/cell-9-output-2.png new file mode 100644 index 0000000000000000000000000000000000000000..72c085f6fa311236a503e171d329dc394da004a8 GIT binary patch literal 10559 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 + + + + + + + + +genQC - Printing functions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + +
+ + + +
+ +
+
+

Printing functions

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

Advanced printing functions.

+
+

source

+
+

display_colums

+
+
 display_colums (display_list, num_col=3)
+
+
+
a = [torch.rand((3, 3))]*3
+a
+
+
[tensor([[0.6266, 0.3672, 0.3988],
+         [0.6061, 0.2596, 0.4855],
+         [0.3177, 0.8166, 0.3100]]),
+ tensor([[0.6266, 0.3672, 0.3988],
+         [0.6061, 0.2596, 0.4855],
+         [0.3177, 0.8166, 0.3100]]),
+ tensor([[0.6266, 0.3672, 0.3988],
+         [0.6061, 0.2596, 0.4855],
+         [0.3177, 0.8166, 0.3100]])]
+
+
+

v.s.

+
+
display_colums(a) # works only in notebook
+
+ +
+
+
+

source

+
+
+

ndarray_to_latex

+
+
 ndarray_to_latex (arr)
+
+

Returns a LaTeX {pmatrix*}[r] as a string

+
+

source

+
+
+

tensor_to_latex

+
+
 tensor_to_latex (tensor)
+
+

Returns a LaTeX {pmatrix*}[r] as a string

+
+
tex = tensor_to_latex(torch.full((3,3), 2))
+print(tex)
+
+
\begin{pmatrix*}[r]
+  2 & 2 & 2\\
+  2 & 2 & 2\\
+  2 & 2 & 2\\
+\end{pmatrix*}
+
+
+
+

source

+
+ + + + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..878f065 --- /dev/null +++ b/robots.txt @@ -0,0 +1 @@ +Sitemap: https://FlorianFuerrutter.github.io/genQC/sitemap.xml diff --git a/scheduler/scheduler.html b/scheduler/scheduler.html new file mode 100644 index 0000000..d46f752 --- /dev/null +++ b/scheduler/scheduler.html @@ -0,0 +1,722 @@ + + + + + + + + + +genQC - Scheduler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Scheduler

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

Base class for schedulers.

+
+

source

+
+

Scheduler

+
+
 Scheduler ()
+
+

Base class for all diffusion schedulers

+ + +
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/scheduler/scheduler_ddim.html b/scheduler/scheduler_ddim.html new file mode 100644 index 0000000..019f1d0 --- /dev/null +++ b/scheduler/scheduler_ddim.html @@ -0,0 +1,736 @@ + + + + + + + + + +genQC - DDIMScheduler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

DDIMScheduler

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

Denoising diffusion implicit models (DDIM).

+
+

source

+
+

DDIMScheduler

+
+
 DDIMScheduler (device:Union[str,torch.device],
+                num_train_timesteps:int=1000, beta_start:float=0.0001,
+                beta_end:float=0.02, beta_schedule:str='linear',
+                input_perturbation=0.1, eta:float=0)
+
+

A Scheduler implementing (DDIM).

+
+

source

+
+
+

DDIMSchedulerOutput

+
+
 DDIMSchedulerOutput (prev_sample:torch.FloatTensor,
+                      pred_original_sample:Optional[torch.FloatTensor]=Non
+                      e)
+
+ + +
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/scheduler/scheduler_ddpm.html b/scheduler/scheduler_ddpm.html new file mode 100644 index 0000000..dfde7ec --- /dev/null +++ b/scheduler/scheduler_ddpm.html @@ -0,0 +1,736 @@ + + + + + + + + + +genQC - DDPMScheduler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

DDPMScheduler

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

Denoising diffusion probabilistic models (DDPM): reverse beta is fixed and diagonal.

+
+

source

+
+

DDPMScheduler

+
+
 DDPMScheduler (device:Union[str,torch.device],
+                num_train_timesteps:int=1000, beta_start:float=0.0001,
+                beta_end:float=0.02, beta_schedule:str='linear',
+                input_perturbation=0.1)
+
+

A Scheduler implementing (DDPM)

+
+

source

+
+
+

DDPMSchedulerOutput

+
+
 DDPMSchedulerOutput (prev_sample:torch.FloatTensor,
+                      pred_original_sample:Optional[torch.FloatTensor]=Non
+                      e)
+
+ + +
+ + Back to top
+ +
+ + + + \ No newline at end of file diff --git a/search.json b/search.json new file mode 100644 index 0000000..98d725c --- /dev/null +++ b/search.json @@ -0,0 +1,639 @@ +[ + { + "objectID": "printing.html", + "href": "printing.html", + "title": "Printing functions", + "section": "", + "text": "Advanced printing functions.\n\nsource\n\ndisplay_colums\n\n display_colums (display_list, num_col=3)\n\n\na = [torch.rand((3, 3))]*3\na\n\n[tensor([[0.6266, 0.3672, 0.3988],\n [0.6061, 0.2596, 0.4855],\n [0.3177, 0.8166, 0.3100]]),\n tensor([[0.6266, 0.3672, 0.3988],\n [0.6061, 0.2596, 0.4855],\n [0.3177, 0.8166, 0.3100]]),\n tensor([[0.6266, 0.3672, 0.3988],\n [0.6061, 0.2596, 0.4855],\n [0.3177, 0.8166, 0.3100]])]\n\n\nv.s.\n\ndisplay_colums(a) # works only in notebook\n\n\n\n\n\nsource\n\n\nndarray_to_latex\n\n ndarray_to_latex (arr)\n\nReturns a LaTeX {pmatrix*}[r] as a string\n\nsource\n\n\ntensor_to_latex\n\n tensor_to_latex (tensor)\n\nReturns a LaTeX {pmatrix*}[r] as a string\n\ntex = tensor_to_latex(torch.full((3,3), 2))\nprint(tex)\n\n\\begin{pmatrix*}[r]\n 2 & 2 & 2\\\\\n 2 & 2 & 2\\\\\n 2 & 2 & 2\\\\\n\\end{pmatrix*}\n\n\n\nsource\n\n\nprint_markdown\n\n print_markdown (text, print_raw=False)\n\n\nprint_markdown(\"$\\sqrt{2}$, *Test text*\")\n\n\\(\\sqrt{2}\\), Test text\n\n\n\nprint_markdown(f\"${tex}$\")\n\n\\(\\begin{pmatrix*}[r] 2 & 2 & 2\\\\ 2 & 2 & 2\\\\ 2 & 2 & 2\\\\ \\end{pmatrix*}\\)\n\n\n\nsource\n\n\nprint_table\n\n print_table (col_headings:list, data:<built-infunctionarray>,\n row_headings=None, print_raw=False)\n\nPrint a table:\n\nh = [\"head1\", \"head2\", \"head3\"]\nr = [\"sample\", \"dataset\"]\nd = np.random.rand(2, 3)\nprint_table(h, d, r)\n\n\n\n\n\nhead1\nhead2\nhead3\n\n\n\n\nsample\n0.32\n0.23\n0.27\n\n\ndataset\n0.74\n0.41\n0.00\n\n\n\n\n\n\n\n\n\n Back to top" + }, + { + "objectID": "inference/infer_misc.html", + "href": "inference/infer_misc.html", + "title": "Inference miscellaneous functions", + "section": "", + "text": "source\n\n\n\n get_rnd_gatepool_subset (gate_pool, min_sub_gate_pool_cnt=2)" + }, + { + "objectID": "inference/infer_misc.html#misc", + "href": "inference/infer_misc.html#misc", + "title": "Inference miscellaneous functions", + "section": "", + "text": "source\n\n\n\n get_rnd_gatepool_subset (gate_pool, min_sub_gate_pool_cnt=2)" + }, + { + "objectID": "inference/infer_misc.html#convertion", + "href": "inference/infer_misc.html#convertion", + "title": "Inference miscellaneous functions", + "section": "Convertion", + "text": "Convertion\n\nsource\n\nconvert_tensors_to_circuits\n\n convert_tensors_to_circuits (out_tensor, gate_pool, place_barrier=False)" + }, + { + "objectID": "inference/infer_gate_hist.html", + "href": "inference/infer_gate_hist.html", + "title": "Inference gate distribution", + "section": "", + "text": "source\n\n\n\n get_tensor_gate_length (clr_tensor, padding_token=0)\n\nCareful with padding tokens!\n\nsource\n\n\n\n\n get_circuit_gate_length (qcs)" + }, + { + "objectID": "inference/infer_gate_hist.html#gate-length", + "href": "inference/infer_gate_hist.html#gate-length", + "title": "Inference gate distribution", + "section": "", + "text": "source\n\n\n\n get_tensor_gate_length (clr_tensor, padding_token=0)\n\nCareful with padding tokens!\n\nsource\n\n\n\n\n get_circuit_gate_length (qcs)" + }, + { + "objectID": "dataset/qc_dataset.html", + "href": "dataset/qc_dataset.html", + "title": "Quantum circuit dataset", + "section": "", + "text": "Dataset for quantum circuits.\n\nsource\n\nQc_Config_Dataset_config\n\n Qc_Config_Dataset_config (store_dict:dict, optimized:bool,\n dataset_to_gpu:bool, random_samples:int,\n num_of_qubits:int, min_gates:int,\n max_gates:int, gate_pool:list[str])\n\n\nsource\n\n\nQc_Config_Dataset\n\n Qc_Config_Dataset (device:torch.device=device(type='cpu'), **parameters)\n\nDataset for quantum circuits, access gate_pool directly and all other paras with .params_config\n\ninit = {k:None for k in Qc_Config_Dataset.req_params}\ninit[\"gate_pool\"] = [\"qiskit.circuit.library.standard_gates.h.HGate\",\n \"qiskit.circuit.library.standard_gates.x.CXGate\"]\ninit[\"store_dict\"] = {\"x\":\"tensor\", \"y\":\"tensor_list\"}\n\na = Qc_Config_Dataset(**init)\na.get_config()\n\n{'target': '__main__.Qc_Config_Dataset',\n 'device': 'cpu',\n 'comment': '',\n 'save_path': None,\n 'save_datetime': '11/09/2023 18:48:57',\n 'params': Qc_Config_Dataset_config(store_dict={'x': 'tensor', 'y': 'tensor_list'}, optimized=None, dataset_to_gpu=None, random_samples=None, num_of_qubits=None, min_gates=None, max_gates=None, gate_pool=['qiskit.circuit.library.standard_gates.h.HGate', 'qiskit.circuit.library.standard_gates.x.CXGate'])}\n\n\n\n\n\n\n Back to top" + }, + { + "objectID": "dataset/mixed_cached_qc_dataset.html", + "href": "dataset/mixed_cached_qc_dataset.html", + "title": "Mixed cached dataset", + "section": "", + "text": "Dataset that combines and handles multiple cached datasets, e.g. for multiple qubits. Here we also handle paddings.\n\nsource\n\nMixed_Cached_OpenClip_Dataset_config\n\n Mixed_Cached_OpenClip_Dataset_config (store_dict:dict, optimized:bool,\n dataset_to_gpu:bool,\n random_samples:int,\n num_of_qubits:int, min_gates:int,\n max_gates:int, gate_pool:list[str],\n pad_constant:int, collate_fn:str,\n bucket_batch_size:int,\n num_down_scales:int)\n\n\nsource\n\n\nMixed_Cached_OpenClip_Dataset\n\n Mixed_Cached_OpenClip_Dataset (device:torch.device=device(type='cpu'),\n **parameters)\n\nDataset that uses multiple cached dataset and combines them with padding, either i) Bucket or ii) Max. Also provides a corresponding collate_fn for training.\n\n\n\n\n Back to top" + }, + { + "objectID": "scheduler/scheduler.html", + "href": "scheduler/scheduler.html", + "title": "Scheduler", + "section": "", + "text": "Base class for schedulers.\n\nsource\n\nScheduler\n\n Scheduler ()\n\nBase class for all diffusion schedulers\n\n\n\n\n Back to top" + }, + { + "objectID": "scheduler/scheduler_ddim.html", + "href": "scheduler/scheduler_ddim.html", + "title": "DDIMScheduler", + "section": "", + "text": "Denoising diffusion implicit models (DDIM).\n\nsource\n\nDDIMScheduler\n\n DDIMScheduler (device:Union[str,torch.device],\n num_train_timesteps:int=1000, beta_start:float=0.0001,\n beta_end:float=0.02, beta_schedule:str='linear',\n input_perturbation=0.1, eta:float=0)\n\nA Scheduler implementing (DDIM).\n\nsource\n\n\nDDIMSchedulerOutput\n\n DDIMSchedulerOutput (prev_sample:torch.FloatTensor,\n pred_original_sample:Optional[torch.FloatTensor]=Non\n e)\n\n\n\n\n\n Back to top" + }, + { + "objectID": "util.html", + "href": "util.html", + "title": "Util", + "section": "", + "text": "Miscellaneous util code." + }, + { + "objectID": "util.html#memory-utils", + "href": "util.html#memory-utils", + "title": "Util", + "section": "Memory utils", + "text": "Memory utils\n\nsource\n\nMemoryCleaner\n\n MemoryCleaner ()\n\nCLass with static methods to clean (gpu) memory." + }, + { + "objectID": "util.html#python-utils", + "href": "util.html#python-utils", + "title": "Util", + "section": "Python utils", + "text": "Python utils\n\nsource\n\nvirtual\n\n virtual (f:<built-infunctioncallable>)\n\nDecorator to enfore subclass method implementations and raises error at method calls.\n\nclass A():\n def p1(self, x): print(\"A p1\", x)\n \n @virtual\n def p2(self, x): pass\n \nclass B(A):\n def p3(self, x): print(\"B p2\", x)\n \nb = B()\nb.p1(1)\ntry:\n b.p2(1)\nexcept BaseException as e:\n print(\"Exception that would be raised: \", e)\n\nA p1 1\nException that would be raised: Virtual method p2 needs to be implemented by subclass B." + }, + { + "objectID": "util.html#torch-utils", + "href": "util.html#torch-utils", + "title": "Util", + "section": "Torch utils", + "text": "Torch utils\n\nsource\n\nDataLoaders\n\n DataLoaders (*dls:list[torch.utils.data.dataloader.DataLoader])\n\nCombines train and valid DataLoader.\n\nsource\n\n\ninfer_torch_device\n\n infer_torch_device ()\n\n\ninfer_torch_device()\n\n[INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul.\n\n\ndevice(type='cuda')\n\n\n\nsource\n\n\nnumber_of_paramters\n\n number_of_paramters (model:torch.nn.modules.module.Module)\n\n\nsource\n\n\nscale_tensor\n\n scale_tensor (t:torch.Tensor)\n\n[-1,1] to [0,1]\n\nsource\n\n\nnormalize_tensor\n\n normalize_tensor (t:torch.Tensor)\n\n[0,1] to [-1,1]" + }, + { + "objectID": "util.html#plot-utils", + "href": "util.html#plot-utils", + "title": "Util", + "section": "Plot utils", + "text": "Plot utils\n\nsource\n\nsaveSvg\n\n saveSvg (filename)\n\n\nsource\n\n\nsavePng\n\n savePng (filename)\n\n\nsource\n\n\nsavePdf\n\n savePdf (filename)\n\n\nsource\n\n\nplot_image_grid\n\n plot_image_grid (imgs:Union[list,<built-infunctionarray>,torch.Tensor],\n labels:list=None, labels_fs='medium', figsize=(16, 4),\n cols=8, cmap='Greys', show_colorbar=False,\n **imshow_kwargs)\n\n\nn = 6\nplot_image_grid(torch.randn((n,28,28,1)), [f\"label {i}\" for i in range(n)])\n\n\n\n\n\nsource\n\n\nlatents_to_pil\n\n latents_to_pil (latents:torch.Tensor, channels=None)" + }, + { + "objectID": "models/frozen_open_clip.html", + "href": "models/frozen_open_clip.html", + "title": "Frozen OpenCLIP", + "section": "", + "text": "source\n\n\n\n FrozenOpenCLIPEmbedder_config (arch:str, version:str, device:str,\n max_length:int, freeze:bool, layer:str)\n\n\nsource\n\n\n\n\n FrozenOpenCLIPEmbedder (arch='ViT-H-14', version='laion2b_s32b_b79k',\n device='cpu', max_length=77, freeze=True,\n layer='penultimate')\n\nLoads and freezes the OpenCLIP transformer encoder for text prompts.\n\na = FrozenOpenCLIPEmbedder()\n\n\np=\"[1, 2, 2]\"\na.tokenize_and_push_to_device(p)\n\ntensor([[49406, 314, 272, 267, 273, 267, 273, 316, 49407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])\n\n\n\na.tokenize_and_push_to_device(\"\").shape\n\ntorch.Size([1, 77])\n\n\n\nc = a.tokenize_and_push_to_device([\"1,1,2\", \"2,2,2\"])\nenc = a(c)\nenc.shape, enc\n\n(torch.Size([2, 77, 1024]),\n tensor([[[-0.3134, -0.4476, -0.0082, ..., 0.2542, -0.0324, -0.2960],\n [ 0.0668, -1.2381, 0.9908, ..., 0.1785, 0.1592, -0.4320],\n [ 0.6988, -0.2168, -1.2912, ..., 2.1063, -0.0302, -0.5666],\n ...,\n [ 0.4703, -1.4072, -0.4847, ..., -0.1257, -0.1650, 0.1206],\n [ 0.5117, -1.3949, -0.4672, ..., -0.4288, -0.2166, 0.2904],\n [ 0.1480, -2.1998, -1.1187, ..., 0.0823, -0.4157, 0.6236]],\n \n [[-0.3134, -0.4476, -0.0082, ..., 0.2542, -0.0324, -0.2960],\n [-0.1180, -1.6322, 1.2987, ..., -0.1378, -0.1529, -0.3377],\n [-0.7251, -0.8167, -0.9966, ..., 2.2262, -0.2325, -0.0138],\n ...,\n [ 0.3887, -1.3395, -0.5868, ..., -0.1621, -0.0594, 0.1253],\n [ 0.4360, -1.3350, -0.5684, ..., -0.4643, -0.1131, 0.2847],\n [ 0.1691, -2.1725, -1.1441, ..., 0.0633, -0.3175, 0.7041]]]))\n\n\n\nopen_clip.decode(c[1])\n\n'<start_of_text>2 , 2 , 2 <end_of_text>!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'" + }, + { + "objectID": "models/frozen_open_clip.html#clip-model", + "href": "models/frozen_open_clip.html#clip-model", + "title": "Frozen OpenCLIP", + "section": "", + "text": "source\n\n\n\n FrozenOpenCLIPEmbedder_config (arch:str, version:str, device:str,\n max_length:int, freeze:bool, layer:str)\n\n\nsource\n\n\n\n\n FrozenOpenCLIPEmbedder (arch='ViT-H-14', version='laion2b_s32b_b79k',\n device='cpu', max_length=77, freeze=True,\n layer='penultimate')\n\nLoads and freezes the OpenCLIP transformer encoder for text prompts.\n\na = FrozenOpenCLIPEmbedder()\n\n\np=\"[1, 2, 2]\"\na.tokenize_and_push_to_device(p)\n\ntensor([[49406, 314, 272, 267, 273, 267, 273, 316, 49407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])\n\n\n\na.tokenize_and_push_to_device(\"\").shape\n\ntorch.Size([1, 77])\n\n\n\nc = a.tokenize_and_push_to_device([\"1,1,2\", \"2,2,2\"])\nenc = a(c)\nenc.shape, enc\n\n(torch.Size([2, 77, 1024]),\n tensor([[[-0.3134, -0.4476, -0.0082, ..., 0.2542, -0.0324, -0.2960],\n [ 0.0668, -1.2381, 0.9908, ..., 0.1785, 0.1592, -0.4320],\n [ 0.6988, -0.2168, -1.2912, ..., 2.1063, -0.0302, -0.5666],\n ...,\n [ 0.4703, -1.4072, -0.4847, ..., -0.1257, -0.1650, 0.1206],\n [ 0.5117, -1.3949, -0.4672, ..., -0.4288, -0.2166, 0.2904],\n [ 0.1480, -2.1998, -1.1187, ..., 0.0823, -0.4157, 0.6236]],\n \n [[-0.3134, -0.4476, -0.0082, ..., 0.2542, -0.0324, -0.2960],\n [-0.1180, -1.6322, 1.2987, ..., -0.1378, -0.1529, -0.3377],\n [-0.7251, -0.8167, -0.9966, ..., 2.2262, -0.2325, -0.0138],\n ...,\n [ 0.3887, -1.3395, -0.5868, ..., -0.1621, -0.0594, 0.1253],\n [ 0.4360, -1.3350, -0.5684, ..., -0.4643, -0.1131, 0.2847],\n [ 0.1691, -2.1725, -1.1441, ..., 0.0633, -0.3175, 0.7041]]]))\n\n\n\nopen_clip.decode(c[1])\n\n'<start_of_text>2 , 2 , 2 <end_of_text>!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'" + }, + { + "objectID": "models/frozen_open_clip.html#cached-model", + "href": "models/frozen_open_clip.html#cached-model", + "title": "Frozen OpenCLIP", + "section": "Cached model", + "text": "Cached model\nModel takes now also (batched) scalar int values that are defined to unique conditions like \\([1,2,2]=4\\). If input is now such int the output is the cached pre-embedded tensor. If a non int, like a token string is passed we just do the normal embedding live.\n\nsource\n\nCachedFrozenOpenCLIPEmbedder\n\n CachedFrozenOpenCLIPEmbedder (arch='ViT-H-14',\n version='laion2b_s32b_b79k', device='cpu',\n max_length=77, freeze=True,\n layer='penultimate')\n\nAdds caching support to FrozenOpenCLIPEmbedder.\n\na = CachedFrozenOpenCLIPEmbedder()\np = [\"1,1,2\", \"2,2,2\"]\n\na.generate_cache(p)\n\n\n\n\n[INFO]: caching trying to allocate memory (2, 77, 1024) on cpu approx. 0.001 GB\n\n\n\nc_cached = torch.tensor([0,0,1], device=a.device)\nc_uncached = a.tokenize_and_push_to_device([\"1,1,2\", \"1,1,2\", \"2,2,2\"])\n\nenc_cached = a(c_cached)\nenc_uncached = a(c_uncached)\n\nenc_cached.shape, enc_uncached.shape, torch.allclose(enc_cached, enc_uncached, atol=1e-5)\n\n(torch.Size([3, 77, 1024]), torch.Size([3, 77, 1024]), True)" + }, + { + "objectID": "models/unet_qc.html", + "href": "models/unet_qc.html", + "title": "Conditional qc-UNet", + "section": "", + "text": "Quantum circuit U-Net architecture predicting the noise for noisy quantum circuits." + }, + { + "objectID": "models/unet_qc.html#blocks", + "href": "models/unet_qc.html#blocks", + "title": "Conditional qc-UNet", + "section": "Blocks", + "text": "Blocks\n\nsource\n\nUNet_block\n\n UNet_block (ch_in, ch_out, t_emb_size, cond_emb_size, num_heads=8,\n num_res_blocks=1, transformer_depth=1)\n\nThe basic block of the U-Net. Is conditioned via cross-attention in SpatialTransformer and addition of the time ebedding in ResBlock2D_Conditional.\n\nsource\n\n\nEncoder\n\n Encoder (model_features, t_emb_size, cond_emb_size, num_heads,\n num_res_blocks, transformer_depths)\n\nEncoder definition of the U-Net.\n\nsource\n\n\nDecoder\n\n Decoder (model_features, t_emb_size, cond_emb_size, num_heads,\n num_res_blocks, transformer_depths)\n\nDecoder definition of the U-Net." + }, + { + "objectID": "models/unet_qc.html#model-definition", + "href": "models/unet_qc.html#model-definition", + "title": "Conditional qc-UNet", + "section": "Model definition", + "text": "Model definition\n\nsource\n\nQC_Cond_UNet_config\n\n QC_Cond_UNet_config (model_features:list[int], clr_dim:int, num_clrs:int,\n t_emb_size:int, cond_emb_size:int,\n num_heads:list[int], num_res_blocks:list[int],\n transformer_depths:list[int])\n\n\nsource\n\n\nQC_Cond_UNet\n\n QC_Cond_UNet (model_features=[32, 32, 64], clr_dim=8, num_clrs=8,\n t_emb_size=128, cond_emb_size=512, num_heads=[8, 8, 2],\n num_res_blocks=[2, 2, 4], transformer_depths=[1, 2, 1])\n\nConditional U-Net model for quantum circuits. Implemets embedd_clrs and invert_clr functions to embed and decode color-tensors." + }, + { + "objectID": "models/unet_qc.html#unitary-compilation-extension", + "href": "models/unet_qc.html#unitary-compilation-extension", + "title": "Conditional qc-UNet", + "section": "Unitary compilation extension", + "text": "Unitary compilation extension\n\nsource\n\nQC_Compilation_UNet_config\n\n QC_Compilation_UNet_config (model_features:list[int], clr_dim:int,\n num_clrs:int, t_emb_size:int,\n cond_emb_size:int, num_heads:list[int],\n num_res_blocks:list[int],\n transformer_depths:list[int], unitary_encoder\n _config:genQC.models.unitary_encoder.Unitary_\n encoder_config)\n\n\nsource\n\n\nQC_Compilation_UNet\n\n QC_Compilation_UNet (model_features=[32, 32, 64], clr_dim=8, num_clrs=8,\n t_emb_size=128, cond_emb_size=512, num_heads=[8, 8,\n 2], num_res_blocks=[2, 2, 4], transformer_depths=[1,\n 2, 1], unitary_encoder_config=None)\n\nExtension of the QC_Cond_UNet to accept unitary conditions." + }, + { + "objectID": "models/config_model.html", + "href": "models/config_model.html", + "title": "Config model", + "section": "", + "text": "Model base class that handles loading and storing from/to config-files." + }, + { + "objectID": "models/config_model.html#model", + "href": "models/config_model.html#model", + "title": "Config model", + "section": "Model", + "text": "Model\n\nsource\n\nConfig_Model\n\n Config_Model ()\n\nA basic nn.Module with IO functionality." + }, + { + "objectID": "pipeline/pipeline.html", + "href": "pipeline/pipeline.html", + "title": "Pipeline", + "section": "", + "text": "Basic PyTorch pipeline for general training." + }, + { + "objectID": "pipeline/pipeline.html#helper", + "href": "pipeline/pipeline.html#helper", + "title": "Pipeline", + "section": "Helper", + "text": "Helper" + }, + { + "objectID": "pipeline/pipeline.html#pipeline", + "href": "pipeline/pipeline.html#pipeline", + "title": "Pipeline", + "section": "Pipeline", + "text": "Pipeline\nNote, uses functions that require: python>=3.9\n\nsource\n\nPipeline_IO\n\n Pipeline_IO ()\n\nA class providing basic IO functionality.\n\nsource\n\n\nPipeline\n\n Pipeline (model:torch.nn.modules.module.Module, device:torch.device)\n\nA Pipeline_IO class providing basic pytorch model training functionality." + }, + { + "objectID": "index.html", + "href": "index.html", + "title": "genQC · Generative Quantum Circuits", + "section": "", + "text": "Code repository for generating quantum circuits with diffuison models. [Paper]" + }, + { + "objectID": "index.html#the-codebase", + "href": "index.html#the-codebase", + "title": "genQC · Generative Quantum Circuits", + "section": "The codebase", + "text": "The codebase\nAll weights and functions are contained within this repo. For the CLIP model weights we use the OpenCLIP library, which will download (and cache) the CLIP model on first usage of our pipeline. In case you prefer reading a documentation rather than notebooks or code see florianfuerrutter.github.io/genQC/.\nThe repo inlcudes:\n\nsaves/ the configs and weights of the pre-trained models.\ngenQC/ a full release of our used diffusion pipeline.\nsrc/examples examples how to reproduce some figures of the Paper.\nsrc/ the source notebooks for nbdev." + }, + { + "objectID": "index.html#examples", + "href": "index.html#examples", + "title": "genQC · Generative Quantum Circuits", + "section": "Examples", + "text": "Examples\n\nMinimal example\nA minimal example to generate a 5 qubit circuit conditioned on a SRV of \\([1,1,1,2,2]\\):\n\nfrom genQC.pipeline.diffusion_pipeline import DiffusionPipeline\nfrom genQC.inference.infer_srv import generate_srv_tensors, convert_tensors_to_srvs\n\nmodel_path = \"../saves/qc_unet_config_SRV_3to8_qubit/\"\npipeline = DiffusionPipeline.from_config_file(model_path, \"cpu\") \npipeline.scheduler.set_timesteps(20) \n\nout_tensor = generate_srv_tensors(pipeline, \"Generate SRV: [1,1,1,2,2]\", samples=1, system_size=5, num_of_qubits=5, max_gates=16, g=7.5) \nqc_list, _, svr_list = convert_tensors_to_srvs(out_tensor, pipeline.gate_pool)\n\n[INFO]: `genQC.models.unet_qc.QC_Cond_UNet` instantiated from given config on cpu.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cpu.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.\n\n\n\nprint(f\"is SRV {svr_list[0]}\")\nqc_list[0].draw(\"mpl\")\n\nis SRV [1, 1, 1, 2, 2]\n\n\n\n\n\n\n\nIncluded examples\nExamples are provided in the directory src/examples/.\n\n0_hello_circuit: how to sample a circuit (conditioned on a SRV)\n1_editing_and_masking: presents editing and masking\n2_unitary_compilation: compile unitariy and transpile circuit" + }, + { + "objectID": "index.html#installation", + "href": "index.html#installation", + "title": "genQC · Generative Quantum Circuits", + "section": "Installation:", + "text": "Installation:\n\n1. Clone\ngit clone https://github.com/FlorianFuerrutter/genQC.git\ncd genQC\n\n\n2. Install genQC\nThis library is build using jupyter notebooks and nbdev. To install the library use in the clone directory:\npip install -e .\nNote, this will install missing requirements automatically: [torch numpy matplotlib scipy pandas omegaconf qiskit tqdm joblib open_clip_torch ipywidgets pylatexenc]. You may want to install some of them manually beforehand, e.g. pytorch for specific cuda support pytorch.org/get-started/locally.\n\n\n3. Run example\nYou can run the provided 0_hello_circuit example to test your installation." + }, + { + "objectID": "index.html#license", + "href": "index.html#license", + "title": "genQC · Generative Quantum Circuits", + "section": "License", + "text": "License\nThe code and weights in this repository are released under the MIT License." + }, + { + "objectID": "index.html#bibtex", + "href": "index.html#bibtex", + "title": "genQC · Generative Quantum Circuits", + "section": "BibTeX", + "text": "BibTeX\nWe kindly ask you to cite our paper if any of the previous material was useful for your work.\n@article{fuerrutter2023quantum,\n title={Quantum circuit synthesis with diffusion models}, \n author={Florian Fürrutter and Gorka Muñoz-Gil and Hans J. Briegel},\n year={2023},\n eprint={2311.02041},\n publisher = {arXiv},\n archivePrefix={arXiv},\n primaryClass={quant-ph},\n url = {https://arxiv.org/abs/2311.02041},\n doi = {/10.48550/arXiv.2311.02041},\n}" + }, + { + "objectID": "examples/hello_circuit.html", + "href": "examples/hello_circuit.html", + "title": "Generate a circuit", + "section": "", + "text": "A minimal example to generate a circuit. We load a pre-trained (SRV, 3 to 8 qubit) model and condition on a given Schmidt-Rank-Vector (SRV).\nfrom genQC.imports import *\nfrom genQC.pipeline.diffusion_pipeline import DiffusionPipeline\nimport genQC.inference.infer_srv as infer_srv\nimport genQC.util as util\ndevice = util.infer_torch_device() # use cuda if we can\nutil.MemoryCleaner.purge_mem() # clean existing memory alloc\n\n[INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul.\ndevice\n\ndevice(type='cuda')" + }, + { + "objectID": "examples/hello_circuit.html#setup-and-load", + "href": "examples/hello_circuit.html#setup-and-load", + "title": "Generate a circuit", + "section": "Setup and load", + "text": "Setup and load\nLoad the pre-trained model\n\nmodel_path = \"../../saves/qc_unet_config_SRV_3to8_qubit/\"\npipeline = DiffusionPipeline.from_config_file(model_path, device)\n\n[INFO]: `genQC.models.unet_qc.QC_Cond_UNet` instantiated from given config on cuda.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cuda.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.\n\n\nCheck on what gates the model was trained\n\npipeline.gate_pool\n\n[qiskit.circuit.library.standard_gates.h.HGate,\n qiskit.circuit.library.standard_gates.x.CXGate]\n\n\nSet 20 sample steps and use rescaled guidance-formula.\n\npipeline.guidance_sample_mode = \"rescaled\"\npipeline.scheduler.set_timesteps(20)" + }, + { + "objectID": "examples/hello_circuit.html#inference-sampling", + "href": "examples/hello_circuit.html#inference-sampling", + "title": "Generate a circuit", + "section": "Inference / sampling", + "text": "Inference / sampling\nSet our desired condition SRV\n\nsrv = [2, 1, 2, 1, 2] # set your target SRV; can be 3 to 8 qubit\nnum_of_qubits = len(srv) \n\nprompt = f\"Generate SRV: {srv}\" # model was trained with this phrase\nprompt\n\n'Generate SRV: [2, 1, 2, 1, 2]'\n\n\nDefine sample parameters\n\ng = 7.5 # guidance scale\nmax_gates = 16 # how many time steps the tensor encoding has\nsamples = 32 # how many circuits to generate\n\nSample tokenized circuits\n\nout_tensor = infer_srv.generate_srv_tensors(pipeline, prompt, samples, num_of_qubits, num_of_qubits, max_gates, g, no_bar=False)\n\n\n\n\n[INFO]: (generate_srv_tensors) Generated 32 tensors\n\n\nCheck how many distinct tensors we got:\n\nout_tensor.unique(dim=0).shape[0]\n\n32\n\n\nLet’s look what is generated. Note, 3 is the padding token (or empty action).\n\nout_tensor[:2]\n\ntensor([[[ 0, 2, 1, 2, -2, 0, 2, 0, 0, 2, 3, 3, 3, 3, 3, 3],\n [-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3],\n [ 2, -2, 0, -2, 2, 1, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3],\n [ 0, 0, 0, 0, 0, 0, -2, 1, 0, 0, 3, 3, 3, 3, 3, 3],\n [ 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 3, 3, 3, 3, 3, 3]],\n\n [[ 1, -2, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n [ 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n [ 0, 2, 0, -2, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n [ 0, 0, -2, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n [ 0, 0, 2, 2, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]]])" + }, + { + "objectID": "examples/hello_circuit.html#convert-to-quiskit-circuit", + "href": "examples/hello_circuit.html#convert-to-quiskit-circuit", + "title": "Generate a circuit", + "section": "Convert to quiskit circuit", + "text": "Convert to quiskit circuit\nTo get a quiskit circuit we need to do:\n\napply cos. sim. to go from embeddings to token matrices (the function infer_srv.generate_srv_tensors did this already)\nparse token matrix to quiskit and filter out error circuits\ncalculate SRV and plot circuits\n\n\nqc_list, error_cnt, svr_list = infer_srv.convert_tensors_to_srvs(out_tensor, pipeline.gate_pool)\n\nGenerated error circuits:\n\nerror_cnt\n\n0\n\n\nWhat SRVs did we get:\n\nsvr_list[:4]\n\n[[2, 1, 2, 1, 2], [2, 1, 2, 1, 2], [2, 1, 2, 1, 2], [2, 1, 2, 1, 2]]\n\n\nThat is an accuracy of:\n\nsum(srv==x for x in svr_list)/len(svr_list)\n\n0.9375\n\n\nFinally plot some of the circuits:\n\nfig, axs = plt.subplots(2, 4, figsize=(18,5), constrained_layout=True)\nfor qc,is_svr,ax in zip(qc_list, svr_list, axs.flatten()): \n qc.draw(\"mpl\", plot_barriers=False, ax=ax)\n ax.set_title(f\"{'Correct' if is_svr==srv else 'NOT correct'}, is SRV = {is_svr}\")\nplt.show()" + }, + { + "objectID": "metrics.html", + "href": "metrics.html", + "title": "Metrics", + "section": "", + "text": "Definition of metrics used during training.\n\nsource\n\nMetric\n\n Metric (name:str, device)\n\nBase metric class.\n\nsource\n\n\nMean\n\n Mean (name:str, device)\n\nMean metric, used for loss ..\n\nsource\n\n\nAccuracy\n\n Accuracy (name:str, device)\n\nAccuracy metric.\nExample usage:\n\na = Accuracy(\"mean\", \"cpu\")\nprint(a, a.empty)\n\na.update_state(torch.Tensor([3,2,2,1]), torch.Tensor([1,2,2,1]))\nprint(a, a.empty)\n\na.update_state(torch.Tensor([1,2,2,3]), torch.Tensor([1,2,2,3]))\nprint(a, a.empty)\n\na.reset_state()\nprint(a, a.empty)\n\nmean=nan True\nmean=0.75 False\nmean=0.875 False\nmean=nan True\n\n\n\n\n\n\n Back to top" + }, + { + "objectID": "platform/qcircuit_metrics.html", + "href": "platform/qcircuit_metrics.html", + "title": "Quantum circuit metrics", + "section": "", + "text": "Norms for unitary compilation." + }, + { + "objectID": "platform/qcircuit_metrics.html#unitary-distances", + "href": "platform/qcircuit_metrics.html#unitary-distances", + "title": "Quantum circuit metrics", + "section": "Unitary distances", + "text": "Unitary distances\n\nsource\n\nUnitary_FrobeniusNorm\n\n Unitary_FrobeniusNorm ()\n\nInitialize self. See help(type(self)) for accurate signature.\n\na = torch.tensor([[1,2], [2, 1]]).float()\nb = torch.tensor([[2,3], [2, 2]]).float()\n\ng = Unitary_FrobeniusNorm\ng.distance(a,b)\n\ntensor(1.5000)" + }, + { + "objectID": "platform/simulation/qcircuit_sim.html", + "href": "platform/simulation/qcircuit_sim.html", + "title": "Qiskit: quantum circuit simulation", + "section": "", + "text": "source\n\n\n\n get_number_of_gate_params (gate_cls)\n\n\nsource\n\n\n\n\n gate_pool_to_gate_classes (gate_pool:list[qiskit.circuit.gate.Gate])\n\nCreates a vocabulary from a gate pool.\n\nsource\n\n\n\n\n schmidt_rank_vector\n (densityMatrix:qiskit.quantum_info.states.densitymat\n rix.DensityMatrix)\n\nReturn the SRV of a qi.DensityMatrix.\n\nsource\n\n\n\n\n rnd_circuit (num_of_qubits, num_of_gates,\n gate_pool:list[qiskit.circuit.gate.Gate], rng)\n\nCreate a random circuit.\n\nsource\n\n\n\n\n optimize_circuit (qc:qiskit.circuit.quantumcircuit.QuantumCircuit,\n gate_pool:list[qiskit.circuit.gate.Gate],\n optimization_level=2)\n\nUse qiskit.compiler.transpile to optimize a circuit.\n\ngs = [ql.HGate, ql.CXGate, ql.CRXGate]\nqc = rnd_circuit(num_of_qubits=3, num_of_gates=8, gate_pool=gs, rng=np.random.default_rng())\nsvr = schmidt_rank_vector(qi.DensityMatrix(qc))\ndisplay(f\"Rand: svr={svr} num_gates={len(qc.data)}\", qc.draw('mpl'))\n\nqc = optimize_circuit(qc, gs)\nsvr = schmidt_rank_vector(qi.DensityMatrix(qc))\ndisplay(f\"Opti: svr={svr} num_gates={len(qc.data)}\", qc.draw('mpl'))\n\n'Rand: svr=[1, 1, 1] num_gates=8'\n\n\n\n\n\n'Opti: svr=[1, 1, 1] num_gates=8'\n\n\n\n\n\n\nsource\n\n\n\n\n plot_svr_stat (num_of_qubits, min_gates, max_gates, gs, samples,\n sort=False, opt=True, rng=Generator(PCG64) at\n 0x7F4E2117AC80)\n\nSRV distrubtion for random sampling\n\n# gs = [ql.HGate, ql.SGate, ql.TGate, ql.CXGate] # approx universal set\n# gs = [ql.HGate, ql.CCXGate] # approx universal set\ngs = [ql.HGate, ql.CXGate]\n\nplot_svr_stat(num_of_qubits=3, min_gates=6, max_gates=8, gs=gs, samples=int(1e3), rng=np.random.default_rng())\n\n[1, 1, 1]: 58.2%\n[2, 2, 1]: 11.5%\n[2, 2, 2]: 11.3%\n[1, 2, 2]: 9.6%\n[2, 1, 2]: 9.4%" + }, + { + "objectID": "platform/simulation/qcircuit_sim.html#circuit", + "href": "platform/simulation/qcircuit_sim.html#circuit", + "title": "Qiskit: quantum circuit simulation", + "section": "", + "text": "source\n\n\n\n get_number_of_gate_params (gate_cls)\n\n\nsource\n\n\n\n\n gate_pool_to_gate_classes (gate_pool:list[qiskit.circuit.gate.Gate])\n\nCreates a vocabulary from a gate pool.\n\nsource\n\n\n\n\n schmidt_rank_vector\n (densityMatrix:qiskit.quantum_info.states.densitymat\n rix.DensityMatrix)\n\nReturn the SRV of a qi.DensityMatrix.\n\nsource\n\n\n\n\n rnd_circuit (num_of_qubits, num_of_gates,\n gate_pool:list[qiskit.circuit.gate.Gate], rng)\n\nCreate a random circuit.\n\nsource\n\n\n\n\n optimize_circuit (qc:qiskit.circuit.quantumcircuit.QuantumCircuit,\n gate_pool:list[qiskit.circuit.gate.Gate],\n optimization_level=2)\n\nUse qiskit.compiler.transpile to optimize a circuit.\n\ngs = [ql.HGate, ql.CXGate, ql.CRXGate]\nqc = rnd_circuit(num_of_qubits=3, num_of_gates=8, gate_pool=gs, rng=np.random.default_rng())\nsvr = schmidt_rank_vector(qi.DensityMatrix(qc))\ndisplay(f\"Rand: svr={svr} num_gates={len(qc.data)}\", qc.draw('mpl'))\n\nqc = optimize_circuit(qc, gs)\nsvr = schmidt_rank_vector(qi.DensityMatrix(qc))\ndisplay(f\"Opti: svr={svr} num_gates={len(qc.data)}\", qc.draw('mpl'))\n\n'Rand: svr=[1, 1, 1] num_gates=8'\n\n\n\n\n\n'Opti: svr=[1, 1, 1] num_gates=8'\n\n\n\n\n\n\nsource\n\n\n\n\n plot_svr_stat (num_of_qubits, min_gates, max_gates, gs, samples,\n sort=False, opt=True, rng=Generator(PCG64) at\n 0x7F4E2117AC80)\n\nSRV distrubtion for random sampling\n\n# gs = [ql.HGate, ql.SGate, ql.TGate, ql.CXGate] # approx universal set\n# gs = [ql.HGate, ql.CCXGate] # approx universal set\ngs = [ql.HGate, ql.CXGate]\n\nplot_svr_stat(num_of_qubits=3, min_gates=6, max_gates=8, gs=gs, samples=int(1e3), rng=np.random.default_rng())\n\n[1, 1, 1]: 58.2%\n[2, 2, 1]: 11.5%\n[2, 2, 2]: 11.3%\n[1, 2, 2]: 9.6%\n[2, 1, 2]: 9.4%" + }, + { + "objectID": "platform/simulation/qcircuit_sim.html#svr-test-cases", + "href": "platform/simulation/qcircuit_sim.html#svr-test-cases", + "title": "Qiskit: quantum circuit simulation", + "section": "SVR Test cases", + "text": "SVR Test cases\n\ndef test_srv(system_dims, init, target):\n vec = qi.Statevector(init, dims=system_dims)\n vec *= 1/np.sqrt(vec.trace())\n srv = schmidt_rank_vector(qi.DensityMatrix(vec)) \n assert srv == target, f\"srv: {srv}\"\n print(f\"passed test, svr: {srv}\")\n display(vec.draw('latex', prefix='|\\\\psi\\\\rangle = '))\n\n\n#---------------- |0+> = |00>+|01>\nsystem_dims = (2,2)\ninit = np.zeros(np.prod(system_dims), dtype=complex)\ninit[0] = 1\ninit[1] = 1\ntest_srv(system_dims, init, [1, 1])\n\n#----------------Bell, |00>+|11>\nsystem_dims = (2,2)\ninit = np.zeros(np.prod(system_dims), dtype=complex)\ninit[0] = 1\ninit[3] = 1\ntest_srv(system_dims, init, [2, 2])\n \n#----------------GHZ, |000>+|111>\nsystem_dims = (2,2,2)\ninit = np.zeros(np.prod(system_dims), dtype=complex)\ninit[0] = 1\ninit[7] = 1\ntest_srv(system_dims, init, [2,2,2])\n \n#----------------Sym, |000>+|111>+|222>\nsystem_dims = (3,3,3)\ninit = np.zeros(np.prod(system_dims), dtype=complex)\ninit[0] = 1\ninit[13] = 1\ninit[26] = 1\ntest_srv(system_dims, init, [3,3,3])\n \n#----------------Wikipedia example, |000>+|101>+|210>+|311>\nsystem_dims = (4,4,4)\ninit = np.zeros(np.prod(system_dims), dtype=complex)\ninit[0] = 1\ninit[17] = 1\ninit[36] = 1\ninit[53] = 1\ntest_srv(system_dims, init, [2, 2, 4])\n\npassed test, svr: [1, 1]\npassed test, svr: [2, 2]\npassed test, svr: [2, 2, 2]\npassed test, svr: [3, 3, 3]\npassed test, svr: [2, 2, 4]\n\n\n\\[|\\psi\\rangle = \\frac{\\sqrt{2}}{2} |00\\rangle+\\frac{\\sqrt{2}}{2} |01\\rangle\\]\n\n\n\\[|\\psi\\rangle = \\frac{\\sqrt{2}}{2} |00\\rangle+\\frac{\\sqrt{2}}{2} |11\\rangle\\]\n\n\n\\[|\\psi\\rangle = \\frac{\\sqrt{2}}{2} |000\\rangle+\\frac{\\sqrt{2}}{2} |111\\rangle\\]\n\n\n$$\\[\\begin{align}\n\n|\\psi\\rangle =\n\\begin{bmatrix}\n\\frac{\\sqrt{3}}{3} & 0 & 0 & 0 & \\cdots & 0 & 0 & \\frac{\\sqrt{3}}{3} \\\\\n\\end{bmatrix}\n\\\\\n\\text{dims=(3, 3, 3)}\n\\end{align}\\]$$\n\n\n$$\\[\\begin{align}\n\n|\\psi\\rangle =\n\\begin{bmatrix}\n\\frac{1}{2} & 0 & 0 & 0 & \\cdots & 0 & 0 & 0 \\\\\n\\end{bmatrix}\n\\\\\n\\text{dims=(4, 4, 4)}\n\\end{align}\\]$$" + }, + { + "objectID": "platform/qcircuit_evaluation.html", + "href": "platform/qcircuit_evaluation.html", + "title": "Quantum circuit evaluation", + "section": "", + "text": "source\n\n\n\n sort_into_bins (x, y, y_uniques)\n\n\nsource\n\n\n\n\n extract_gate_number (qc:qiskit.circuit.quantumcircuit.QuantumCircuit,\n gate_pool, max_gates)\n\n\nsource\n\n\n\n\n get_gate_stat_from_tensors (tensors, gate_pool)\n\n\nsource\n\n\n\n\n get_gate_stat_from_circuits (qcs:list, gate_pool, max_gates)" + }, + { + "objectID": "platform/qcircuit_evaluation.html#gate-count", + "href": "platform/qcircuit_evaluation.html#gate-count", + "title": "Quantum circuit evaluation", + "section": "", + "text": "source\n\n\n\n sort_into_bins (x, y, y_uniques)\n\n\nsource\n\n\n\n\n extract_gate_number (qc:qiskit.circuit.quantumcircuit.QuantumCircuit,\n gate_pool, max_gates)\n\n\nsource\n\n\n\n\n get_gate_stat_from_tensors (tensors, gate_pool)\n\n\nsource\n\n\n\n\n get_gate_stat_from_circuits (qcs:list, gate_pool, max_gates)" + }, + { + "objectID": "platform/qcircuit_util.html", + "href": "platform/qcircuit_util.html", + "title": "Quantum circuit utils", + "section": "", + "text": "source\n\n\n\n get_element_matching_indices (a, b)\n\nCompares (2d) a with b. Returns the indices of b, where a element of a matches with b.\n\nsource\n\n\n\n\n get_entanglement_bins (num_of_qubits)\n\nReturns all SRV sorted in entangle bins which correspond to a number of entangled qubits.\n\nfor srvs,label in zip(*get_entanglement_bins(5)):\n print(label, \":\", srvs)\n\n0 qubit entangled : [[1, 1, 1, 1, 1]]\n2 qubit entangled : [[1, 1, 1, 2, 2], [1, 1, 2, 1, 2], [1, 1, 2, 2, 1], [1, 2, 1, 1, 2], [1, 2, 1, 2, 1], [1, 2, 2, 1, 1], [2, 1, 1, 1, 2], [2, 1, 1, 2, 1], [2, 1, 2, 1, 1], [2, 2, 1, 1, 1]]\n3 qubit entangled : [[1, 1, 2, 2, 2], [1, 2, 1, 2, 2], [1, 2, 2, 1, 2], [1, 2, 2, 2, 1], [2, 1, 1, 2, 2], [2, 1, 2, 1, 2], [2, 1, 2, 2, 1], [2, 2, 1, 1, 2], [2, 2, 1, 2, 1], [2, 2, 2, 1, 1]]\n4 qubit entangled : [[1, 2, 2, 2, 2], [2, 1, 2, 2, 2], [2, 2, 1, 2, 2], [2, 2, 2, 1, 2], [2, 2, 2, 2, 1]]\n5 qubit entangled : [[2, 2, 2, 2, 2]]" + }, + { + "objectID": "platform/qcircuit_util.html#srv", + "href": "platform/qcircuit_util.html#srv", + "title": "Quantum circuit utils", + "section": "", + "text": "source\n\n\n\n get_element_matching_indices (a, b)\n\nCompares (2d) a with b. Returns the indices of b, where a element of a matches with b.\n\nsource\n\n\n\n\n get_entanglement_bins (num_of_qubits)\n\nReturns all SRV sorted in entangle bins which correspond to a number of entangled qubits.\n\nfor srvs,label in zip(*get_entanglement_bins(5)):\n print(label, \":\", srvs)\n\n0 qubit entangled : [[1, 1, 1, 1, 1]]\n2 qubit entangled : [[1, 1, 1, 2, 2], [1, 1, 2, 1, 2], [1, 1, 2, 2, 1], [1, 2, 1, 1, 2], [1, 2, 1, 2, 1], [1, 2, 2, 1, 1], [2, 1, 1, 1, 2], [2, 1, 1, 2, 1], [2, 1, 2, 1, 1], [2, 2, 1, 1, 1]]\n3 qubit entangled : [[1, 1, 2, 2, 2], [1, 2, 1, 2, 2], [1, 2, 2, 1, 2], [1, 2, 2, 2, 1], [2, 1, 1, 2, 2], [2, 1, 2, 1, 2], [2, 1, 2, 2, 1], [2, 2, 1, 1, 2], [2, 2, 1, 2, 1], [2, 2, 2, 1, 1]]\n4 qubit entangled : [[1, 2, 2, 2, 2], [2, 1, 2, 2, 2], [2, 2, 1, 2, 2], [2, 2, 2, 1, 2], [2, 2, 2, 2, 1]]\n5 qubit entangled : [[2, 2, 2, 2, 2]]" + }, + { + "objectID": "platform/qcircuit_dataset_construction.html", + "href": "platform/qcircuit_dataset_construction.html", + "title": "Quantum circuit dataset construction", + "section": "", + "text": "Functions to construct a dataset. Here we define the tokenization (encoding and decoding)." + }, + { + "objectID": "platform/qcircuit_dataset_construction.html#tokenizer-encoding-and-decoding", + "href": "platform/qcircuit_dataset_construction.html#tokenizer-encoding-and-decoding", + "title": "Quantum circuit dataset construction", + "section": "Tokenizer: encoding and decoding", + "text": "Tokenizer: encoding and decoding\n\nsource\n\nget_target_control_qubits\n\n get_target_control_qubits\n (qc:qiskit.circuit.quantumcircuit.QuantumCircu\n it, gate:qiskit.circuit.gate.Gate)\n\n\nsource\n\n\nencode_circuit\n\n encode_circuit (qc:qiskit.circuit.quantumcircuit.QuantumCircuit,\n num_of_qubits, gate_classes:dict, max_gates:int,\n sign_labels={'control_qubits': -1, 'target_qubits': 1},\n return_params=False)\n\n\nsource\n\n\ndecode_circuit\n\n decode_circuit (enc_tensor:torch.Tensor,\n gate_pool:list[qiskit.circuit.gate.Gate],\n place_barrier=True, sign_labels={'control_qubits': -1,\n 'target_qubits': 1}, params_tensor=None)" + }, + { + "objectID": "platform/qcircuit_dataset_construction.html#dataset-generation", + "href": "platform/qcircuit_dataset_construction.html#dataset-generation", + "title": "Quantum circuit dataset construction", + "section": "Dataset generation", + "text": "Dataset generation\n\nTotally random SRV circuits\n\nsource\n\n\nget_rnd_encoded_circuit\n\n get_rnd_encoded_circuit (num_of_qubits, min_gates, max_gates, gate_pool,\n gate_classes, rng, optimized=True,\n return_params=False)\n\n\nsource\n\n\nget_rnd_encoded_circuits\n\n get_rnd_encoded_circuits (samples, num_of_qubits=3, min_gates=3,\n max_gates=10, gate_pool=[<class 'qiskit.circuit\n .library.standard_gates.h.HGate'>, <class 'qisk\n it.circuit.library.standard_gates.x.CXGate'>],\n optimized=True, silent=False,\n return_params=False)\n\n\ngate_pool=[ql.HGate, ql.CXGate, ql.CU3Gate, ql.CRXGate]\n\nprint(\"Encode:\")\nenc_t, y, params = get_rnd_encoded_circuits(samples=1, num_of_qubits=3, min_gates=6, max_gates=6, gate_pool=gate_pool, optimized=True, return_params=True)\n\nfor enc_i, y_i, params_i in zip(enc_t, y, params):\n print(f\"{enc_i=}\")\n print(f\"{y_i=}\")\n print(f\"{params_i=}\")\n\nprint(\"Decode:\")\nqc = decode_circuit(enc_t[0], gate_pool=gate_pool, params_tensor=params[0])\ndisplay(qc.draw(\"mpl\"))\n\nEncode:\nenc_i=tensor([[-2, 0, -2, 3, 3, 0],\n [ 2, 1, 2, -3, -3, 0],\n [ 0, 0, 0, 0, 0, 1]], dtype=torch.int32)\ny_i=[2, 2, 1]\nparams_i=tensor([[0.0000, 0.0000, 0.0000, 2.2710, 4.8585, 0.0000],\n [0.0000, 0.0000, 0.0000, 0.0304, 1.1044, 0.0000],\n [0.0000, 0.0000, 0.0000, 3.0486, 4.9504, 0.0000]])\nDecode:\n\n\n\n\n\n\n\n\n\nsource\n\n\ngen_qc_dataset\n\n gen_qc_dataset (samples, num_of_qubits, min_gates, max_gates, gate_pool,\n optimized, silent=False)\n\n\n\nSpecific random SRV circuit\n\nsource\n\n\nget_specific_rnd_srv_circuit\n\n get_specific_rnd_srv_circuit (srv, requested_length, gate_pool,\n max_i=2000, silent=True,\n fix_length_after_optimizing=True,\n requested_length_tolerance=0)\n\n\n\nUnitary dataset\n\nsource\n\n\ngen_compilation_rndGates_dataset\n\n gen_compilation_rndGates_dataset (samples, num_of_qubits, min_gates,\n max_gates, gate_pool,\n min_sub_gate_pool_cnt=1, silent=False)\n\nSamples rnd circuit with a rnd subset of gates and return qc with gate label and unitary\n\ngate_pool=[ql.HGate, ql.CXGate, ql.ZGate, ql.XGate, ql.CCXGate]\n\nenc_t, y, U = gen_compilation_rndGates_dataset(samples=1, num_of_qubits=3, min_gates=3, max_gates=4, gate_pool=gate_pool)\n\nnp.set_printoptions(edgeitems=30, linewidth=100000, formatter=dict(float=lambda x: \"%.3g\" % x))\n\nprint(f\"\\ny Label >>> {y[0]} <<<\")\nprint(f\"\\n{enc_t[0]}\")\nprint(f\"\\n{U[0]}\")\nprint(\"\\nDecoded:\")\nqc = decode_circuit(enc_t[0], gate_pool=gate_pool)\ndisplay(qc.draw(\"mpl\"))\n\n\n\n\ngenerated unique circuits: 1\n\ny Label >>> Compile using: ['x'] <<<\n\ntensor([[0, 0, 0, 0],\n [4, 0, 0, 0],\n [0, 4, 4, 4]], dtype=torch.int32)\n\n[[0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j]\n [0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j]\n [0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j]\n [0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j]\n [0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n [0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n [1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n [0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]]\n\nDecoded:\n\n\n\n\n\n\n\nGraph states dataset\n\n#place all h on all bist then only cz" + }, + { + "objectID": "examples/editing_and_masking.html", + "href": "examples/editing_and_masking.html", + "title": "Editing and masking of circuits", + "section": "", + "text": "In this notebook we show editing and masking of circuits.\nfrom genQC.imports import *\nfrom genQC.pipeline.diffusion_pipeline import DiffusionPipeline\nfrom genQC.inference.infer_srv import convert_tensors_to_srvs, schmidt_rank_vector\nimport genQC.platform.qcircuit_dataset_construction as data_const\nimport genQC.util as util\nfrom qiskit.quantum_info import DensityMatrix\ndevice = util.infer_torch_device() # use cuda if we can\nutil.MemoryCleaner.purge_mem() # clean existing memory alloc\n\n[INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul." + }, + { + "objectID": "examples/editing_and_masking.html#setup-and-load", + "href": "examples/editing_and_masking.html#setup-and-load", + "title": "Editing and masking of circuits", + "section": "Setup and load", + "text": "Setup and load\nLoad the pre-trained model\n\nmodel_path = \"../../saves/qc_unet_config_SRV_3to8_qubit/\"\npipeline = DiffusionPipeline.from_config_file(model_path, device)\n\n[INFO]: `genQC.models.unet_qc.QC_Cond_UNet` instantiated from given config on cuda.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cuda.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.\n\n\nSet 20 sample steps and use rescaled guidance-formula.\n\npipeline.guidance_sample_mode = \"rescaled\"\npipeline.scheduler.set_timesteps(40) \ng = 7.5" + }, + { + "objectID": "examples/editing_and_masking.html#editing", + "href": "examples/editing_and_masking.html#editing", + "title": "Editing and masking of circuits", + "section": "1. Editing", + "text": "1. Editing\nSample a random circuit with desired parameters as the circuit we want to edit:\n\nsrv_init = [1, 1, 1, 2, 2] # psi_0 state\ndesired_length = 5 # 5 gates initially placed\n\n\ninit_qc = data_const.get_specific_rnd_srv_circuit(srv_init, desired_length, pipeline.gate_pool)\nprint(\"SRV is\", schmidt_rank_vector(DensityMatrix(init_qc)))\ninit_qc.draw(\"mpl\")\n\nSRV is [1, 1, 1, 2, 2]\n\n\n\n\n\nThe editing taks is analogous to image editing, we do img2img with conditioning and copy non-edit areas at every time step. Also called latent_filling.\n\ndef create_edited_circuits(pipeline, samples, qc, prompt, new_length, num_of_qubits, system_size, t_start_index):\n #-------------------------------------------\n # set mask - appending mask!\n old_length = len(qc.data)\n\n qubit_mask = torch.ones((system_size, new_length), device=device)\n qubit_mask[:, :old_length] = 0\n \n #-------------------------------------------\n # prepare and encode\n \n gate_classes = data_const.gate_pool_to_gate_classes(pipeline.gate_pool)\n \n emb_org_image = data_const.encode_circuit(qc, system_size, gate_classes, new_length).unsqueeze(0).to(device)\n emb_org_image = pipeline.model.embedd_clrs(emb_org_image)\n\n emb_org_images = emb_org_image.repeat(samples, *[1]*(emb_org_image.dim()-1))\n \n #-------------------------------------------\n # prep condition\n \n c = pipeline.text_encoder.tokenize_and_push_to_device(str(prompt))\n c = c.repeat(samples, *[1]*(c.dim()-1))\n\n #-------------------------------------------\n # latent fill\n out_tensor = pipeline.latent_filling(emb_org_images, qubit_mask, c=c, g=g, no_bar=False, t_start_index=t_start_index)\n out_tensor = pipeline.model.invert_clr(out_tensor)\n out_tensor = out_tensor[:, :num_of_qubits]\n out_tensor = torch.unique(out_tensor, dim=0) # we only are interested in unique circuits\n \n qc_list, error_cnt, srv_list = convert_tensors_to_srvs(out_tensor, pipeline.gate_pool, place_barrier=True)\n\n return qc_list, srv_list\n\n\nsamples = 16 # how many circuits we sample\nnew_length = 16 # how many gates the model can place \n\nsrv_target = [2, 2, 2, 2, 2] # desired target SRV\n\nnum_of_qubits = len(srv_target)\nt_start_index = t_start_index = int(0.05 * pipeline.scheduler.timesteps.shape[0]) # time step index at which we start denoising\n\nprompt = f\"Generate SRV: {srv_target}\" # model was trained with this phrase\nprompt\n\n'Generate SRV: [2, 2, 2, 2, 2]'\n\n\n\n# returns only distinct circuits\nedited_qc, srv_list = create_edited_circuits(pipeline, samples, init_qc, prompt, new_length, num_of_qubits, num_of_qubits, t_start_index)\n\n\n\n\nPick only correct ones:\n\ncorrect_edited_qc = []\nfor qc,srv in zip(edited_qc, srv_list):\n if srv==srv_target: correct_edited_qc.append(qc)\nprint(f\"We found {len(correct_edited_qc)} correct distinct solutions.\")\n\nWe found 12 correct distinct solutions.\n\n\nCompare: initial circuit\n\ninit_qc.draw(\"mpl\")\n\n\n\n\nv.s. edited:\n\nprint(\"SRV is\", schmidt_rank_vector(DensityMatrix(correct_edited_qc[0])))\ncorrect_edited_qc[0].draw(\"mpl\", plot_barriers=False)\n\nSRV is [2, 2, 2, 2, 2]\n\n\n\n\n\n\nfig, axs = plt.subplots(2,4, figsize=(18,5), constrained_layout=True)\nfor qc,ax in zip(correct_edited_qc, axs.flatten()): \n qc.draw(\"mpl\", plot_barriers=False, ax=ax)\nplt.show()" + }, + { + "objectID": "examples/editing_and_masking.html#masking", + "href": "examples/editing_and_masking.html#masking", + "title": "Editing and masking of circuits", + "section": "2. Masking", + "text": "2. Masking\nFirst we set a desired mask, i.e. a specific layout of a quantum processor.\n\nmax_gates = 16\nnum_of_qubits = 5\n\nd = 3\n#------\ndef con_set(q1, q2, x, d): \n qubit_mask[q1, x:x+d] = 1\n qubit_mask[q2, x:x+d] = 1\n return x+d\n\n#------\nx = 0\n\nqubit_mask = torch.zeros((num_of_qubits, max_gates), device=device) # mask: ones are getting filled, zeros are fixed !\nx = con_set(0, 1, x, d)\nx = con_set(1, 2, x, d)\nx = con_set(1, 3, x, d)\nx = con_set(3, 4, x, d)\n\n\ndef plot_mask():\n fig = plt.figure(figsize=(3.7,2), constrained_layout=True)\n plt.imshow(qubit_mask.cpu(), cmap=\"Greens\")\n plt.xticks(range(0, qubit_mask.shape[1], 2),fontsize=9)\n plt.yticks(range(num_of_qubits), fontsize=9)\n plt.xlabel(\"Gate sequence / time\", fontsize=12)\n plt.ylabel(\"Qubits\", fontsize=12)\n plt.show()\nplot_mask()\n\n\n\n\n\ndef get_emb_org_images(pipeline, samples, system_size, max_gates, target_num_gates, target_num_bits, qubit_mask):\n org_image = torch.zeros((1, system_size, max_gates), device=device, dtype=torch.int32) \n \n padd_tok = len(pipeline.gate_pool) + 1\n padd_pos = (torch.ceil(torch.tensor(target_num_gates) / 4) * 4).to(torch.int32)\n org_image[:, :, padd_pos:] = padd_tok\n org_image[:, target_num_bits:, ] = padd_tok\n\n emb_org_image = pipeline.model.embedd_clrs(org_image)\n emb_org_images = emb_org_image.repeat(samples, *[1]*(emb_org_image.dim()-1))\n \n return emb_org_images\n\n\ndef generate_pattern_SRV(pipeline, prompt, samples, system_size, num_of_qubits, max_gates, qubit_mask, t_start_index=0, target_num_gates=None, target_num_bits=None): \n\n if not exists(target_num_gates):\n target_num_gates = max_gates\n\n if not exists(target_num_bits):\n target_num_bits = num_of_qubits\n \n emb_org_images = get_emb_org_images(pipeline, samples, system_size, max_gates, target_num_gates, target_num_bits, qubit_mask)\n\n #----------------\n # prep condition\n\n c = pipeline.text_encoder.tokenize_and_push_to_device(str(prompt))\n c = c.repeat(samples, *[1]*(c.dim()-1))\n\n #----------------\n # latent fill\n \n out_tensor = pipeline.latent_filling(emb_org_images, qubit_mask, c=c, g=g, no_bar=False, t_start_index=t_start_index)\n out_tensor = pipeline.model.invert_clr(out_tensor)\n out_tensor = out_tensor[:, :num_of_qubits]\n out_tensor = torch.unique(out_tensor, dim=0)\n \n qc_list, error_cnt, srv_list = convert_tensors_to_srvs(out_tensor, pipeline.gate_pool, place_barrier=True)\n\n return qc_list, srv_list\n\nNow generate circuits corresponding to the mask.\n\nsamples = 512 # how many circuits we sample\nsrv_target = [2, 1, 2, 2, 2] # desired target SRV\n\nassert len(srv_target)==qubit_mask.shape[0]\n\nprompt = f\"Generate SRV: {srv_target}\" # model was trained with this phrase\nprompt\n\n'Generate SRV: [2, 1, 2, 2, 2]'\n\n\n\nqc_list, srv_list = generate_pattern_SRV(pipeline, prompt, samples, num_of_qubits, num_of_qubits, max_gates, qubit_mask, t_start_index=1)\n\n\n\n\nPick only correct ones:\n\ncorrect_qc = []\nfor qc,srv in zip(qc_list, srv_list):\n if srv==srv_target: correct_qc.append(qc)\nprint(f\"We found {len(correct_qc)} correct distinct solutions.\")\n\nWe found 9 correct distinct solutions.\n\n\nLet’s plot them. Mask:\n\nplot_mask()\n\n\n\n\nv.s. solution:\n\nprint(\"SRV is\", schmidt_rank_vector(DensityMatrix(correct_qc[0])))\ncorrect_qc[0].draw(\"mpl\", plot_barriers=False)\n\nSRV is [2, 1, 2, 2, 2]\n\n\n\n\n\n\nfig, axs = plt.subplots(1, min(len(correct_qc), 4), figsize=(18,5), constrained_layout=True)\nfor qc,ax in zip(correct_qc, axs.flatten()): \n qc.draw(\"mpl\", plot_barriers=False, ax=ax)\nplt.show()" + }, + { + "objectID": "examples/unitary_compilation.html", + "href": "examples/unitary_compilation.html", + "title": "Compile unitaries", + "section": "", + "text": "In this notebook we want use the unitary compilation model.\nfrom genQC.imports import *\nfrom genQC.pipeline.diffusion_pipeline import DiffusionPipeline\nfrom qiskit import QuantumCircuit\nfrom genQC.inference.infer_compilation import generate_comp_tensors, get_gate_and_U_acc\nfrom genQC.printing import display_colums\nimport genQC.platform.qcircuit_dataset_construction as data_const\nimport qiskit.quantum_info as qi\nimport genQC.util as util\nimport ast\ndevice = util.infer_torch_device() # use cuda if we can\nutil.MemoryCleaner.purge_mem() # clean existing memory alloc\n\n[INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul.\ndef str_cond_to_gate_indices(y): # helper function, used to check if only allowed gates were used by the model!\n assert y[:15] == \"Compile using: \"\n c = ast.literal_eval(y[15:]) \n gate_classes = data_const.gate_pool_to_gate_classes(pipeline.gate_pool)\n gate_clrs = [0] + [gate_classes[ic] for ic in c] # 0 is empty, always allowed!\n return gate_clrs" + }, + { + "objectID": "examples/unitary_compilation.html#setup-and-load", + "href": "examples/unitary_compilation.html#setup-and-load", + "title": "Compile unitaries", + "section": "Setup and load", + "text": "Setup and load\nLoad the pre-trained model\n\nmodel_path = \"../../saves/qc_unet_config_Compilation_3_qubit/\"\npipeline = DiffusionPipeline.from_config_file(model_path, device)\n\n[INFO]: `genQC.models.unet_qc.QC_Compilation_UNet` instantiated from given config on cuda.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cuda.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.\n\n\nSet 20 sample steps and use rescaled guidance-formula.\n\npipeline.guidance_sample_mode = \"rescaled\"\npipeline.scheduler.set_timesteps(20) \ng = 7.5\n\nThe model was trained with a gate pool of:\n\npipeline.gate_pool\n\n[qiskit.circuit.library.standard_gates.h.HGate,\n qiskit.circuit.library.standard_gates.x.CXGate,\n qiskit.circuit.library.standard_gates.z.ZGate,\n qiskit.circuit.library.standard_gates.x.XGate,\n qiskit.circuit.library.standard_gates.x.CCXGate,\n qiskit.circuit.library.standard_gates.swap.SwapGate]" + }, + { + "objectID": "examples/unitary_compilation.html#compile-a-unitary", + "href": "examples/unitary_compilation.html#compile-a-unitary", + "title": "Compile unitaries", + "section": "Compile a unitary", + "text": "Compile a unitary\nCompile a given unitary \\(U\\). Note, there has to be a solution with the pipeline.gate_pool in order to find the exact solution.\n\ndef compile_and_plot(U, prompt):\n U_r, U_i = torch.Tensor(np.real(U)), torch.Tensor(np.imag(U))\n U_tensor = torch.stack([U_r, U_i], dim=0)\n \n out_tensor = generate_comp_tensors(pipeline, prompt, U_tensor, samples, num_of_qubits, num_of_qubits, max_gates, g, unique=True)\n _, _, _, _, _, comb_corr_qc, _, _, _ = get_gate_and_U_acc(out_tensor, str_cond_to_gate_indices(prompt), U_tensor, pipeline.gate_pool, num_of_qubits, max_gates)\n comb_corr_qc = sorted(comb_corr_qc, key=lambda x: len(x.data)) #sort to get the shortest solutions\n\n fig, axs = plt.subplots(1,4, figsize=(18,5), constrained_layout=True)\n axs[0].set_title(f\"{prompt}\")\n for qc,ax in zip(comb_corr_qc, axs.flatten()): \n qc.draw(\"mpl\", plot_barriers=False, ax=ax)\n plt.show()\n\n\nsamples = 512\nnum_of_qubits = 3\nmax_gates = 12\n\n\nprompt = \"Compile using: ['h', 'cx', 'z', 'x', 'ccx', 'swap']\" # model was trained with phrases like this, allow full gate set\nprompt\n\n\"Compile using: ['h', 'cx', 'z', 'x', 'ccx', 'swap']\"\n\n\n\nExercise 1\nInspired from (quantumcomputing.stackexchange.com/questions/13821/generate-a-3-qubit-swap-unitary-in-terms-of-elementary-gates/13826). Note, this unitary WAS in the training set.\n\nU = np.matrix([[1,0,0,0,0,0,0,0],\n [0,1,0,0,0,0,0,0],\n [0,0,1,0,0,0,0,0],\n [0,0,0,0,1,0,0,0],\n [0,0,0,1,0,0,0,0],\n [0,0,0,0,0,1,0,0],\n [0,0,0,0,0,0,1,0],\n [0,0,0,0,0,0,0,1]], dtype=np.complex128) \n\nassert np.allclose(U.H@U, np.identity(2**num_of_qubits)) and np.allclose(U@U.H, np.identity(2**num_of_qubits)) #check if unitary\n\nPlot correct (exact) compiled circuits:\n\ncompile_and_plot(U, prompt)\n\n\n\n\n\n\nExercise 2\nInspired from (quantumcomputing.stackexchange.com/questions/12439/procedures-and-intuition-for-designing-simple-quantum-circuits/12440). Note, this unitary WAS in the training set.\n\nU = np.matrix([[1,0,0,0,0,0,0,0],\n [0,0,0,0,0,0,0,1],\n [0,1,0,0,0,0,0,0],\n [0,0,1,0,0,0,0,0],\n [0,0,0,1,0,0,0,0],\n [0,0,0,0,1,0,0,0],\n [0,0,0,0,0,1,0,0],\n [0,0,0,0,0,0,1,0]], dtype=np.complex128) \n\nassert np.allclose(U.H@U, np.identity(2**num_of_qubits)) and np.allclose(U@U.H, np.identity(2**num_of_qubits)) #check if unitary\n\nPlot correct (exact) compiled circuits:\n\ncompile_and_plot(U, prompt)\n\n\n\n\n\n\nExercise 3\nA randomly generated unitary (from a random circuit). This unitary WAS NOT in the training set, it is new to the model!\n\nU = np.matrix([[ 0.70710678, 0. , 0. , 0. , 0.70710678, 0. , 0. , 0. ],\n [ 0. , -0.70710678, 0. , 0. , 0. , -0.70710678, 0. , 0. ],\n [-0.70710678, 0. , 0. , 0. , 0.70710678, 0. , 0. , 0. ],\n [ 0. , 0.70710678, 0. , 0. , 0. , -0.70710678, 0. , 0. ],\n [ 0. , 0. , 0.70710678, 0. , 0. , 0. , 0. , 0.70710678],\n [ 0. , 0. , 0. , 0.70710678, 0. , 0. , 0.70710678, 0. ],\n [ 0. , 0. , -0.70710678, 0. , 0. , 0. , 0. , 0.70710678],\n [ 0. , 0. , 0. ,-0.70710678, 0. , 0. , 0.70710678, 0. ]], dtype=np.complex128)\n\nassert np.allclose(U.H@U, np.identity(2**num_of_qubits)) and np.allclose(U@U.H, np.identity(2**num_of_qubits)) #check if unitary\n\nPlot correct (exact) compiled circuits:\n\ncompile_and_plot(U, prompt)" + }, + { + "objectID": "examples/unitary_compilation.html#transpile-and-discover", + "href": "examples/unitary_compilation.html#transpile-and-discover", + "title": "Compile unitaries", + "section": "Transpile and discover", + "text": "Transpile and discover\nSet an initial circuit we want to transpile, optimize or use for discovering sub-arrangements:\n\nqc = QuantumCircuit(3)\nqc.h(2)\nqc.cx(0,1)\nqc.cx(2,1)\nqc.h(1)\nqc.x(1)\nqc.h(1)\nqc.x(2)\n\nU = qi.Operator(qc).to_matrix() # the unitary of the circuit\n\n#-----------------------------------------\n\nfig = qc.draw(\"mpl\")\nfig\n\n\n\n\nWe set different gate pool targets to see what the model gives us:\n\ncs_1 = f\"Compile using: {[x().name for x in pipeline.gate_pool]}\", \"all\"\n\ncs_2 = \"Compile using: ['h', 'cx', 'z', 'ccx']\" , \"no x, no swap\" \ncs_3 = \"Compile using: ['h', 'cx', 'x', 'ccx']\" , \"no z, no swap\" \ncs_4 = \"Compile using: ['h', 'x', 'ccx']\" , \"no cx, no z, no swap\" \ncs_5 = \"Compile using: ['h', 'z', 'x', 'ccx']\" , \"no cx, no swap\" \n\ncs = [cs_1, cs_2, cs_3, cs_4, cs_5]\ncs\n\n[(\"Compile using: ['h', 'cx', 'z', 'x', 'ccx', 'swap']\", 'all'),\n (\"Compile using: ['h', 'cx', 'z', 'ccx']\", 'no x, no swap'),\n (\"Compile using: ['h', 'cx', 'x', 'ccx']\", 'no z, no swap'),\n (\"Compile using: ['h', 'x', 'ccx']\", 'no cx, no z, no swap'),\n (\"Compile using: ['h', 'z', 'x', 'ccx']\", 'no cx, no swap')]\n\n\n\nsamples = 512\nnum_of_qubits = 3\nmax_gates = 12\n\nCompile with the different gate-sets and plot correct (exact) compiled circuits. Note, some of the circuits might look the same but the gate time-sequences are distinct. Qiskit reorders “parallel” gates to make smaller plots.\n\nfor c, note in cs: compile_and_plot(U, c)" + }, + { + "objectID": "pipeline/diffusion_pipeline.html", + "href": "pipeline/diffusion_pipeline.html", + "title": "Diffusion Pipeline", + "section": "", + "text": "source\n\nDiffusionPipeline\n\n DiffusionPipeline (scheduler:genQC.scheduler.scheduler.Scheduler,\n model:torch.nn.modules.module.Module,\n text_encoder:torch.nn.modules.module.Module,\n device:torch.device, enable_guidance_train=True,\n guidance_train_p=0.1, cached_text_enc=True)\n\nA Pipeline for diffusion models. Implements train and inference functions. Diffusion parameters are defined inside a Scheduler object.\n\n\n\n\n Back to top" + }, + { + "objectID": "pipeline/diffusion_pipeline_special.html", + "href": "pipeline/diffusion_pipeline_special.html", + "title": "Diffusion Pipeline Special", + "section": "", + "text": "source\n\nDiffusionPipeline_attnPadded\n\n DiffusionPipeline_attnPadded\n (scheduler:genQC.scheduler.scheduler.Schedu\n ler, model:torch.nn.modules.module.Module, \n text_encoder:torch.nn.modules.module.Module\n , device:torch.device,\n enable_guidance_train=True,\n guidance_train_p=0.1, cached_text_enc=True)\n\nA special DiffusionPipeline with attention masking.\n\nsource\n\n\nDiffusionPipeline_Compilation\n\n DiffusionPipeline_Compilation\n (scheduler:genQC.scheduler.scheduler.Sched\n uler,\n model:torch.nn.modules.module.Module, text\n _encoder:torch.nn.modules.module.Module,\n device:torch.device,\n enable_guidance_train=True,\n guidance_train_p=0.1,\n cached_text_enc=True)\n\nA special DiffusionPipeline that accounts for unitary conditions, i.e. compilation.\n\n\n\n\n Back to top" + }, + { + "objectID": "models/unitary_encoder.html", + "href": "models/unitary_encoder.html", + "title": "Encoder for unitaries", + "section": "", + "text": "source\n\n\n\n Unitary_encoder_config (cond_emb_size:int, model_features:list[int],\n num_heads:int, transformer_depths:list[int],\n dropout:float)\n\n\nsource\n\n\n\n\n Unitary_encoder (cond_emb_size, model_features=None, num_heads=8,\n transformer_depths=[4, 4], dropout=0.1)\n\nEncoder for unitary conditions." + }, + { + "objectID": "models/unitary_encoder.html#model-definition", + "href": "models/unitary_encoder.html#model-definition", + "title": "Encoder for unitaries", + "section": "", + "text": "source\n\n\n\n Unitary_encoder_config (cond_emb_size:int, model_features:list[int],\n num_heads:int, transformer_depths:list[int],\n dropout:float)\n\n\nsource\n\n\n\n\n Unitary_encoder (cond_emb_size, model_features=None, num_heads=8,\n transformer_depths=[4, 4], dropout=0.1)\n\nEncoder for unitary conditions." + }, + { + "objectID": "models/transformers.html", + "href": "models/transformers.html", + "title": "Transformers", + "section": "", + "text": "source\n\n\n\n BasisSelfAttnBlock (ch, num_heads, dropout=0)\n\nA self attention block, i.e. a transformer encoder.\n\nsource\n\n\n\n\n BasisCrossAttnBlock (ch, cond_emb_size, num_heads, dropout=0.0)\n\nA cross attention block, i.e. a transformer decoder." + }, + { + "objectID": "models/transformers.html#attention-blocks", + "href": "models/transformers.html#attention-blocks", + "title": "Transformers", + "section": "", + "text": "source\n\n\n\n BasisSelfAttnBlock (ch, num_heads, dropout=0)\n\nA self attention block, i.e. a transformer encoder.\n\nsource\n\n\n\n\n BasisCrossAttnBlock (ch, cond_emb_size, num_heads, dropout=0.0)\n\nA cross attention block, i.e. a transformer decoder." + }, + { + "objectID": "models/transformers.html#spatial-residual-transformers", + "href": "models/transformers.html#spatial-residual-transformers", + "title": "Transformers", + "section": "Spatial residual transformers", + "text": "Spatial residual transformers\n\nsource\n\nSpatialTransformerSelfAttn\n\n SpatialTransformerSelfAttn (ch, num_heads, depth, dropout=0.0)\n\nA spatial residual transformer, only uses self-attention.\n\nsource\n\n\nSpatialTransformer\n\n SpatialTransformer (ch, cond_emb_size, num_heads, depth, dropout=0.0)\n\nA spatial residual transformer, uses self- and cross-attention on conditional input." + }, + { + "objectID": "models/layers.html", + "href": "models/layers.html", + "title": "Layers", + "section": "", + "text": "Common model layers." + }, + { + "objectID": "models/layers.html#basic-scaling-blocks", + "href": "models/layers.html#basic-scaling-blocks", + "title": "Layers", + "section": "Basic scaling blocks", + "text": "Basic scaling blocks\n\nsource\n\nDownBlock2D\n\n DownBlock2D (in_ch, out_ch, kernel_size=2, stride=2, padding=0,\n use_conv=True)\n\nA 2d down scale block.\n\nsource\n\n\nUpBlock2D\n\n UpBlock2D (in_ch, out_ch, kernel_size=2, stride=2, padding=0,\n use_conv=True)\n\nA 2d up scale block." + }, + { + "objectID": "models/layers.html#resnet-blocks", + "href": "models/layers.html#resnet-blocks", + "title": "Layers", + "section": "ResNet blocks", + "text": "ResNet blocks\n\nsource\n\nResBlock2D\n\n ResBlock2D (in_ch, out_ch, kernel_size, skip=True)\n\nA 2d residual block.\n\nsource\n\n\nResBlock2D_Conditional\n\n ResBlock2D_Conditional (in_ch, out_ch, t_emb_size, kernel_size,\n skip=True)\n\nA 2d residual block with input of a time-step \\(t\\) embedding." + }, + { + "objectID": "models/layers.html#feedforward-layer", + "href": "models/layers.html#feedforward-layer", + "title": "Layers", + "section": "FeedForward layer", + "text": "FeedForward layer\n\nsource\n\nFeedForward\n\n FeedForward (in_ch, out_ch, inner_mult=1)\n\nA small dense feed-forward network as used in transformers." + }, + { + "objectID": "models/layers.html#position-embedding-layers", + "href": "models/layers.html#position-embedding-layers", + "title": "Layers", + "section": "Position embedding layers", + "text": "Position embedding layers\nCreate sinusoidal position embeddings, same as those from the transformer:\n\n\nsource\n\nPositionalEncoding\n\n PositionalEncoding (d_model:int, dropout:float=0.0, max_len:int=5000)\n\nAn absolute pos encoding layer.\n\nsource\n\n\nTimeEmbedding\n\n TimeEmbedding (d_model:int, dropout:float=0.0, max_len:int=5000)\n\nA time embedding layer\n\nsource\n\n\nPositionalEncodingTransposed\n\n PositionalEncodingTransposed (d_model:int, dropout:float=0.0,\n max_len:int=5000)\n\nAn absolute pos encoding layer.\n\nsource\n\n\nPositionalEncoding2D\n\n PositionalEncoding2D (d_model:int, dropout:float=0.0, max_len:int=5000)\n\nA 2D absolute pos encoding layer.\n\na = torch.zeros((1, 4, 3, 4))\nl = PositionalEncoding2D(d_model=4) \n\nl(a)[0].shape\n\ntorch.Size([4, 3, 4])" + }, + { + "objectID": "config_loader.html", + "href": "config_loader.html", + "title": "Config loader", + "section": "", + "text": "Code using omegaconf to handle IO." + }, + { + "objectID": "config_loader.html#io", + "href": "config_loader.html#io", + "title": "Config loader", + "section": "IO", + "text": "IO\n\nsource\n\nclass_to_str\n\n class_to_str (cls)\n\n\nsource\n\n\nload_config\n\n load_config (file_path)\n\n\nsource\n\n\nconfig_to_dict\n\n config_to_dict (config)\n\n\nsource\n\n\nsave_dataclass_yaml\n\n save_dataclass_yaml (data_obj, file_path)\n\n\nsource\n\n\nsave_dict_yaml\n\n save_dict_yaml (dict_obj, file_path)\n\nTest\n\n@dataclass\nclass MyConfig: \n target:str = class_to_str(OmegaConf)\n clr_dim: int = 80\n features: list[int]=None\n \nc = MyConfig()\nc.features = [1,2,3]\n\nOmegaConf.structured(c)\n\n{'target': 'omegaconf.omegaconf.OmegaConf', 'clr_dim': 80, 'features': [1, 2, 3]}" + }, + { + "objectID": "config_loader.html#object-config-load", + "href": "config_loader.html#object-config-load", + "title": "Config loader", + "section": "Object config load", + "text": "Object config load\nMostly taken from: https://github.com/Stability-AI/stablediffusion\n\nsource\n\nget_obj_from_str\n\n get_obj_from_str (string, reload=False)\n\n\nsource\n\n\ninstantiate_from_config\n\n instantiate_from_config (config)\n\n\nsource\n\n\nload_model_from_config\n\n load_model_from_config (config, ckpt, device)" + }, + { + "objectID": "scheduler/scheduler_ddpm.html", + "href": "scheduler/scheduler_ddpm.html", + "title": "DDPMScheduler", + "section": "", + "text": "Denoising diffusion probabilistic models (DDPM): reverse beta is fixed and diagonal.\n\nsource\n\nDDPMScheduler\n\n DDPMScheduler (device:Union[str,torch.device],\n num_train_timesteps:int=1000, beta_start:float=0.0001,\n beta_end:float=0.02, beta_schedule:str='linear',\n input_perturbation=0.1)\n\nA Scheduler implementing (DDPM)\n\nsource\n\n\nDDPMSchedulerOutput\n\n DDPMSchedulerOutput (prev_sample:torch.FloatTensor,\n pred_original_sample:Optional[torch.FloatTensor]=Non\n e)\n\n\n\n\n\n Back to top" + }, + { + "objectID": "dataset/dataset_helper.html", + "href": "dataset/dataset_helper.html", + "title": "Dataset helper functions", + "section": "", + "text": "Some comonly used functions for datasets." + }, + { + "objectID": "dataset/dataset_helper.html#checking", + "href": "dataset/dataset_helper.html#checking", + "title": "Dataset helper functions", + "section": "Checking", + "text": "Checking\n\nsource\n\ncheck_duplicate_in_dataset\n\n check_duplicate_in_dataset (x, dataset)\n\nCheck if ‘x’ is in ‘dataset’\n\nsource\n\n\ncheck_duplicates_in_dataset\n\n check_duplicates_in_dataset (xs, dataset, return_ind=False, invert=False)\n\nChecks if xs is are dataset. Boolean invert changes if we count duplicates (False) or ones that are not in dataset (True). Uses torch.vmap which copies dataset for every element in xs.\nCheck if this works:\n\nxs = torch.tensor(\n [[0.7, 1, 0.5], \n [0.3, 1, 0.5],\n [ 0, 1, 0.5]])\n\nd = torch.tensor([\n [0.11, 1, 0.5],\n [0.70, 1, 0.5], #here a dup\n [0.71, 1, 0.5],\n [0.3 , 1, 0.5]])\n\ncheck_duplicates_in_dataset(xs, d, return_ind=True)\n\n(2, tensor([0, 1]))" + }, + { + "objectID": "dataset/dataset_helper.html#manipulating", + "href": "dataset/dataset_helper.html#manipulating", + "title": "Dataset helper functions", + "section": "Manipulating", + "text": "Manipulating\n\nsource\n\nshuffle_tensor_dataset\n\n shuffle_tensor_dataset (x, y=None, *z)\n\nAssumes numpy or tensor objects with same length.\n\nsource\n\n\nget_unique_elements_indices\n\n get_unique_elements_indices (tensor)\n\nReturns indices of unique_elements in tensor.\n\nsource\n\n\nuniquify_tensor_dataset\n\n uniquify_tensor_dataset (x, y=None, *z)\n\nx has to be tensor, assumes numpy or tensor obj for y and z\n\nsource\n\n\nbalance_tensor_dataset\n\n balance_tensor_dataset (x, y, *z, samples:int=None,\n make_unique:bool=True, y_uniques=None,\n shuffle_lables:bool=True, add_balance_fn:<built-\n infunctioncallable>=None)\n\nAssumes x is tensor and y is tensor or numpy." + }, + { + "objectID": "dataset/config_dataset.html", + "href": "dataset/config_dataset.html", + "title": "Config dataset", + "section": "", + "text": "source\n\nConfig_Dataset_config\n\n Config_Dataset_config (store_dict:dict)\n\nConfig dataclass used for storage.\n\nsource\n\n\nConfig_Dataset\n\n Config_Dataset (device:torch.device=device(type='cpu'), **parameters)\n\nBase class for datasets, manages loading and saving.\n\n\n\n\n Back to top" + }, + { + "objectID": "dataset/cached_qc_dataset.html", + "href": "dataset/cached_qc_dataset.html", + "title": "Cached quantum circuit dataset", + "section": "", + "text": "Quantum circuit dataset that caches the y prompts using the CLIP encoder. This speeds up training significantly!\n\nsource\n\nCached_OpenClip_Dataset\n\n Cached_OpenClip_Dataset (device:torch.device=device(type='cpu'),\n **parameters)\n\nAdds .caching to the Quantum circuit dataset class.\n\n\n\n\n Back to top" + }, + { + "objectID": "inference/infer_compilation.html", + "href": "inference/infer_compilation.html", + "title": "Inference compilation functions", + "section": "", + "text": "source\n\n\n\n split_U_to_tensor (U:numpy.ndarray)\n\n\nsource\n\n\n\n\n get_new_unitary_indices (Us, dataset, silent=False)\n\n\nsource\n\n\n\n\n get_new_unitary_indices_batch (Us, dataset, auto_batch_size=32,\n silent=False, n_jobs=1)" + }, + { + "objectID": "inference/infer_compilation.html#misc", + "href": "inference/infer_compilation.html#misc", + "title": "Inference compilation functions", + "section": "", + "text": "source\n\n\n\n split_U_to_tensor (U:numpy.ndarray)\n\n\nsource\n\n\n\n\n get_new_unitary_indices (Us, dataset, silent=False)\n\n\nsource\n\n\n\n\n get_new_unitary_indices_batch (Us, dataset, auto_batch_size=32,\n silent=False, n_jobs=1)" + }, + { + "objectID": "inference/infer_compilation.html#generation", + "href": "inference/infer_compilation.html#generation", + "title": "Inference compilation functions", + "section": "Generation", + "text": "Generation\n\nsource\n\ngenerate_comp_tensors\n\n generate_comp_tensors (pipeline, prompt, U, samples, system_size,\n num_of_qubits, max_gates, g, no_bar=True,\n unique=False, auto_batch_size=512)" + }, + { + "objectID": "inference/infer_compilation.html#accuracy", + "href": "inference/infer_compilation.html#accuracy", + "title": "Inference compilation functions", + "section": "Accuracy", + "text": "Accuracy\n\nsource\n\ncheck_correct_gates\n\n check_correct_gates (qc, num_of_qubits, gate_pool, max_gates,\n allowed_gate_clrs)\n\n\nsource\n\n\ncheck_correct_unitary_exact\n\n check_correct_unitary_exact (qc, U)\n\n\nsource\n\n\ncheck_correct_unitary_distance\n\n check_correct_unitary_distance (qc, target_U, norms)\n\n\nsource\n\n\nget_gate_and_U_acc\n\n get_gate_and_U_acc (out_tensor, allowed_gate_clrs, U, gate_pool,\n num_of_qubits, max_gates, norms=[], no_bar=True)" + }, + { + "objectID": "inference/infer_compilation.html#tests", + "href": "inference/infer_compilation.html#tests", + "title": "Inference compilation functions", + "section": "Tests", + "text": "Tests\n\nsource\n\ntest_comp_acc\n\n test_comp_acc (pipeline, samples, system_size, gate_pool, num_of_qubits,\n max_gates, g, str_cond_to_gate_indices:<built-\n infunctioncallable>, Us, ys, train_dataset=None, norms=[])\n\n\nsource\n\n\ntest_comp_acc_on_testset\n\n test_comp_acc_on_testset (pipeline, samples, num_of_U, system_size,\n gate_pool, num_of_qubits, max_gates, g,\n str_cond_to_gate_indices:<built-\n infunctioncallable>, prompt_mod:<built-\n infunctioncallable>, test_dataset,\n train_dataset=None, norms=[], fix_y=None)\n\nreturns: acc_s, gate_acc_s, u_acc_s, uniques_cnt_s, error_cnt_s, num_found_circuits_s, task_qc_len_s\n\nsource\n\n\ntest_comp_acc_on_rnd_samples\n\n test_comp_acc_on_rnd_samples (pipeline, samples, num_of_U, system_size,\n gate_pool, num_of_qubits, max_gates, g,\n str_cond_to_gate_indices:<built-\n infunctioncallable>, prompt_mod:<built-\n infunctioncallable>, rnd_min_gates,\n rnd_max_gates, train_dataset=None,\n norms=[], fix_y=None)\n\nreturns: acc_s, gate_acc_s, u_acc_s, uniques_cnt_s, error_cnt_s, num_found_circuits_s, task_qc_len_s\n\n\n\n\n\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\npipeline\n\n\n\n\n\nsamples\n\n\n\n\n\nnum_of_U\n\n\n\n\n\nsystem_size\n\n\n\n\n\ngate_pool\n\n\n\n\n\nnum_of_qubits\n\n\n\n\n\nmax_gates\n\n\n\n\n\ng\n\n\n\n\n\nstr_cond_to_gate_indices\ncallable\n\n\n\n\nprompt_mod\ncallable\n\ntakes a single prompt and returns it modified\n\n\nrnd_min_gates\n\n\n\n\n\nrnd_max_gates\n\n\n\n\n\ntrain_dataset\nNoneType\nNone\n\n\n\nnorms\nlist\n[]\n\n\n\nfix_y\nNoneType\nNone" + }, + { + "objectID": "inference/infer_compilation.html#plot", + "href": "inference/infer_compilation.html#plot", + "title": "Inference compilation functions", + "section": "Plot", + "text": "Plot\n\nsource\n\nplot_hist_overview\n\n plot_hist_overview (out_tuple, num_of_samples_per_U, rnd_min_gates,\n rnd_max_gates, max_gates, num_of_qubits)" + }, + { + "objectID": "inference/infer_srv.html", + "href": "inference/infer_srv.html", + "title": "Inference SRV functions", + "section": "", + "text": "source\n\n\n\n get_all_srvs (num_of_qubits)\n\n\nsource\n\n\n\n\n generate_srv_tensors (pipeline, prompt, samples, system_size,\n num_of_qubits, max_gates, g, no_bar=True,\n unique=False, auto_batch_size=512)" + }, + { + "objectID": "inference/infer_srv.html#generation", + "href": "inference/infer_srv.html#generation", + "title": "Inference SRV functions", + "section": "", + "text": "source\n\n\n\n get_all_srvs (num_of_qubits)\n\n\nsource\n\n\n\n\n generate_srv_tensors (pipeline, prompt, samples, system_size,\n num_of_qubits, max_gates, g, no_bar=True,\n unique=False, auto_batch_size=512)" + }, + { + "objectID": "inference/infer_srv.html#convertion", + "href": "inference/infer_srv.html#convertion", + "title": "Inference SRV functions", + "section": "Convertion", + "text": "Convertion\n\nsource\n\nconvert_tensors_to_srvs\n\n convert_tensors_to_srvs (out_tensor, gate_pool, sort_srv=False,\n place_barrier=False, n_jobs=1)" + }, + { + "objectID": "inference/infer_srv.html#accuracy", + "href": "inference/infer_srv.html#accuracy", + "title": "Inference SRV functions", + "section": "Accuracy", + "text": "Accuracy\n\nsource\n\nget_srv_accuracy\n\n get_srv_accuracy (svr_list, target_srv)" + }, + { + "objectID": "inference/infer_srv.html#tests", + "href": "inference/infer_srv.html#tests", + "title": "Inference SRV functions", + "section": "Tests", + "text": "Tests\n\nsource\n\ntrue_sample_bin_dist\n\n true_sample_bin_dist (samples_per_bin, bin_size)\n\n\nsource\n\n\ntest_srv_clr_distribution_bin_samples\n\n test_srv_clr_distribution_bin_samples (pipeline, samples_per_bin,\n system_size, num_of_qubits,\n max_gates, g, gate_pool,\n silent=False, device='cpu',\n U=None, prompt_mod:<built-\n infunctioncallable>=<function\n <lambda>>, only_diag=False,\n n_jobs=1)\n\n\nsource\n\n\ntest_srv_clr_distribution\n\n test_srv_clr_distribution (pipeline, samples_per_srv, system_size,\n num_of_qubits, max_gates, g, gate_pool,\n silent=False, device='cpu', U=None,\n prompt_mod:<built-\n infunctioncallable>=<function <lambda>>,\n dist_srvs=None, cond_srvs=None,\n only_diag=False, n_jobs=1)\n\n\nsource\n\n\ntest_guidance_dep\n\n test_guidance_dep (pipeline, srvs, samples, system_size, num_of_qubits,\n max_gates, gs, gate_pool, prompt_mod:<built-\n infunctioncallable>=<function <lambda>>, U=None,\n n_jobs=1)\n\n\nsource\n\n\ntest_srv_acc_vs_length\n\n test_srv_acc_vs_length (pipeline, samples, system_size, num_of_qubits,\n max_gates, g, gate_pool, prompt_mod:<built-\n infunctioncallable>=<function <lambda>>, U=None,\n n_jobs=1)\n\n\nsource\n\n\ntest_srv_acc_vs_maxLength\n\n test_srv_acc_vs_maxLength (pipeline, samples_per_bin, system_size,\n num_of_qubits, max_gates_list, g, gate_pool,\n prompt_mod:<built-\n infunctioncallable>=<function <lambda>>,\n U=None, n_jobs=1)\n\n\nsource\n\n\ntest_srv_length_distribution\n\n test_srv_length_distribution (pipeline, samples_per_bin, system_size,\n num_of_qubits, max_gates, g, gate_pool,\n silent=False, U=None, prompt_mod:<built-\n infunctioncallable>=<function <lambda>>,\n n_jobs=1)" + }, + { + "objectID": "inference/infer_srv.html#plot", + "href": "inference/infer_srv.html#plot", + "title": "Inference SRV functions", + "section": "Plot", + "text": "Plot\n\nsource\n\nplot_srv_clr_distribution_hist\n\n plot_srv_clr_distribution_hist (values, samples, num_of_qubits,\n save=False, dist_srvs=None,\n cond_srvs=None)\n\n\nsource\n\n\nplot_srv_clr_distribution_bin_accuracy\n\n plot_srv_clr_distribution_bin_accuracy (values, samples, num_of_qubits,\n save=False,\n plot_percentages=False,\n trainSet_srv=None)\n\n\nsource\n\n\nplot_guidance_dep\n\n plot_guidance_dep (srvs, gs, guidance_dep_out, samples, save=False)\n\n\nsource\n\n\nplot_srv_acc_vs_length\n\n plot_srv_acc_vs_length (ent_ls, ent_accs, ent_cnts, ent_labels, samples,\n plot_dist=True, save=False)\n\n\nsource\n\n\nplot_srv_acc_vs_maxLength\n\n plot_srv_acc_vs_maxLength (ent_accs, ent_labels, max_gates_list, samples,\n plot_dist=True, save=False)" + } +] \ No newline at end of file diff --git a/site_libs/bootstrap/bootstrap-icons.css b/site_libs/bootstrap/bootstrap-icons.css new file mode 100644 index 0000000..94f1940 --- /dev/null +++ b/site_libs/bootstrap/bootstrap-icons.css @@ -0,0 +1,2018 @@ +@font-face { + font-display: block; + font-family: "bootstrap-icons"; + src: +url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff"); +} + +.bi::before, +[class^="bi-"]::before, +[class*=" bi-"]::before { + display: inline-block; + font-family: bootstrap-icons !important; + font-style: normal; + font-weight: normal !important; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: -.125em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.bi-123::before { content: "\f67f"; } +.bi-alarm-fill::before { content: "\f101"; } +.bi-alarm::before { content: "\f102"; } +.bi-align-bottom::before { content: "\f103"; } +.bi-align-center::before { content: "\f104"; } +.bi-align-end::before { content: "\f105"; } +.bi-align-middle::before { content: "\f106"; } +.bi-align-start::before { content: "\f107"; } +.bi-align-top::before { content: "\f108"; } +.bi-alt::before { content: "\f109"; } +.bi-app-indicator::before { content: "\f10a"; } +.bi-app::before { content: "\f10b"; } +.bi-archive-fill::before { content: "\f10c"; } +.bi-archive::before { content: "\f10d"; } +.bi-arrow-90deg-down::before { content: "\f10e"; } +.bi-arrow-90deg-left::before { content: "\f10f"; } +.bi-arrow-90deg-right::before { content: "\f110"; } +.bi-arrow-90deg-up::before { content: "\f111"; } +.bi-arrow-bar-down::before { content: "\f112"; } +.bi-arrow-bar-left::before { content: "\f113"; } +.bi-arrow-bar-right::before { content: "\f114"; } +.bi-arrow-bar-up::before { content: "\f115"; } +.bi-arrow-clockwise::before { content: "\f116"; } +.bi-arrow-counterclockwise::before { content: "\f117"; } +.bi-arrow-down-circle-fill::before { content: "\f118"; } +.bi-arrow-down-circle::before { content: "\f119"; } +.bi-arrow-down-left-circle-fill::before { content: "\f11a"; } +.bi-arrow-down-left-circle::before { content: "\f11b"; } +.bi-arrow-down-left-square-fill::before { content: "\f11c"; } +.bi-arrow-down-left-square::before { content: "\f11d"; } +.bi-arrow-down-left::before { content: "\f11e"; } +.bi-arrow-down-right-circle-fill::before { content: "\f11f"; } +.bi-arrow-down-right-circle::before { content: "\f120"; } +.bi-arrow-down-right-square-fill::before { content: "\f121"; } +.bi-arrow-down-right-square::before { content: "\f122"; } +.bi-arrow-down-right::before { content: "\f123"; } +.bi-arrow-down-short::before { content: "\f124"; } +.bi-arrow-down-square-fill::before { content: "\f125"; } +.bi-arrow-down-square::before { content: "\f126"; } +.bi-arrow-down-up::before { content: "\f127"; } +.bi-arrow-down::before { content: "\f128"; } +.bi-arrow-left-circle-fill::before { content: "\f129"; } +.bi-arrow-left-circle::before { content: "\f12a"; } +.bi-arrow-left-right::before { content: "\f12b"; } +.bi-arrow-left-short::before { content: "\f12c"; } +.bi-arrow-left-square-fill::before { content: "\f12d"; } +.bi-arrow-left-square::before { content: "\f12e"; } +.bi-arrow-left::before { content: "\f12f"; } +.bi-arrow-repeat::before { content: "\f130"; } +.bi-arrow-return-left::before { content: "\f131"; } +.bi-arrow-return-right::before { content: "\f132"; } +.bi-arrow-right-circle-fill::before { content: "\f133"; } +.bi-arrow-right-circle::before { content: "\f134"; } +.bi-arrow-right-short::before { content: "\f135"; } +.bi-arrow-right-square-fill::before { content: "\f136"; } +.bi-arrow-right-square::before { content: "\f137"; } +.bi-arrow-right::before { content: "\f138"; } +.bi-arrow-up-circle-fill::before { content: "\f139"; } +.bi-arrow-up-circle::before { content: "\f13a"; } +.bi-arrow-up-left-circle-fill::before { content: "\f13b"; } +.bi-arrow-up-left-circle::before { content: "\f13c"; } +.bi-arrow-up-left-square-fill::before { content: "\f13d"; } +.bi-arrow-up-left-square::before { content: "\f13e"; } +.bi-arrow-up-left::before { content: "\f13f"; } +.bi-arrow-up-right-circle-fill::before { content: "\f140"; } +.bi-arrow-up-right-circle::before { content: "\f141"; } +.bi-arrow-up-right-square-fill::before { content: "\f142"; } +.bi-arrow-up-right-square::before { content: "\f143"; } +.bi-arrow-up-right::before { content: "\f144"; } +.bi-arrow-up-short::before { content: "\f145"; } +.bi-arrow-up-square-fill::before { content: "\f146"; } +.bi-arrow-up-square::before { content: "\f147"; } +.bi-arrow-up::before { content: "\f148"; } +.bi-arrows-angle-contract::before { content: "\f149"; } +.bi-arrows-angle-expand::before { content: "\f14a"; } +.bi-arrows-collapse::before { content: "\f14b"; } +.bi-arrows-expand::before { content: "\f14c"; } +.bi-arrows-fullscreen::before { content: "\f14d"; } +.bi-arrows-move::before { content: "\f14e"; } +.bi-aspect-ratio-fill::before { content: "\f14f"; } +.bi-aspect-ratio::before { content: "\f150"; } +.bi-asterisk::before { content: "\f151"; } +.bi-at::before { content: "\f152"; } +.bi-award-fill::before { content: "\f153"; } +.bi-award::before { content: "\f154"; } +.bi-back::before { content: "\f155"; } +.bi-backspace-fill::before { content: "\f156"; } +.bi-backspace-reverse-fill::before { content: "\f157"; } +.bi-backspace-reverse::before { content: "\f158"; } +.bi-backspace::before { content: "\f159"; } +.bi-badge-3d-fill::before { content: "\f15a"; } +.bi-badge-3d::before { content: "\f15b"; } +.bi-badge-4k-fill::before { content: "\f15c"; } +.bi-badge-4k::before { content: "\f15d"; } +.bi-badge-8k-fill::before { content: "\f15e"; } +.bi-badge-8k::before { content: "\f15f"; } +.bi-badge-ad-fill::before { content: "\f160"; } +.bi-badge-ad::before { content: "\f161"; } +.bi-badge-ar-fill::before { content: "\f162"; } +.bi-badge-ar::before { content: "\f163"; } +.bi-badge-cc-fill::before { content: "\f164"; } +.bi-badge-cc::before { content: "\f165"; } +.bi-badge-hd-fill::before { content: "\f166"; } +.bi-badge-hd::before { content: "\f167"; } +.bi-badge-tm-fill::before { content: "\f168"; } +.bi-badge-tm::before { content: "\f169"; } +.bi-badge-vo-fill::before { content: "\f16a"; } +.bi-badge-vo::before { content: "\f16b"; } +.bi-badge-vr-fill::before { content: "\f16c"; } +.bi-badge-vr::before { content: "\f16d"; } +.bi-badge-wc-fill::before { content: "\f16e"; } +.bi-badge-wc::before { content: "\f16f"; } +.bi-bag-check-fill::before { content: "\f170"; } +.bi-bag-check::before { content: "\f171"; } +.bi-bag-dash-fill::before { content: "\f172"; } +.bi-bag-dash::before { content: "\f173"; } +.bi-bag-fill::before { content: "\f174"; } +.bi-bag-plus-fill::before { content: "\f175"; } +.bi-bag-plus::before { content: "\f176"; } +.bi-bag-x-fill::before { content: "\f177"; } +.bi-bag-x::before { content: "\f178"; } +.bi-bag::before { content: "\f179"; } +.bi-bar-chart-fill::before { content: "\f17a"; } +.bi-bar-chart-line-fill::before { content: "\f17b"; } +.bi-bar-chart-line::before { content: "\f17c"; } +.bi-bar-chart-steps::before { content: "\f17d"; } +.bi-bar-chart::before { content: "\f17e"; } +.bi-basket-fill::before { content: "\f17f"; } +.bi-basket::before { content: "\f180"; } +.bi-basket2-fill::before { content: "\f181"; } +.bi-basket2::before { content: "\f182"; } +.bi-basket3-fill::before { content: "\f183"; } +.bi-basket3::before { content: "\f184"; } +.bi-battery-charging::before { content: "\f185"; } +.bi-battery-full::before { content: "\f186"; } +.bi-battery-half::before { content: "\f187"; } +.bi-battery::before { content: "\f188"; } +.bi-bell-fill::before { content: "\f189"; } +.bi-bell::before { content: "\f18a"; } +.bi-bezier::before { content: "\f18b"; } +.bi-bezier2::before { content: "\f18c"; } +.bi-bicycle::before { content: "\f18d"; } +.bi-binoculars-fill::before { content: "\f18e"; } +.bi-binoculars::before { content: "\f18f"; } +.bi-blockquote-left::before { content: "\f190"; } +.bi-blockquote-right::before { content: "\f191"; } +.bi-book-fill::before { content: "\f192"; } +.bi-book-half::before { content: "\f193"; } +.bi-book::before { content: "\f194"; } +.bi-bookmark-check-fill::before { content: "\f195"; } +.bi-bookmark-check::before { content: "\f196"; } +.bi-bookmark-dash-fill::before { content: "\f197"; } +.bi-bookmark-dash::before { content: "\f198"; } +.bi-bookmark-fill::before { content: "\f199"; } +.bi-bookmark-heart-fill::before { content: "\f19a"; } +.bi-bookmark-heart::before { content: "\f19b"; } +.bi-bookmark-plus-fill::before { content: "\f19c"; } +.bi-bookmark-plus::before { content: "\f19d"; } +.bi-bookmark-star-fill::before { content: "\f19e"; } +.bi-bookmark-star::before { content: "\f19f"; } +.bi-bookmark-x-fill::before { content: "\f1a0"; } +.bi-bookmark-x::before { content: "\f1a1"; } +.bi-bookmark::before { content: "\f1a2"; } +.bi-bookmarks-fill::before { content: "\f1a3"; } +.bi-bookmarks::before { content: "\f1a4"; } +.bi-bookshelf::before { content: "\f1a5"; } +.bi-bootstrap-fill::before { content: "\f1a6"; } +.bi-bootstrap-reboot::before { content: "\f1a7"; } +.bi-bootstrap::before { content: "\f1a8"; } +.bi-border-all::before { content: "\f1a9"; } +.bi-border-bottom::before { content: "\f1aa"; } +.bi-border-center::before { content: "\f1ab"; } +.bi-border-inner::before { content: "\f1ac"; } +.bi-border-left::before { content: "\f1ad"; } +.bi-border-middle::before { content: "\f1ae"; } +.bi-border-outer::before { content: "\f1af"; } +.bi-border-right::before { content: "\f1b0"; } +.bi-border-style::before { content: "\f1b1"; } +.bi-border-top::before { content: "\f1b2"; } +.bi-border-width::before { content: "\f1b3"; } +.bi-border::before { content: "\f1b4"; } +.bi-bounding-box-circles::before { content: "\f1b5"; } +.bi-bounding-box::before { content: "\f1b6"; } +.bi-box-arrow-down-left::before { content: "\f1b7"; } +.bi-box-arrow-down-right::before { content: "\f1b8"; } +.bi-box-arrow-down::before { content: "\f1b9"; } +.bi-box-arrow-in-down-left::before { content: "\f1ba"; } +.bi-box-arrow-in-down-right::before { content: "\f1bb"; } +.bi-box-arrow-in-down::before { content: "\f1bc"; } +.bi-box-arrow-in-left::before { content: "\f1bd"; } +.bi-box-arrow-in-right::before { content: "\f1be"; } +.bi-box-arrow-in-up-left::before { content: "\f1bf"; } +.bi-box-arrow-in-up-right::before { content: "\f1c0"; } +.bi-box-arrow-in-up::before { content: "\f1c1"; } +.bi-box-arrow-left::before { content: "\f1c2"; } +.bi-box-arrow-right::before { content: "\f1c3"; } +.bi-box-arrow-up-left::before { content: "\f1c4"; } +.bi-box-arrow-up-right::before { content: "\f1c5"; } +.bi-box-arrow-up::before { content: "\f1c6"; } +.bi-box-seam::before { content: "\f1c7"; } +.bi-box::before { content: "\f1c8"; } +.bi-braces::before { content: "\f1c9"; } +.bi-bricks::before { content: "\f1ca"; } +.bi-briefcase-fill::before { content: "\f1cb"; } +.bi-briefcase::before { content: "\f1cc"; } +.bi-brightness-alt-high-fill::before { content: "\f1cd"; } +.bi-brightness-alt-high::before { content: "\f1ce"; } +.bi-brightness-alt-low-fill::before { content: "\f1cf"; } +.bi-brightness-alt-low::before { content: "\f1d0"; } +.bi-brightness-high-fill::before { content: "\f1d1"; } +.bi-brightness-high::before { content: "\f1d2"; } +.bi-brightness-low-fill::before { content: "\f1d3"; } +.bi-brightness-low::before { content: "\f1d4"; } +.bi-broadcast-pin::before { content: "\f1d5"; } +.bi-broadcast::before { content: "\f1d6"; } +.bi-brush-fill::before { content: "\f1d7"; } +.bi-brush::before { content: "\f1d8"; } +.bi-bucket-fill::before { content: "\f1d9"; } +.bi-bucket::before { content: "\f1da"; } +.bi-bug-fill::before { content: "\f1db"; } +.bi-bug::before { content: "\f1dc"; } +.bi-building::before { content: "\f1dd"; } +.bi-bullseye::before { content: "\f1de"; } +.bi-calculator-fill::before { content: "\f1df"; } +.bi-calculator::before { content: "\f1e0"; } +.bi-calendar-check-fill::before { content: "\f1e1"; } +.bi-calendar-check::before { content: "\f1e2"; } +.bi-calendar-date-fill::before { content: "\f1e3"; } +.bi-calendar-date::before { content: "\f1e4"; } +.bi-calendar-day-fill::before { content: "\f1e5"; } +.bi-calendar-day::before { content: "\f1e6"; } +.bi-calendar-event-fill::before { content: "\f1e7"; } +.bi-calendar-event::before { content: "\f1e8"; } +.bi-calendar-fill::before { content: "\f1e9"; } +.bi-calendar-minus-fill::before { content: "\f1ea"; } +.bi-calendar-minus::before { content: "\f1eb"; } +.bi-calendar-month-fill::before { content: "\f1ec"; } +.bi-calendar-month::before { content: "\f1ed"; } +.bi-calendar-plus-fill::before { content: "\f1ee"; } +.bi-calendar-plus::before { content: "\f1ef"; } +.bi-calendar-range-fill::before { content: "\f1f0"; } +.bi-calendar-range::before { content: "\f1f1"; } +.bi-calendar-week-fill::before { content: "\f1f2"; } +.bi-calendar-week::before { content: "\f1f3"; } +.bi-calendar-x-fill::before { content: "\f1f4"; } +.bi-calendar-x::before { content: "\f1f5"; } +.bi-calendar::before { content: "\f1f6"; } +.bi-calendar2-check-fill::before { content: "\f1f7"; } +.bi-calendar2-check::before { content: "\f1f8"; } +.bi-calendar2-date-fill::before { content: "\f1f9"; } +.bi-calendar2-date::before { content: "\f1fa"; } +.bi-calendar2-day-fill::before { content: "\f1fb"; } +.bi-calendar2-day::before { content: "\f1fc"; } +.bi-calendar2-event-fill::before { content: "\f1fd"; } +.bi-calendar2-event::before { content: "\f1fe"; } +.bi-calendar2-fill::before { content: "\f1ff"; } +.bi-calendar2-minus-fill::before { content: "\f200"; } +.bi-calendar2-minus::before { content: "\f201"; } +.bi-calendar2-month-fill::before { content: "\f202"; } +.bi-calendar2-month::before { content: "\f203"; } +.bi-calendar2-plus-fill::before { content: "\f204"; } +.bi-calendar2-plus::before { content: "\f205"; } +.bi-calendar2-range-fill::before { content: "\f206"; } +.bi-calendar2-range::before { content: "\f207"; } +.bi-calendar2-week-fill::before { content: "\f208"; } +.bi-calendar2-week::before { content: "\f209"; } +.bi-calendar2-x-fill::before { content: "\f20a"; } +.bi-calendar2-x::before { content: "\f20b"; } +.bi-calendar2::before { content: "\f20c"; } +.bi-calendar3-event-fill::before { content: "\f20d"; } +.bi-calendar3-event::before { content: "\f20e"; } +.bi-calendar3-fill::before { content: "\f20f"; } +.bi-calendar3-range-fill::before { content: "\f210"; } +.bi-calendar3-range::before { content: "\f211"; } +.bi-calendar3-week-fill::before { content: "\f212"; } +.bi-calendar3-week::before { content: "\f213"; } +.bi-calendar3::before { content: "\f214"; } +.bi-calendar4-event::before { content: "\f215"; } +.bi-calendar4-range::before { content: "\f216"; } +.bi-calendar4-week::before { content: "\f217"; } +.bi-calendar4::before { content: "\f218"; } +.bi-camera-fill::before { content: "\f219"; } +.bi-camera-reels-fill::before { content: "\f21a"; } +.bi-camera-reels::before { content: "\f21b"; } +.bi-camera-video-fill::before { content: "\f21c"; } +.bi-camera-video-off-fill::before { content: "\f21d"; } +.bi-camera-video-off::before { content: "\f21e"; } +.bi-camera-video::before { content: "\f21f"; } +.bi-camera::before { content: "\f220"; } +.bi-camera2::before { content: "\f221"; } +.bi-capslock-fill::before { content: "\f222"; } +.bi-capslock::before { content: "\f223"; } +.bi-card-checklist::before { content: "\f224"; } +.bi-card-heading::before { content: "\f225"; } +.bi-card-image::before { content: "\f226"; } +.bi-card-list::before { content: "\f227"; } +.bi-card-text::before { content: "\f228"; } +.bi-caret-down-fill::before { content: "\f229"; } +.bi-caret-down-square-fill::before { content: "\f22a"; } +.bi-caret-down-square::before { content: "\f22b"; } +.bi-caret-down::before { content: "\f22c"; } +.bi-caret-left-fill::before { content: "\f22d"; } +.bi-caret-left-square-fill::before { content: "\f22e"; } +.bi-caret-left-square::before { content: "\f22f"; } +.bi-caret-left::before { content: "\f230"; } +.bi-caret-right-fill::before { content: "\f231"; } +.bi-caret-right-square-fill::before { content: "\f232"; } +.bi-caret-right-square::before { content: "\f233"; } +.bi-caret-right::before { content: "\f234"; } +.bi-caret-up-fill::before { content: "\f235"; } +.bi-caret-up-square-fill::before { content: "\f236"; } +.bi-caret-up-square::before { content: "\f237"; } +.bi-caret-up::before { content: "\f238"; } +.bi-cart-check-fill::before { content: "\f239"; } +.bi-cart-check::before { content: "\f23a"; } +.bi-cart-dash-fill::before { content: "\f23b"; } +.bi-cart-dash::before { content: "\f23c"; } +.bi-cart-fill::before { content: "\f23d"; } +.bi-cart-plus-fill::before { content: "\f23e"; } +.bi-cart-plus::before { content: "\f23f"; } +.bi-cart-x-fill::before { content: "\f240"; } +.bi-cart-x::before { content: "\f241"; } +.bi-cart::before { content: "\f242"; } +.bi-cart2::before { content: "\f243"; } +.bi-cart3::before { content: "\f244"; } +.bi-cart4::before { content: "\f245"; } +.bi-cash-stack::before { content: "\f246"; } +.bi-cash::before { content: "\f247"; } +.bi-cast::before { content: "\f248"; } +.bi-chat-dots-fill::before { content: "\f249"; } +.bi-chat-dots::before { content: "\f24a"; } +.bi-chat-fill::before { content: "\f24b"; } +.bi-chat-left-dots-fill::before { content: "\f24c"; } +.bi-chat-left-dots::before { content: "\f24d"; } +.bi-chat-left-fill::before { content: "\f24e"; } +.bi-chat-left-quote-fill::before { content: "\f24f"; } +.bi-chat-left-quote::before { content: "\f250"; } +.bi-chat-left-text-fill::before { content: "\f251"; } +.bi-chat-left-text::before { content: "\f252"; } +.bi-chat-left::before { content: "\f253"; } +.bi-chat-quote-fill::before { content: "\f254"; } +.bi-chat-quote::before { content: "\f255"; } +.bi-chat-right-dots-fill::before { content: "\f256"; } +.bi-chat-right-dots::before { content: "\f257"; } +.bi-chat-right-fill::before { content: "\f258"; } +.bi-chat-right-quote-fill::before { content: "\f259"; } +.bi-chat-right-quote::before { content: "\f25a"; } +.bi-chat-right-text-fill::before { content: "\f25b"; } +.bi-chat-right-text::before { content: "\f25c"; } +.bi-chat-right::before { content: "\f25d"; } +.bi-chat-square-dots-fill::before { content: "\f25e"; } +.bi-chat-square-dots::before { content: "\f25f"; } +.bi-chat-square-fill::before { content: "\f260"; } +.bi-chat-square-quote-fill::before { content: "\f261"; } +.bi-chat-square-quote::before { content: "\f262"; } +.bi-chat-square-text-fill::before { content: "\f263"; } +.bi-chat-square-text::before { content: "\f264"; } +.bi-chat-square::before { content: "\f265"; } +.bi-chat-text-fill::before { content: "\f266"; } +.bi-chat-text::before { content: "\f267"; } +.bi-chat::before { content: "\f268"; } +.bi-check-all::before { content: "\f269"; } +.bi-check-circle-fill::before { content: "\f26a"; } +.bi-check-circle::before { content: "\f26b"; } +.bi-check-square-fill::before { content: "\f26c"; } +.bi-check-square::before { content: "\f26d"; } +.bi-check::before { content: "\f26e"; } +.bi-check2-all::before { content: "\f26f"; } +.bi-check2-circle::before { content: "\f270"; } +.bi-check2-square::before { content: "\f271"; } +.bi-check2::before { content: "\f272"; } +.bi-chevron-bar-contract::before { content: "\f273"; } +.bi-chevron-bar-down::before { content: "\f274"; } +.bi-chevron-bar-expand::before { content: "\f275"; } +.bi-chevron-bar-left::before { content: "\f276"; } +.bi-chevron-bar-right::before { content: "\f277"; } +.bi-chevron-bar-up::before { content: "\f278"; } +.bi-chevron-compact-down::before { content: "\f279"; } +.bi-chevron-compact-left::before { content: "\f27a"; } +.bi-chevron-compact-right::before { content: "\f27b"; } +.bi-chevron-compact-up::before { content: "\f27c"; } +.bi-chevron-contract::before { content: "\f27d"; } +.bi-chevron-double-down::before { content: "\f27e"; } +.bi-chevron-double-left::before { content: "\f27f"; } +.bi-chevron-double-right::before { content: "\f280"; } +.bi-chevron-double-up::before { content: "\f281"; } +.bi-chevron-down::before { content: "\f282"; } +.bi-chevron-expand::before { content: "\f283"; } +.bi-chevron-left::before { content: "\f284"; } +.bi-chevron-right::before { content: "\f285"; } +.bi-chevron-up::before { content: "\f286"; } +.bi-circle-fill::before { content: "\f287"; } +.bi-circle-half::before { content: "\f288"; } +.bi-circle-square::before { content: "\f289"; } +.bi-circle::before { content: "\f28a"; } +.bi-clipboard-check::before { content: "\f28b"; } +.bi-clipboard-data::before { content: "\f28c"; } +.bi-clipboard-minus::before { content: "\f28d"; } +.bi-clipboard-plus::before { content: "\f28e"; } +.bi-clipboard-x::before { content: "\f28f"; } +.bi-clipboard::before { content: "\f290"; } +.bi-clock-fill::before { content: "\f291"; } +.bi-clock-history::before { content: "\f292"; } +.bi-clock::before { content: "\f293"; } +.bi-cloud-arrow-down-fill::before { content: "\f294"; } +.bi-cloud-arrow-down::before { content: "\f295"; } +.bi-cloud-arrow-up-fill::before { content: "\f296"; } +.bi-cloud-arrow-up::before { content: "\f297"; } +.bi-cloud-check-fill::before { content: "\f298"; } +.bi-cloud-check::before { content: "\f299"; } +.bi-cloud-download-fill::before { content: "\f29a"; } +.bi-cloud-download::before { content: "\f29b"; } +.bi-cloud-drizzle-fill::before { content: "\f29c"; } +.bi-cloud-drizzle::before { content: "\f29d"; } +.bi-cloud-fill::before { content: "\f29e"; } +.bi-cloud-fog-fill::before { content: "\f29f"; } +.bi-cloud-fog::before { content: "\f2a0"; } +.bi-cloud-fog2-fill::before { content: "\f2a1"; } +.bi-cloud-fog2::before { content: "\f2a2"; } +.bi-cloud-hail-fill::before { content: "\f2a3"; } +.bi-cloud-hail::before { content: "\f2a4"; } +.bi-cloud-haze-1::before { content: "\f2a5"; } +.bi-cloud-haze-fill::before { content: "\f2a6"; } +.bi-cloud-haze::before { content: "\f2a7"; } +.bi-cloud-haze2-fill::before { content: "\f2a8"; } +.bi-cloud-lightning-fill::before { content: "\f2a9"; } +.bi-cloud-lightning-rain-fill::before { content: "\f2aa"; } +.bi-cloud-lightning-rain::before { content: "\f2ab"; } +.bi-cloud-lightning::before { content: "\f2ac"; } +.bi-cloud-minus-fill::before { content: "\f2ad"; } +.bi-cloud-minus::before { content: "\f2ae"; } +.bi-cloud-moon-fill::before { content: "\f2af"; } +.bi-cloud-moon::before { content: "\f2b0"; } +.bi-cloud-plus-fill::before { content: "\f2b1"; } +.bi-cloud-plus::before { content: "\f2b2"; } +.bi-cloud-rain-fill::before { content: "\f2b3"; } +.bi-cloud-rain-heavy-fill::before { content: "\f2b4"; } +.bi-cloud-rain-heavy::before { content: "\f2b5"; } +.bi-cloud-rain::before { content: "\f2b6"; } +.bi-cloud-slash-fill::before { content: "\f2b7"; } +.bi-cloud-slash::before { content: "\f2b8"; } +.bi-cloud-sleet-fill::before { content: "\f2b9"; } +.bi-cloud-sleet::before { content: "\f2ba"; } +.bi-cloud-snow-fill::before { content: "\f2bb"; } +.bi-cloud-snow::before { content: "\f2bc"; } +.bi-cloud-sun-fill::before { content: "\f2bd"; } +.bi-cloud-sun::before { content: "\f2be"; } +.bi-cloud-upload-fill::before { content: "\f2bf"; } +.bi-cloud-upload::before { content: "\f2c0"; } +.bi-cloud::before { content: "\f2c1"; } +.bi-clouds-fill::before { content: "\f2c2"; } +.bi-clouds::before { content: "\f2c3"; } +.bi-cloudy-fill::before { content: "\f2c4"; } +.bi-cloudy::before { content: "\f2c5"; } +.bi-code-slash::before { content: "\f2c6"; } +.bi-code-square::before { content: "\f2c7"; } +.bi-code::before { content: "\f2c8"; } +.bi-collection-fill::before { content: "\f2c9"; } +.bi-collection-play-fill::before { content: "\f2ca"; } +.bi-collection-play::before { content: "\f2cb"; } +.bi-collection::before { content: "\f2cc"; } +.bi-columns-gap::before { content: "\f2cd"; } +.bi-columns::before { content: "\f2ce"; } +.bi-command::before { content: "\f2cf"; } +.bi-compass-fill::before { content: "\f2d0"; } +.bi-compass::before { content: "\f2d1"; } +.bi-cone-striped::before { content: "\f2d2"; } +.bi-cone::before { content: "\f2d3"; } +.bi-controller::before { content: "\f2d4"; } +.bi-cpu-fill::before { content: "\f2d5"; } +.bi-cpu::before { content: "\f2d6"; } +.bi-credit-card-2-back-fill::before { content: "\f2d7"; } +.bi-credit-card-2-back::before { content: "\f2d8"; } +.bi-credit-card-2-front-fill::before { content: "\f2d9"; } +.bi-credit-card-2-front::before { content: "\f2da"; } +.bi-credit-card-fill::before { content: "\f2db"; } +.bi-credit-card::before { content: "\f2dc"; } +.bi-crop::before { content: "\f2dd"; } +.bi-cup-fill::before { content: "\f2de"; } +.bi-cup-straw::before { content: "\f2df"; } +.bi-cup::before { content: "\f2e0"; } +.bi-cursor-fill::before { content: "\f2e1"; } +.bi-cursor-text::before { content: "\f2e2"; } +.bi-cursor::before { content: "\f2e3"; } +.bi-dash-circle-dotted::before { content: "\f2e4"; } +.bi-dash-circle-fill::before { content: "\f2e5"; } +.bi-dash-circle::before { content: "\f2e6"; } +.bi-dash-square-dotted::before { content: "\f2e7"; } +.bi-dash-square-fill::before { content: "\f2e8"; } +.bi-dash-square::before { content: "\f2e9"; } +.bi-dash::before { content: "\f2ea"; } +.bi-diagram-2-fill::before { content: "\f2eb"; } +.bi-diagram-2::before { content: "\f2ec"; } +.bi-diagram-3-fill::before { content: "\f2ed"; } +.bi-diagram-3::before { content: "\f2ee"; } +.bi-diamond-fill::before { content: "\f2ef"; } +.bi-diamond-half::before { content: "\f2f0"; } +.bi-diamond::before { content: "\f2f1"; } +.bi-dice-1-fill::before { content: "\f2f2"; } +.bi-dice-1::before { content: "\f2f3"; } +.bi-dice-2-fill::before { content: "\f2f4"; } +.bi-dice-2::before { content: "\f2f5"; } +.bi-dice-3-fill::before { content: "\f2f6"; } +.bi-dice-3::before { content: "\f2f7"; } +.bi-dice-4-fill::before { content: "\f2f8"; } +.bi-dice-4::before { content: "\f2f9"; } +.bi-dice-5-fill::before { content: "\f2fa"; } +.bi-dice-5::before { content: "\f2fb"; } +.bi-dice-6-fill::before { content: "\f2fc"; } +.bi-dice-6::before { content: "\f2fd"; } +.bi-disc-fill::before { content: "\f2fe"; } +.bi-disc::before { content: "\f2ff"; } +.bi-discord::before { content: "\f300"; } +.bi-display-fill::before { content: "\f301"; } +.bi-display::before { content: "\f302"; } +.bi-distribute-horizontal::before { content: "\f303"; } +.bi-distribute-vertical::before { content: "\f304"; } +.bi-door-closed-fill::before { content: "\f305"; } +.bi-door-closed::before { content: "\f306"; } +.bi-door-open-fill::before { content: "\f307"; } +.bi-door-open::before { content: "\f308"; } +.bi-dot::before { content: "\f309"; } +.bi-download::before { content: "\f30a"; } +.bi-droplet-fill::before { content: "\f30b"; } +.bi-droplet-half::before { content: "\f30c"; } +.bi-droplet::before { content: "\f30d"; } +.bi-earbuds::before { content: "\f30e"; } +.bi-easel-fill::before { content: "\f30f"; } +.bi-easel::before { content: "\f310"; } +.bi-egg-fill::before { content: "\f311"; } +.bi-egg-fried::before { content: "\f312"; } +.bi-egg::before { content: "\f313"; } +.bi-eject-fill::before { content: "\f314"; } +.bi-eject::before { content: "\f315"; } +.bi-emoji-angry-fill::before { content: "\f316"; } +.bi-emoji-angry::before { content: "\f317"; } +.bi-emoji-dizzy-fill::before { content: "\f318"; } +.bi-emoji-dizzy::before { content: "\f319"; } +.bi-emoji-expressionless-fill::before { content: "\f31a"; } +.bi-emoji-expressionless::before { content: "\f31b"; } +.bi-emoji-frown-fill::before { content: "\f31c"; } +.bi-emoji-frown::before { content: "\f31d"; } +.bi-emoji-heart-eyes-fill::before { content: "\f31e"; } +.bi-emoji-heart-eyes::before { content: "\f31f"; } +.bi-emoji-laughing-fill::before { content: "\f320"; } +.bi-emoji-laughing::before { content: "\f321"; } +.bi-emoji-neutral-fill::before { content: "\f322"; } +.bi-emoji-neutral::before { content: "\f323"; } +.bi-emoji-smile-fill::before { content: "\f324"; } +.bi-emoji-smile-upside-down-fill::before { content: "\f325"; } +.bi-emoji-smile-upside-down::before { content: "\f326"; } +.bi-emoji-smile::before { content: "\f327"; } +.bi-emoji-sunglasses-fill::before { content: "\f328"; } +.bi-emoji-sunglasses::before { content: "\f329"; } +.bi-emoji-wink-fill::before { content: "\f32a"; } +.bi-emoji-wink::before { content: "\f32b"; } +.bi-envelope-fill::before { content: "\f32c"; } +.bi-envelope-open-fill::before { content: "\f32d"; } +.bi-envelope-open::before { content: "\f32e"; } +.bi-envelope::before { content: "\f32f"; } +.bi-eraser-fill::before { content: "\f330"; } +.bi-eraser::before { content: "\f331"; } +.bi-exclamation-circle-fill::before { content: "\f332"; } +.bi-exclamation-circle::before { content: "\f333"; } +.bi-exclamation-diamond-fill::before { content: "\f334"; } +.bi-exclamation-diamond::before { content: "\f335"; } +.bi-exclamation-octagon-fill::before { content: "\f336"; } +.bi-exclamation-octagon::before { content: "\f337"; } +.bi-exclamation-square-fill::before { content: "\f338"; } +.bi-exclamation-square::before { content: "\f339"; } +.bi-exclamation-triangle-fill::before { content: "\f33a"; } +.bi-exclamation-triangle::before { content: "\f33b"; } +.bi-exclamation::before { content: "\f33c"; } +.bi-exclude::before { content: "\f33d"; } +.bi-eye-fill::before { content: "\f33e"; } +.bi-eye-slash-fill::before { content: "\f33f"; } +.bi-eye-slash::before { content: "\f340"; } +.bi-eye::before { content: "\f341"; } +.bi-eyedropper::before { content: "\f342"; } +.bi-eyeglasses::before { content: "\f343"; } +.bi-facebook::before { content: "\f344"; } +.bi-file-arrow-down-fill::before { content: "\f345"; } +.bi-file-arrow-down::before { content: "\f346"; } +.bi-file-arrow-up-fill::before { content: "\f347"; } +.bi-file-arrow-up::before { content: "\f348"; } +.bi-file-bar-graph-fill::before { content: "\f349"; } +.bi-file-bar-graph::before { content: "\f34a"; } +.bi-file-binary-fill::before { content: "\f34b"; } +.bi-file-binary::before { content: "\f34c"; } +.bi-file-break-fill::before { content: "\f34d"; } +.bi-file-break::before { content: "\f34e"; } +.bi-file-check-fill::before { content: "\f34f"; } +.bi-file-check::before { content: "\f350"; } +.bi-file-code-fill::before { content: "\f351"; } +.bi-file-code::before { content: "\f352"; } +.bi-file-diff-fill::before { content: "\f353"; } +.bi-file-diff::before { content: "\f354"; } +.bi-file-earmark-arrow-down-fill::before { content: "\f355"; } +.bi-file-earmark-arrow-down::before { content: "\f356"; } +.bi-file-earmark-arrow-up-fill::before { content: "\f357"; } +.bi-file-earmark-arrow-up::before { content: "\f358"; } +.bi-file-earmark-bar-graph-fill::before { content: "\f359"; } +.bi-file-earmark-bar-graph::before { content: "\f35a"; } +.bi-file-earmark-binary-fill::before { content: "\f35b"; } +.bi-file-earmark-binary::before { content: "\f35c"; } +.bi-file-earmark-break-fill::before { content: "\f35d"; } +.bi-file-earmark-break::before { content: "\f35e"; } +.bi-file-earmark-check-fill::before { content: "\f35f"; } +.bi-file-earmark-check::before { content: "\f360"; } +.bi-file-earmark-code-fill::before { content: "\f361"; } +.bi-file-earmark-code::before { content: "\f362"; } +.bi-file-earmark-diff-fill::before { content: "\f363"; } +.bi-file-earmark-diff::before { content: "\f364"; } +.bi-file-earmark-easel-fill::before { content: "\f365"; } +.bi-file-earmark-easel::before { content: "\f366"; } +.bi-file-earmark-excel-fill::before { content: "\f367"; } +.bi-file-earmark-excel::before { content: "\f368"; } +.bi-file-earmark-fill::before { content: "\f369"; } +.bi-file-earmark-font-fill::before { content: "\f36a"; } +.bi-file-earmark-font::before { content: "\f36b"; } +.bi-file-earmark-image-fill::before { content: "\f36c"; } +.bi-file-earmark-image::before { content: "\f36d"; } +.bi-file-earmark-lock-fill::before { content: "\f36e"; } +.bi-file-earmark-lock::before { content: "\f36f"; } +.bi-file-earmark-lock2-fill::before { content: "\f370"; } +.bi-file-earmark-lock2::before { content: "\f371"; } +.bi-file-earmark-medical-fill::before { content: "\f372"; } +.bi-file-earmark-medical::before { content: "\f373"; } +.bi-file-earmark-minus-fill::before { content: "\f374"; } +.bi-file-earmark-minus::before { content: "\f375"; } +.bi-file-earmark-music-fill::before { content: "\f376"; } +.bi-file-earmark-music::before { content: "\f377"; } +.bi-file-earmark-person-fill::before { content: "\f378"; } +.bi-file-earmark-person::before { content: "\f379"; } +.bi-file-earmark-play-fill::before { content: "\f37a"; } +.bi-file-earmark-play::before { content: "\f37b"; } +.bi-file-earmark-plus-fill::before { content: "\f37c"; } +.bi-file-earmark-plus::before { content: "\f37d"; } +.bi-file-earmark-post-fill::before { content: "\f37e"; } +.bi-file-earmark-post::before { content: "\f37f"; } +.bi-file-earmark-ppt-fill::before { content: "\f380"; } +.bi-file-earmark-ppt::before { content: "\f381"; } +.bi-file-earmark-richtext-fill::before { content: "\f382"; } +.bi-file-earmark-richtext::before { content: "\f383"; } +.bi-file-earmark-ruled-fill::before { content: "\f384"; } +.bi-file-earmark-ruled::before { content: "\f385"; } +.bi-file-earmark-slides-fill::before { content: "\f386"; } +.bi-file-earmark-slides::before { content: "\f387"; } +.bi-file-earmark-spreadsheet-fill::before { content: "\f388"; } +.bi-file-earmark-spreadsheet::before { content: "\f389"; } +.bi-file-earmark-text-fill::before { content: "\f38a"; } +.bi-file-earmark-text::before { content: "\f38b"; } +.bi-file-earmark-word-fill::before { content: "\f38c"; } +.bi-file-earmark-word::before { content: "\f38d"; } +.bi-file-earmark-x-fill::before { content: "\f38e"; } +.bi-file-earmark-x::before { content: "\f38f"; } +.bi-file-earmark-zip-fill::before { content: "\f390"; } +.bi-file-earmark-zip::before { content: "\f391"; } +.bi-file-earmark::before { content: "\f392"; } +.bi-file-easel-fill::before { content: "\f393"; } +.bi-file-easel::before { content: "\f394"; } +.bi-file-excel-fill::before { content: "\f395"; } +.bi-file-excel::before { content: "\f396"; } +.bi-file-fill::before { content: "\f397"; } +.bi-file-font-fill::before { content: "\f398"; } +.bi-file-font::before { content: "\f399"; } +.bi-file-image-fill::before { content: "\f39a"; } +.bi-file-image::before { content: "\f39b"; } +.bi-file-lock-fill::before { content: "\f39c"; } +.bi-file-lock::before { content: "\f39d"; } +.bi-file-lock2-fill::before { content: "\f39e"; } +.bi-file-lock2::before { content: "\f39f"; } +.bi-file-medical-fill::before { content: "\f3a0"; } +.bi-file-medical::before { content: "\f3a1"; } +.bi-file-minus-fill::before { content: "\f3a2"; } +.bi-file-minus::before { content: "\f3a3"; } +.bi-file-music-fill::before { content: "\f3a4"; } +.bi-file-music::before { content: "\f3a5"; } +.bi-file-person-fill::before { content: "\f3a6"; } +.bi-file-person::before { content: "\f3a7"; } +.bi-file-play-fill::before { content: "\f3a8"; } +.bi-file-play::before { content: "\f3a9"; } +.bi-file-plus-fill::before { content: "\f3aa"; } +.bi-file-plus::before { content: "\f3ab"; } +.bi-file-post-fill::before { content: "\f3ac"; } +.bi-file-post::before { content: "\f3ad"; } +.bi-file-ppt-fill::before { content: "\f3ae"; } +.bi-file-ppt::before { content: "\f3af"; } +.bi-file-richtext-fill::before { content: "\f3b0"; } +.bi-file-richtext::before { content: "\f3b1"; } +.bi-file-ruled-fill::before { content: "\f3b2"; } +.bi-file-ruled::before { content: "\f3b3"; } +.bi-file-slides-fill::before { content: "\f3b4"; } +.bi-file-slides::before { content: "\f3b5"; } +.bi-file-spreadsheet-fill::before { content: "\f3b6"; } +.bi-file-spreadsheet::before { content: "\f3b7"; } +.bi-file-text-fill::before { content: "\f3b8"; } +.bi-file-text::before { content: "\f3b9"; } +.bi-file-word-fill::before { content: "\f3ba"; } +.bi-file-word::before { content: "\f3bb"; } +.bi-file-x-fill::before { content: "\f3bc"; } +.bi-file-x::before { content: "\f3bd"; } +.bi-file-zip-fill::before { content: "\f3be"; } +.bi-file-zip::before { content: "\f3bf"; } +.bi-file::before { content: "\f3c0"; } +.bi-files-alt::before { content: "\f3c1"; } +.bi-files::before { content: "\f3c2"; } +.bi-film::before { content: "\f3c3"; } +.bi-filter-circle-fill::before { content: "\f3c4"; } +.bi-filter-circle::before { content: "\f3c5"; } +.bi-filter-left::before { content: "\f3c6"; } +.bi-filter-right::before { content: "\f3c7"; } +.bi-filter-square-fill::before { content: "\f3c8"; } +.bi-filter-square::before { content: "\f3c9"; } +.bi-filter::before { content: "\f3ca"; } +.bi-flag-fill::before { content: "\f3cb"; } +.bi-flag::before { content: "\f3cc"; } +.bi-flower1::before { content: "\f3cd"; } +.bi-flower2::before { content: "\f3ce"; } +.bi-flower3::before { content: "\f3cf"; } +.bi-folder-check::before { content: "\f3d0"; } +.bi-folder-fill::before { content: "\f3d1"; } +.bi-folder-minus::before { content: "\f3d2"; } +.bi-folder-plus::before { content: "\f3d3"; } +.bi-folder-symlink-fill::before { content: "\f3d4"; } +.bi-folder-symlink::before { content: "\f3d5"; } +.bi-folder-x::before { content: "\f3d6"; } +.bi-folder::before { content: "\f3d7"; } +.bi-folder2-open::before { content: "\f3d8"; } +.bi-folder2::before { content: "\f3d9"; } +.bi-fonts::before { content: "\f3da"; } +.bi-forward-fill::before { content: "\f3db"; } +.bi-forward::before { content: "\f3dc"; } +.bi-front::before { content: "\f3dd"; } +.bi-fullscreen-exit::before { content: "\f3de"; } +.bi-fullscreen::before { content: "\f3df"; } +.bi-funnel-fill::before { content: "\f3e0"; } +.bi-funnel::before { content: "\f3e1"; } +.bi-gear-fill::before { content: "\f3e2"; } +.bi-gear-wide-connected::before { content: "\f3e3"; } +.bi-gear-wide::before { content: "\f3e4"; } +.bi-gear::before { content: "\f3e5"; } +.bi-gem::before { content: "\f3e6"; } +.bi-geo-alt-fill::before { content: "\f3e7"; } +.bi-geo-alt::before { content: "\f3e8"; } +.bi-geo-fill::before { content: "\f3e9"; } +.bi-geo::before { content: "\f3ea"; } +.bi-gift-fill::before { content: "\f3eb"; } +.bi-gift::before { content: "\f3ec"; } +.bi-github::before { content: "\f3ed"; } +.bi-globe::before { content: "\f3ee"; } +.bi-globe2::before { content: "\f3ef"; } +.bi-google::before { content: "\f3f0"; } +.bi-graph-down::before { content: "\f3f1"; } +.bi-graph-up::before { content: "\f3f2"; } +.bi-grid-1x2-fill::before { content: "\f3f3"; } +.bi-grid-1x2::before { content: "\f3f4"; } +.bi-grid-3x2-gap-fill::before { content: "\f3f5"; } +.bi-grid-3x2-gap::before { content: "\f3f6"; } +.bi-grid-3x2::before { content: "\f3f7"; } +.bi-grid-3x3-gap-fill::before { content: "\f3f8"; } +.bi-grid-3x3-gap::before { content: "\f3f9"; } +.bi-grid-3x3::before { content: "\f3fa"; } +.bi-grid-fill::before { content: "\f3fb"; } +.bi-grid::before { content: "\f3fc"; } +.bi-grip-horizontal::before { content: "\f3fd"; } +.bi-grip-vertical::before { content: "\f3fe"; } +.bi-hammer::before { content: "\f3ff"; } +.bi-hand-index-fill::before { content: "\f400"; } +.bi-hand-index-thumb-fill::before { content: "\f401"; } +.bi-hand-index-thumb::before { content: "\f402"; } +.bi-hand-index::before { content: "\f403"; } +.bi-hand-thumbs-down-fill::before { content: "\f404"; } +.bi-hand-thumbs-down::before { content: "\f405"; } +.bi-hand-thumbs-up-fill::before { content: "\f406"; } +.bi-hand-thumbs-up::before { content: "\f407"; } +.bi-handbag-fill::before { content: "\f408"; } +.bi-handbag::before { content: "\f409"; } +.bi-hash::before { content: "\f40a"; } +.bi-hdd-fill::before { content: "\f40b"; } +.bi-hdd-network-fill::before { content: "\f40c"; } +.bi-hdd-network::before { content: "\f40d"; } +.bi-hdd-rack-fill::before { content: "\f40e"; } +.bi-hdd-rack::before { content: "\f40f"; } +.bi-hdd-stack-fill::before { content: "\f410"; } +.bi-hdd-stack::before { content: "\f411"; } +.bi-hdd::before { content: "\f412"; } +.bi-headphones::before { content: "\f413"; } +.bi-headset::before { content: "\f414"; } +.bi-heart-fill::before { content: "\f415"; } +.bi-heart-half::before { content: "\f416"; } +.bi-heart::before { content: "\f417"; } +.bi-heptagon-fill::before { content: "\f418"; } +.bi-heptagon-half::before { content: "\f419"; } +.bi-heptagon::before { content: "\f41a"; } +.bi-hexagon-fill::before { content: "\f41b"; } +.bi-hexagon-half::before { content: "\f41c"; } +.bi-hexagon::before { content: "\f41d"; } +.bi-hourglass-bottom::before { content: "\f41e"; } +.bi-hourglass-split::before { content: "\f41f"; } +.bi-hourglass-top::before { content: "\f420"; } +.bi-hourglass::before { content: "\f421"; } +.bi-house-door-fill::before { content: "\f422"; } +.bi-house-door::before { content: "\f423"; } +.bi-house-fill::before { content: "\f424"; } +.bi-house::before { content: "\f425"; } +.bi-hr::before { content: "\f426"; } +.bi-hurricane::before { content: "\f427"; } +.bi-image-alt::before { content: "\f428"; } +.bi-image-fill::before { content: "\f429"; } +.bi-image::before { content: "\f42a"; } +.bi-images::before { content: "\f42b"; } +.bi-inbox-fill::before { content: "\f42c"; } +.bi-inbox::before { content: "\f42d"; } +.bi-inboxes-fill::before { content: "\f42e"; } +.bi-inboxes::before { content: "\f42f"; } +.bi-info-circle-fill::before { content: "\f430"; } +.bi-info-circle::before { content: "\f431"; } +.bi-info-square-fill::before { content: "\f432"; } +.bi-info-square::before { content: "\f433"; } +.bi-info::before { content: "\f434"; } +.bi-input-cursor-text::before { content: "\f435"; } +.bi-input-cursor::before { content: "\f436"; } +.bi-instagram::before { content: "\f437"; } +.bi-intersect::before { content: "\f438"; } +.bi-journal-album::before { content: "\f439"; } +.bi-journal-arrow-down::before { content: "\f43a"; } +.bi-journal-arrow-up::before { content: "\f43b"; } +.bi-journal-bookmark-fill::before { content: "\f43c"; } +.bi-journal-bookmark::before { content: "\f43d"; } +.bi-journal-check::before { content: "\f43e"; } +.bi-journal-code::before { content: "\f43f"; } +.bi-journal-medical::before { content: "\f440"; } +.bi-journal-minus::before { content: "\f441"; } +.bi-journal-plus::before { content: "\f442"; } +.bi-journal-richtext::before { content: "\f443"; } +.bi-journal-text::before { content: "\f444"; } +.bi-journal-x::before { content: "\f445"; } +.bi-journal::before { content: "\f446"; } +.bi-journals::before { content: "\f447"; } +.bi-joystick::before { content: "\f448"; } +.bi-justify-left::before { content: "\f449"; } +.bi-justify-right::before { content: "\f44a"; } +.bi-justify::before { content: "\f44b"; } +.bi-kanban-fill::before { content: "\f44c"; } +.bi-kanban::before { content: "\f44d"; } +.bi-key-fill::before { content: "\f44e"; } +.bi-key::before { content: "\f44f"; } +.bi-keyboard-fill::before { content: "\f450"; } +.bi-keyboard::before { content: "\f451"; } +.bi-ladder::before { content: "\f452"; } +.bi-lamp-fill::before { content: "\f453"; } +.bi-lamp::before { content: "\f454"; } +.bi-laptop-fill::before { content: "\f455"; } +.bi-laptop::before { content: "\f456"; } +.bi-layer-backward::before { content: "\f457"; } +.bi-layer-forward::before { content: "\f458"; } +.bi-layers-fill::before { content: "\f459"; } +.bi-layers-half::before { content: "\f45a"; } +.bi-layers::before { content: "\f45b"; } +.bi-layout-sidebar-inset-reverse::before { content: "\f45c"; } +.bi-layout-sidebar-inset::before { content: "\f45d"; } +.bi-layout-sidebar-reverse::before { content: "\f45e"; } +.bi-layout-sidebar::before { content: "\f45f"; } +.bi-layout-split::before { content: "\f460"; } +.bi-layout-text-sidebar-reverse::before { content: "\f461"; } +.bi-layout-text-sidebar::before { content: "\f462"; } +.bi-layout-text-window-reverse::before { content: "\f463"; } +.bi-layout-text-window::before { content: "\f464"; } +.bi-layout-three-columns::before { content: "\f465"; } +.bi-layout-wtf::before { content: "\f466"; } +.bi-life-preserver::before { content: "\f467"; } +.bi-lightbulb-fill::before { content: "\f468"; } +.bi-lightbulb-off-fill::before { content: "\f469"; } +.bi-lightbulb-off::before { content: "\f46a"; } +.bi-lightbulb::before { content: "\f46b"; } +.bi-lightning-charge-fill::before { content: "\f46c"; } +.bi-lightning-charge::before { content: "\f46d"; } +.bi-lightning-fill::before { content: "\f46e"; } +.bi-lightning::before { content: "\f46f"; } +.bi-link-45deg::before { content: "\f470"; } +.bi-link::before { content: "\f471"; } +.bi-linkedin::before { content: "\f472"; } +.bi-list-check::before { content: "\f473"; } +.bi-list-nested::before { content: "\f474"; } +.bi-list-ol::before { content: "\f475"; } +.bi-list-stars::before { content: "\f476"; } +.bi-list-task::before { content: "\f477"; } +.bi-list-ul::before { content: "\f478"; } +.bi-list::before { content: "\f479"; } +.bi-lock-fill::before { content: "\f47a"; } +.bi-lock::before { content: "\f47b"; } +.bi-mailbox::before { content: "\f47c"; } +.bi-mailbox2::before { content: "\f47d"; } +.bi-map-fill::before { content: "\f47e"; } +.bi-map::before { content: "\f47f"; } +.bi-markdown-fill::before { content: "\f480"; } +.bi-markdown::before { content: "\f481"; } +.bi-mask::before { content: "\f482"; } +.bi-megaphone-fill::before { content: "\f483"; } +.bi-megaphone::before { content: "\f484"; } +.bi-menu-app-fill::before { content: "\f485"; } +.bi-menu-app::before { content: "\f486"; } +.bi-menu-button-fill::before { content: "\f487"; } +.bi-menu-button-wide-fill::before { content: "\f488"; } +.bi-menu-button-wide::before { content: "\f489"; } +.bi-menu-button::before { content: "\f48a"; } +.bi-menu-down::before { content: "\f48b"; } +.bi-menu-up::before { content: "\f48c"; } +.bi-mic-fill::before { content: "\f48d"; } +.bi-mic-mute-fill::before { content: "\f48e"; } +.bi-mic-mute::before { content: "\f48f"; } +.bi-mic::before { content: "\f490"; } +.bi-minecart-loaded::before { content: "\f491"; } +.bi-minecart::before { content: "\f492"; } +.bi-moisture::before { content: "\f493"; } +.bi-moon-fill::before { content: "\f494"; } +.bi-moon-stars-fill::before { content: "\f495"; } +.bi-moon-stars::before { content: "\f496"; } +.bi-moon::before { content: "\f497"; } +.bi-mouse-fill::before { content: "\f498"; } +.bi-mouse::before { content: "\f499"; } +.bi-mouse2-fill::before { content: "\f49a"; } +.bi-mouse2::before { content: "\f49b"; } +.bi-mouse3-fill::before { content: "\f49c"; } +.bi-mouse3::before { content: "\f49d"; } +.bi-music-note-beamed::before { content: "\f49e"; } +.bi-music-note-list::before { content: "\f49f"; } +.bi-music-note::before { content: "\f4a0"; } +.bi-music-player-fill::before { content: "\f4a1"; } +.bi-music-player::before { content: "\f4a2"; } +.bi-newspaper::before { content: "\f4a3"; } +.bi-node-minus-fill::before { content: "\f4a4"; } +.bi-node-minus::before { content: "\f4a5"; } +.bi-node-plus-fill::before { content: "\f4a6"; } +.bi-node-plus::before { content: "\f4a7"; } +.bi-nut-fill::before { content: "\f4a8"; } +.bi-nut::before { content: "\f4a9"; } +.bi-octagon-fill::before { content: "\f4aa"; } +.bi-octagon-half::before { content: "\f4ab"; } +.bi-octagon::before { content: "\f4ac"; } +.bi-option::before { content: "\f4ad"; } +.bi-outlet::before { content: "\f4ae"; } +.bi-paint-bucket::before { content: "\f4af"; } +.bi-palette-fill::before { content: "\f4b0"; } +.bi-palette::before { content: "\f4b1"; } +.bi-palette2::before { content: "\f4b2"; } +.bi-paperclip::before { content: "\f4b3"; } +.bi-paragraph::before { content: "\f4b4"; } +.bi-patch-check-fill::before { content: "\f4b5"; } +.bi-patch-check::before { content: "\f4b6"; } +.bi-patch-exclamation-fill::before { content: "\f4b7"; } +.bi-patch-exclamation::before { content: "\f4b8"; } +.bi-patch-minus-fill::before { content: "\f4b9"; } +.bi-patch-minus::before { content: "\f4ba"; } +.bi-patch-plus-fill::before { content: "\f4bb"; } +.bi-patch-plus::before { content: "\f4bc"; } +.bi-patch-question-fill::before { content: "\f4bd"; } +.bi-patch-question::before { content: "\f4be"; } +.bi-pause-btn-fill::before { content: "\f4bf"; } +.bi-pause-btn::before { content: "\f4c0"; } +.bi-pause-circle-fill::before { content: "\f4c1"; } +.bi-pause-circle::before { content: "\f4c2"; } +.bi-pause-fill::before { content: "\f4c3"; } +.bi-pause::before { content: "\f4c4"; } +.bi-peace-fill::before { content: "\f4c5"; } +.bi-peace::before { content: "\f4c6"; } +.bi-pen-fill::before { content: "\f4c7"; } +.bi-pen::before { content: "\f4c8"; } +.bi-pencil-fill::before { content: "\f4c9"; } +.bi-pencil-square::before { content: "\f4ca"; } +.bi-pencil::before { content: "\f4cb"; } +.bi-pentagon-fill::before { content: "\f4cc"; } +.bi-pentagon-half::before { content: "\f4cd"; } +.bi-pentagon::before { content: "\f4ce"; } +.bi-people-fill::before { content: "\f4cf"; } +.bi-people::before { content: "\f4d0"; } +.bi-percent::before { content: "\f4d1"; } +.bi-person-badge-fill::before { content: "\f4d2"; } +.bi-person-badge::before { content: "\f4d3"; } +.bi-person-bounding-box::before { content: "\f4d4"; } +.bi-person-check-fill::before { content: "\f4d5"; } +.bi-person-check::before { content: "\f4d6"; } +.bi-person-circle::before { content: "\f4d7"; } +.bi-person-dash-fill::before { content: "\f4d8"; } +.bi-person-dash::before { content: "\f4d9"; } +.bi-person-fill::before { content: "\f4da"; } +.bi-person-lines-fill::before { content: "\f4db"; } +.bi-person-plus-fill::before { content: "\f4dc"; } +.bi-person-plus::before { content: "\f4dd"; } +.bi-person-square::before { content: "\f4de"; } +.bi-person-x-fill::before { content: "\f4df"; } +.bi-person-x::before { content: "\f4e0"; } +.bi-person::before { content: "\f4e1"; } +.bi-phone-fill::before { content: "\f4e2"; } +.bi-phone-landscape-fill::before { content: "\f4e3"; } +.bi-phone-landscape::before { content: "\f4e4"; } +.bi-phone-vibrate-fill::before { content: "\f4e5"; } +.bi-phone-vibrate::before { content: "\f4e6"; } +.bi-phone::before { content: "\f4e7"; } +.bi-pie-chart-fill::before { content: "\f4e8"; } +.bi-pie-chart::before { content: "\f4e9"; } +.bi-pin-angle-fill::before { content: "\f4ea"; } +.bi-pin-angle::before { content: "\f4eb"; } +.bi-pin-fill::before { content: "\f4ec"; } +.bi-pin::before { content: "\f4ed"; } +.bi-pip-fill::before { content: "\f4ee"; } +.bi-pip::before { content: "\f4ef"; } +.bi-play-btn-fill::before { content: "\f4f0"; } +.bi-play-btn::before { content: "\f4f1"; } +.bi-play-circle-fill::before { content: "\f4f2"; } +.bi-play-circle::before { content: "\f4f3"; } +.bi-play-fill::before { content: "\f4f4"; } +.bi-play::before { content: "\f4f5"; } +.bi-plug-fill::before { content: "\f4f6"; } +.bi-plug::before { content: "\f4f7"; } +.bi-plus-circle-dotted::before { content: "\f4f8"; } +.bi-plus-circle-fill::before { content: "\f4f9"; } +.bi-plus-circle::before { content: "\f4fa"; } +.bi-plus-square-dotted::before { content: "\f4fb"; } +.bi-plus-square-fill::before { content: "\f4fc"; } +.bi-plus-square::before { content: "\f4fd"; } +.bi-plus::before { content: "\f4fe"; } +.bi-power::before { content: "\f4ff"; } +.bi-printer-fill::before { content: "\f500"; } +.bi-printer::before { content: "\f501"; } +.bi-puzzle-fill::before { content: "\f502"; } +.bi-puzzle::before { content: "\f503"; } +.bi-question-circle-fill::before { content: "\f504"; } +.bi-question-circle::before { content: "\f505"; } +.bi-question-diamond-fill::before { content: "\f506"; } +.bi-question-diamond::before { content: "\f507"; } +.bi-question-octagon-fill::before { content: "\f508"; } +.bi-question-octagon::before { content: "\f509"; } +.bi-question-square-fill::before { content: "\f50a"; } +.bi-question-square::before { content: "\f50b"; } +.bi-question::before { content: "\f50c"; } +.bi-rainbow::before { content: "\f50d"; } +.bi-receipt-cutoff::before { content: "\f50e"; } +.bi-receipt::before { content: "\f50f"; } +.bi-reception-0::before { content: "\f510"; } +.bi-reception-1::before { content: "\f511"; } +.bi-reception-2::before { content: "\f512"; } +.bi-reception-3::before { content: "\f513"; } +.bi-reception-4::before { content: "\f514"; } +.bi-record-btn-fill::before { content: "\f515"; } +.bi-record-btn::before { content: "\f516"; } +.bi-record-circle-fill::before { content: "\f517"; } +.bi-record-circle::before { content: "\f518"; } +.bi-record-fill::before { content: "\f519"; } +.bi-record::before { content: "\f51a"; } +.bi-record2-fill::before { content: "\f51b"; } +.bi-record2::before { content: "\f51c"; } +.bi-reply-all-fill::before { content: "\f51d"; } +.bi-reply-all::before { content: "\f51e"; } +.bi-reply-fill::before { content: "\f51f"; } +.bi-reply::before { content: "\f520"; } +.bi-rss-fill::before { content: "\f521"; } +.bi-rss::before { content: "\f522"; } +.bi-rulers::before { content: "\f523"; } +.bi-save-fill::before { content: "\f524"; } +.bi-save::before { content: "\f525"; } +.bi-save2-fill::before { content: "\f526"; } +.bi-save2::before { content: "\f527"; } +.bi-scissors::before { content: "\f528"; } +.bi-screwdriver::before { content: "\f529"; } +.bi-search::before { content: "\f52a"; } +.bi-segmented-nav::before { content: "\f52b"; } +.bi-server::before { content: "\f52c"; } +.bi-share-fill::before { content: "\f52d"; } +.bi-share::before { content: "\f52e"; } +.bi-shield-check::before { content: "\f52f"; } +.bi-shield-exclamation::before { content: "\f530"; } +.bi-shield-fill-check::before { content: "\f531"; } +.bi-shield-fill-exclamation::before { content: "\f532"; } +.bi-shield-fill-minus::before { content: "\f533"; } +.bi-shield-fill-plus::before { content: "\f534"; } +.bi-shield-fill-x::before { content: "\f535"; } +.bi-shield-fill::before { content: "\f536"; } +.bi-shield-lock-fill::before { content: "\f537"; } +.bi-shield-lock::before { content: "\f538"; } +.bi-shield-minus::before { content: "\f539"; } +.bi-shield-plus::before { content: "\f53a"; } +.bi-shield-shaded::before { content: "\f53b"; } +.bi-shield-slash-fill::before { content: "\f53c"; } +.bi-shield-slash::before { content: "\f53d"; } +.bi-shield-x::before { content: "\f53e"; } +.bi-shield::before { content: "\f53f"; } +.bi-shift-fill::before { content: "\f540"; } +.bi-shift::before { content: "\f541"; } +.bi-shop-window::before { content: "\f542"; } +.bi-shop::before { content: "\f543"; } +.bi-shuffle::before { content: "\f544"; } +.bi-signpost-2-fill::before { content: "\f545"; } +.bi-signpost-2::before { content: "\f546"; } +.bi-signpost-fill::before { content: "\f547"; } +.bi-signpost-split-fill::before { content: "\f548"; } +.bi-signpost-split::before { content: "\f549"; } +.bi-signpost::before { content: "\f54a"; } +.bi-sim-fill::before { content: "\f54b"; } +.bi-sim::before { content: "\f54c"; } +.bi-skip-backward-btn-fill::before { content: "\f54d"; } +.bi-skip-backward-btn::before { content: "\f54e"; } +.bi-skip-backward-circle-fill::before { content: "\f54f"; } +.bi-skip-backward-circle::before { content: "\f550"; } +.bi-skip-backward-fill::before { content: "\f551"; } +.bi-skip-backward::before { content: "\f552"; } +.bi-skip-end-btn-fill::before { content: "\f553"; } +.bi-skip-end-btn::before { content: "\f554"; } +.bi-skip-end-circle-fill::before { content: "\f555"; } +.bi-skip-end-circle::before { content: "\f556"; } +.bi-skip-end-fill::before { content: "\f557"; } +.bi-skip-end::before { content: "\f558"; } +.bi-skip-forward-btn-fill::before { content: "\f559"; } +.bi-skip-forward-btn::before { content: "\f55a"; } +.bi-skip-forward-circle-fill::before { content: "\f55b"; } +.bi-skip-forward-circle::before { content: "\f55c"; } +.bi-skip-forward-fill::before { content: "\f55d"; } +.bi-skip-forward::before { content: "\f55e"; } +.bi-skip-start-btn-fill::before { content: "\f55f"; } +.bi-skip-start-btn::before { content: "\f560"; } +.bi-skip-start-circle-fill::before { content: "\f561"; } +.bi-skip-start-circle::before { content: "\f562"; } +.bi-skip-start-fill::before { content: "\f563"; } +.bi-skip-start::before { content: "\f564"; } +.bi-slack::before { content: "\f565"; } +.bi-slash-circle-fill::before { content: "\f566"; } +.bi-slash-circle::before { content: "\f567"; } +.bi-slash-square-fill::before { content: "\f568"; } +.bi-slash-square::before { content: "\f569"; } +.bi-slash::before { content: "\f56a"; } +.bi-sliders::before { content: "\f56b"; } +.bi-smartwatch::before { content: "\f56c"; } +.bi-snow::before { content: "\f56d"; } +.bi-snow2::before { content: "\f56e"; } +.bi-snow3::before { content: "\f56f"; } +.bi-sort-alpha-down-alt::before { content: "\f570"; } +.bi-sort-alpha-down::before { content: "\f571"; } +.bi-sort-alpha-up-alt::before { content: "\f572"; } +.bi-sort-alpha-up::before { content: "\f573"; } +.bi-sort-down-alt::before { content: "\f574"; } +.bi-sort-down::before { content: "\f575"; } +.bi-sort-numeric-down-alt::before { content: "\f576"; } +.bi-sort-numeric-down::before { content: "\f577"; } +.bi-sort-numeric-up-alt::before { content: "\f578"; } +.bi-sort-numeric-up::before { content: "\f579"; } +.bi-sort-up-alt::before { content: "\f57a"; } +.bi-sort-up::before { content: "\f57b"; } +.bi-soundwave::before { content: "\f57c"; } +.bi-speaker-fill::before { content: "\f57d"; } +.bi-speaker::before { content: "\f57e"; } +.bi-speedometer::before { content: "\f57f"; } +.bi-speedometer2::before { content: "\f580"; } +.bi-spellcheck::before { content: "\f581"; } +.bi-square-fill::before { content: "\f582"; } +.bi-square-half::before { content: "\f583"; } +.bi-square::before { content: "\f584"; } +.bi-stack::before { content: "\f585"; } +.bi-star-fill::before { content: "\f586"; } +.bi-star-half::before { content: "\f587"; } +.bi-star::before { content: "\f588"; } +.bi-stars::before { content: "\f589"; } +.bi-stickies-fill::before { content: "\f58a"; } +.bi-stickies::before { content: "\f58b"; } +.bi-sticky-fill::before { content: "\f58c"; } +.bi-sticky::before { content: "\f58d"; } +.bi-stop-btn-fill::before { content: "\f58e"; } +.bi-stop-btn::before { content: "\f58f"; } +.bi-stop-circle-fill::before { content: "\f590"; } +.bi-stop-circle::before { content: "\f591"; } +.bi-stop-fill::before { content: "\f592"; } +.bi-stop::before { content: "\f593"; } +.bi-stoplights-fill::before { content: "\f594"; } +.bi-stoplights::before { content: "\f595"; } +.bi-stopwatch-fill::before { content: "\f596"; } +.bi-stopwatch::before { content: "\f597"; } +.bi-subtract::before { content: "\f598"; } +.bi-suit-club-fill::before { content: "\f599"; } +.bi-suit-club::before { content: "\f59a"; } +.bi-suit-diamond-fill::before { content: "\f59b"; } +.bi-suit-diamond::before { content: "\f59c"; } +.bi-suit-heart-fill::before { content: "\f59d"; } +.bi-suit-heart::before { content: "\f59e"; } +.bi-suit-spade-fill::before { content: "\f59f"; } +.bi-suit-spade::before { content: "\f5a0"; } +.bi-sun-fill::before { content: "\f5a1"; } +.bi-sun::before { content: "\f5a2"; } +.bi-sunglasses::before { content: "\f5a3"; } +.bi-sunrise-fill::before { content: "\f5a4"; } +.bi-sunrise::before { content: "\f5a5"; } +.bi-sunset-fill::before { content: "\f5a6"; } +.bi-sunset::before { content: "\f5a7"; } +.bi-symmetry-horizontal::before { content: "\f5a8"; } +.bi-symmetry-vertical::before { content: "\f5a9"; } +.bi-table::before { content: "\f5aa"; } +.bi-tablet-fill::before { content: "\f5ab"; } +.bi-tablet-landscape-fill::before { content: "\f5ac"; } +.bi-tablet-landscape::before { content: "\f5ad"; } +.bi-tablet::before { content: "\f5ae"; } +.bi-tag-fill::before { content: "\f5af"; } +.bi-tag::before { content: "\f5b0"; } +.bi-tags-fill::before { content: "\f5b1"; } +.bi-tags::before { content: "\f5b2"; } +.bi-telegram::before { content: "\f5b3"; } +.bi-telephone-fill::before { content: "\f5b4"; } +.bi-telephone-forward-fill::before { content: "\f5b5"; } +.bi-telephone-forward::before { content: "\f5b6"; } +.bi-telephone-inbound-fill::before { content: "\f5b7"; } +.bi-telephone-inbound::before { content: "\f5b8"; } +.bi-telephone-minus-fill::before { content: "\f5b9"; } +.bi-telephone-minus::before { content: "\f5ba"; } +.bi-telephone-outbound-fill::before { content: "\f5bb"; } +.bi-telephone-outbound::before { content: "\f5bc"; } +.bi-telephone-plus-fill::before { content: "\f5bd"; } +.bi-telephone-plus::before { content: "\f5be"; } +.bi-telephone-x-fill::before { content: "\f5bf"; } +.bi-telephone-x::before { content: "\f5c0"; } +.bi-telephone::before { content: "\f5c1"; } +.bi-terminal-fill::before { content: "\f5c2"; } +.bi-terminal::before { content: "\f5c3"; } +.bi-text-center::before { content: "\f5c4"; } +.bi-text-indent-left::before { content: "\f5c5"; } +.bi-text-indent-right::before { content: "\f5c6"; } +.bi-text-left::before { content: "\f5c7"; } +.bi-text-paragraph::before { content: "\f5c8"; } +.bi-text-right::before { content: "\f5c9"; } +.bi-textarea-resize::before { content: "\f5ca"; } +.bi-textarea-t::before { content: "\f5cb"; } +.bi-textarea::before { content: "\f5cc"; } +.bi-thermometer-half::before { content: "\f5cd"; } +.bi-thermometer-high::before { content: "\f5ce"; } +.bi-thermometer-low::before { content: "\f5cf"; } +.bi-thermometer-snow::before { content: "\f5d0"; } +.bi-thermometer-sun::before { content: "\f5d1"; } +.bi-thermometer::before { content: "\f5d2"; } +.bi-three-dots-vertical::before { content: "\f5d3"; } +.bi-three-dots::before { content: "\f5d4"; } +.bi-toggle-off::before { content: "\f5d5"; } +.bi-toggle-on::before { content: "\f5d6"; } +.bi-toggle2-off::before { content: "\f5d7"; } +.bi-toggle2-on::before { content: "\f5d8"; } +.bi-toggles::before { content: "\f5d9"; } +.bi-toggles2::before { content: "\f5da"; } +.bi-tools::before { content: "\f5db"; } +.bi-tornado::before { content: "\f5dc"; } +.bi-trash-fill::before { content: "\f5dd"; } +.bi-trash::before { content: "\f5de"; } +.bi-trash2-fill::before { content: "\f5df"; } +.bi-trash2::before { content: "\f5e0"; } +.bi-tree-fill::before { content: "\f5e1"; } +.bi-tree::before { content: "\f5e2"; } +.bi-triangle-fill::before { content: "\f5e3"; } +.bi-triangle-half::before { content: "\f5e4"; } +.bi-triangle::before { content: "\f5e5"; } +.bi-trophy-fill::before { content: "\f5e6"; } +.bi-trophy::before { content: "\f5e7"; } +.bi-tropical-storm::before { content: "\f5e8"; } +.bi-truck-flatbed::before { content: "\f5e9"; } +.bi-truck::before { content: "\f5ea"; } +.bi-tsunami::before { content: "\f5eb"; } +.bi-tv-fill::before { content: "\f5ec"; } +.bi-tv::before { content: "\f5ed"; } +.bi-twitch::before { content: "\f5ee"; } +.bi-twitter::before { content: "\f5ef"; } +.bi-type-bold::before { content: "\f5f0"; } +.bi-type-h1::before { content: "\f5f1"; } +.bi-type-h2::before { content: "\f5f2"; } +.bi-type-h3::before { content: "\f5f3"; } +.bi-type-italic::before { content: "\f5f4"; } +.bi-type-strikethrough::before { content: "\f5f5"; } +.bi-type-underline::before { content: "\f5f6"; } +.bi-type::before { content: "\f5f7"; } +.bi-ui-checks-grid::before { content: "\f5f8"; } +.bi-ui-checks::before { content: "\f5f9"; } +.bi-ui-radios-grid::before { content: "\f5fa"; } +.bi-ui-radios::before { content: "\f5fb"; } +.bi-umbrella-fill::before { content: "\f5fc"; } +.bi-umbrella::before { content: "\f5fd"; } +.bi-union::before { content: "\f5fe"; } +.bi-unlock-fill::before { content: "\f5ff"; } +.bi-unlock::before { content: "\f600"; } +.bi-upc-scan::before { content: "\f601"; } +.bi-upc::before { content: "\f602"; } +.bi-upload::before { content: "\f603"; } +.bi-vector-pen::before { content: "\f604"; } +.bi-view-list::before { content: "\f605"; } +.bi-view-stacked::before { content: "\f606"; } +.bi-vinyl-fill::before { content: "\f607"; } +.bi-vinyl::before { content: "\f608"; } +.bi-voicemail::before { content: "\f609"; } +.bi-volume-down-fill::before { content: "\f60a"; } +.bi-volume-down::before { content: "\f60b"; } +.bi-volume-mute-fill::before { content: "\f60c"; } +.bi-volume-mute::before { content: "\f60d"; } +.bi-volume-off-fill::before { content: "\f60e"; } +.bi-volume-off::before { content: "\f60f"; } +.bi-volume-up-fill::before { content: "\f610"; } +.bi-volume-up::before { content: "\f611"; } +.bi-vr::before { content: "\f612"; } +.bi-wallet-fill::before { content: "\f613"; } +.bi-wallet::before { content: "\f614"; } +.bi-wallet2::before { content: "\f615"; } +.bi-watch::before { content: "\f616"; } +.bi-water::before { content: "\f617"; } +.bi-whatsapp::before { content: "\f618"; } +.bi-wifi-1::before { content: "\f619"; } +.bi-wifi-2::before { content: "\f61a"; } +.bi-wifi-off::before { content: "\f61b"; } +.bi-wifi::before { content: "\f61c"; } +.bi-wind::before { content: "\f61d"; } +.bi-window-dock::before { content: "\f61e"; } +.bi-window-sidebar::before { content: "\f61f"; } +.bi-window::before { content: "\f620"; } +.bi-wrench::before { content: "\f621"; } +.bi-x-circle-fill::before { content: "\f622"; } +.bi-x-circle::before { content: "\f623"; } +.bi-x-diamond-fill::before { content: "\f624"; } +.bi-x-diamond::before { content: "\f625"; } +.bi-x-octagon-fill::before { content: "\f626"; } +.bi-x-octagon::before { content: "\f627"; } +.bi-x-square-fill::before { content: "\f628"; } +.bi-x-square::before { content: "\f629"; } +.bi-x::before { content: "\f62a"; } +.bi-youtube::before { content: "\f62b"; } +.bi-zoom-in::before { content: "\f62c"; } +.bi-zoom-out::before { content: "\f62d"; } +.bi-bank::before { content: "\f62e"; } +.bi-bank2::before { content: "\f62f"; } +.bi-bell-slash-fill::before { content: "\f630"; } +.bi-bell-slash::before { content: "\f631"; } +.bi-cash-coin::before { content: "\f632"; } +.bi-check-lg::before { content: "\f633"; } +.bi-coin::before { content: "\f634"; } +.bi-currency-bitcoin::before { content: "\f635"; } +.bi-currency-dollar::before { content: "\f636"; } +.bi-currency-euro::before { content: "\f637"; } +.bi-currency-exchange::before { content: "\f638"; } +.bi-currency-pound::before { content: "\f639"; } +.bi-currency-yen::before { content: "\f63a"; } +.bi-dash-lg::before { content: "\f63b"; } +.bi-exclamation-lg::before { content: "\f63c"; } +.bi-file-earmark-pdf-fill::before { content: "\f63d"; } +.bi-file-earmark-pdf::before { content: "\f63e"; } +.bi-file-pdf-fill::before { content: "\f63f"; } +.bi-file-pdf::before { content: "\f640"; } +.bi-gender-ambiguous::before { content: "\f641"; } +.bi-gender-female::before { content: "\f642"; } +.bi-gender-male::before { content: "\f643"; } +.bi-gender-trans::before { content: "\f644"; } +.bi-headset-vr::before { content: "\f645"; } +.bi-info-lg::before { content: "\f646"; } +.bi-mastodon::before { content: "\f647"; } +.bi-messenger::before { content: "\f648"; } +.bi-piggy-bank-fill::before { content: "\f649"; } +.bi-piggy-bank::before { content: "\f64a"; } +.bi-pin-map-fill::before { content: "\f64b"; } +.bi-pin-map::before { content: "\f64c"; } +.bi-plus-lg::before { content: "\f64d"; } +.bi-question-lg::before { content: "\f64e"; } +.bi-recycle::before { content: "\f64f"; } +.bi-reddit::before { content: "\f650"; } +.bi-safe-fill::before { content: "\f651"; } +.bi-safe2-fill::before { content: "\f652"; } +.bi-safe2::before { content: "\f653"; } +.bi-sd-card-fill::before { content: "\f654"; } +.bi-sd-card::before { content: "\f655"; } +.bi-skype::before { content: "\f656"; } +.bi-slash-lg::before { content: "\f657"; } +.bi-translate::before { content: "\f658"; } +.bi-x-lg::before { content: "\f659"; } +.bi-safe::before { content: "\f65a"; } +.bi-apple::before { content: "\f65b"; } +.bi-microsoft::before { content: "\f65d"; } +.bi-windows::before { content: "\f65e"; } +.bi-behance::before { content: "\f65c"; } +.bi-dribbble::before { content: "\f65f"; } +.bi-line::before { content: "\f660"; } +.bi-medium::before { content: "\f661"; } +.bi-paypal::before { content: "\f662"; } +.bi-pinterest::before { content: "\f663"; } +.bi-signal::before { content: "\f664"; } +.bi-snapchat::before { content: "\f665"; } +.bi-spotify::before { content: "\f666"; } +.bi-stack-overflow::before { content: "\f667"; } +.bi-strava::before { content: "\f668"; } +.bi-wordpress::before { content: "\f669"; } +.bi-vimeo::before { content: "\f66a"; } +.bi-activity::before { content: "\f66b"; } +.bi-easel2-fill::before { content: "\f66c"; } +.bi-easel2::before { content: "\f66d"; } +.bi-easel3-fill::before { content: "\f66e"; } +.bi-easel3::before { content: "\f66f"; } +.bi-fan::before { content: "\f670"; } +.bi-fingerprint::before { content: "\f671"; } +.bi-graph-down-arrow::before { content: "\f672"; } +.bi-graph-up-arrow::before { content: "\f673"; } +.bi-hypnotize::before { content: "\f674"; } +.bi-magic::before { content: "\f675"; } +.bi-person-rolodex::before { content: "\f676"; } +.bi-person-video::before { content: "\f677"; } +.bi-person-video2::before { content: "\f678"; } +.bi-person-video3::before { content: "\f679"; } +.bi-person-workspace::before { content: "\f67a"; } +.bi-radioactive::before { content: "\f67b"; } +.bi-webcam-fill::before { content: "\f67c"; } +.bi-webcam::before { content: "\f67d"; } +.bi-yin-yang::before { content: "\f67e"; } +.bi-bandaid-fill::before { content: "\f680"; } +.bi-bandaid::before { content: "\f681"; } +.bi-bluetooth::before { content: "\f682"; } +.bi-body-text::before { content: "\f683"; } +.bi-boombox::before { content: "\f684"; } +.bi-boxes::before { content: "\f685"; } +.bi-dpad-fill::before { content: "\f686"; } +.bi-dpad::before { content: "\f687"; } +.bi-ear-fill::before { content: "\f688"; } +.bi-ear::before { content: "\f689"; } +.bi-envelope-check-1::before { content: "\f68a"; } +.bi-envelope-check-fill::before { content: "\f68b"; } +.bi-envelope-check::before { content: "\f68c"; } +.bi-envelope-dash-1::before { content: "\f68d"; } +.bi-envelope-dash-fill::before { content: "\f68e"; } +.bi-envelope-dash::before { content: "\f68f"; } +.bi-envelope-exclamation-1::before { content: "\f690"; } +.bi-envelope-exclamation-fill::before { content: "\f691"; } +.bi-envelope-exclamation::before { content: "\f692"; } +.bi-envelope-plus-fill::before { content: "\f693"; } +.bi-envelope-plus::before { content: "\f694"; } +.bi-envelope-slash-1::before { content: "\f695"; } +.bi-envelope-slash-fill::before { content: "\f696"; } +.bi-envelope-slash::before { content: "\f697"; } +.bi-envelope-x-1::before { content: "\f698"; } +.bi-envelope-x-fill::before { content: "\f699"; } +.bi-envelope-x::before { content: "\f69a"; } +.bi-explicit-fill::before { content: "\f69b"; } +.bi-explicit::before { content: "\f69c"; } +.bi-git::before { content: "\f69d"; } +.bi-infinity::before { content: "\f69e"; } +.bi-list-columns-reverse::before { content: "\f69f"; } +.bi-list-columns::before { content: "\f6a0"; } +.bi-meta::before { content: "\f6a1"; } +.bi-mortorboard-fill::before { content: "\f6a2"; } +.bi-mortorboard::before { content: "\f6a3"; } +.bi-nintendo-switch::before { content: "\f6a4"; } +.bi-pc-display-horizontal::before { content: "\f6a5"; } +.bi-pc-display::before { content: "\f6a6"; } +.bi-pc-horizontal::before { content: "\f6a7"; } +.bi-pc::before { content: "\f6a8"; } +.bi-playstation::before { content: "\f6a9"; } +.bi-plus-slash-minus::before { content: "\f6aa"; } +.bi-projector-fill::before { content: "\f6ab"; } +.bi-projector::before { content: "\f6ac"; } +.bi-qr-code-scan::before { content: "\f6ad"; } +.bi-qr-code::before { content: "\f6ae"; } +.bi-quora::before { content: "\f6af"; } +.bi-quote::before { content: "\f6b0"; } +.bi-robot::before { content: "\f6b1"; } +.bi-send-check-fill::before { content: "\f6b2"; } +.bi-send-check::before { content: "\f6b3"; } +.bi-send-dash-fill::before { content: "\f6b4"; } +.bi-send-dash::before { content: "\f6b5"; } +.bi-send-exclamation-1::before { content: "\f6b6"; } +.bi-send-exclamation-fill::before { content: "\f6b7"; } +.bi-send-exclamation::before { content: "\f6b8"; } +.bi-send-fill::before { content: "\f6b9"; } +.bi-send-plus-fill::before { content: "\f6ba"; } +.bi-send-plus::before { content: "\f6bb"; } +.bi-send-slash-fill::before { content: "\f6bc"; } +.bi-send-slash::before { content: "\f6bd"; } +.bi-send-x-fill::before { content: "\f6be"; } +.bi-send-x::before { content: "\f6bf"; } +.bi-send::before { content: "\f6c0"; } +.bi-steam::before { content: "\f6c1"; } +.bi-terminal-dash-1::before { content: "\f6c2"; } +.bi-terminal-dash::before { content: "\f6c3"; } +.bi-terminal-plus::before { content: "\f6c4"; } +.bi-terminal-split::before { content: "\f6c5"; } +.bi-ticket-detailed-fill::before { content: "\f6c6"; } +.bi-ticket-detailed::before { content: "\f6c7"; } +.bi-ticket-fill::before { content: "\f6c8"; } +.bi-ticket-perforated-fill::before { content: "\f6c9"; } +.bi-ticket-perforated::before { content: "\f6ca"; } +.bi-ticket::before { content: "\f6cb"; } +.bi-tiktok::before { content: "\f6cc"; } +.bi-window-dash::before { content: "\f6cd"; } +.bi-window-desktop::before { content: "\f6ce"; } +.bi-window-fullscreen::before { content: "\f6cf"; } +.bi-window-plus::before { content: "\f6d0"; } +.bi-window-split::before { content: "\f6d1"; } +.bi-window-stack::before { content: "\f6d2"; } +.bi-window-x::before { content: "\f6d3"; } +.bi-xbox::before { content: "\f6d4"; } +.bi-ethernet::before { content: "\f6d5"; } +.bi-hdmi-fill::before { content: "\f6d6"; } +.bi-hdmi::before { content: "\f6d7"; } +.bi-usb-c-fill::before { content: "\f6d8"; } +.bi-usb-c::before { content: "\f6d9"; } +.bi-usb-fill::before { content: "\f6da"; } +.bi-usb-plug-fill::before { content: "\f6db"; } +.bi-usb-plug::before { content: "\f6dc"; } +.bi-usb-symbol::before { content: "\f6dd"; } +.bi-usb::before { content: "\f6de"; } +.bi-boombox-fill::before { content: "\f6df"; } +.bi-displayport-1::before { content: "\f6e0"; } +.bi-displayport::before { content: "\f6e1"; } +.bi-gpu-card::before { content: "\f6e2"; } +.bi-memory::before { content: "\f6e3"; } +.bi-modem-fill::before { content: "\f6e4"; } +.bi-modem::before { content: "\f6e5"; } +.bi-motherboard-fill::before { content: "\f6e6"; } +.bi-motherboard::before { content: "\f6e7"; } +.bi-optical-audio-fill::before { content: "\f6e8"; } +.bi-optical-audio::before { content: "\f6e9"; } +.bi-pci-card::before { content: "\f6ea"; } +.bi-router-fill::before { content: "\f6eb"; } +.bi-router::before { content: "\f6ec"; } +.bi-ssd-fill::before { content: "\f6ed"; } +.bi-ssd::before { content: "\f6ee"; } +.bi-thunderbolt-fill::before { content: "\f6ef"; } +.bi-thunderbolt::before { content: "\f6f0"; } +.bi-usb-drive-fill::before { content: "\f6f1"; } +.bi-usb-drive::before { content: "\f6f2"; } +.bi-usb-micro-fill::before { content: "\f6f3"; } +.bi-usb-micro::before { content: "\f6f4"; } +.bi-usb-mini-fill::before { content: "\f6f5"; } +.bi-usb-mini::before { content: "\f6f6"; } +.bi-cloud-haze2::before { content: "\f6f7"; } +.bi-device-hdd-fill::before { content: "\f6f8"; } +.bi-device-hdd::before { content: "\f6f9"; } +.bi-device-ssd-fill::before { content: "\f6fa"; } +.bi-device-ssd::before { content: "\f6fb"; } +.bi-displayport-fill::before { content: "\f6fc"; } +.bi-mortarboard-fill::before { content: "\f6fd"; } +.bi-mortarboard::before { content: "\f6fe"; } +.bi-terminal-x::before { content: "\f6ff"; } +.bi-arrow-through-heart-fill::before { content: "\f700"; } +.bi-arrow-through-heart::before { content: "\f701"; } +.bi-badge-sd-fill::before { content: "\f702"; } +.bi-badge-sd::before { content: "\f703"; } +.bi-bag-heart-fill::before { content: "\f704"; } +.bi-bag-heart::before { content: "\f705"; } +.bi-balloon-fill::before { content: "\f706"; } +.bi-balloon-heart-fill::before { content: "\f707"; } +.bi-balloon-heart::before { content: "\f708"; } +.bi-balloon::before { content: "\f709"; } +.bi-box2-fill::before { content: "\f70a"; } +.bi-box2-heart-fill::before { content: "\f70b"; } +.bi-box2-heart::before { content: "\f70c"; } +.bi-box2::before { content: "\f70d"; } +.bi-braces-asterisk::before { content: "\f70e"; } +.bi-calendar-heart-fill::before { content: "\f70f"; } +.bi-calendar-heart::before { content: "\f710"; } +.bi-calendar2-heart-fill::before { content: "\f711"; } +.bi-calendar2-heart::before { content: "\f712"; } +.bi-chat-heart-fill::before { content: "\f713"; } +.bi-chat-heart::before { content: "\f714"; } +.bi-chat-left-heart-fill::before { content: "\f715"; } +.bi-chat-left-heart::before { content: "\f716"; } +.bi-chat-right-heart-fill::before { content: "\f717"; } +.bi-chat-right-heart::before { content: "\f718"; } +.bi-chat-square-heart-fill::before { content: "\f719"; } +.bi-chat-square-heart::before { content: "\f71a"; } +.bi-clipboard-check-fill::before { content: "\f71b"; } +.bi-clipboard-data-fill::before { content: "\f71c"; } +.bi-clipboard-fill::before { content: "\f71d"; } +.bi-clipboard-heart-fill::before { content: "\f71e"; } +.bi-clipboard-heart::before { content: "\f71f"; } +.bi-clipboard-minus-fill::before { content: "\f720"; } +.bi-clipboard-plus-fill::before { content: "\f721"; } +.bi-clipboard-pulse::before { content: "\f722"; } +.bi-clipboard-x-fill::before { content: "\f723"; } +.bi-clipboard2-check-fill::before { content: "\f724"; } +.bi-clipboard2-check::before { content: "\f725"; } +.bi-clipboard2-data-fill::before { content: "\f726"; } +.bi-clipboard2-data::before { content: "\f727"; } +.bi-clipboard2-fill::before { content: "\f728"; } +.bi-clipboard2-heart-fill::before { content: "\f729"; } +.bi-clipboard2-heart::before { content: "\f72a"; } +.bi-clipboard2-minus-fill::before { content: "\f72b"; } +.bi-clipboard2-minus::before { content: "\f72c"; } +.bi-clipboard2-plus-fill::before { content: "\f72d"; } +.bi-clipboard2-plus::before { content: "\f72e"; } +.bi-clipboard2-pulse-fill::before { content: "\f72f"; } +.bi-clipboard2-pulse::before { content: "\f730"; } +.bi-clipboard2-x-fill::before { content: "\f731"; } +.bi-clipboard2-x::before { content: "\f732"; } +.bi-clipboard2::before { content: "\f733"; } +.bi-emoji-kiss-fill::before { content: "\f734"; } +.bi-emoji-kiss::before { content: "\f735"; } +.bi-envelope-heart-fill::before { content: "\f736"; } +.bi-envelope-heart::before { content: "\f737"; } +.bi-envelope-open-heart-fill::before { content: "\f738"; } +.bi-envelope-open-heart::before { content: "\f739"; } +.bi-envelope-paper-fill::before { content: "\f73a"; } +.bi-envelope-paper-heart-fill::before { content: "\f73b"; } +.bi-envelope-paper-heart::before { content: "\f73c"; } +.bi-envelope-paper::before { content: "\f73d"; } +.bi-filetype-aac::before { content: "\f73e"; } +.bi-filetype-ai::before { content: "\f73f"; } +.bi-filetype-bmp::before { content: "\f740"; } +.bi-filetype-cs::before { content: "\f741"; } +.bi-filetype-css::before { content: "\f742"; } +.bi-filetype-csv::before { content: "\f743"; } +.bi-filetype-doc::before { content: "\f744"; } +.bi-filetype-docx::before { content: "\f745"; } +.bi-filetype-exe::before { content: "\f746"; } +.bi-filetype-gif::before { content: "\f747"; } +.bi-filetype-heic::before { content: "\f748"; } +.bi-filetype-html::before { content: "\f749"; } +.bi-filetype-java::before { content: "\f74a"; } +.bi-filetype-jpg::before { content: "\f74b"; } +.bi-filetype-js::before { content: "\f74c"; } +.bi-filetype-jsx::before { content: "\f74d"; } +.bi-filetype-key::before { content: "\f74e"; } +.bi-filetype-m4p::before { content: "\f74f"; } +.bi-filetype-md::before { content: "\f750"; } +.bi-filetype-mdx::before { content: "\f751"; } +.bi-filetype-mov::before { content: "\f752"; } +.bi-filetype-mp3::before { content: "\f753"; } +.bi-filetype-mp4::before { content: "\f754"; } +.bi-filetype-otf::before { content: "\f755"; } +.bi-filetype-pdf::before { content: "\f756"; } +.bi-filetype-php::before { content: "\f757"; } +.bi-filetype-png::before { content: "\f758"; } +.bi-filetype-ppt-1::before { content: "\f759"; } +.bi-filetype-ppt::before { content: "\f75a"; } +.bi-filetype-psd::before { content: "\f75b"; } +.bi-filetype-py::before { content: "\f75c"; } +.bi-filetype-raw::before { content: "\f75d"; } +.bi-filetype-rb::before { content: "\f75e"; } +.bi-filetype-sass::before { content: "\f75f"; } +.bi-filetype-scss::before { content: "\f760"; } +.bi-filetype-sh::before { content: "\f761"; } +.bi-filetype-svg::before { content: "\f762"; } +.bi-filetype-tiff::before { content: "\f763"; } +.bi-filetype-tsx::before { content: "\f764"; } +.bi-filetype-ttf::before { content: "\f765"; } +.bi-filetype-txt::before { content: "\f766"; } +.bi-filetype-wav::before { content: "\f767"; } +.bi-filetype-woff::before { content: "\f768"; } +.bi-filetype-xls-1::before { content: "\f769"; } +.bi-filetype-xls::before { content: "\f76a"; } +.bi-filetype-xml::before { content: "\f76b"; } +.bi-filetype-yml::before { content: "\f76c"; } +.bi-heart-arrow::before { content: "\f76d"; } +.bi-heart-pulse-fill::before { content: "\f76e"; } +.bi-heart-pulse::before { content: "\f76f"; } +.bi-heartbreak-fill::before { content: "\f770"; } +.bi-heartbreak::before { content: "\f771"; } +.bi-hearts::before { content: "\f772"; } +.bi-hospital-fill::before { content: "\f773"; } +.bi-hospital::before { content: "\f774"; } +.bi-house-heart-fill::before { content: "\f775"; } +.bi-house-heart::before { content: "\f776"; } +.bi-incognito::before { content: "\f777"; } +.bi-magnet-fill::before { content: "\f778"; } +.bi-magnet::before { content: "\f779"; } +.bi-person-heart::before { content: "\f77a"; } +.bi-person-hearts::before { content: "\f77b"; } +.bi-phone-flip::before { content: "\f77c"; } +.bi-plugin::before { content: "\f77d"; } +.bi-postage-fill::before { content: "\f77e"; } +.bi-postage-heart-fill::before { content: "\f77f"; } +.bi-postage-heart::before { content: "\f780"; } +.bi-postage::before { content: "\f781"; } +.bi-postcard-fill::before { content: "\f782"; } +.bi-postcard-heart-fill::before { content: "\f783"; } +.bi-postcard-heart::before { content: "\f784"; } +.bi-postcard::before { content: "\f785"; } +.bi-search-heart-fill::before { content: "\f786"; } +.bi-search-heart::before { content: "\f787"; } +.bi-sliders2-vertical::before { content: "\f788"; } +.bi-sliders2::before { content: "\f789"; } +.bi-trash3-fill::before { content: "\f78a"; } +.bi-trash3::before { content: "\f78b"; } +.bi-valentine::before { content: "\f78c"; } +.bi-valentine2::before { content: "\f78d"; } +.bi-wrench-adjustable-circle-fill::before { content: "\f78e"; } +.bi-wrench-adjustable-circle::before { content: "\f78f"; } +.bi-wrench-adjustable::before { content: "\f790"; } +.bi-filetype-json::before { content: "\f791"; } +.bi-filetype-pptx::before { content: "\f792"; } +.bi-filetype-xlsx::before { content: "\f793"; } +.bi-1-circle-1::before { content: "\f794"; } +.bi-1-circle-fill-1::before { content: "\f795"; } +.bi-1-circle-fill::before { content: "\f796"; } +.bi-1-circle::before { content: "\f797"; } +.bi-1-square-fill::before { content: "\f798"; } +.bi-1-square::before { content: "\f799"; } +.bi-2-circle-1::before { content: "\f79a"; } +.bi-2-circle-fill-1::before { content: "\f79b"; } +.bi-2-circle-fill::before { content: "\f79c"; } +.bi-2-circle::before { content: "\f79d"; } +.bi-2-square-fill::before { content: "\f79e"; } +.bi-2-square::before { content: "\f79f"; } +.bi-3-circle-1::before { content: "\f7a0"; } +.bi-3-circle-fill-1::before { content: "\f7a1"; } +.bi-3-circle-fill::before { content: "\f7a2"; } +.bi-3-circle::before { content: "\f7a3"; } +.bi-3-square-fill::before { content: "\f7a4"; } +.bi-3-square::before { content: "\f7a5"; } +.bi-4-circle-1::before { content: "\f7a6"; } +.bi-4-circle-fill-1::before { content: "\f7a7"; } +.bi-4-circle-fill::before { content: "\f7a8"; } +.bi-4-circle::before { content: "\f7a9"; } +.bi-4-square-fill::before { content: "\f7aa"; } +.bi-4-square::before { content: "\f7ab"; } +.bi-5-circle-1::before { content: "\f7ac"; } +.bi-5-circle-fill-1::before { content: "\f7ad"; } +.bi-5-circle-fill::before { content: "\f7ae"; } +.bi-5-circle::before { content: "\f7af"; } +.bi-5-square-fill::before { content: "\f7b0"; } +.bi-5-square::before { content: "\f7b1"; } +.bi-6-circle-1::before { content: "\f7b2"; } +.bi-6-circle-fill-1::before { content: "\f7b3"; } +.bi-6-circle-fill::before { content: "\f7b4"; } +.bi-6-circle::before { content: "\f7b5"; } +.bi-6-square-fill::before { content: "\f7b6"; } +.bi-6-square::before { content: "\f7b7"; } +.bi-7-circle-1::before { content: "\f7b8"; } +.bi-7-circle-fill-1::before { content: "\f7b9"; } +.bi-7-circle-fill::before { content: "\f7ba"; } +.bi-7-circle::before { content: "\f7bb"; } +.bi-7-square-fill::before { content: "\f7bc"; } +.bi-7-square::before { content: "\f7bd"; } +.bi-8-circle-1::before { content: "\f7be"; } +.bi-8-circle-fill-1::before { content: "\f7bf"; } +.bi-8-circle-fill::before { content: "\f7c0"; } +.bi-8-circle::before { content: "\f7c1"; } +.bi-8-square-fill::before { content: "\f7c2"; } +.bi-8-square::before { content: "\f7c3"; } +.bi-9-circle-1::before { content: "\f7c4"; } +.bi-9-circle-fill-1::before { content: "\f7c5"; } +.bi-9-circle-fill::before { content: "\f7c6"; } +.bi-9-circle::before { content: "\f7c7"; } +.bi-9-square-fill::before { content: "\f7c8"; } +.bi-9-square::before { content: "\f7c9"; } +.bi-airplane-engines-fill::before { content: "\f7ca"; } +.bi-airplane-engines::before { content: "\f7cb"; } +.bi-airplane-fill::before { content: "\f7cc"; } +.bi-airplane::before { content: "\f7cd"; } +.bi-alexa::before { content: "\f7ce"; } +.bi-alipay::before { content: "\f7cf"; } +.bi-android::before { content: "\f7d0"; } +.bi-android2::before { content: "\f7d1"; } +.bi-box-fill::before { content: "\f7d2"; } +.bi-box-seam-fill::before { content: "\f7d3"; } +.bi-browser-chrome::before { content: "\f7d4"; } +.bi-browser-edge::before { content: "\f7d5"; } +.bi-browser-firefox::before { content: "\f7d6"; } +.bi-browser-safari::before { content: "\f7d7"; } +.bi-c-circle-1::before { content: "\f7d8"; } +.bi-c-circle-fill-1::before { content: "\f7d9"; } +.bi-c-circle-fill::before { content: "\f7da"; } +.bi-c-circle::before { content: "\f7db"; } +.bi-c-square-fill::before { content: "\f7dc"; } +.bi-c-square::before { content: "\f7dd"; } +.bi-capsule-pill::before { content: "\f7de"; } +.bi-capsule::before { content: "\f7df"; } +.bi-car-front-fill::before { content: "\f7e0"; } +.bi-car-front::before { content: "\f7e1"; } +.bi-cassette-fill::before { content: "\f7e2"; } +.bi-cassette::before { content: "\f7e3"; } +.bi-cc-circle-1::before { content: "\f7e4"; } +.bi-cc-circle-fill-1::before { content: "\f7e5"; } +.bi-cc-circle-fill::before { content: "\f7e6"; } +.bi-cc-circle::before { content: "\f7e7"; } +.bi-cc-square-fill::before { content: "\f7e8"; } +.bi-cc-square::before { content: "\f7e9"; } +.bi-cup-hot-fill::before { content: "\f7ea"; } +.bi-cup-hot::before { content: "\f7eb"; } +.bi-currency-rupee::before { content: "\f7ec"; } +.bi-dropbox::before { content: "\f7ed"; } +.bi-escape::before { content: "\f7ee"; } +.bi-fast-forward-btn-fill::before { content: "\f7ef"; } +.bi-fast-forward-btn::before { content: "\f7f0"; } +.bi-fast-forward-circle-fill::before { content: "\f7f1"; } +.bi-fast-forward-circle::before { content: "\f7f2"; } +.bi-fast-forward-fill::before { content: "\f7f3"; } +.bi-fast-forward::before { content: "\f7f4"; } +.bi-filetype-sql::before { content: "\f7f5"; } +.bi-fire::before { content: "\f7f6"; } +.bi-google-play::before { content: "\f7f7"; } +.bi-h-circle-1::before { content: "\f7f8"; } +.bi-h-circle-fill-1::before { content: "\f7f9"; } +.bi-h-circle-fill::before { content: "\f7fa"; } +.bi-h-circle::before { content: "\f7fb"; } +.bi-h-square-fill::before { content: "\f7fc"; } +.bi-h-square::before { content: "\f7fd"; } +.bi-indent::before { content: "\f7fe"; } +.bi-lungs-fill::before { content: "\f7ff"; } +.bi-lungs::before { content: "\f800"; } +.bi-microsoft-teams::before { content: "\f801"; } +.bi-p-circle-1::before { content: "\f802"; } +.bi-p-circle-fill-1::before { content: "\f803"; } +.bi-p-circle-fill::before { content: "\f804"; } +.bi-p-circle::before { content: "\f805"; } +.bi-p-square-fill::before { content: "\f806"; } +.bi-p-square::before { content: "\f807"; } +.bi-pass-fill::before { content: "\f808"; } +.bi-pass::before { content: "\f809"; } +.bi-prescription::before { content: "\f80a"; } +.bi-prescription2::before { content: "\f80b"; } +.bi-r-circle-1::before { content: "\f80c"; } +.bi-r-circle-fill-1::before { content: "\f80d"; } +.bi-r-circle-fill::before { content: "\f80e"; } +.bi-r-circle::before { content: "\f80f"; } +.bi-r-square-fill::before { content: "\f810"; } +.bi-r-square::before { content: "\f811"; } +.bi-repeat-1::before { content: "\f812"; } +.bi-repeat::before { content: "\f813"; } +.bi-rewind-btn-fill::before { content: "\f814"; } +.bi-rewind-btn::before { content: "\f815"; } +.bi-rewind-circle-fill::before { content: "\f816"; } +.bi-rewind-circle::before { content: "\f817"; } +.bi-rewind-fill::before { content: "\f818"; } +.bi-rewind::before { content: "\f819"; } +.bi-train-freight-front-fill::before { content: "\f81a"; } +.bi-train-freight-front::before { content: "\f81b"; } +.bi-train-front-fill::before { content: "\f81c"; } +.bi-train-front::before { content: "\f81d"; } +.bi-train-lightrail-front-fill::before { content: "\f81e"; } +.bi-train-lightrail-front::before { content: "\f81f"; } +.bi-truck-front-fill::before { content: "\f820"; } +.bi-truck-front::before { content: "\f821"; } +.bi-ubuntu::before { content: "\f822"; } +.bi-unindent::before { content: "\f823"; } +.bi-unity::before { content: "\f824"; } +.bi-universal-access-circle::before { content: "\f825"; } +.bi-universal-access::before { content: "\f826"; } +.bi-virus::before { content: "\f827"; } +.bi-virus2::before { content: "\f828"; } +.bi-wechat::before { content: "\f829"; } +.bi-yelp::before { content: "\f82a"; } +.bi-sign-stop-fill::before { content: "\f82b"; } +.bi-sign-stop-lights-fill::before { content: "\f82c"; } +.bi-sign-stop-lights::before { content: "\f82d"; } +.bi-sign-stop::before { content: "\f82e"; } +.bi-sign-turn-left-fill::before { content: "\f82f"; } +.bi-sign-turn-left::before { content: "\f830"; } +.bi-sign-turn-right-fill::before { content: "\f831"; } +.bi-sign-turn-right::before { content: "\f832"; } +.bi-sign-turn-slight-left-fill::before { content: "\f833"; } +.bi-sign-turn-slight-left::before { content: "\f834"; } +.bi-sign-turn-slight-right-fill::before { content: "\f835"; } +.bi-sign-turn-slight-right::before { content: "\f836"; } +.bi-sign-yield-fill::before { content: "\f837"; } +.bi-sign-yield::before { content: "\f838"; } +.bi-ev-station-fill::before { content: "\f839"; } +.bi-ev-station::before { content: "\f83a"; } +.bi-fuel-pump-diesel-fill::before { content: "\f83b"; } +.bi-fuel-pump-diesel::before { content: "\f83c"; } +.bi-fuel-pump-fill::before { content: "\f83d"; } +.bi-fuel-pump::before { content: "\f83e"; } +.bi-0-circle-fill::before { content: "\f83f"; } +.bi-0-circle::before { content: "\f840"; } +.bi-0-square-fill::before { content: "\f841"; } +.bi-0-square::before { content: "\f842"; } +.bi-rocket-fill::before { content: "\f843"; } +.bi-rocket-takeoff-fill::before { content: "\f844"; } +.bi-rocket-takeoff::before { content: "\f845"; } +.bi-rocket::before { content: "\f846"; } +.bi-stripe::before { content: "\f847"; } +.bi-subscript::before { content: "\f848"; } +.bi-superscript::before { content: "\f849"; } +.bi-trello::before { content: "\f84a"; } +.bi-envelope-at-fill::before { content: "\f84b"; } +.bi-envelope-at::before { content: "\f84c"; } +.bi-regex::before { content: "\f84d"; } +.bi-text-wrap::before { content: "\f84e"; } +.bi-sign-dead-end-fill::before { content: "\f84f"; } +.bi-sign-dead-end::before { content: "\f850"; } +.bi-sign-do-not-enter-fill::before { content: "\f851"; } +.bi-sign-do-not-enter::before { content: "\f852"; } +.bi-sign-intersection-fill::before { content: "\f853"; } +.bi-sign-intersection-side-fill::before { content: "\f854"; } +.bi-sign-intersection-side::before { content: "\f855"; } +.bi-sign-intersection-t-fill::before { content: "\f856"; } +.bi-sign-intersection-t::before { content: "\f857"; } +.bi-sign-intersection-y-fill::before { content: "\f858"; } +.bi-sign-intersection-y::before { content: "\f859"; } +.bi-sign-intersection::before { content: "\f85a"; } +.bi-sign-merge-left-fill::before { content: "\f85b"; } +.bi-sign-merge-left::before { content: "\f85c"; } +.bi-sign-merge-right-fill::before { content: "\f85d"; } +.bi-sign-merge-right::before { content: "\f85e"; } +.bi-sign-no-left-turn-fill::before { content: "\f85f"; } +.bi-sign-no-left-turn::before { content: "\f860"; } +.bi-sign-no-parking-fill::before { content: "\f861"; } +.bi-sign-no-parking::before { content: "\f862"; } +.bi-sign-no-right-turn-fill::before { content: "\f863"; } +.bi-sign-no-right-turn::before { content: "\f864"; } +.bi-sign-railroad-fill::before { content: "\f865"; } +.bi-sign-railroad::before { content: "\f866"; } +.bi-building-add::before { content: "\f867"; } +.bi-building-check::before { content: "\f868"; } +.bi-building-dash::before { content: "\f869"; } +.bi-building-down::before { content: "\f86a"; } +.bi-building-exclamation::before { content: "\f86b"; } +.bi-building-fill-add::before { content: "\f86c"; } +.bi-building-fill-check::before { content: "\f86d"; } +.bi-building-fill-dash::before { content: "\f86e"; } +.bi-building-fill-down::before { content: "\f86f"; } +.bi-building-fill-exclamation::before { content: "\f870"; } +.bi-building-fill-gear::before { content: "\f871"; } +.bi-building-fill-lock::before { content: "\f872"; } +.bi-building-fill-slash::before { content: "\f873"; } +.bi-building-fill-up::before { content: "\f874"; } +.bi-building-fill-x::before { content: "\f875"; } +.bi-building-fill::before { content: "\f876"; } +.bi-building-gear::before { content: "\f877"; } +.bi-building-lock::before { content: "\f878"; } +.bi-building-slash::before { content: "\f879"; } +.bi-building-up::before { content: "\f87a"; } +.bi-building-x::before { content: "\f87b"; } +.bi-buildings-fill::before { content: "\f87c"; } +.bi-buildings::before { content: "\f87d"; } +.bi-bus-front-fill::before { content: "\f87e"; } +.bi-bus-front::before { content: "\f87f"; } +.bi-ev-front-fill::before { content: "\f880"; } +.bi-ev-front::before { content: "\f881"; } +.bi-globe-americas::before { content: "\f882"; } +.bi-globe-asia-australia::before { content: "\f883"; } +.bi-globe-central-south-asia::before { content: "\f884"; } +.bi-globe-europe-africa::before { content: "\f885"; } +.bi-house-add-fill::before { content: "\f886"; } +.bi-house-add::before { content: "\f887"; } +.bi-house-check-fill::before { content: "\f888"; } +.bi-house-check::before { content: "\f889"; } +.bi-house-dash-fill::before { content: "\f88a"; } +.bi-house-dash::before { content: "\f88b"; } +.bi-house-down-fill::before { content: "\f88c"; } +.bi-house-down::before { content: "\f88d"; } +.bi-house-exclamation-fill::before { content: "\f88e"; } +.bi-house-exclamation::before { content: "\f88f"; } +.bi-house-gear-fill::before { content: "\f890"; } +.bi-house-gear::before { content: "\f891"; } +.bi-house-lock-fill::before { content: "\f892"; } +.bi-house-lock::before { content: "\f893"; } +.bi-house-slash-fill::before { content: "\f894"; } +.bi-house-slash::before { content: "\f895"; } +.bi-house-up-fill::before { content: "\f896"; } +.bi-house-up::before { content: "\f897"; } +.bi-house-x-fill::before { content: "\f898"; } +.bi-house-x::before { content: "\f899"; } +.bi-person-add::before { content: "\f89a"; } +.bi-person-down::before { content: "\f89b"; } +.bi-person-exclamation::before { content: "\f89c"; } +.bi-person-fill-add::before { content: "\f89d"; } +.bi-person-fill-check::before { content: "\f89e"; } +.bi-person-fill-dash::before { content: "\f89f"; } +.bi-person-fill-down::before { content: "\f8a0"; } +.bi-person-fill-exclamation::before { content: "\f8a1"; } +.bi-person-fill-gear::before { content: "\f8a2"; } +.bi-person-fill-lock::before { content: "\f8a3"; } +.bi-person-fill-slash::before { content: "\f8a4"; } +.bi-person-fill-up::before { content: "\f8a5"; } +.bi-person-fill-x::before { content: "\f8a6"; } +.bi-person-gear::before { content: "\f8a7"; } +.bi-person-lock::before { content: "\f8a8"; } +.bi-person-slash::before { content: "\f8a9"; } +.bi-person-up::before { content: "\f8aa"; } +.bi-scooter::before { content: "\f8ab"; } +.bi-taxi-front-fill::before { content: "\f8ac"; } +.bi-taxi-front::before { content: "\f8ad"; } +.bi-amd::before { content: "\f8ae"; } +.bi-database-add::before { content: "\f8af"; } +.bi-database-check::before { content: "\f8b0"; } +.bi-database-dash::before { content: "\f8b1"; } +.bi-database-down::before { content: "\f8b2"; } +.bi-database-exclamation::before { content: "\f8b3"; } +.bi-database-fill-add::before { content: "\f8b4"; } +.bi-database-fill-check::before { content: "\f8b5"; } +.bi-database-fill-dash::before { content: "\f8b6"; } +.bi-database-fill-down::before { content: "\f8b7"; } +.bi-database-fill-exclamation::before { content: "\f8b8"; } +.bi-database-fill-gear::before { content: "\f8b9"; } +.bi-database-fill-lock::before { content: "\f8ba"; } +.bi-database-fill-slash::before { content: "\f8bb"; } +.bi-database-fill-up::before { content: "\f8bc"; } +.bi-database-fill-x::before { content: "\f8bd"; } +.bi-database-fill::before { content: "\f8be"; } +.bi-database-gear::before { content: "\f8bf"; } +.bi-database-lock::before { content: "\f8c0"; } +.bi-database-slash::before { content: "\f8c1"; } +.bi-database-up::before { content: "\f8c2"; } +.bi-database-x::before { content: "\f8c3"; } +.bi-database::before { content: "\f8c4"; } +.bi-houses-fill::before { content: "\f8c5"; } +.bi-houses::before { content: "\f8c6"; } +.bi-nvidia::before { content: "\f8c7"; } +.bi-person-vcard-fill::before { content: "\f8c8"; } +.bi-person-vcard::before { content: "\f8c9"; } +.bi-sina-weibo::before { content: "\f8ca"; } +.bi-tencent-qq::before { content: "\f8cb"; } +.bi-wikipedia::before { content: "\f8cc"; } diff --git a/site_libs/bootstrap/bootstrap-icons.woff b/site_libs/bootstrap/bootstrap-icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..18d21d457558d4dc2e231a8f6ee585fada9c6bab GIT binary patch literal 164168 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%0D{F7My?sp4b~Pd<-wWT`E3Pn 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%0Aub6*Q4?Lh?RzF3+=+IGMyc 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

    V5sL;~RGzKe44( zn(=a|t2VJ8g+fM{G^GtgrZ$H$d#ZFh@k=iwmuqi%OU*rW=%1mf^0^S(M+dsQ4hPtf ziu5oZLyGjUjE1;C+BAB8t3b#JLEDq#^!#q^t#7TlhY$af{W9Xg-n?xK9xUgGCkASGfdAYd)PF3L`O6yJ)a=q z-y*%duu?EmHO1MBBAgp&fOMa=hLEJsg9*&RSKy048i;YYo5ZUon{A|wXI6NSZ%j?S z!ZU)Y+H-i~XGZGuC&XmrcJf2`oHHfsDYkT?%NWNpImS^MM$40>Eg1|AUs8*IlY22# zVCb6fC+8;==hmEFGcUz($#_9A_k;Sg9NMO>pd@Qb^n{@Lh?qD(nM^DuWlLn`2Em9_ z^!`4V`Fx{81q?FzFzW>Nx82O69i3)ae=x0eeZ}=jKy+$ZpjHg0TxpsXW{Wai)0_)P zT>a2^Tl;y(RB6T4^zve0mHP8N(>LMYy>Ge4EBo)B-0)J`QO*|y?Lk5s+pi4MX#WeO zkIX2*W8<`w(p&EZD*qxcLfOoV@N*N1ALaYmo8bGDR(mkE54Yi&Y=2-%gC6Dk*_+_| z6xt8Q_F>v*v;ELy;wS5(l&EA1E2Zl1Sr_4y!D#C(%~nNIbkT5mGA{qU>Z0?LG^;vO z8A+)>+Z>-~#W~&{wCYz#4`j1P$(+!Xv@bhkdP11#&pesT>xdbfSE(Y$k`=fk)=w5jt6w;VW-?-de57N*OxTsLSN`_i&>g!`DMVMA;v z37hcP%QG(G{O3^CwWmbf&xV+w+{jY5d+lfm_Lrg#hqPY7&9frB=tBbI_?8G_ zp!Agq{jixbTm1%+1t-Q*EQKc%@aClCP$G#H;(3LfotIuEeaEPr<+`A=IW!SD)Rg#Y z0}my|ZiKDNJMx0;$cX7C^1npMz~XL&DLytMUujTv0cB%BrJtp0nnl5pHTjjQA~Vxa z&dKjMv{QF_yZ4-F!1jav_xC-udhE=ZV^tO9Phcvl+Oh(#(eeaP@r?tIx zq*6JuwVm234vAZ$#d+v0M4$xYNiWmaMw$P3{GmtB z#1*3(tlzU9bPaQNdTY+KS?G+;j+~I$=G@kG^)j2%`81^=jz2)B`}VUB$9TF z=NP|#X=m0y`N)x~%d1uHRvSOxUOUw`1q(wa%=W3ZcG?FfwU>a?pVqdtyS0a99M80^ z&%lJRF2R-BID2GE;Ii$Hl))-IGF0P_3ZSUw6%av_Y$dOk+PkTcXDFcdQS2RUlTTM` zwW{qi(r6IoQ_FQC$9cc)=^)U~!4yh8(`r;h3=xk`)1R$2`f=T=I%0tn7=S!|#n1zz zcZRu-H)>ujvBdGqzG>Aw$8{SX}EV)1K+cSu!6}T6t1v^<+x3^)~Hns(}O30 zsIGpI6TZT$x-t78C%F$luFXwqMI9IGFaze;tQ3pS*R<*$D~6Jxg2)5d zmDl`mjY}I<)0w6hmt*VI>cibjxD1!S84*JcWKr?mvGv2w%~$yjT-ZBgd`#PMRbt0D zGJaHoYm}pP_@u1lx$fec=t{{C$8uO^!x|M)ZUx%j7_tUft>*7?ZPWqx_`+z1quayPNCN;b9?E)ow?*mCoaDCHnFA|`*F^H zoU!S5ia^xlp}Ihf@q6DJ5JB&w@PpDH*Y*EP9p1;-eQ;wK6vx4;u4^RqKk7;A1_NPL z`x~byjB!+9jzTu>F)ZSr(V2K`fw^qqaf9h+d}0|7*;I%}PjQ!c4;sdU9&!1pM}?pW zU_(=!#2!#{UehEu316(GpAmdeEb%fKMbJBD8nb(AR9j@A(aBzfmgR5|*%zB;AmXgew%rXo?Xx z#7JJjTNqtKs@7!kX~~VpWxgI0Q1bipZ1gC9<47moy?R~dVm~$J^32@BiM^&9XM0Rj zaUHdnWo*Gy+G8?qTL(A=)dngg3ofV{z&26-bcf$RMb>aiN}CYgU6e(PJ(CS)#+-L8$=v;g-I$wo3tkuxi_ry^et z66qr#QiWzcjnh73j1;%Hwqe*u?&!)P^xWMG>_Nwyn_1~vLETv=b{IzV3Cb1$OB@onw=7=$tz}=nAp{OxsN2#(_2Ggf24!JJ#(+!`4kb3+{ucgz>v z;0#*n1n&DC>v1!1UwGOvAA;fj?bIN_i>5=qp>xv-;;Q?C8<>w<&imae`K;*}@C0LJ zY#GeQn!@du<7So_6nOULL}Y`#@)O2Tdh+R(8>AU~emqyU6bH_`!IQdih3n_YQsCyf zn;XlVWN4lY-1A)L=X4{pwUX=QRf%|?kLziEvg}C0te`K-`&|>0z37;4W>nH*B2a0V za4$&9Pg$XN$8Yx}D$-$J-&fdjN?(_f&cj$fewphJj;B{DlJTHkiant05IYChA?}&G zidpYjOm!1Ch56ynq*q{5tfyz+Ude6q^RL~^;;=~L`Gf5ZUnmlc4mP?i+c&lL+BfZ; zm`jYv^Lf%G?#4g3e9F#g;fA)fdrEq+sZ;6u2b($-xhiaX{v7`M3bSR*E9_}}3^(6U zJKPlZf`6{+drzF~^}RK8rg&F29*KwhLiT0%+4RcOvVZ8g+<9Eal6j+S#c>ap^2fGW z0%#l1TQ6-hX&IL+^O$%-o!5*@L46KJFu&M<;OWmX%ag z#hF3m9cm5mS!waoU2pN(6ElO;)6Rqt%whT@ZiJZXBl3qHab2QYOXbrNH;o#fzw@5W z=_9Xur)!jQ znNh%0%}_ZoT1WL;Njk#Sl`RRmt@F7|H3Ydq<=G^z4GK~7t(oD8&H0*W9|wuH)fu+i z!|h?GGyGkAdIObI`mR(~IlKw43WGIuS@8PS*6}GG9~s@TI;}gr+Zmo*Yq!@<4m(-D zeI> z2<}i$VY}gE$2~4AS8%K>%k^6w`r2_2-}e)B_Lv5a9xE%~V1Xo4PPv zpHy8^*jY4Xe6*SV0Lrgsx(&pM!$9SI1wOWc5yD^eo3>YF+&F7+R`vX&3z0jQ7?qhL zGZiE3L?rB-ah+C^J5ZUe(5fFbnrH7; zTLGcWi+fJkKjO(Kd(h1ZIY&rXp&+g>bHc-is#Af-SkP*iLZ^=TCKH2fiTZNa@n;iK zpIw@*leinw`fTh28_}u?-GJ{j7X~%6O3^qeiff3$(CQF0Qlhq7o$9uH;#nqq|GEcK zGmNOh@hofl=u(?H^|?5ns~em)<`#OjtS%^-#`){i9`KUow-}-E7F}1n&wp5m4|A8R zT|TcX9cS+V3`x|tX7b346gEabPi=aEkPB+}0o`?7{b9p+I6EM*u789X>?3OTj}U+N zSu-@B%?|Q8SK5xEk3CX8o$!s+m~KWH*GWcTr`D_0dh@-S?_0;bq{d8EOT1&2@7H={ zqSmd+-=G~hOO+(i^(3h*IYE2St>ri>O^{E|KueX8jrs;mo#=GEfnpUpRnG`1Pf2L` z<9(HC34mT@%n--X|E-Ep@kuv`VvJ24M?p7{u<|NbAR|;DTk~PXMc84t5@Nn9AUk-; zZ_I?qMtAGg$tYf$o?eQh$!fhDxZ!WfOxF`z=GwIaL~;u(SC-0#=9*|)$+l@;p)pDa zX=O+_s;glLn=nQuD7xbhRp$E*w3TaC8X)OZnrJ!K=+9S*{`i)_uFTXb4bKc3esgN7 z={Ew?YgB486+1{fW!_eL(EpBTk4m2g8QDXQd=)y#JJl%yeQJFT#n-h~V$l_qakezh|jR-jXfvjRF*r8?IReXGHnm88mc64R-5dk)2j zW;C?Vx`s^&GYsnVx;4j4c*Cm))!1vmq}Q786JGaf^=LZgqHa`dyJFM@kEf%0&8zdo zpJ?$9)LegN%C$TOpJDd24?W!pZ8#>(v)ri}->tz%l8K4Lt0O6_F}}4}yLnRk0P-|r zfY~L*a#B7S6?6J3E*2IiV@Bp<7VSw9H?LkB$dhfUG}z7h3GBx-=)|3jX^Q|dN)D7FX`qNDvl6NB{T`zmNKG;i2hmFzt`p3 z>fPEo?TH+#N!sfbtG}bM^#oP9a!q(uY$()MS>$0?@_KWJt~dMylTi?r<(0JBy04)1 z*O}shfWTeLTUcH2toyLYq>0;C{`A0_BMGHbGPY|M`Ngh_3|OaV5UgkgKhikfZXa(b zldY+-l?5%sfGFs3LVJ_;nD*3bpa_n)qK5)N@*N@0lYY||?+||T;c+VAGR*B$Y0YnT zJg?LAAHE^E4r@Q7!kA_~v)TX({GDw-|2hq|>CWJV85fBVzJ}&=c>8(P6!|;Yer}yg zx72)6o*!tnpXWbC4&?cfZs)=?VdGSC`i;Qzzx@!Ne+GDdVVU|&rAlCq6d)N(mS4(( zuMktleQrsu2TH3ze7XKTOzLv<9jtE?Ihpn1Z!%69{hDqQu7922k%g!zFED=eb624k zkxP{GOFBQw@ng6*R!?Uq0kp{v!wEAWa|2W0%&u za6Jgo;}*1|+HshNw)U@p&85IQCGeeI3c!;_q`?JGyjxbX?cl#H;XJVu?KozHXBXkG zw1{?XGlKtcZ*y~V&UAJ*@nC1O%$o zaUEqtN^NB|C4&1Yoq9i&KI=iK3?_>2$CuUjbA7i+Z6o$+zB3!ugi4jA zI9N~WnL!&QUm`%?HZPd`3M6azkSsZ))NFTiAjB0OaDuC}zA16vGd$;}c1n8?W~uK%^x!DvTu})jm+w$lRH$j|tD`Z0 zw>4bcL(ylMNNyH+SRC0T;INRP6LRHkoZCmmgYt}Z$#nEeV)&E`iyFkXV!RA2H$#|y`9Y(9@ zRn@`UpD`j6Pdh#wIoxNJuLAjW9f|kE!NmKu*H9;x*>emgrg7DfFh+1e zZ(16zA^b)A*HaRZR7NFj7mtV?f3T%I1SN@qkAZjJI%&rj9watQEFfp4AEDd{?b zS_8w>(P+h>L^tEo5)idoTtIfXu|TNau?>qifrIiV+H(PeqRDK1>zm*Drd-QJ9TCp@ zQojcoQbwN2T1YBdH%2{Y$^yzzoAPBY7KCpsy3~oBsmji!CKnEwaj3g!_;3pzfX9GB z))YJ-c=OUuWeWB3rSvv$nqpbehH`o8pF8NU-7G7A%1pY#*a}J$9cgs@)(*RA{;KeX zd=W(H4h&5lDt+Tic|IkzGRhuJhF0B3Cn#jgR-~U1bgkD~s(W>ZM?z;4@43$mMWpjZ zs5`T2EE||x{qEOP=!ol)2+jN6Gr@Ebafi+5_yzcA)m$+6iPuDvS67dtIV`P;$ZV^>^nj)L$8uBFC>lp?-aB<7RdE$GXuf zp+ZP7iJR7XX% z@;flSVt98>>vdFvWntfM&aY60kD=odzK+N8btb;;^?KtH-e$cXPJr92+{5WZ$LMq0 z)VWOp+-^Bjy{`66>F*P34{7hxzE68b`vmHBm8n2|*hfiYw2{R1jec_MB(4Zb4+@Nz zE@Z6l`Vh(n;vLE)Nqx9F!asyZ!!U43eYA>bERrU@z9ab=mdK3qA(Z;Cc$b=i|6HPsn_)UK8^mr!Q%FoIL?@_=qJzzRBeV&~9Oa}@!p}YD7+7e;cdYxi~PD*De`JHO&Oqkgn zHYHx!QWkfy)5ZpWjsOfQIq?%KMK==fBR&Xb5%P;aX~&geYCs}Z~tVZ}toYp<7@`i}A)g?sSjJhmL_ zUeWdy5!4>mzALq*KdAiD2%(R0Yh@@;qfKNinzH-nUMtd^-iWcE>W=53ntWaNku!5$ z)`z^wX&5r~VO+Cup`!b*81uQK2XbA>rRJ(y!eJXo30JN% z1u#TUDQM%BywQBkF|V2S_3Jk5od56IilUlq>=JDf9VX<`8w|*|)m9#3NJv@cl&C2| zUVDo%+5WG|b5|H}kT8chcVe`ojAt z_ei>&ieHb(p5Dni{@c>Jg-s}{H>=##=2v?;wcV;`8;XB7LA5?zY+9Jq(_wLD2a^pr7j{)74Px?g`T$;IlbJlLN^Mx67v3a6+ zJe6r@Sph}>l^{HIc}*2$EeE12mtjhJ8Q-(N3?-hizcv~iT7>wJBK%&OcP>lv3p~p= zFCXnIK$>&aDB?r%f3r5RerqRv>Aar0v1d6s=-Le%!~ywPyXE|hcfCV0lpXC5BfD?h zC`482NQ*!J9@ z5#SA#S3RFs6u#=#7$=14$9?_`m{xRHggl5RihphB0?(H>i) zjQ*nxP@p8wSK^R6Xsu`2JFR}pwXBJmnF-5sp&2qq*o}6>77h!}I05tGh+V*(Tws;w zv9*5Eo9V){6Wtl_YT)ityVVMUR?DWl=OnaZ_(wXy^^e95-h}30@btl!_d@E(|SdIud|T zQ0fK}yDpqUWCKx53)&NvMtG|9g`_b1<_1toK%p_T&%Am^& zLbOY{3K*&}u5S!Mqx_*)Qwd1U^Ne{o%T=g(f$NQKR~8v%1)T%as3cF_sKb2WArUKd zs9t>4y$R|;3ABhal7FqI^X_sNCi-}~&KH%5^YJ225zk&Ke5Pc7v?Ml!Hp~!%5?;Ukrg1D?2Lqf%-q$YQWtC?x=pDQ_DPD_EyfD-$#l*wl}Pa++CL{j>Tg%z z?5yuQc)slKr+%BteeWTasfQGRcv?o7e**2F=ikjxZ-)C04*bZo`x7f{t(JgqiqIcr zl$jcp{df0xXhtAALfw4DG^V*@e*L*L+#M<+e#GR{9DZ=%Y!)?}=O5GYm7nlFpV|Xb z=3NZfeI`pl|N2M-;co=h=$ z!fdr#%-@mPQ7xucdATiADi_RY_iOJS<9C;dWM$ihFZ4m0m>ZW{S@s>o!}Ja;QIwX) zF<-a=Fo;m*QM4OH(bG|MS#9L*@Rqd_hMVww)DL&UFvOz>_F-n93uR(ss4X2R z6LS8siis%>*$-}!;yE5bMVXJKG{Igr*nynymj1qcc3wOM^m|f5pB^WTEL>J zH&I3q7}TUqu=K}TL~no>;+a})Cf*EdwQy4&FQ9MJ`yuJ4Wnyx7U3xot^GoyIZsGm3 zGqE%=v9yYtV!k>m=aClna_R4trPhnf`M6ko8+OuHYXK8~IsG1Nt`-TE=O{~hL};Up zwZSk&XBV;wZGV#e^RNtoS zP`(v1f(H{Zz(Hn^jIs8~utVZR#6DZ$r`Rxx77Ux1eD%23jNPye{3%}z4MO#khHtbv z-_~tj4OhKp&872QF<+UgoBHupLwr9q*$CBI8|;%9ql&}Nwk*pqiLMjVu*gz$LKv&7 zFf=8VpjF}ZPH;Q~Swi3DybWJR%Tpsf&Un!9gqRoIdEJbs{MA)%65IGJgD(TmJ_1>8 z@24$HP+>Mf`#h?>Ui*~x%cxCUQ!c-r7KfBsd&WT8*UFV_ydaF8^gK31n}RG`la9v{6l!CTidY+?<9)m)4V6dzbcNiP z?(D00Bc>L2!r7;0L&pGF74h&1GbqsAaDm11+)1xyQ&VTY;1rjwIYHB4%8W+E#R$iG zV~Xi^IMHY)5_+yP?>U4T93B5LE{E=bXl59;uG_@oARN1Ouj#lx+-prE^kAo{W7G}P zflT~9rDo83M=vmSJv(>>zQBONLRG0{cn*9@1Quc3V5}WGmN13ygcFEw=Y_7z5SOar zGgl|N<#8vl;0EMBBCvBgp`7TZ5V{kCtOVC6g7xcYf$n=$chF_OYBoaKH-u-pp^p}d zL0GXIhcVM^6ZpDmqK8nr*D{|VtbdHyvY1R8r7==u>$$-Mtmsic2WajutBHx9h4D-YQIL+4q z-~Sfv9ol=f4{ASvR!MSnQSpm1-ejb#^MOJLzB^b4nkDOfW$rKS_Y1lXkOy5&a5vf* z4$9!Yw?Mt`GQ@dFz{%QkwMkRxfx8p1xgFqf&a>bt!tbQ)Jfn9SktA?*2I+SOD9LiV zK7AuX-$ix8?*b`*;(j-{d^vFMZyN953|dy3@po`VYhyS^$Q+RMqN4Eb4GF7d ze&tPa1ZdmMF@SK@``ywSNRBpTc6QJ&gBXjwy87IEB16{AbpV45J59=AvBJX25FCH6 zb)*${d|#5#_dD;%Npmp|{QhjJ$Mx~Io9e5Tv%=9qi)VGd31h})3L!j3qeY1#cTRh&_D*PfKPdf; z2yPqBwKD0?B%CfPsK0*znAVAg_XVH~YeGZzOZBISD zhnOEN6E1C4^4R%D609ebWGgL;oXM$A0-$BUYwj12egA@6gSl`Yb^rYsE%(s%IZ4G$ zMNA97BCFsjRU>K4M(o>NXm=O2_h=u09{q9j(aEri_R}#(DZ*%29fY02xd|pMoZ#+2 zFpWD%JsB!Y9N;gI^gUoKhSD@;ART^;Q4a%J$!Jyza6~!Pr4_S2+*elviGdXLhCxkI zwiXO~kwnm)Sadu>(C>ssI$g9)3KJqV?M13b6y^wn5YJg$UC=+FFW_|pp7^ex1YTg_ z*a9#F-OVL5hDSXflUH@XU@uBgdX^xWU9k&}s=vMXMFG z>J@Kd-gY8tTn_8KUK~*&=tZK#=i#US_!xG=o}IR@KAzMrX;-ve?H6vjKBQxmas!6J zHm9(G;6V(N}@dl0$1~=7ioc}b-9Iu7RhyADUOU!!b!}qB$|~N;Yd7~5TuObl*I}$GM<~gaU}KVeuWXo9 zPi<1r{t;P2{Ob=k5VjWK(134z*o=FP9`Ml~@!nDoF8lQ@v`B&dW@?Uvql^i~i#tM} zuGhO0Cv5^r~Y1lOTK~ z=6q&w_Boxy$e{vw%Jm8(FPo(;NbSQLWn5_mtd2oJ*E7)1RArMWNBC39phU)EQU);z zv`5t9NZXhZ)IG33Fx0GV^vdn~St!a5e^i$2pfXPdj`=~;36>d@5X5I(7l2aR#!^~Z z^#6j=wNyFNlKa1hCI5=BZSj>*mX*L(myTnK2s$4tx6&h;Fm~qXWKcGdZ&25Z4#U}I z@EK;aO%Nz)AEn9;NU!Jn=i#)2WbMN#BlEicux_8!?QPv!S+VqOTR(~M8)+%6J8mtt z9?*P*;36HOHlq!^vT^fVJOT3NU_da)J8Wp@*E*CNWbUxs@e?O(ey7Dxp5)e@T>9)w z4CSQ^6LznPTZ~(SLXD4~6Z7BsaqQ#fX9ZtFY_>Hn-j9buZpf0li<^Ig*M1r|4}yrT zKZr+Kjwz1z(^`}w#Z^eJi@)xpS6(q45aoRi|NcZEJ1=s)ZWS9@i`GPZ z2heSW?)l88$j1;H?_;%np97}heAMn_HCjX6RNaTK^#=V@s3t{yO`8n6 ztJ`GobNFfe{wuHSO@+`b74jzpHqi;$ z^fU`Q6YPjwo7_{T_kJ5nHK-}gS2}hD&_i!~IjyF_ZEv&m|07`@DnE6@6irIq zD=wu?VH!HBL_J1slRD=r-gtTmOYn-^wk`MUH=QuDQj zEqbKbQs_d8F_qcu$t{j0Fm-P1Hy=xfAgR`g+vG)^M-{VW1TLzjFGA)_=LO@RC;|2J zO7v~`I;SnlBfEMX*@vEK&%?YC$MO%D8N}f(n~iaOUZ*{Fme}Pr1=P#msokqRm~)>= zoZ-O?$H5@R1b7v#Wj$9P4fC*R6_PuEoT*J>d`q-ye;N(k4bz^iJume~6?1uQ*{npW zFrQJo3&?&+&YLVv)~-4*%gTv!N+LoTHRoz=auaXA!E%TY#IfF{bRBBjC+d*oF`^V^ z@)V5rBbfW&o!fE%50xu)iu`5=@LAS~%+J&89uVgV;w)Y%>DA&8FsGe$g zF6AY=n3o;suzPH@vMGf;+ca`A0avi%R+S=zRNae`IK)o15l&Xh-4Y$%U^>wogm?&r zwY_u`k@Mxiy(+C;-5|FKMW2X`R8xy9q{(pOz?NGf%X9<C z?r+zStQ(Y@vQv$#Ht>249@eV-DPVi_t2%$duJWuoUma`Z-%uoIm72F5+QbeWR1&~sH0os9te>{b;V~eds<5I4I*>;&ExBTQtdfmvu+M1`vz;b&!3@___ah5v*Iy$iy1HH>UK3acPs zcezD*7canNya1QGI-|GzYL-duAhIlB)T%PT+)5*;a3&n| z=7|_(La*SFYXQ4O-OBXwb|Vz_y^yr0<7$GLZ9Qr@)PrwxV0Y53N6Z<D7q_!dT>HC;QXO;zSq(2&|S0Y zRN`R9n=IKx$ry3-+8)1^}u|r(wMAaV*x5yBBqjlf{1p>8+UOXJY-|N>;Zyb4h{m5ef*e_4V@f~qYmNx#Ujg7bM{@7x_|M~vu z)2H*8NVc@&lbi}J@EHRC(3vz@CIh3Mpk+fnLHuvvEz#a&P`|iwq#xHpuNu}wRPz_+ zs(kM5#C2-E*NRQk;6|qw%-2k@7)?$r%pWnm$fR!F(S1?t*JyVtUa5dcT%Un*g$=Jl zCNsMS?T@v;)-aN$#Nb10KLp*ABUzlSNyqETQsC3=nTg1+wVMwPraiyvx2CIMwYoXg z2q!3^i62k==09;0?}3dw-HU=sdB@<^lc$hqoN6qE}c8(bF;nLPQU$8 z;zdElc7(Iz$7EEsJU^an*GZn&S()DPJ?Y89L)G-8f=22?F-3{2HQY`cuuA!{2&4bi zNS$=nd&F}pF3d{p)fQX`C&RE3ra3uRZAGMFM-x*Cj2=Kd$F0^TnxS0@n$_IiOZyts zO^kSqsMhEK࿣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

    E0Q>dwTHGr5Eml?v4A4cqksyc*{&0*B}<_UWD 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 N7Xi?h+IjWj{{hmn!3F>T literal 0 HcmV?d00001 diff --git a/site_libs/bootstrap/bootstrap.min.css b/site_libs/bootstrap/bootstrap.min.css new file mode 100644 index 0000000..18a3918 --- /dev/null +++ b/site_libs/bootstrap/bootstrap.min.css @@ -0,0 +1,10 @@ +/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */@import"https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap";:root{--bs-blue: #007bff;--bs-indigo: #6610f2;--bs-purple: #9b479f;--bs-pink: #e83e8c;--bs-red: #d9230f;--bs-orange: #d9831f;--bs-yellow: #ffc107;--bs-green: #469408;--bs-teal: #20c997;--bs-cyan: #029acf;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #373a3c;--bs-gray-100: #f8f9fa;--bs-gray-200: #ddd;--bs-gray-300: #dee2e6;--bs-gray-400: #bbb;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #444;--bs-gray-800: #373a3c;--bs-gray-900: #212529;--bs-default: #fff;--bs-primary: #d9230f;--bs-secondary: #fff;--bs-success: #469408;--bs-info: #029acf;--bs-warning: #d9831f;--bs-danger: #9b479f;--bs-light: #fff;--bs-dark: #373a3c;--bs-default-rgb: 255, 255, 255;--bs-primary-rgb: 217, 35, 15;--bs-secondary-rgb: 255, 255, 255;--bs-success-rgb: 70, 148, 8;--bs-info-rgb: 2, 154, 207;--bs-warning-rgb: 217, 131, 31;--bs-danger-rgb: 155, 71, 159;--bs-light-rgb: 255, 255, 255;--bs-dark-rgb: 55, 58, 60;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-body-color-rgb: 33, 37, 41;--bs-body-bg-rgb: 252, 252, 252;--bs-font-sans-serif: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-root-font-size: 17px;--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-bg: #fcfcfc}*,*::before,*::after{box-sizing:border-box}:root{font-size:var(--bs-root-font-size)}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1,.h1{font-size:calc(1.325rem + 0.9vw)}@media(min-width: 1200px){h1,.h1{font-size:2rem}}h2,.h2{font-size:calc(1.29rem + 0.48vw)}@media(min-width: 1200px){h2,.h2{font-size:1.65rem}}h3,.h3{font-size:calc(1.27rem + 0.24vw)}@media(min-width: 1200px){h3,.h3{font-size:1.45rem}}h4,.h4{font-size:1.25rem}h5,.h5{font-size:1.1rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-bs-original-title]{text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem;padding:.625rem 1.25rem;border-left:.25rem solid #ddd}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}b,strong{font-weight:bolder}small,.small{font-size:0.875em}mark,.mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:#d9230f;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{color:#ae1c0c}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr /* rtl:ignore */;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:0.875em;color:#000;background-color:#f3f3f4;padding:.5rem;border:1px solid #dee2e6;border-radius:.25rem}pre code{background-color:rgba(0,0,0,0);font-size:inherit;color:inherit;word-break:normal}code{font-size:0.875em;color:#9753b8;background-color:#f3f3f4;border-radius:.25rem;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.4rem .4rem;font-size:0.875em;color:#fff;background-color:#212529;border-radius:.2em}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + 0.3vw);line-height:inherit}@media(min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:0.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:0.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fcfcfc;border:1px solid #dee2e6;border-radius:.25rem;box-shadow:0 .125rem .25rem rgba(0,0,0,.075);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:#6c757d}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media(min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media(min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media(min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media(min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.table{--bs-table-bg: transparent;--bs-table-accent-bg: transparent;--bs-table-striped-color: #212529;--bs-table-striped-bg: rgba(0, 0, 0, 0.05);--bs-table-active-color: #212529;--bs-table-active-bg: rgba(0, 0, 0, 0.1);--bs-table-hover-color: #212529;--bs-table-hover-bg: rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:first-child){border-top:2px solid #9ba5ae}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg: var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg: var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg: var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg: #f7d3cf;--bs-table-striped-bg: #ebc8c5;--bs-table-striped-color: #000;--bs-table-active-bg: #debeba;--bs-table-active-color: #000;--bs-table-hover-bg: #e4c3bf;--bs-table-hover-color: #000;color:#000;border-color:#debeba}.table-secondary{--bs-table-bg: white;--bs-table-striped-bg: #f2f2f2;--bs-table-striped-color: #000;--bs-table-active-bg: #e6e6e6;--bs-table-active-color: #000;--bs-table-hover-bg: #ececec;--bs-table-hover-color: #000;color:#000;border-color:#e6e6e6}.table-success{--bs-table-bg: #daeace;--bs-table-striped-bg: #cfdec4;--bs-table-striped-color: #000;--bs-table-active-bg: #c4d3b9;--bs-table-active-color: #000;--bs-table-hover-bg: #cad8bf;--bs-table-hover-color: #000;color:#000;border-color:#c4d3b9}.table-info{--bs-table-bg: #ccebf5;--bs-table-striped-bg: #c2dfe9;--bs-table-striped-color: #000;--bs-table-active-bg: #b8d4dd;--bs-table-active-color: #000;--bs-table-hover-bg: #bdd9e3;--bs-table-hover-color: #000;color:#000;border-color:#b8d4dd}.table-warning{--bs-table-bg: #f7e6d2;--bs-table-striped-bg: #ebdbc8;--bs-table-striped-color: #000;--bs-table-active-bg: #decfbd;--bs-table-active-color: #000;--bs-table-hover-bg: #e4d5c2;--bs-table-hover-color: #000;color:#000;border-color:#decfbd}.table-danger{--bs-table-bg: #ebdaec;--bs-table-striped-bg: #dfcfe0;--bs-table-striped-color: #000;--bs-table-active-bg: #d4c4d4;--bs-table-active-color: #000;--bs-table-hover-bg: #d9cada;--bs-table-hover-color: #000;color:#000;border-color:#d4c4d4}.table-light{--bs-table-bg: #fff;--bs-table-striped-bg: #f2f2f2;--bs-table-striped-color: #000;--bs-table-active-bg: #e6e6e6;--bs-table-active-color: #000;--bs-table-hover-bg: #ececec;--bs-table-hover-color: #000;color:#000;border-color:#e6e6e6}.table-dark{--bs-table-bg: #373a3c;--bs-table-striped-bg: #414446;--bs-table-striped-color: #fff;--bs-table-active-bg: #4b4e50;--bs-table-active-color: #fff;--bs-table-hover-bg: #46494b;--bs-table-hover-color: #fff;color:#fff;border-color:#4b4e50}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label,.shiny-input-container .control-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(0.375rem + 1px);padding-bottom:calc(0.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:0.875rem}.form-text{margin-top:.25rem;font-size:0.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fcfcfc;background-clip:padding-box;border:1px solid #bbb;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;border-radius:.25rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fcfcfc;border-color:#ec9187;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 .25rem rgba(217,35,15,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#ddd;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#212529;background-color:#ddd;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#d2d2d2}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#212529;background-color:#ddd;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#d2d2d2}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + 2px);padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 0.75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + 0.5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fcfcfc;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23373a3c' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #bbb;border-radius:.25rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#ec9187;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 .25rem rgba(217,35,15,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#ddd}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem;border-radius:.2em}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.3rem}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.125rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fcfcfc;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;color-adjust:exact;-webkit-print-color-adjust:exact}.form-check-input[type=checkbox],.shiny-input-container .checkbox input[type=checkbox],.shiny-input-container .checkbox-inline input[type=checkbox],.shiny-input-container .radio input[type=checkbox],.shiny-input-container .radio-inline input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio],.shiny-input-container .checkbox input[type=radio],.shiny-input-container .checkbox-inline input[type=radio],.shiny-input-container .radio input[type=radio],.shiny-input-container .radio-inline input[type=radio]{border-radius:50%}.form-check-input:active,.shiny-input-container .checkbox input:active,.shiny-input-container .checkbox-inline input:active,.shiny-input-container .radio input:active,.shiny-input-container .radio-inline input:active{filter:brightness(90%)}.form-check-input:focus,.shiny-input-container .checkbox input:focus,.shiny-input-container .checkbox-inline input:focus,.shiny-input-container .radio input:focus,.shiny-input-container .radio-inline input:focus{border-color:#ec9187;outline:0;box-shadow:0 0 0 .25rem rgba(217,35,15,.25)}.form-check-input:checked,.shiny-input-container .checkbox input:checked,.shiny-input-container .checkbox-inline input:checked,.shiny-input-container .radio input:checked,.shiny-input-container .radio-inline input:checked{background-color:#d9230f;border-color:#d9230f}.form-check-input:checked[type=checkbox],.shiny-input-container .checkbox input:checked[type=checkbox],.shiny-input-container .checkbox-inline input:checked[type=checkbox],.shiny-input-container .radio input:checked[type=checkbox],.shiny-input-container .radio-inline input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio],.shiny-input-container .checkbox input:checked[type=radio],.shiny-input-container .checkbox-inline input:checked[type=radio],.shiny-input-container .radio input:checked[type=radio],.shiny-input-container .radio-inline input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate,.shiny-input-container .checkbox input[type=checkbox]:indeterminate,.shiny-input-container .checkbox-inline input[type=checkbox]:indeterminate,.shiny-input-container .radio input[type=checkbox]:indeterminate,.shiny-input-container .radio-inline input[type=checkbox]:indeterminate{background-color:#d9230f;border-color:#d9230f;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ec9187'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline,.shiny-input-container .checkbox-inline,.shiny-input-container .radio-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:rgba(0,0,0,0);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fcfcfc,0 0 0 .25rem rgba(217,35,15,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fcfcfc,0 0 0 .25rem rgba(217,35,15,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;background-color:#d9230f;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#f4bdb7}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0);border-radius:1rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075)}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#d9230f;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#f4bdb7}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0);border-radius:1rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075)}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.input-group{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:stretch;-webkit-align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#ddd;border:1px solid #bbb;border-radius:.25rem}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#469408}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:rgba(70,148,8,.9);border-radius:.25rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#469408;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23469408' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#469408;box-shadow:0 0 0 .25rem rgba(70,148,8,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#469408}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23373a3c' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23469408' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#469408;box-shadow:0 0 0 .25rem rgba(70,148,8,.25)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#469408}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#469408}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(70,148,8,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#469408}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group .form-control:valid,.input-group .form-control.is-valid,.was-validated .input-group .form-select:valid,.input-group .form-select.is-valid{z-index:1}.was-validated .input-group .form-control:valid:focus,.input-group .form-control.is-valid:focus,.was-validated .input-group .form-select:valid:focus,.input-group .form-select.is-valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#9b479f}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:rgba(155,71,159,.9);border-radius:.25rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#9b479f;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%239b479f'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%239b479f' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#9b479f;box-shadow:0 0 0 .25rem rgba(155,71,159,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#9b479f}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23373a3c' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%239b479f'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%239b479f' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#9b479f;box-shadow:0 0 0 .25rem rgba(155,71,159,.25)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#9b479f}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#9b479f}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(155,71,159,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#9b479f}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group .form-control:invalid,.input-group .form-control.is-invalid,.was-validated .input-group .form-select:invalid,.input-group .form-select.is-invalid{z-index:2}.was-validated .input-group .form-control:invalid:focus,.input-group .form-control.is-invalid:focus,.was-validated .input-group .form-select:invalid:focus,.input-group .form-select.is-invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;background-color:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(217,35,15,.25)}.btn-check:checked+.btn,.btn-check:active+.btn,.btn:active,.btn.active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-check:checked+.btn:focus,.btn-check:active+.btn:focus,.btn:active:focus,.btn.active:focus{box-shadow:0 0 0 .25rem rgba(217,35,15,.25),inset 0 3px 5px rgba(0,0,0,.125)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65;box-shadow:none}.btn-default{color:#000;background-color:#fff;border-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-default:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-default,.btn-default:focus{color:#000;background-color:#fff;border-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(217,217,217,.5)}.btn-check:checked+.btn-default,.btn-check:active+.btn-default,.btn-default:active,.btn-default.active,.show>.btn-default.dropdown-toggle{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-default:focus,.btn-check:active+.btn-default:focus,.btn-default:active:focus,.btn-default.active:focus,.show>.btn-default.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(217,217,217,.5)}.btn-default:disabled,.btn-default.disabled{color:#000;background-color:#fff;border-color:#fff}.btn-primary{color:#fff;background-color:#d9230f;border-color:#d9230f;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-primary:hover{color:#fff;background-color:#b81e0d;border-color:#ae1c0c}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#b81e0d;border-color:#ae1c0c;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(223,68,51,.5)}.btn-check:checked+.btn-primary,.btn-check:active+.btn-primary,.btn-primary:active,.btn-primary.active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#ae1c0c;border-color:#a31a0b}.btn-check:checked+.btn-primary:focus,.btn-check:active+.btn-primary:focus,.btn-primary:active:focus,.btn-primary.active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(223,68,51,.5)}.btn-primary:disabled,.btn-primary.disabled{color:#fff;background-color:#d9230f;border-color:#d9230f}.btn-secondary{color:#000;background-color:#fff;border-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-secondary:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#000;background-color:#fff;border-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(217,217,217,.5)}.btn-check:checked+.btn-secondary,.btn-check:active+.btn-secondary,.btn-secondary:active,.btn-secondary.active,.show>.btn-secondary.dropdown-toggle{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-secondary:focus,.btn-check:active+.btn-secondary:focus,.btn-secondary:active:focus,.btn-secondary.active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(217,217,217,.5)}.btn-secondary:disabled,.btn-secondary.disabled{color:#000;background-color:#fff;border-color:#fff}.btn-success{color:#fff;background-color:#469408;border-color:#469408;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-success:hover{color:#fff;background-color:#3c7e07;border-color:#387606}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#3c7e07;border-color:#387606;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(98,164,45,.5)}.btn-check:checked+.btn-success,.btn-check:active+.btn-success,.btn-success:active,.btn-success.active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#387606;border-color:#356f06}.btn-check:checked+.btn-success:focus,.btn-check:active+.btn-success:focus,.btn-success:active:focus,.btn-success.active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(98,164,45,.5)}.btn-success:disabled,.btn-success.disabled{color:#fff;background-color:#469408;border-color:#469408}.btn-info{color:#fff;background-color:#029acf;border-color:#029acf;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-info:hover{color:#fff;background-color:#0283b0;border-color:#027ba6}.btn-check:focus+.btn-info,.btn-info:focus{color:#fff;background-color:#0283b0;border-color:#027ba6;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(40,169,214,.5)}.btn-check:checked+.btn-info,.btn-check:active+.btn-info,.btn-info:active,.btn-info.active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#027ba6;border-color:#02749b}.btn-check:checked+.btn-info:focus,.btn-check:active+.btn-info:focus,.btn-info:active:focus,.btn-info.active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(40,169,214,.5)}.btn-info:disabled,.btn-info.disabled{color:#fff;background-color:#029acf;border-color:#029acf}.btn-warning{color:#fff;background-color:#d9831f;border-color:#d9831f;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-warning:hover{color:#fff;background-color:#b86f1a;border-color:#ae6919}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#fff;background-color:#b86f1a;border-color:#ae6919;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(223,150,65,.5)}.btn-check:checked+.btn-warning,.btn-check:active+.btn-warning,.btn-warning:active,.btn-warning.active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#ae6919;border-color:#a36217}.btn-check:checked+.btn-warning:focus,.btn-check:active+.btn-warning:focus,.btn-warning:active:focus,.btn-warning.active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(223,150,65,.5)}.btn-warning:disabled,.btn-warning.disabled{color:#fff;background-color:#d9831f;border-color:#d9831f}.btn-danger{color:#fff;background-color:#9b479f;border-color:#9b479f;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger:hover{color:#fff;background-color:#843c87;border-color:#7c397f}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#843c87;border-color:#7c397f;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(170,99,173,.5)}.btn-check:checked+.btn-danger,.btn-check:active+.btn-danger,.btn-danger:active,.btn-danger.active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#7c397f;border-color:#743577}.btn-check:checked+.btn-danger:focus,.btn-check:active+.btn-danger:focus,.btn-danger:active:focus,.btn-danger.active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(170,99,173,.5)}.btn-danger:disabled,.btn-danger.disabled{color:#fff;background-color:#9b479f;border-color:#9b479f}.btn-light{color:#000;background-color:#fff;border-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-light:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#fff;border-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(217,217,217,.5)}.btn-check:checked+.btn-light,.btn-check:active+.btn-light,.btn-light:active,.btn-light.active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-light:focus,.btn-check:active+.btn-light:focus,.btn-light:active:focus,.btn-light.active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(217,217,217,.5)}.btn-light:disabled,.btn-light.disabled{color:#000;background-color:#fff;border-color:#fff}.btn-dark{color:#fff;background-color:#373a3c;border-color:#373a3c;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-dark:hover{color:#fff;background-color:#2f3133;border-color:#2c2e30}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#2f3133;border-color:#2c2e30;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(85,88,89,.5)}.btn-check:checked+.btn-dark,.btn-check:active+.btn-dark,.btn-dark:active,.btn-dark.active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#2c2e30;border-color:#292c2d}.btn-check:checked+.btn-dark:focus,.btn-check:active+.btn-dark:focus,.btn-dark:active:focus,.btn-dark.active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(85,88,89,.5)}.btn-dark:disabled,.btn-dark.disabled{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-outline-default{color:#fff;border-color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-default:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-outline-default,.btn-outline-default:focus{box-shadow:0 0 0 .25rem rgba(255,255,255,.5)}.btn-check:checked+.btn-outline-default,.btn-check:active+.btn-outline-default,.btn-outline-default:active,.btn-outline-default.active,.btn-outline-default.dropdown-toggle.show{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-outline-default:focus,.btn-check:active+.btn-outline-default:focus,.btn-outline-default:active:focus,.btn-outline-default.active:focus,.btn-outline-default.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(255,255,255,.5)}.btn-outline-default:disabled,.btn-outline-default.disabled{color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-primary{color:#d9230f;border-color:#d9230f;background-color:rgba(0,0,0,0)}.btn-outline-primary:hover{color:#fff;background-color:#d9230f;border-color:#d9230f}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(217,35,15,.5)}.btn-check:checked+.btn-outline-primary,.btn-check:active+.btn-outline-primary,.btn-outline-primary:active,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show{color:#fff;background-color:#d9230f;border-color:#d9230f}.btn-check:checked+.btn-outline-primary:focus,.btn-check:active+.btn-outline-primary:focus,.btn-outline-primary:active:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(217,35,15,.5)}.btn-outline-primary:disabled,.btn-outline-primary.disabled{color:#d9230f;background-color:rgba(0,0,0,0)}.btn-outline-secondary{color:#fff;border-color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-secondary:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(255,255,255,.5)}.btn-check:checked+.btn-outline-secondary,.btn-check:active+.btn-outline-secondary,.btn-outline-secondary:active,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-outline-secondary:focus,.btn-check:active+.btn-outline-secondary:focus,.btn-outline-secondary:active:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(255,255,255,.5)}.btn-outline-secondary:disabled,.btn-outline-secondary.disabled{color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-success{color:#469408;border-color:#469408;background-color:rgba(0,0,0,0)}.btn-outline-success:hover{color:#fff;background-color:#469408;border-color:#469408}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(70,148,8,.5)}.btn-check:checked+.btn-outline-success,.btn-check:active+.btn-outline-success,.btn-outline-success:active,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show{color:#fff;background-color:#469408;border-color:#469408}.btn-check:checked+.btn-outline-success:focus,.btn-check:active+.btn-outline-success:focus,.btn-outline-success:active:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(70,148,8,.5)}.btn-outline-success:disabled,.btn-outline-success.disabled{color:#469408;background-color:rgba(0,0,0,0)}.btn-outline-info{color:#029acf;border-color:#029acf;background-color:rgba(0,0,0,0)}.btn-outline-info:hover{color:#fff;background-color:#029acf;border-color:#029acf}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(2,154,207,.5)}.btn-check:checked+.btn-outline-info,.btn-check:active+.btn-outline-info,.btn-outline-info:active,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show{color:#fff;background-color:#029acf;border-color:#029acf}.btn-check:checked+.btn-outline-info:focus,.btn-check:active+.btn-outline-info:focus,.btn-outline-info:active:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(2,154,207,.5)}.btn-outline-info:disabled,.btn-outline-info.disabled{color:#029acf;background-color:rgba(0,0,0,0)}.btn-outline-warning{color:#d9831f;border-color:#d9831f;background-color:rgba(0,0,0,0)}.btn-outline-warning:hover{color:#fff;background-color:#d9831f;border-color:#d9831f}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(217,131,31,.5)}.btn-check:checked+.btn-outline-warning,.btn-check:active+.btn-outline-warning,.btn-outline-warning:active,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show{color:#fff;background-color:#d9831f;border-color:#d9831f}.btn-check:checked+.btn-outline-warning:focus,.btn-check:active+.btn-outline-warning:focus,.btn-outline-warning:active:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(217,131,31,.5)}.btn-outline-warning:disabled,.btn-outline-warning.disabled{color:#d9831f;background-color:rgba(0,0,0,0)}.btn-outline-danger{color:#9b479f;border-color:#9b479f;background-color:rgba(0,0,0,0)}.btn-outline-danger:hover{color:#fff;background-color:#9b479f;border-color:#9b479f}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(155,71,159,.5)}.btn-check:checked+.btn-outline-danger,.btn-check:active+.btn-outline-danger,.btn-outline-danger:active,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show{color:#fff;background-color:#9b479f;border-color:#9b479f}.btn-check:checked+.btn-outline-danger:focus,.btn-check:active+.btn-outline-danger:focus,.btn-outline-danger:active:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(155,71,159,.5)}.btn-outline-danger:disabled,.btn-outline-danger.disabled{color:#9b479f;background-color:rgba(0,0,0,0)}.btn-outline-light{color:#fff;border-color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-light:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(255,255,255,.5)}.btn-check:checked+.btn-outline-light,.btn-check:active+.btn-outline-light,.btn-outline-light:active,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-outline-light:focus,.btn-check:active+.btn-outline-light:focus,.btn-outline-light:active:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(255,255,255,.5)}.btn-outline-light:disabled,.btn-outline-light.disabled{color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-dark{color:#373a3c;border-color:#373a3c;background-color:rgba(0,0,0,0)}.btn-outline-dark:hover{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(55,58,60,.5)}.btn-check:checked+.btn-outline-dark,.btn-check:active+.btn-outline-dark,.btn-outline-dark:active,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-check:checked+.btn-outline-dark:focus,.btn-check:active+.btn-outline-dark:focus,.btn-outline-dark:active:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(55,58,60,.5)}.btn-outline-dark:disabled,.btn-outline-dark.disabled{color:#373a3c;background-color:rgba(0,0,0,0)}.btn-link{font-weight:400;color:#d9230f;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:hover{color:#ae1c0c}.btn-link:disabled,.btn-link.disabled{color:#6c757d}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .2s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0}.dropdown-item:hover,.dropdown-item:focus{color:#fff;background-color:#d9230f}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#d9230f}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:rgba(0,0,0,0)}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:0.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#373a3c;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:hover,.dropdown-menu-dark .dropdown-item:focus{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#d9230f}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;justify-content:flex-start;-webkit-justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group.show .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.9rem 1rem;color:#d9230f;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:#ae1c0c}.nav-link.disabled{color:#bbb;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #eee}.nav-tabs .nav-link{margin-bottom:-1px;background:none;border:1px solid rgba(0,0,0,0);border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{border-color:#ddd #ddd #eee;isolation:isolate}.nav-tabs .nav-link.disabled{color:#bbb;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#444;background-color:#fcfcfc;border-color:#eee #eee rgba(0,0,0,0)}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:none;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#d9230f}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;-webkit-flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;-webkit-flex-basis:0;flex-grow:1;-webkit-flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container-xxl,.navbar>.container-xl,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container,.navbar>.container-fluid{display:flex;display:-webkit-flex;flex-wrap:inherit;-webkit-flex-wrap:inherit;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between}.navbar-brand{padding-top:.7125rem;padding-bottom:.7125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.9rem;padding-bottom:.9rem}.navbar-collapse{flex-basis:100%;-webkit-flex-basis:100%;flex-grow:1;-webkit-flex-grow:1;align-items:center;-webkit-align-items:center}.navbar-toggler{padding:.25 0;font-size:1.25rem;line-height:1;background-color:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media(min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-top,.navbar-expand-sm .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-top,.navbar-expand-md .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-top,.navbar-expand-lg .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-top,.navbar-expand-xl .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-top,.navbar-expand-xxl .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-top,.navbar-expand .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-light{background-color:#5cb4c1}.navbar-light .navbar-brand{color:rgba(0,0,0,.6)}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:#3d0a04}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.6)}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(61,10,4,.8)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.75)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .nav-link.active{color:#3d0a04}.navbar-light .navbar-toggler{color:rgba(0,0,0,.6);border-color:rgba(0,0,0,0)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.6%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.6)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:#3d0a04}.navbar-dark{background-color:#5cb4c1}.navbar-dark .navbar-brand{color:rgba(0,0,0,.6)}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#3d0a04}.navbar-dark .navbar-nav .nav-link{color:rgba(0,0,0,.6)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(61,10,4,.8)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.75)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active{color:#3d0a04}.navbar-dark .navbar-toggler{color:rgba(0,0,0,.6);border-color:rgba(0,0,0,0)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.6%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(0,0,0,.6)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#3d0a04}.card{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid #eee;border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(0.25rem - 1px);border-bottom-left-radius:calc(0.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;-webkit-flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-0.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:#adb5bd;border-bottom:1px solid #eee}.card-header:first-child{border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:#adb5bd;border-top:1px solid #eee}.card-footer:last-child{border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)}.card-header-tabs{margin-right:-0.5rem;margin-bottom:-0.5rem;margin-left:-0.5rem;border-bottom:0}.card-header-tabs .nav-link.active{background-color:#fff;border-bottom-color:#fff}.card-header-pills{margin-right:-0.5rem;margin-left:-0.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(0.25rem - 1px)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(0.25rem - 1px);border-bottom-left-radius:calc(0.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media(min-width: 576px){.card-group{display:flex;display:-webkit-flex;flex-flow:row wrap;-webkit-flex-flow:row wrap}.card-group>.card{flex:1 0 0%;-webkit-flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fcfcfc;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media(prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#c3200e;background-color:#fbe9e7;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23c3200e'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media(prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#ec9187;outline:0;box-shadow:0 0 0 .25rem rgba(217,35,15,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fcfcfc;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(0.25rem - 1px);border-bottom-left-radius:calc(0.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:.375rem .75rem;margin-bottom:1rem;list-style:none;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, ">") /* rtl: var(--bs-breadcrumb-divider, ">") */}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#d9230f;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:#fff;border:1px solid #eee;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#fff;background-color:#d9230f;border-color:#d9230f}.page-link:focus{z-index:3;color:#ae1c0c;background-color:#ddd;outline:0;box-shadow:0 0 0 .25rem rgba(217,35,15,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#d9230f;border-color:#d9230f}.page-item.disabled .page-link{color:#bbb;pointer-events:none;background-color:#fff;border-color:#eee}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:0.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2em;border-bottom-left-radius:.2em}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2em;border-bottom-right-radius:.2em}.badge{display:inline-block;padding:.35em .65em;font-size:0.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid rgba(0,0,0,0);border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{color:#999;background-color:#fff;border-color:#fff}.alert-default .alert-link{color:#7a7a7a}.alert-primary{color:#821509;background-color:#f7d3cf;border-color:#f4bdb7}.alert-primary .alert-link{color:#681107}.alert-secondary{color:#999;background-color:#fff;border-color:#fff}.alert-secondary .alert-link{color:#7a7a7a}.alert-success{color:#2a5905;background-color:#daeace;border-color:#c8dfb5}.alert-success .alert-link{color:#224704}.alert-info{color:#015c7c;background-color:#ccebf5;border-color:#b3e1f1}.alert-info .alert-link{color:#014a63}.alert-warning{color:#824f13;background-color:#f7e6d2;border-color:#f4dabc}.alert-warning .alert-link{color:#683f0f}.alert-danger{color:#5d2b5f;background-color:#ebdaec;border-color:#e1c8e2}.alert-danger .alert-link{color:#4a224c}.alert-light{color:#999;background-color:#fff;border-color:#fff}.alert-light .alert-link{color:#7a7a7a}.alert-dark{color:#212324;background-color:#d7d8d8;border-color:#c3c4c5}.alert-dark .alert-link{color:#1a1c1d}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;display:-webkit-flex;height:1rem;overflow:hidden;font-size:0.75rem;background-color:#ddd;border-radius:.25rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075)}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:#d9230f;text-align:center;white-space:nowrap;background-color:#d9230f;transition:width .6s ease}@media(prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#444;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#444;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#ddd}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:#fff;border:1px solid #eee}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#eee}.list-group-item.active{z-index:2;color:#fff;background-color:#d9230f;border-color:#d9230f}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{color:#999;background-color:#fff}.list-group-item-default.list-group-item-action:hover,.list-group-item-default.list-group-item-action:focus{color:#999;background-color:#e6e6e6}.list-group-item-default.list-group-item-action.active{color:#fff;background-color:#999;border-color:#999}.list-group-item-primary{color:#821509;background-color:#f7d3cf}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#821509;background-color:#debeba}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#821509;border-color:#821509}.list-group-item-secondary{color:#999;background-color:#fff}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#999;background-color:#e6e6e6}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#999;border-color:#999}.list-group-item-success{color:#2a5905;background-color:#daeace}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#2a5905;background-color:#c4d3b9}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#2a5905;border-color:#2a5905}.list-group-item-info{color:#015c7c;background-color:#ccebf5}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#015c7c;background-color:#b8d4dd}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#015c7c;border-color:#015c7c}.list-group-item-warning{color:#824f13;background-color:#f7e6d2}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#824f13;background-color:#decfbd}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#824f13;border-color:#824f13}.list-group-item-danger{color:#5d2b5f;background-color:#ebdaec}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#5d2b5f;background-color:#d4c4d4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#5d2b5f;border-color:#5d2b5f}.list-group-item-light{color:#999;background-color:#fff}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#999;background-color:#e6e6e6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#999;border-color:#999}.list-group-item-dark{color:#212324;background-color:#d7d8d8}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#212324;background-color:#c2c2c2}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#212324;border-color:#212324}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(217,35,15,.25);opacity:1}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:0.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:max-content;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:-o-max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.toast-header .btn-close{margin-right:-0.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media(prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid #eee;border-radius:.3rem;box-shadow:0 .125rem .25rem rgba(0,0,0,.075);outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #eee;border-top-left-radius:calc(0.3rem - 1px);border-top-right-radius:calc(0.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-0.5rem -0.5rem -0.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:1rem}.modal-footer{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:.75rem;border-top:1px solid #eee;border-bottom-right-radius:calc(0.3rem - 1px);border-bottom-left-radius:calc(0.3rem - 1px)}.modal-footer>*{margin:.25rem}@media(min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-content{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.modal-sm{max-width:300px}}@media(min-width: 992px){.modal-lg,.modal-xl{max-width:800px}}@media(min-width: 1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media(max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media(max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media(max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media(max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media(max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[data-popper-placement^=top]{padding:.4rem 0}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:0}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-end,.bs-tooltip-auto[data-popper-placement^=right]{padding:0 .4rem}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[data-popper-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:0}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-start,.bs-tooltip-auto[data-popper-placement^=left]{padding:0 .4rem}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0 /* rtl:ignore */;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;background-color:#fcfcfc;background-clip:padding-box;border:1px solid #eee;border-radius:.3rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-0.5rem - 1px)}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:#eee}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fcfcfc}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-0.5rem - 1px);width:.5rem;height:1rem}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:#eee}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fcfcfc}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-0.5rem - 1px)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:#eee}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fcfcfc}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-0.5rem;content:"";border-bottom:1px solid #ededed}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-0.5rem - 1px);width:.5rem;height:1rem}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:#eee}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fcfcfc}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#ededed;border-bottom:1px solid #eee;border-top-left-radius:calc(0.3rem - 1px);border-top-right-radius:calc(0.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;border:.25em solid currentColor;border-right-color:rgba(0,0,0,0);border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{animation-duration:1.5s;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;box-shadow:0 .125rem .25rem rgba(0,0,0,.075);transition:transform .3s ease-in-out}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-0.5rem;margin-right:-0.5rem;margin-bottom:-0.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid #eee;transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid #eee;transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid #eee;transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid #eee;transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-default{color:#fff}.link-default:hover,.link-default:focus{color:#fff}.link-primary{color:#d9230f}.link-primary:hover,.link-primary:focus{color:#ae1c0c}.link-secondary{color:#fff}.link-secondary:hover,.link-secondary:focus{color:#fff}.link-success{color:#469408}.link-success:hover,.link-success:focus{color:#387606}.link-info{color:#029acf}.link-info:hover,.link-info:focus{color:#027ba6}.link-warning{color:#d9831f}.link-warning:hover,.link-warning:focus{color:#ae6919}.link-danger{color:#9b479f}.link-danger:hover,.link-danger:focus{color:#7c397f}.link-light{color:#fff}.link-light:hover,.link-light:focus{color:#fff}.link-dark{color:#373a3c}.link-dark:hover,.link-dark:focus{color:#2c2e30}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}@media(min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}}@media(min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}}@media(min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}}@media(min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}}@media(min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}}.hstack{display:flex;display:-webkit-flex;flex-direction:row;-webkit-flex-direction:row;align-items:center;-webkit-align-items:center;align-self:stretch;-webkit-align-self:stretch}.vstack{display:flex;display:-webkit-flex;flex:1 1 auto;-webkit-flex:1 1 auto;flex-direction:column;-webkit-flex-direction:column;align-self:stretch;-webkit-align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;-webkit-align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:1px solid #dee2e6 !important}.border-0{border:0 !important}.border-top{border-top:1px solid #dee2e6 !important}.border-top-0{border-top:0 !important}.border-end{border-right:1px solid #dee2e6 !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:1px solid #dee2e6 !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:1px solid #dee2e6 !important}.border-start-0{border-left:0 !important}.border-default{border-color:#fff !important}.border-primary{border-color:#d9230f !important}.border-secondary{border-color:#fff !important}.border-success{border-color:#469408 !important}.border-info{border-color:#029acf !important}.border-warning{border-color:#d9831f !important}.border-danger{border-color:#9b479f !important}.border-light{border-color:#fff !important}.border-dark{border-color:#373a3c !important}.border-white{border-color:#fff !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.325rem + 0.9vw) !important}.fs-2{font-size:calc(1.29rem + 0.48vw) !important}.fs-3{font-size:calc(1.27rem + 0.24vw) !important}.fs-4{font-size:1.25rem !important}.fs-5{font-size:1.1rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-light{font-weight:300 !important}.fw-lighter{font-weight:lighter !important}.fw-normal{font-weight:400 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-default{--bs-text-opacity: 1;color:rgba(var(--bs-default-rgb), var(--bs-text-opacity)) !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:#6c757d !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,.5) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.text-opacity-25{--bs-text-opacity: 0.25}.text-opacity-50{--bs-text-opacity: 0.5}.text-opacity-75{--bs-text-opacity: 0.75}.text-opacity-100{--bs-text-opacity: 1}.bg-default{--bs-bg-opacity: 1;background-color:rgba(var(--bs-default-rgb), var(--bs-bg-opacity)) !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-opacity-10{--bs-bg-opacity: 0.1}.bg-opacity-25{--bs-bg-opacity: 0.25}.bg-opacity-50{--bs-bg-opacity: 0.5}.bg-opacity-75{--bs-bg-opacity: 0.75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:.25rem !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:.2em !important}.rounded-2{border-radius:.25rem !important}.rounded-3{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-end{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-start{border-bottom-left-radius:.25rem !important;border-top-left-radius:.25rem !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#000}.bg-primary{color:#fff}.bg-secondary{color:#000}.bg-success{color:#fff}.bg-info{color:#fff}.bg-warning{color:#fff}.bg-danger{color:#fff}.bg-light{color:#000}.bg-dark{color:#fff}@media(min-width: 1200px){.fs-1{font-size:2rem !important}.fs-2{font-size:1.65rem !important}.fs-3{font-size:1.45rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}.quarto-container{min-height:calc(100vh - 132px)}footer.footer .nav-footer,#quarto-header>nav{padding-left:1em;padding-right:1em}nav[role=doc-toc]{padding-left:.5em}#quarto-content>*{padding-top:14px}@media(max-width: 991.98px){#quarto-content>*{padding-top:0}#quarto-content .subtitle{padding-top:14px}#quarto-content section:first-of-type h2:first-of-type,#quarto-content section:first-of-type .h2:first-of-type{margin-top:1rem}}.headroom-target,header.headroom{will-change:transform;transition:position 200ms linear;transition:all 200ms linear}header.headroom--pinned{transform:translateY(0%)}header.headroom--unpinned{transform:translateY(-100%)}.navbar-container{width:100%}.navbar-brand{overflow:hidden;text-overflow:ellipsis}.navbar-brand-container{max-width:calc(100% - 115px);min-width:0;display:flex;align-items:center}@media(min-width: 992px){.navbar-brand-container{margin-right:1em}}.navbar-brand.navbar-brand-logo{margin-right:4px;display:inline-flex}.navbar-toggler{flex-basis:content;flex-shrink:0}.navbar .navbar-toggler{order:-1;margin-right:.5em}.navbar-logo{max-height:24px;width:auto;padding-right:4px}nav .nav-item:not(.compact){padding-top:1px}nav .nav-link i,nav .dropdown-item i{padding-right:1px}.navbar-expand-lg .navbar-nav .nav-link{padding-left:.6rem;padding-right:.6rem}nav .nav-item.compact .nav-link{padding-left:.5rem;padding-right:.5rem;font-size:1.1rem}.navbar .quarto-navbar-tools div.dropdown{display:inline-block}.navbar .quarto-navbar-tools .quarto-navigation-tool{color:rgba(0,0,0,.6)}.navbar .quarto-navbar-tools .quarto-navigation-tool:hover{color:#3d0a04}@media(max-width: 991.98px){.navbar .quarto-navbar-tools{margin-top:.25em;padding-top:.75em;display:block;color:solid rgba(128,128,128,.6) 1px;text-align:center;vertical-align:middle;margin-right:auto}}.navbar-nav .dropdown-menu{min-width:220px;font-size:.9rem}.navbar .navbar-nav .nav-link.dropdown-toggle::after{opacity:.75;vertical-align:.175em}.navbar ul.dropdown-menu{padding-top:0;padding-bottom:0}.navbar .dropdown-header{text-transform:uppercase;font-size:.8rem;padding:0 .5rem}.navbar .dropdown-item{padding:.4rem .5rem}.navbar .dropdown-item>i.bi{margin-left:.1rem;margin-right:.25em}.sidebar #quarto-search{margin-top:-1px}.sidebar #quarto-search svg.aa-SubmitIcon{width:16px;height:16px}.sidebar-navigation a{color:inherit}.sidebar-title{margin-top:.25rem;padding-bottom:.5rem;font-size:1.3rem;line-height:1.6rem;visibility:visible}.sidebar-title>a{font-size:inherit;text-decoration:none}.sidebar-title .sidebar-tools-main{margin-top:-6px}@media(max-width: 991.98px){#quarto-sidebar div.sidebar-header{padding-top:.2em}}.sidebar-header-stacked .sidebar-title{margin-top:.6rem}.sidebar-logo{max-width:90%;padding-bottom:.5rem}.sidebar-logo-link{text-decoration:none}.sidebar-navigation li a{text-decoration:none}.sidebar-navigation .quarto-navigation-tool{opacity:.7;font-size:.875rem}#quarto-sidebar>nav>.sidebar-tools-main{margin-left:14px}.sidebar-tools-main{display:inline-flex;margin-left:0px;order:2}.sidebar-tools-main:not(.tools-wide){vertical-align:middle}.sidebar-navigation .quarto-navigation-tool.dropdown-toggle::after{display:none}.sidebar.sidebar-navigation>*{padding-top:1em}.sidebar-item{margin-bottom:.2em}.sidebar-section{margin-top:.2em;padding-left:.5em;padding-bottom:.2em}.sidebar-item .sidebar-item-container{display:flex;justify-content:space-between}.sidebar-item-toggle:hover{cursor:pointer}.sidebar-item .sidebar-item-toggle .bi{font-size:.7rem;text-align:center}.sidebar-item .sidebar-item-toggle .bi-chevron-right::before{transition:transform 200ms ease}.sidebar-item .sidebar-item-toggle[aria-expanded=false] .bi-chevron-right::before{transform:none}.sidebar-item .sidebar-item-toggle[aria-expanded=true] .bi-chevron-right::before{transform:rotate(90deg)}.sidebar-navigation .sidebar-divider{margin-left:0;margin-right:0;margin-top:.5rem;margin-bottom:.5rem}@media(max-width: 991.98px){.quarto-secondary-nav{display:block}.quarto-secondary-nav button.quarto-search-button{padding-right:0em;padding-left:2em}.quarto-secondary-nav button.quarto-btn-toggle{margin-left:-0.75rem;margin-right:.15rem}.quarto-secondary-nav nav.quarto-page-breadcrumbs{display:flex;align-items:center;padding-right:1em;margin-left:-0.25em}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{text-decoration:none}.quarto-secondary-nav nav.quarto-page-breadcrumbs ol.breadcrumb{margin-bottom:0}}@media(min-width: 992px){.quarto-secondary-nav{display:none}}.quarto-secondary-nav .quarto-btn-toggle{color:#674ea7}.quarto-secondary-nav[aria-expanded=false] .quarto-btn-toggle .bi-chevron-right::before{transform:none}.quarto-secondary-nav[aria-expanded=true] .quarto-btn-toggle .bi-chevron-right::before{transform:rotate(90deg)}.quarto-secondary-nav .quarto-btn-toggle .bi-chevron-right::before{transition:transform 200ms ease}.quarto-secondary-nav{cursor:pointer}.quarto-secondary-nav-title{margin-top:.3em;color:#674ea7;padding-top:4px}.quarto-secondary-nav nav.quarto-page-breadcrumbs{color:#674ea7}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{color:#674ea7}.quarto-secondary-nav nav.quarto-page-breadcrumbs a:hover{color:rgba(148,24,10,.8)}.quarto-secondary-nav nav.quarto-page-breadcrumbs .breadcrumb-item::before{color:#a190cb}div.sidebar-item-container{color:#674ea7}div.sidebar-item-container:hover,div.sidebar-item-container:focus{color:rgba(148,24,10,.8)}div.sidebar-item-container.disabled{color:rgba(103,78,167,.75)}div.sidebar-item-container .active,div.sidebar-item-container .show>.nav-link,div.sidebar-item-container .sidebar-link>code{color:#94180a}div.sidebar.sidebar-navigation.rollup.quarto-sidebar-toggle-contents,nav.sidebar.sidebar-navigation:not(.rollup){background-color:#dde8ea}@media(max-width: 991.98px){.sidebar-navigation .sidebar-item a,.nav-page .nav-page-text,.sidebar-navigation{font-size:1rem}.sidebar-navigation ul.sidebar-section.depth1 .sidebar-section-item{font-size:1.1rem}.sidebar-logo{display:none}.sidebar.sidebar-navigation{position:static;border-bottom:1px solid #dee2e6}.sidebar.sidebar-navigation.collapsing{position:fixed;z-index:1000}.sidebar.sidebar-navigation.show{position:fixed;z-index:1000}.sidebar.sidebar-navigation{min-height:100%}nav.quarto-secondary-nav{background-color:#dde8ea;border-bottom:1px solid #dee2e6}.sidebar .sidebar-footer{visibility:visible;padding-top:1rem;position:inherit}.sidebar-tools-collapse{display:block}}#quarto-sidebar{transition:width .15s ease-in}#quarto-sidebar>*{padding-right:1em}@media(max-width: 991.98px){#quarto-sidebar .sidebar-menu-container{white-space:nowrap;min-width:225px}#quarto-sidebar.show{transition:width .15s ease-out}}@media(min-width: 992px){#quarto-sidebar{display:flex;flex-direction:column}.nav-page .nav-page-text,.sidebar-navigation .sidebar-section .sidebar-item{font-size:.875rem}.sidebar-navigation .sidebar-item{font-size:.925rem}.sidebar.sidebar-navigation{display:block;position:sticky}.sidebar-search{width:100%}.sidebar .sidebar-footer{visibility:visible}}@media(max-width: 991.98px){#quarto-sidebar-glass{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(255,255,255,0);transition:background-color .15s ease-in;z-index:-1}#quarto-sidebar-glass.collapsing{z-index:1000}#quarto-sidebar-glass.show{transition:background-color .15s ease-out;background-color:rgba(102,102,102,.4);z-index:1000}}.sidebar .sidebar-footer{padding:.5rem 1rem;align-self:flex-end;color:#6c757d;width:100%}.quarto-page-breadcrumbs .breadcrumb-item+.breadcrumb-item,.quarto-page-breadcrumbs .breadcrumb-item{padding-right:.33em;padding-left:0}.quarto-page-breadcrumbs .breadcrumb-item::before{padding-right:.33em}.quarto-sidebar-footer{font-size:.875em}.sidebar-section .bi-chevron-right{vertical-align:middle}.sidebar-section .bi-chevron-right::before{font-size:.9em}.notransition{-webkit-transition:none !important;-moz-transition:none !important;-o-transition:none !important;transition:none !important}.btn:focus:not(:focus-visible){box-shadow:none}.page-navigation{display:flex;justify-content:space-between}.nav-page{padding-bottom:.75em}.nav-page .bi{font-size:1.8rem;vertical-align:middle}.nav-page .nav-page-text{padding-left:.25em;padding-right:.25em}.nav-page a{color:#6c757d;text-decoration:none;display:flex;align-items:center}.nav-page a:hover{color:#ae1c0c}.toc-actions{display:flex}.toc-actions p{margin-block-start:0;margin-block-end:0}.toc-actions a{text-decoration:none;color:inherit;font-weight:400}.toc-actions a:hover{color:#ae1c0c}.toc-actions .action-links{margin-left:4px}.sidebar nav[role=doc-toc] .toc-actions .bi{margin-left:-4px;font-size:.7rem;color:#6c757d}.sidebar nav[role=doc-toc] .toc-actions .bi:before{padding-top:3px}#quarto-margin-sidebar .toc-actions .bi:before{margin-top:.3rem;font-size:.7rem;color:#6c757d;vertical-align:top}.sidebar nav[role=doc-toc] .toc-actions>div:first-of-type{margin-top:-3px}#quarto-margin-sidebar .toc-actions p,.sidebar nav[role=doc-toc] .toc-actions p{font-size:.875rem}.nav-footer .toc-actions{padding-bottom:.5em;padding-top:.5em}.nav-footer .toc-actions :first-child{margin-left:auto}.nav-footer .toc-actions :last-child{margin-right:auto}.nav-footer .toc-actions .action-links{display:flex}.nav-footer .toc-actions .action-links p{padding-right:1.5em}.nav-footer .toc-actions .action-links p:last-of-type{padding-right:0}.nav-footer{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:baseline;text-align:center;padding-top:.5rem;padding-bottom:.5rem;background-color:#fcfcfc}body.nav-fixed{padding-top:80px}.nav-footer-contents{color:#6c757d;margin-top:.25rem}.nav-footer{min-height:3.5em;color:#747474}.nav-footer a{color:#747474}.nav-footer .nav-footer-left{font-size:.825em}.nav-footer .nav-footer-center{font-size:.825em}.nav-footer .nav-footer-right{font-size:.825em}.nav-footer-left .footer-items,.nav-footer-center .footer-items,.nav-footer-right .footer-items{display:inline-flex;padding-top:.3em;padding-bottom:.3em;margin-bottom:0em}.nav-footer-left .footer-items .nav-link,.nav-footer-center .footer-items .nav-link,.nav-footer-right .footer-items .nav-link{padding-left:.6em;padding-right:.6em}.nav-footer-left{flex:1 1 0px;text-align:left}.nav-footer-right{flex:1 1 0px;text-align:right}.nav-footer-center{flex:1 1 0px;min-height:3em;text-align:center}.nav-footer-center .footer-items{justify-content:center}@media(max-width: 767.98px){.nav-footer-center{margin-top:3em}}.navbar .quarto-reader-toggle.reader .quarto-reader-toggle-btn{background-color:rgba(0,0,0,.6);border-radius:3px}.quarto-reader-toggle.reader.quarto-navigation-tool .quarto-reader-toggle-btn{background-color:#674ea7;border-radius:3px}.quarto-reader-toggle .quarto-reader-toggle-btn{display:inline-flex;padding-left:.2em;padding-right:.2em;margin-left:-0.2em;margin-right:-0.2em;text-align:center}.navbar .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}#quarto-back-to-top{display:none;position:fixed;bottom:50px;background-color:#fcfcfc;border-radius:.25rem;box-shadow:0 .2rem .5rem #6c757d,0 0 .05rem #6c757d;color:#6c757d;text-decoration:none;font-size:.9em;text-align:center;left:50%;padding:.4rem .8rem;transform:translate(-50%, 0)}.aa-DetachedOverlay ul.aa-List,#quarto-search-results ul.aa-List{list-style:none;padding-left:0}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{background-color:#fcfcfc;position:absolute;z-index:2000}#quarto-search-results .aa-Panel{max-width:400px}#quarto-search input{font-size:.925rem}@media(min-width: 992px){.navbar #quarto-search{margin-left:.25rem;order:999}}@media(max-width: 991.98px){#quarto-sidebar .sidebar-search{display:none}}#quarto-sidebar .sidebar-search .aa-Autocomplete{width:100%}.navbar .aa-Autocomplete .aa-Form{width:180px}.navbar #quarto-search.type-overlay .aa-Autocomplete{width:40px}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form{background-color:inherit;border:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form:focus-within{box-shadow:none;outline:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper{display:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper:focus-within{display:inherit}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-Label svg,.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-LoadingIndicator svg{width:26px;height:26px;color:rgba(0,0,0,.6);opacity:1}.navbar #quarto-search.type-overlay .aa-Autocomplete svg.aa-SubmitIcon{width:26px;height:26px;color:rgba(0,0,0,.6);opacity:1}.aa-Autocomplete .aa-Form,.aa-DetachedFormContainer .aa-Form{align-items:center;background-color:#fcfcfc;border:1px solid #bbb;border-radius:.25rem;color:#212529;display:flex;line-height:1em;margin:0;position:relative;width:100%}.aa-Autocomplete .aa-Form:focus-within,.aa-DetachedFormContainer .aa-Form:focus-within{box-shadow:rgba(217,35,15,.6) 0 0 0 1px;outline:currentColor none medium}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;order:1}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{cursor:initial;flex-shrink:0;padding:0;text-align:left}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg{color:#212529;opacity:.5}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton{appearance:none;background:none;border:0;margin:0}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapper,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper{order:3;position:relative;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input{appearance:none;background:none;border:0;color:#212529;font:inherit;height:calc(1.5em + .1rem + 2px);padding:0;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::placeholder,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::placeholder{color:#212529;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input:focus{border-color:none;box-shadow:none;outline:none}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix{align-items:center;display:flex;order:4}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton{align-items:center;background:none;border:0;color:#212529;opacity:.8;cursor:pointer;display:flex;margin:0;width:calc(1.5em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus{color:#212529;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg{width:calc(1.5em + 0.75rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton{border:none;align-items:center;background:none;color:#212529;opacity:.4;font-size:.7rem;cursor:pointer;display:none;margin:0;width:calc(1em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus{color:#212529;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden]{display:none}.aa-PanelLayout:empty{display:none}.quarto-search-no-results.no-query{display:none}.aa-Source:has(.no-query){display:none}#quarto-search-results .aa-Panel{border:solid #bbb 1px}#quarto-search-results .aa-SourceNoResults{width:398px}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{max-height:65vh;overflow-y:auto;font-size:.925rem}.aa-DetachedOverlay .aa-SourceNoResults,#quarto-search-results .aa-SourceNoResults{height:60px;display:flex;justify-content:center;align-items:center}.aa-DetachedOverlay .search-error,#quarto-search-results .search-error{padding-top:10px;padding-left:20px;padding-right:20px;cursor:default}.aa-DetachedOverlay .search-error .search-error-title,#quarto-search-results .search-error .search-error-title{font-size:1.1rem;margin-bottom:.5rem}.aa-DetachedOverlay .search-error .search-error-title .search-error-icon,#quarto-search-results .search-error .search-error-title .search-error-icon{margin-right:8px}.aa-DetachedOverlay .search-error .search-error-text,#quarto-search-results .search-error .search-error-text{font-weight:300}.aa-DetachedOverlay .search-result-text,#quarto-search-results .search-result-text{font-weight:300;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2rem;max-height:2.4rem}.aa-DetachedOverlay .aa-SourceHeader .search-result-header,#quarto-search-results .aa-SourceHeader .search-result-header{font-size:.875rem;background-color:#efefef;padding-left:14px;padding-bottom:4px;padding-top:4px}.aa-DetachedOverlay .aa-SourceHeader .search-result-header-no-results,#quarto-search-results .aa-SourceHeader .search-result-header-no-results{display:none}.aa-DetachedOverlay .aa-SourceFooter .algolia-search-logo,#quarto-search-results .aa-SourceFooter .algolia-search-logo{width:110px;opacity:.85;margin:8px;float:right}.aa-DetachedOverlay .search-result-section,#quarto-search-results .search-result-section{font-size:.925em}.aa-DetachedOverlay a.search-result-link,#quarto-search-results a.search-result-link{color:inherit;text-decoration:none}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item,#quarto-search-results li.aa-Item[aria-selected=true] .search-item{background-color:#d9230f}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text-container{color:#fff;background-color:#d9230f}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=true] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-match.mark{color:#fff;background-color:#f03621}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item,#quarto-search-results li.aa-Item[aria-selected=false] .search-item{background-color:#fcfcfc}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text-container{color:#212529}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=false] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-match.mark{color:inherit;background-color:#fbc9c3}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container{background-color:#fcfcfc;color:#212529}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container{padding-top:0px}.aa-DetachedOverlay li.aa-Item .search-result-doc.document-selectable .search-result-text-container,#quarto-search-results li.aa-Item .search-result-doc.document-selectable .search-result-text-container{margin-top:-4px}.aa-DetachedOverlay .aa-Item,#quarto-search-results .aa-Item{cursor:pointer}.aa-DetachedOverlay .aa-Item .search-item,#quarto-search-results .aa-Item .search-item{border-left:none;border-right:none;border-top:none;background-color:#fcfcfc;border-color:#bbb;color:#212529}.aa-DetachedOverlay .aa-Item .search-item p,#quarto-search-results .aa-Item .search-item p{margin-top:0;margin-bottom:0}.aa-DetachedOverlay .aa-Item .search-item i.bi,#quarto-search-results .aa-Item .search-item i.bi{padding-left:8px;padding-right:8px;font-size:1.3em}.aa-DetachedOverlay .aa-Item .search-item .search-result-title,#quarto-search-results .aa-Item .search-item .search-result-title{margin-top:.3em;margin-bottom:.1rem}.aa-DetachedOverlay .aa-Item .search-result-title-container,#quarto-search-results .aa-Item .search-result-title-container{font-size:1em;display:flex;padding:6px 4px 6px 4px}.aa-DetachedOverlay .aa-Item .search-result-text-container,#quarto-search-results .aa-Item .search-result-text-container{padding-bottom:8px;padding-right:8px;margin-left:44px}.aa-DetachedOverlay .aa-Item .search-result-doc-section,.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-doc-section,#quarto-search-results .aa-Item .search-result-more{padding-top:8px;padding-bottom:8px;padding-left:44px}.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-more{font-size:.8em;font-weight:400}.aa-DetachedOverlay .aa-Item .search-result-doc,#quarto-search-results .aa-Item .search-result-doc{border-top:1px solid #bbb}.aa-DetachedSearchButton{background:none;border:none}.aa-DetachedSearchButton .aa-DetachedSearchButtonPlaceholder{display:none}.navbar .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:rgba(0,0,0,.6)}.sidebar-tools-collapse #quarto-search,.sidebar-tools-main #quarto-search{display:inline}.sidebar-tools-collapse #quarto-search .aa-Autocomplete,.sidebar-tools-main #quarto-search .aa-Autocomplete{display:inline}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton{padding-left:4px;padding-right:4px}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#674ea7}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon{margin-top:-3px}.aa-DetachedContainer{background:rgba(252,252,252,.65);width:90%;bottom:0;box-shadow:rgba(187,187,187,.6) 0 0 0 1px;outline:currentColor none medium;display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:1101}.aa-DetachedContainer::after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fcfcfc;border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{background-color:#fcfcfc;border-bottom:1px solid #bbb;display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:.5em}.aa-DetachedCancelButton{background:none;font-size:.8em;border:0;border-radius:3px;color:#212529;cursor:pointer;margin:0 0 0 .5em;padding:0 .5em}.aa-DetachedCancelButton:hover,.aa-DetachedCancelButton:focus{box-shadow:rgba(217,35,15,.6) 0 0 0 1px;outline:currentColor none medium}.aa-DetachedContainer--modal{bottom:inherit;height:auto;margin:0 auto;position:absolute;top:100px;border-radius:6px;max-width:850px}@media(max-width: 575.98px){.aa-DetachedContainer--modal{width:100%;top:0px;border-radius:0px;border:none}}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:var(--aa-detached-modal-max-height);padding-bottom:var(--aa-spacing-half);position:static}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:rgba(33,37,41,.4);position:fixed;left:0;right:0;top:0;margin:0;padding:0;height:100vh;z-index:1100}.quarto-listing{padding-bottom:1em}.listing-pagination{padding-top:.5em}ul.pagination{float:right;padding-left:8px;padding-top:.5em}ul.pagination li{padding-right:.75em}ul.pagination li.disabled a,ul.pagination li.active a{color:#212529;text-decoration:none}ul.pagination li:last-of-type{padding-right:0}.listing-actions-group{display:flex}.quarto-listing-filter{margin-bottom:1em;width:200px;margin-left:auto}.quarto-listing-sort{margin-bottom:1em;margin-right:auto;width:auto}.quarto-listing-sort .input-group-text{font-size:.8em}.input-group-text{border-right:none}.quarto-listing-sort select.form-select{font-size:.8em}.listing-no-matching{text-align:center;padding-top:2em;padding-bottom:3em;font-size:1em}#quarto-margin-sidebar .quarto-listing-category{padding-top:0;font-size:1rem}#quarto-margin-sidebar .quarto-listing-category-title{cursor:pointer;font-weight:600;font-size:1rem}.quarto-listing-category .category{cursor:pointer}.quarto-listing-category .category.active{font-weight:600}.quarto-listing-category.category-cloud{display:flex;flex-wrap:wrap;align-items:baseline}.quarto-listing-category.category-cloud .category{padding-right:5px}.quarto-listing-category.category-cloud .category-cloud-1{font-size:.75em}.quarto-listing-category.category-cloud .category-cloud-2{font-size:.95em}.quarto-listing-category.category-cloud .category-cloud-3{font-size:1.15em}.quarto-listing-category.category-cloud .category-cloud-4{font-size:1.35em}.quarto-listing-category.category-cloud .category-cloud-5{font-size:1.55em}.quarto-listing-category.category-cloud .category-cloud-6{font-size:1.75em}.quarto-listing-category.category-cloud .category-cloud-7{font-size:1.95em}.quarto-listing-category.category-cloud .category-cloud-8{font-size:2.15em}.quarto-listing-category.category-cloud .category-cloud-9{font-size:2.35em}.quarto-listing-category.category-cloud .category-cloud-10{font-size:2.55em}.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-1{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-2{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-3{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-3{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-4{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-4{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-5{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-5{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-6{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-6{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-7{grid-template-columns:repeat(7, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-7{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-7{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-8{grid-template-columns:repeat(8, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-8{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-8{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-9{grid-template-columns:repeat(9, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-9{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-9{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-10{grid-template-columns:repeat(10, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-10{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-10{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-11{grid-template-columns:repeat(11, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-11{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-11{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-12{grid-template-columns:repeat(12, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-12{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-12{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-grid{gap:1.5em}.quarto-grid-item.borderless{border:none}.quarto-grid-item.borderless .listing-categories .listing-category:last-of-type,.quarto-grid-item.borderless .listing-categories .listing-category:first-of-type{padding-left:0}.quarto-grid-item.borderless .listing-categories .listing-category{border:0}.quarto-grid-link{text-decoration:none;color:inherit}.quarto-grid-link:hover{text-decoration:none;color:inherit}.quarto-grid-item h5.title,.quarto-grid-item .title.h5{margin-top:0;margin-bottom:0}.quarto-grid-item .card-footer{display:flex;justify-content:space-between;font-size:.8em}.quarto-grid-item .card-footer p{margin-bottom:0}.quarto-grid-item p.card-img-top{margin-bottom:0}.quarto-grid-item p.card-img-top>img{object-fit:cover}.quarto-grid-item .card-other-values{margin-top:.5em;font-size:.8em}.quarto-grid-item .card-other-values tr{margin-bottom:.5em}.quarto-grid-item .card-other-values tr>td:first-of-type{font-weight:600;padding-right:1em;padding-left:1em;vertical-align:top}.quarto-grid-item div.post-contents{display:flex;flex-direction:column;text-decoration:none;height:100%}.quarto-grid-item .listing-item-img-placeholder{background-color:#adb5bd;flex-shrink:0}.quarto-grid-item .card-attribution{padding-top:1em;display:flex;gap:1em;text-transform:uppercase;color:#6c757d;font-weight:500;flex-grow:10;align-items:flex-end}.quarto-grid-item .description{padding-bottom:1em}.quarto-grid-item .card-attribution .date{align-self:flex-end}.quarto-grid-item .card-attribution.justify{justify-content:space-between}.quarto-grid-item .card-attribution.start{justify-content:flex-start}.quarto-grid-item .card-attribution.end{justify-content:flex-end}.quarto-grid-item .card-title{margin-bottom:.1em}.quarto-grid-item .card-subtitle{padding-top:.25em}.quarto-grid-item .card-text{font-size:.9em}.quarto-grid-item .listing-reading-time{padding-bottom:.25em}.quarto-grid-item .card-text-small{font-size:.8em}.quarto-grid-item .card-subtitle.subtitle{font-size:.9em;font-weight:600;padding-bottom:.5em}.quarto-grid-item .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}.quarto-grid-item .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}.quarto-grid-item.card-right{text-align:right}.quarto-grid-item.card-right .listing-categories{justify-content:flex-end}.quarto-grid-item.card-left{text-align:left}.quarto-grid-item.card-center{text-align:center}.quarto-grid-item.card-center .listing-description{text-align:justify}.quarto-grid-item.card-center .listing-categories{justify-content:center}table.quarto-listing-table td.image{padding:0px}table.quarto-listing-table td.image img{width:100%;max-width:50px;object-fit:contain}table.quarto-listing-table a{text-decoration:none}table.quarto-listing-table th a{color:inherit}table.quarto-listing-table th a.asc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table th a.desc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table.table-hover td{cursor:pointer}.quarto-post.image-left{flex-direction:row}.quarto-post.image-right{flex-direction:row-reverse}@media(max-width: 767.98px){.quarto-post.image-right,.quarto-post.image-left{gap:0em;flex-direction:column}.quarto-post .metadata{padding-bottom:1em;order:2}.quarto-post .body{order:1}.quarto-post .thumbnail{order:3}}.list.quarto-listing-default div:last-of-type{border-bottom:none}@media(min-width: 992px){.quarto-listing-container-default{margin-right:2em}}div.quarto-post{display:flex;gap:2em;margin-bottom:1.5em;border-bottom:1px solid #dee2e6}@media(max-width: 767.98px){div.quarto-post{padding-bottom:1em}}div.quarto-post .metadata{flex-basis:20%;flex-grow:0;margin-top:.2em;flex-shrink:10}div.quarto-post .thumbnail{flex-basis:30%;flex-grow:0;flex-shrink:0}div.quarto-post .thumbnail img{margin-top:.4em;width:100%;object-fit:cover}div.quarto-post .body{flex-basis:45%;flex-grow:1;flex-shrink:0}div.quarto-post .body h3.listing-title,div.quarto-post .body .listing-title.h3{margin-top:0px;margin-bottom:0px;border-bottom:none}div.quarto-post .body .listing-subtitle{font-size:.875em;margin-bottom:.5em;margin-top:.2em}div.quarto-post .body .description{font-size:.9em}div.quarto-post a{color:#212529;display:flex;flex-direction:column;text-decoration:none}div.quarto-post a div.description{flex-shrink:0}div.quarto-post .metadata{display:flex;flex-direction:column;font-size:.8em;font-family:var(--bs-font-sans-serif);flex-basis:33%}div.quarto-post .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}div.quarto-post .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}div.quarto-post .listing-description{margin-bottom:.5em}div.quarto-about-jolla{display:flex !important;flex-direction:column;align-items:center;margin-top:10%;padding-bottom:1em}div.quarto-about-jolla .about-image{object-fit:cover;margin-left:auto;margin-right:auto;margin-bottom:1.5em}div.quarto-about-jolla img.round{border-radius:50%}div.quarto-about-jolla img.rounded{border-radius:10px}div.quarto-about-jolla .quarto-title h1.title,div.quarto-about-jolla .quarto-title .title.h1{text-align:center}div.quarto-about-jolla .quarto-title .description{text-align:center}div.quarto-about-jolla h2,div.quarto-about-jolla .h2{border-bottom:none}div.quarto-about-jolla .about-sep{width:60%}div.quarto-about-jolla main{text-align:center}div.quarto-about-jolla .about-links{display:flex}@media(min-width: 992px){div.quarto-about-jolla .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-jolla .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-jolla .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-jolla .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-jolla .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-jolla .about-link:hover{color:#d9230f}div.quarto-about-jolla .about-link i.bi{margin-right:.15em}div.quarto-about-solana{display:flex !important;flex-direction:column;padding-top:3em !important;padding-bottom:1em}div.quarto-about-solana .about-entity{display:flex !important;align-items:start;justify-content:space-between}@media(min-width: 992px){div.quarto-about-solana .about-entity{flex-direction:row}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity{flex-direction:column-reverse;align-items:center;text-align:center}}div.quarto-about-solana .about-entity .entity-contents{display:flex;flex-direction:column}@media(max-width: 767.98px){div.quarto-about-solana .about-entity .entity-contents{width:100%}}div.quarto-about-solana .about-entity .about-image{object-fit:cover}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-image{margin-bottom:1.5em}}div.quarto-about-solana .about-entity img.round{border-radius:50%}div.quarto-about-solana .about-entity img.rounded{border-radius:10px}div.quarto-about-solana .about-entity .about-links{display:flex;justify-content:left;padding-bottom:1.2em}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-solana .about-entity .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-solana .about-entity .about-link:hover{color:#d9230f}div.quarto-about-solana .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-solana .about-contents{padding-right:1.5em;flex-basis:0;flex-grow:1}div.quarto-about-solana .about-contents main.content{margin-top:0}div.quarto-about-solana .about-contents h2,div.quarto-about-solana .about-contents .h2{border-bottom:none}div.quarto-about-trestles{display:flex !important;flex-direction:row;padding-top:3em !important;padding-bottom:1em}@media(max-width: 991.98px){div.quarto-about-trestles{flex-direction:column;padding-top:0em !important}}div.quarto-about-trestles .about-entity{display:flex !important;flex-direction:column;align-items:center;text-align:center;padding-right:1em}@media(min-width: 992px){div.quarto-about-trestles .about-entity{flex:0 0 42%}}div.quarto-about-trestles .about-entity .about-image{object-fit:cover;margin-bottom:1.5em}div.quarto-about-trestles .about-entity img.round{border-radius:50%}div.quarto-about-trestles .about-entity img.rounded{border-radius:10px}div.quarto-about-trestles .about-entity .about-links{display:flex;justify-content:center}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-trestles .about-entity .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-trestles .about-entity .about-link:hover{color:#d9230f}div.quarto-about-trestles .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-trestles .about-contents{flex-basis:0;flex-grow:1}div.quarto-about-trestles .about-contents h2,div.quarto-about-trestles .about-contents .h2{border-bottom:none}@media(min-width: 992px){div.quarto-about-trestles .about-contents{border-left:solid 1px #dee2e6;padding-left:1.5em}}div.quarto-about-trestles .about-contents main.content{margin-top:0}div.quarto-about-marquee{padding-bottom:1em}div.quarto-about-marquee .about-contents{display:flex;flex-direction:column}div.quarto-about-marquee .about-image{max-height:550px;margin-bottom:1.5em;object-fit:cover}div.quarto-about-marquee img.round{border-radius:50%}div.quarto-about-marquee img.rounded{border-radius:10px}div.quarto-about-marquee h2,div.quarto-about-marquee .h2{border-bottom:none}div.quarto-about-marquee .about-links{display:flex;justify-content:center;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-marquee .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-marquee .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-marquee .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-marquee .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-marquee .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-marquee .about-link:hover{color:#d9230f}div.quarto-about-marquee .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-marquee .about-link{border:none}}div.quarto-about-broadside{display:flex;flex-direction:column;padding-bottom:1em}div.quarto-about-broadside .about-main{display:flex !important;padding-top:0 !important}@media(min-width: 992px){div.quarto-about-broadside .about-main{flex-direction:row;align-items:flex-start}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main{flex-direction:column}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main .about-entity{flex-shrink:0;width:100%;height:450px;margin-bottom:1.5em;background-size:cover;background-repeat:no-repeat}}@media(min-width: 992px){div.quarto-about-broadside .about-main .about-entity{flex:0 10 50%;margin-right:1.5em;width:100%;height:100%;background-size:100%;background-repeat:no-repeat}}div.quarto-about-broadside .about-main .about-contents{padding-top:14px;flex:0 0 50%}div.quarto-about-broadside h2,div.quarto-about-broadside .h2{border-bottom:none}div.quarto-about-broadside .about-sep{margin-top:1.5em;width:60%;align-self:center}div.quarto-about-broadside .about-links{display:flex;justify-content:center;column-gap:20px;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-broadside .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-broadside .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-broadside .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-broadside .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-broadside .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-broadside .about-link:hover{color:#d9230f}div.quarto-about-broadside .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-broadside .about-link{border:none}}.tippy-box[data-theme~=quarto]{background-color:#fcfcfc;border:solid 1px #dee2e6;border-radius:.25rem;color:#212529;font-size:.875rem}.tippy-box[data-theme~=quarto]>.tippy-backdrop{background-color:#fcfcfc}.tippy-box[data-theme~=quarto]>.tippy-arrow:after,.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{content:"";position:absolute;z-index:-1}.tippy-box[data-theme~=quarto]>.tippy-arrow:after{border-color:rgba(0,0,0,0);border-style:solid}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-6px}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-6px}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-6px}.tippy-box[data-placement^=left]>.tippy-arrow:before{right:-6px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:before{border-top-color:#fcfcfc}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:after{border-top-color:#dee2e6;border-width:7px 7px 0;top:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow>svg{top:16px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow:after{top:17px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fcfcfc;bottom:16px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:after{border-bottom-color:#dee2e6;border-width:0 7px 7px;bottom:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow>svg{bottom:15px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow:after{bottom:17px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:before{border-left-color:#fcfcfc}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:after{border-left-color:#dee2e6;border-width:7px 0 7px 7px;left:17px;top:1px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow>svg{left:11px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow:after{left:12px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:before{border-right-color:#fcfcfc;right:16px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:after{border-width:7px 7px 7px 0;right:17px;top:1px;border-right-color:#dee2e6}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow>svg{right:11px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow:after{right:12px}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow{fill:#212529}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiLz48L3N2Zz4=);background-size:16px 6px;width:16px;height:6px}.top-right{position:absolute;top:1em;right:1em}.hidden{display:none !important}.zindex-bottom{z-index:-1 !important}.quarto-layout-panel{margin-bottom:1em}.quarto-layout-panel>figure{width:100%}.quarto-layout-panel>figure>figcaption,.quarto-layout-panel>.panel-caption{margin-top:10pt}.quarto-layout-panel>.table-caption{margin-top:0px}.table-caption p{margin-bottom:.5em}.quarto-layout-row{display:flex;flex-direction:row;align-items:flex-start}.quarto-layout-valign-top{align-items:flex-start}.quarto-layout-valign-bottom{align-items:flex-end}.quarto-layout-valign-center{align-items:center}.quarto-layout-cell{position:relative;margin-right:20px}.quarto-layout-cell:last-child{margin-right:0}.quarto-layout-cell figure,.quarto-layout-cell>p{margin:.2em}.quarto-layout-cell img{max-width:100%}.quarto-layout-cell .html-widget{width:100% !important}.quarto-layout-cell div figure p{margin:0}.quarto-layout-cell figure{display:inline-block;margin-inline-start:0;margin-inline-end:0}.quarto-layout-cell table{display:inline-table}.quarto-layout-cell-subref figcaption,figure .quarto-layout-row figure figcaption{text-align:center;font-style:italic}.quarto-figure{position:relative;margin-bottom:1em}.quarto-figure>figure{width:100%;margin-bottom:0}.quarto-figure-left>figure>p,.quarto-figure-left>figure>div{text-align:left}.quarto-figure-center>figure>p,.quarto-figure-center>figure>div{text-align:center}.quarto-figure-right>figure>p,.quarto-figure-right>figure>div{text-align:right}figure>p:empty{display:none}figure>p:first-child{margin-top:0;margin-bottom:0}figure>figcaption{margin-top:.5em}div[id^=tbl-]{position:relative}.quarto-figure>.anchorjs-link{position:absolute;top:.6em;right:.5em}div[id^=tbl-]>.anchorjs-link{position:absolute;top:.7em;right:.3em}.quarto-figure:hover>.anchorjs-link,div[id^=tbl-]:hover>.anchorjs-link,h2:hover>.anchorjs-link,.h2:hover>.anchorjs-link,h3:hover>.anchorjs-link,.h3:hover>.anchorjs-link,h4:hover>.anchorjs-link,.h4:hover>.anchorjs-link,h5:hover>.anchorjs-link,.h5:hover>.anchorjs-link,h6:hover>.anchorjs-link,.h6:hover>.anchorjs-link,.reveal-anchorjs-link>.anchorjs-link{opacity:1}#title-block-header{margin-block-end:1rem;position:relative;margin-top:-1px}#title-block-header .abstract{margin-block-start:1rem}#title-block-header .abstract .abstract-title{font-weight:600}#title-block-header a{text-decoration:none}#title-block-header .author,#title-block-header .date,#title-block-header .doi{margin-block-end:.2rem}#title-block-header .quarto-title-block>div{display:flex}#title-block-header .quarto-title-block>div>h1,#title-block-header .quarto-title-block>div>.h1{flex-grow:1}#title-block-header .quarto-title-block>div>button{flex-shrink:0;height:2.25rem;margin-top:0}@media(min-width: 992px){#title-block-header .quarto-title-block>div>button{margin-top:5px}}tr.header>th>p:last-of-type{margin-bottom:0px}table,.table{caption-side:top;margin-bottom:1.5rem}caption,.table-caption{padding-top:.5rem;padding-bottom:.5rem;text-align:center}.utterances{max-width:none;margin-left:-8px}iframe{margin-bottom:1em}details{margin-bottom:1em}details[show]{margin-bottom:0}details>summary{color:#6c757d}details>summary>p:only-child{display:inline}pre.sourceCode,code.sourceCode{position:relative}p code:not(.sourceCode){white-space:pre-wrap}code{white-space:pre}@media print{code{white-space:pre-wrap}}pre>code{display:block}pre>code.sourceCode{white-space:pre-wrap}pre>code.sourceCode>span>a:first-child::before{text-decoration:none}pre.code-overflow-wrap>code.sourceCode{white-space:pre-wrap}pre.code-overflow-scroll>code.sourceCode{white-space:pre}code a:any-link{color:inherit;text-decoration:none}code a:hover{color:inherit;text-decoration:underline}ul.task-list{padding-left:1em}[data-tippy-root]{display:inline-block}.tippy-content .footnote-back{display:none}.quarto-embedded-source-code{display:none}.quarto-unresolved-ref{font-weight:600}.quarto-cover-image{max-width:35%;float:right;margin-left:30px}.cell-output-display .widget-subarea{margin-bottom:1em}.cell-output-display:not(.no-overflow-x),.knitsql-table:not(.no-overflow-x){overflow-x:auto}.panel-input{margin-bottom:1em}.panel-input>div,.panel-input>div>div{display:inline-block;vertical-align:top;padding-right:12px}.panel-input>p:last-child{margin-bottom:0}.layout-sidebar{margin-bottom:1em}.layout-sidebar .tab-content{border:none}.tab-content>.page-columns.active{display:grid}div.sourceCode>iframe{width:100%;height:300px;margin-bottom:-0.5em}div.ansi-escaped-output{font-family:monospace;display:block}/*! +* +* ansi colors from IPython notebook's +* +*/.ansi-black-fg{color:#3e424d}.ansi-black-bg{background-color:#3e424d}.ansi-black-intense-fg{color:#282c36}.ansi-black-intense-bg{background-color:#282c36}.ansi-red-fg{color:#e75c58}.ansi-red-bg{background-color:#e75c58}.ansi-red-intense-fg{color:#b22b31}.ansi-red-intense-bg{background-color:#b22b31}.ansi-green-fg{color:#00a250}.ansi-green-bg{background-color:#00a250}.ansi-green-intense-fg{color:#007427}.ansi-green-intense-bg{background-color:#007427}.ansi-yellow-fg{color:#ddb62b}.ansi-yellow-bg{background-color:#ddb62b}.ansi-yellow-intense-fg{color:#b27d12}.ansi-yellow-intense-bg{background-color:#b27d12}.ansi-blue-fg{color:#208ffb}.ansi-blue-bg{background-color:#208ffb}.ansi-blue-intense-fg{color:#0065ca}.ansi-blue-intense-bg{background-color:#0065ca}.ansi-magenta-fg{color:#d160c4}.ansi-magenta-bg{background-color:#d160c4}.ansi-magenta-intense-fg{color:#a03196}.ansi-magenta-intense-bg{background-color:#a03196}.ansi-cyan-fg{color:#60c6c8}.ansi-cyan-bg{background-color:#60c6c8}.ansi-cyan-intense-fg{color:#258f8f}.ansi-cyan-intense-bg{background-color:#258f8f}.ansi-white-fg{color:#c5c1b4}.ansi-white-bg{background-color:#c5c1b4}.ansi-white-intense-fg{color:#a1a6b2}.ansi-white-intense-bg{background-color:#a1a6b2}.ansi-default-inverse-fg{color:#fff}.ansi-default-inverse-bg{background-color:#000}.ansi-bold{font-weight:bold}.ansi-underline{text-decoration:underline}:root{--quarto-body-bg: #fcfcfc;--quarto-body-color: #212529;--quarto-text-muted: #6c757d;--quarto-border-color: #dee2e6;--quarto-border-width: 1px;--quarto-border-radius: 0.25rem}table.gt_table{color:var(--quarto-body-color);font-size:1em;width:100%;background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_column_spanner_outer{color:var(--quarto-body-color);background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_col_heading{color:var(--quarto-body-color);font-weight:bold;background-color:rgba(0,0,0,0)}table.gt_table thead.gt_col_headings{border-bottom:1px solid currentColor;border-top-width:inherit;border-top-color:var(--quarto-border-color)}table.gt_table thead.gt_col_headings:not(:first-child){border-top-width:1px;border-top-color:var(--quarto-border-color)}table.gt_table td.gt_row{border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-width:0px}table.gt_table tbody.gt_table_body{border-top-width:1px;border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-color:currentColor}div.columns{display:initial;gap:initial}div.column{display:inline-block;overflow-x:initial;vertical-align:top;width:50%}.code-annotation-tip-content{word-wrap:break-word}.code-annotation-container-hidden{display:none !important}dl.code-annotation-container-grid{display:grid;grid-template-columns:min-content auto}dl.code-annotation-container-grid dt{grid-column:1}dl.code-annotation-container-grid dd{grid-column:2}pre.sourceCode.code-annotation-code{padding-right:0}code.sourceCode .code-annotation-anchor{z-index:100;position:absolute;right:.5em;left:inherit;background-color:rgba(0,0,0,0)}:root{--mermaid-bg-color: #fcfcfc;--mermaid-edge-color: #fff;--mermaid-node-fg-color: #212529;--mermaid-fg-color: #212529;--mermaid-fg-color--lighter: #383f45;--mermaid-fg-color--lightest: #4e5862;--mermaid-font-family: Open Sans, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--mermaid-label-bg-color: #fcfcfc;--mermaid-label-fg-color: #d9230f;--mermaid-node-bg-color: rgba(217, 35, 15, 0.1);--mermaid-node-fg-color: #212529}@media print{:root{font-size:11pt}#quarto-sidebar,#TOC,.nav-page{display:none}.page-columns .content{grid-column-start:page-start}.fixed-top{position:relative}.panel-caption,.figure-caption,figcaption{color:#666}}.code-copy-button{position:absolute;top:0;right:0;border:0;margin-top:5px;margin-right:5px;background-color:rgba(0,0,0,0);z-index:3}.code-copy-button:focus{outline:none}.code-copy-button-tooltip{font-size:.75em}.code-copy-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.code-copy-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.code-copy-button-checked:hover>.bi::before{background-image:url('data:image/svg+xml,')}main ol ol,main ul ul,main ol ul,main ul ol{margin-bottom:1em}ul>li:not(:has(>p))>ul,ol>li:not(:has(>p))>ul,ul>li:not(:has(>p))>ol,ol>li:not(:has(>p))>ol{margin-bottom:0}ul>li:not(:has(>p))>ul>li:has(>p),ol>li:not(:has(>p))>ul>li:has(>p),ul>li:not(:has(>p))>ol>li:has(>p),ol>li:not(:has(>p))>ol>li:has(>p){margin-top:1rem}body{margin:0}main.page-columns>header>h1.title,main.page-columns>header>.title.h1{margin-bottom:0}@media(min-width: 992px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 49px [body-start-outset] 49px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1150px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 49px [body-start-outset] 49px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1150px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] 35px [page-end-inset page-end] 5fr [screen-end-inset] 1.5em}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 49px [body-start-outset] 49px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1150px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 49px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(70px, 140px) [page-start-inset] 70px [body-start-outset] 70px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1150px - 3em )) [body-content-end] 3em [body-end] 70px [body-end-outset] minmax(0px, 250px) [page-end-inset] minmax(70px, 140px) [page-end] 1fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 49px [page-start-inset] minmax(0px, 245px) [body-start-outset] 49px [body-start] 1.5em [body-content-start] minmax(450px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 49px [page-start-inset] minmax(0px, 245px) [body-start-outset] 49px [body-start] 1.5em [body-content-start] minmax(450px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(35px, 70px) [page-start-inset] minmax(70px, 210px) [body-start-outset] minmax(35px, 70px) [body-start] 1.5em [body-content-start] minmax(500px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(70px, 140px) [page-start-inset] 70px [body-start-outset] 70px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1300px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 100px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(70px, 140px) [page-start-inset] 70px [body-start-outset] 70px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1300px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 70px [page-start-inset] minmax(70px, 210px) [body-start-outset] 70px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(70px, 140px) [page-start-inset] 70px [body-start-outset] 70px [body-start] 1.5em [body-content-start] minmax(450px, calc( 1050px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(70px, 140px) [page-start-inset] 70px [body-start-outset] 70px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1300px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 70px [page-start-inset] minmax(70px, 210px) [body-start-outset] 70px [body-start] 1.5em [body-content-start] minmax(450px, calc( 1050px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 150px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(35px, 70px) [page-start-inset] minmax(70px, 210px) [body-start-outset] minmax(35px, 70px) [body-start] 1.5em [body-content-start] minmax(500px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 991.98px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 1550px - 3em )) [body-content-end body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 49px [page-start-inset] minmax(0px, 203px) [body-start-outset] 49px [body-start] 1.5em [body-content-start] minmax(450px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 49px [page-start-inset] minmax(0px, 203px) [body-start-outset] 49px [body-start] 1.5em [body-content-start] minmax(450px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1.5em [body-content-start] minmax(500px, calc( 1050px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 1050px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 1300px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 1050px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 1050px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 1050px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 1050px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 767.98px){body .page-columns,body.fullcontent:not(.floating):not(.docked) .page-columns,body.slimcontent:not(.floating):not(.docked) .page-columns,body.docked .page-columns,body.docked.slimcontent .page-columns,body.docked.fullcontent .page-columns,body.floating .page-columns,body.floating.slimcontent .page-columns,body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}nav[role=doc-toc]{display:none}}body,.page-row-navigation{grid-template-rows:[page-top] max-content [contents-top] max-content [contents-bottom] max-content [page-bottom]}.page-rows-contents{grid-template-rows:[content-top] minmax(max-content, 1fr) [content-bottom] minmax(60px, max-content) [page-bottom]}.page-full{grid-column:screen-start/screen-end !important}.page-columns>*{grid-column:body-content-start/body-content-end}.page-columns.column-page>*{grid-column:page-start/page-end}.page-columns.column-page-left>*{grid-column:page-start/body-content-end}.page-columns.column-page-right>*{grid-column:body-content-start/page-end}.page-rows{grid-auto-rows:auto}.header{grid-column:screen-start/screen-end;grid-row:page-top/contents-top}#quarto-content{padding:0;grid-column:screen-start/screen-end;grid-row:contents-top/contents-bottom}body.floating .sidebar.sidebar-navigation{grid-column:page-start/body-start;grid-row:content-top/page-bottom}body.docked .sidebar.sidebar-navigation{grid-column:screen-start/body-start;grid-row:content-top/page-bottom}.sidebar.toc-left{grid-column:page-start/body-start;grid-row:content-top/page-bottom}.sidebar.margin-sidebar{grid-column:body-end/page-end;grid-row:content-top/page-bottom}.page-columns .content{grid-column:body-content-start/body-content-end;grid-row:content-top/content-bottom;align-content:flex-start}.page-columns .page-navigation{grid-column:body-content-start/body-content-end;grid-row:content-bottom/page-bottom}.page-columns .footer{grid-column:screen-start/screen-end;grid-row:contents-bottom/page-bottom}.page-columns .column-body{grid-column:body-content-start/body-content-end}.page-columns .column-body-fullbleed{grid-column:body-start/body-end}.page-columns .column-body-outset{grid-column:body-start-outset/body-end-outset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset table{background:#fcfcfc}.page-columns .column-body-outset-left{grid-column:body-start-outset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset-left table{background:#fcfcfc}.page-columns .column-body-outset-right{grid-column:body-content-start/body-end-outset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset-right table{background:#fcfcfc}.page-columns .column-page{grid-column:page-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page table{background:#fcfcfc}.page-columns .column-page-inset{grid-column:page-start-inset/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset table{background:#fcfcfc}.page-columns .column-page-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset-left table{background:#fcfcfc}.page-columns .column-page-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset-right figcaption table{background:#fcfcfc}.page-columns .column-page-left{grid-column:page-start/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-left table{background:#fcfcfc}.page-columns .column-page-right{grid-column:body-content-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-right figcaption table{background:#fcfcfc}#quarto-content.page-columns #quarto-margin-sidebar,#quarto-content.page-columns #quarto-sidebar{z-index:1}@media(max-width: 991.98px){#quarto-content.page-columns #quarto-margin-sidebar.collapse,#quarto-content.page-columns #quarto-sidebar.collapse,#quarto-content.page-columns #quarto-margin-sidebar.collapsing,#quarto-content.page-columns #quarto-sidebar.collapsing{z-index:1055}}#quarto-content.page-columns main.column-page,#quarto-content.page-columns main.column-page-right,#quarto-content.page-columns main.column-page-left{z-index:0}.page-columns .column-screen-inset{grid-column:screen-start-inset/screen-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset table{background:#fcfcfc}.page-columns .column-screen-inset-left{grid-column:screen-start-inset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-left table{background:#fcfcfc}.page-columns .column-screen-inset-right{grid-column:body-content-start/screen-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-right table{background:#fcfcfc}.page-columns .column-screen{grid-column:screen-start/screen-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen table{background:#fcfcfc}.page-columns .column-screen-left{grid-column:screen-start/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-left table{background:#fcfcfc}.page-columns .column-screen-right{grid-column:body-content-start/screen-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-right table{background:#fcfcfc}.page-columns .column-screen-inset-shaded{grid-column:screen-start/screen-end;padding:1em;background:#fff;z-index:998;transform:translate3d(0, 0, 0);margin-bottom:1em}.zindex-content{z-index:998;transform:translate3d(0, 0, 0)}.zindex-modal{z-index:1055;transform:translate3d(0, 0, 0)}.zindex-over-content{z-index:999;transform:translate3d(0, 0, 0)}img.img-fluid.column-screen,img.img-fluid.column-screen-inset-shaded,img.img-fluid.column-screen-inset,img.img-fluid.column-screen-inset-left,img.img-fluid.column-screen-inset-right,img.img-fluid.column-screen-left,img.img-fluid.column-screen-right{width:100%}@media(min-width: 992px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-end/page-end !important;z-index:998}.column-sidebar{grid-column:page-start/body-start !important;z-index:998}.column-leftmargin{grid-column:screen-start-inset/body-start !important;z-index:998}.no-row-height{height:1em;overflow:visible}}@media(max-width: 991.98px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-end/page-end !important;z-index:998}.no-row-height{height:1em;overflow:visible}.page-columns.page-full{overflow:visible}.page-columns.toc-left .margin-caption,.page-columns.toc-left div.aside,.page-columns.toc-left aside,.page-columns.toc-left .column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;transform:translate3d(0, 0, 0)}.page-columns.toc-left .no-row-height{height:initial;overflow:initial}}@media(max-width: 767.98px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;transform:translate3d(0, 0, 0)}.no-row-height{height:initial;overflow:initial}#quarto-margin-sidebar{display:none}#quarto-sidebar-toc-left{display:none}.hidden-sm{display:none}}.panel-grid{display:grid;grid-template-rows:repeat(1, 1fr);grid-template-columns:repeat(24, 1fr);gap:1em}.panel-grid .g-col-1{grid-column:auto/span 1}.panel-grid .g-col-2{grid-column:auto/span 2}.panel-grid .g-col-3{grid-column:auto/span 3}.panel-grid .g-col-4{grid-column:auto/span 4}.panel-grid .g-col-5{grid-column:auto/span 5}.panel-grid .g-col-6{grid-column:auto/span 6}.panel-grid .g-col-7{grid-column:auto/span 7}.panel-grid .g-col-8{grid-column:auto/span 8}.panel-grid .g-col-9{grid-column:auto/span 9}.panel-grid .g-col-10{grid-column:auto/span 10}.panel-grid .g-col-11{grid-column:auto/span 11}.panel-grid .g-col-12{grid-column:auto/span 12}.panel-grid .g-col-13{grid-column:auto/span 13}.panel-grid .g-col-14{grid-column:auto/span 14}.panel-grid .g-col-15{grid-column:auto/span 15}.panel-grid .g-col-16{grid-column:auto/span 16}.panel-grid .g-col-17{grid-column:auto/span 17}.panel-grid .g-col-18{grid-column:auto/span 18}.panel-grid .g-col-19{grid-column:auto/span 19}.panel-grid .g-col-20{grid-column:auto/span 20}.panel-grid .g-col-21{grid-column:auto/span 21}.panel-grid .g-col-22{grid-column:auto/span 22}.panel-grid .g-col-23{grid-column:auto/span 23}.panel-grid .g-col-24{grid-column:auto/span 24}.panel-grid .g-start-1{grid-column-start:1}.panel-grid .g-start-2{grid-column-start:2}.panel-grid .g-start-3{grid-column-start:3}.panel-grid .g-start-4{grid-column-start:4}.panel-grid .g-start-5{grid-column-start:5}.panel-grid .g-start-6{grid-column-start:6}.panel-grid .g-start-7{grid-column-start:7}.panel-grid .g-start-8{grid-column-start:8}.panel-grid .g-start-9{grid-column-start:9}.panel-grid .g-start-10{grid-column-start:10}.panel-grid .g-start-11{grid-column-start:11}.panel-grid .g-start-12{grid-column-start:12}.panel-grid .g-start-13{grid-column-start:13}.panel-grid .g-start-14{grid-column-start:14}.panel-grid .g-start-15{grid-column-start:15}.panel-grid .g-start-16{grid-column-start:16}.panel-grid .g-start-17{grid-column-start:17}.panel-grid .g-start-18{grid-column-start:18}.panel-grid .g-start-19{grid-column-start:19}.panel-grid .g-start-20{grid-column-start:20}.panel-grid .g-start-21{grid-column-start:21}.panel-grid .g-start-22{grid-column-start:22}.panel-grid .g-start-23{grid-column-start:23}@media(min-width: 576px){.panel-grid .g-col-sm-1{grid-column:auto/span 1}.panel-grid .g-col-sm-2{grid-column:auto/span 2}.panel-grid .g-col-sm-3{grid-column:auto/span 3}.panel-grid .g-col-sm-4{grid-column:auto/span 4}.panel-grid .g-col-sm-5{grid-column:auto/span 5}.panel-grid .g-col-sm-6{grid-column:auto/span 6}.panel-grid .g-col-sm-7{grid-column:auto/span 7}.panel-grid .g-col-sm-8{grid-column:auto/span 8}.panel-grid .g-col-sm-9{grid-column:auto/span 9}.panel-grid .g-col-sm-10{grid-column:auto/span 10}.panel-grid .g-col-sm-11{grid-column:auto/span 11}.panel-grid .g-col-sm-12{grid-column:auto/span 12}.panel-grid .g-col-sm-13{grid-column:auto/span 13}.panel-grid .g-col-sm-14{grid-column:auto/span 14}.panel-grid .g-col-sm-15{grid-column:auto/span 15}.panel-grid .g-col-sm-16{grid-column:auto/span 16}.panel-grid .g-col-sm-17{grid-column:auto/span 17}.panel-grid .g-col-sm-18{grid-column:auto/span 18}.panel-grid .g-col-sm-19{grid-column:auto/span 19}.panel-grid .g-col-sm-20{grid-column:auto/span 20}.panel-grid .g-col-sm-21{grid-column:auto/span 21}.panel-grid .g-col-sm-22{grid-column:auto/span 22}.panel-grid .g-col-sm-23{grid-column:auto/span 23}.panel-grid .g-col-sm-24{grid-column:auto/span 24}.panel-grid .g-start-sm-1{grid-column-start:1}.panel-grid .g-start-sm-2{grid-column-start:2}.panel-grid .g-start-sm-3{grid-column-start:3}.panel-grid .g-start-sm-4{grid-column-start:4}.panel-grid .g-start-sm-5{grid-column-start:5}.panel-grid .g-start-sm-6{grid-column-start:6}.panel-grid .g-start-sm-7{grid-column-start:7}.panel-grid .g-start-sm-8{grid-column-start:8}.panel-grid .g-start-sm-9{grid-column-start:9}.panel-grid .g-start-sm-10{grid-column-start:10}.panel-grid .g-start-sm-11{grid-column-start:11}.panel-grid .g-start-sm-12{grid-column-start:12}.panel-grid .g-start-sm-13{grid-column-start:13}.panel-grid .g-start-sm-14{grid-column-start:14}.panel-grid .g-start-sm-15{grid-column-start:15}.panel-grid .g-start-sm-16{grid-column-start:16}.panel-grid .g-start-sm-17{grid-column-start:17}.panel-grid .g-start-sm-18{grid-column-start:18}.panel-grid .g-start-sm-19{grid-column-start:19}.panel-grid .g-start-sm-20{grid-column-start:20}.panel-grid .g-start-sm-21{grid-column-start:21}.panel-grid .g-start-sm-22{grid-column-start:22}.panel-grid .g-start-sm-23{grid-column-start:23}}@media(min-width: 768px){.panel-grid .g-col-md-1{grid-column:auto/span 1}.panel-grid .g-col-md-2{grid-column:auto/span 2}.panel-grid .g-col-md-3{grid-column:auto/span 3}.panel-grid .g-col-md-4{grid-column:auto/span 4}.panel-grid .g-col-md-5{grid-column:auto/span 5}.panel-grid .g-col-md-6{grid-column:auto/span 6}.panel-grid .g-col-md-7{grid-column:auto/span 7}.panel-grid .g-col-md-8{grid-column:auto/span 8}.panel-grid .g-col-md-9{grid-column:auto/span 9}.panel-grid .g-col-md-10{grid-column:auto/span 10}.panel-grid .g-col-md-11{grid-column:auto/span 11}.panel-grid .g-col-md-12{grid-column:auto/span 12}.panel-grid .g-col-md-13{grid-column:auto/span 13}.panel-grid .g-col-md-14{grid-column:auto/span 14}.panel-grid .g-col-md-15{grid-column:auto/span 15}.panel-grid .g-col-md-16{grid-column:auto/span 16}.panel-grid .g-col-md-17{grid-column:auto/span 17}.panel-grid .g-col-md-18{grid-column:auto/span 18}.panel-grid .g-col-md-19{grid-column:auto/span 19}.panel-grid .g-col-md-20{grid-column:auto/span 20}.panel-grid .g-col-md-21{grid-column:auto/span 21}.panel-grid .g-col-md-22{grid-column:auto/span 22}.panel-grid .g-col-md-23{grid-column:auto/span 23}.panel-grid .g-col-md-24{grid-column:auto/span 24}.panel-grid .g-start-md-1{grid-column-start:1}.panel-grid .g-start-md-2{grid-column-start:2}.panel-grid .g-start-md-3{grid-column-start:3}.panel-grid .g-start-md-4{grid-column-start:4}.panel-grid .g-start-md-5{grid-column-start:5}.panel-grid .g-start-md-6{grid-column-start:6}.panel-grid .g-start-md-7{grid-column-start:7}.panel-grid .g-start-md-8{grid-column-start:8}.panel-grid .g-start-md-9{grid-column-start:9}.panel-grid .g-start-md-10{grid-column-start:10}.panel-grid .g-start-md-11{grid-column-start:11}.panel-grid .g-start-md-12{grid-column-start:12}.panel-grid .g-start-md-13{grid-column-start:13}.panel-grid .g-start-md-14{grid-column-start:14}.panel-grid .g-start-md-15{grid-column-start:15}.panel-grid .g-start-md-16{grid-column-start:16}.panel-grid .g-start-md-17{grid-column-start:17}.panel-grid .g-start-md-18{grid-column-start:18}.panel-grid .g-start-md-19{grid-column-start:19}.panel-grid .g-start-md-20{grid-column-start:20}.panel-grid .g-start-md-21{grid-column-start:21}.panel-grid .g-start-md-22{grid-column-start:22}.panel-grid .g-start-md-23{grid-column-start:23}}@media(min-width: 992px){.panel-grid .g-col-lg-1{grid-column:auto/span 1}.panel-grid .g-col-lg-2{grid-column:auto/span 2}.panel-grid .g-col-lg-3{grid-column:auto/span 3}.panel-grid .g-col-lg-4{grid-column:auto/span 4}.panel-grid .g-col-lg-5{grid-column:auto/span 5}.panel-grid .g-col-lg-6{grid-column:auto/span 6}.panel-grid .g-col-lg-7{grid-column:auto/span 7}.panel-grid .g-col-lg-8{grid-column:auto/span 8}.panel-grid .g-col-lg-9{grid-column:auto/span 9}.panel-grid .g-col-lg-10{grid-column:auto/span 10}.panel-grid .g-col-lg-11{grid-column:auto/span 11}.panel-grid .g-col-lg-12{grid-column:auto/span 12}.panel-grid .g-col-lg-13{grid-column:auto/span 13}.panel-grid .g-col-lg-14{grid-column:auto/span 14}.panel-grid .g-col-lg-15{grid-column:auto/span 15}.panel-grid .g-col-lg-16{grid-column:auto/span 16}.panel-grid .g-col-lg-17{grid-column:auto/span 17}.panel-grid .g-col-lg-18{grid-column:auto/span 18}.panel-grid .g-col-lg-19{grid-column:auto/span 19}.panel-grid .g-col-lg-20{grid-column:auto/span 20}.panel-grid .g-col-lg-21{grid-column:auto/span 21}.panel-grid .g-col-lg-22{grid-column:auto/span 22}.panel-grid .g-col-lg-23{grid-column:auto/span 23}.panel-grid .g-col-lg-24{grid-column:auto/span 24}.panel-grid .g-start-lg-1{grid-column-start:1}.panel-grid .g-start-lg-2{grid-column-start:2}.panel-grid .g-start-lg-3{grid-column-start:3}.panel-grid .g-start-lg-4{grid-column-start:4}.panel-grid .g-start-lg-5{grid-column-start:5}.panel-grid .g-start-lg-6{grid-column-start:6}.panel-grid .g-start-lg-7{grid-column-start:7}.panel-grid .g-start-lg-8{grid-column-start:8}.panel-grid .g-start-lg-9{grid-column-start:9}.panel-grid .g-start-lg-10{grid-column-start:10}.panel-grid .g-start-lg-11{grid-column-start:11}.panel-grid .g-start-lg-12{grid-column-start:12}.panel-grid .g-start-lg-13{grid-column-start:13}.panel-grid .g-start-lg-14{grid-column-start:14}.panel-grid .g-start-lg-15{grid-column-start:15}.panel-grid .g-start-lg-16{grid-column-start:16}.panel-grid .g-start-lg-17{grid-column-start:17}.panel-grid .g-start-lg-18{grid-column-start:18}.panel-grid .g-start-lg-19{grid-column-start:19}.panel-grid .g-start-lg-20{grid-column-start:20}.panel-grid .g-start-lg-21{grid-column-start:21}.panel-grid .g-start-lg-22{grid-column-start:22}.panel-grid .g-start-lg-23{grid-column-start:23}}@media(min-width: 1200px){.panel-grid .g-col-xl-1{grid-column:auto/span 1}.panel-grid .g-col-xl-2{grid-column:auto/span 2}.panel-grid .g-col-xl-3{grid-column:auto/span 3}.panel-grid .g-col-xl-4{grid-column:auto/span 4}.panel-grid .g-col-xl-5{grid-column:auto/span 5}.panel-grid .g-col-xl-6{grid-column:auto/span 6}.panel-grid .g-col-xl-7{grid-column:auto/span 7}.panel-grid .g-col-xl-8{grid-column:auto/span 8}.panel-grid .g-col-xl-9{grid-column:auto/span 9}.panel-grid .g-col-xl-10{grid-column:auto/span 10}.panel-grid .g-col-xl-11{grid-column:auto/span 11}.panel-grid .g-col-xl-12{grid-column:auto/span 12}.panel-grid .g-col-xl-13{grid-column:auto/span 13}.panel-grid .g-col-xl-14{grid-column:auto/span 14}.panel-grid .g-col-xl-15{grid-column:auto/span 15}.panel-grid .g-col-xl-16{grid-column:auto/span 16}.panel-grid .g-col-xl-17{grid-column:auto/span 17}.panel-grid .g-col-xl-18{grid-column:auto/span 18}.panel-grid .g-col-xl-19{grid-column:auto/span 19}.panel-grid .g-col-xl-20{grid-column:auto/span 20}.panel-grid .g-col-xl-21{grid-column:auto/span 21}.panel-grid .g-col-xl-22{grid-column:auto/span 22}.panel-grid .g-col-xl-23{grid-column:auto/span 23}.panel-grid .g-col-xl-24{grid-column:auto/span 24}.panel-grid .g-start-xl-1{grid-column-start:1}.panel-grid .g-start-xl-2{grid-column-start:2}.panel-grid .g-start-xl-3{grid-column-start:3}.panel-grid .g-start-xl-4{grid-column-start:4}.panel-grid .g-start-xl-5{grid-column-start:5}.panel-grid .g-start-xl-6{grid-column-start:6}.panel-grid .g-start-xl-7{grid-column-start:7}.panel-grid .g-start-xl-8{grid-column-start:8}.panel-grid .g-start-xl-9{grid-column-start:9}.panel-grid .g-start-xl-10{grid-column-start:10}.panel-grid .g-start-xl-11{grid-column-start:11}.panel-grid .g-start-xl-12{grid-column-start:12}.panel-grid .g-start-xl-13{grid-column-start:13}.panel-grid .g-start-xl-14{grid-column-start:14}.panel-grid .g-start-xl-15{grid-column-start:15}.panel-grid .g-start-xl-16{grid-column-start:16}.panel-grid .g-start-xl-17{grid-column-start:17}.panel-grid .g-start-xl-18{grid-column-start:18}.panel-grid .g-start-xl-19{grid-column-start:19}.panel-grid .g-start-xl-20{grid-column-start:20}.panel-grid .g-start-xl-21{grid-column-start:21}.panel-grid .g-start-xl-22{grid-column-start:22}.panel-grid .g-start-xl-23{grid-column-start:23}}@media(min-width: 1400px){.panel-grid .g-col-xxl-1{grid-column:auto/span 1}.panel-grid .g-col-xxl-2{grid-column:auto/span 2}.panel-grid .g-col-xxl-3{grid-column:auto/span 3}.panel-grid .g-col-xxl-4{grid-column:auto/span 4}.panel-grid .g-col-xxl-5{grid-column:auto/span 5}.panel-grid .g-col-xxl-6{grid-column:auto/span 6}.panel-grid .g-col-xxl-7{grid-column:auto/span 7}.panel-grid .g-col-xxl-8{grid-column:auto/span 8}.panel-grid .g-col-xxl-9{grid-column:auto/span 9}.panel-grid .g-col-xxl-10{grid-column:auto/span 10}.panel-grid .g-col-xxl-11{grid-column:auto/span 11}.panel-grid .g-col-xxl-12{grid-column:auto/span 12}.panel-grid .g-col-xxl-13{grid-column:auto/span 13}.panel-grid .g-col-xxl-14{grid-column:auto/span 14}.panel-grid .g-col-xxl-15{grid-column:auto/span 15}.panel-grid .g-col-xxl-16{grid-column:auto/span 16}.panel-grid .g-col-xxl-17{grid-column:auto/span 17}.panel-grid .g-col-xxl-18{grid-column:auto/span 18}.panel-grid .g-col-xxl-19{grid-column:auto/span 19}.panel-grid .g-col-xxl-20{grid-column:auto/span 20}.panel-grid .g-col-xxl-21{grid-column:auto/span 21}.panel-grid .g-col-xxl-22{grid-column:auto/span 22}.panel-grid .g-col-xxl-23{grid-column:auto/span 23}.panel-grid .g-col-xxl-24{grid-column:auto/span 24}.panel-grid .g-start-xxl-1{grid-column-start:1}.panel-grid .g-start-xxl-2{grid-column-start:2}.panel-grid .g-start-xxl-3{grid-column-start:3}.panel-grid .g-start-xxl-4{grid-column-start:4}.panel-grid .g-start-xxl-5{grid-column-start:5}.panel-grid .g-start-xxl-6{grid-column-start:6}.panel-grid .g-start-xxl-7{grid-column-start:7}.panel-grid .g-start-xxl-8{grid-column-start:8}.panel-grid .g-start-xxl-9{grid-column-start:9}.panel-grid .g-start-xxl-10{grid-column-start:10}.panel-grid .g-start-xxl-11{grid-column-start:11}.panel-grid .g-start-xxl-12{grid-column-start:12}.panel-grid .g-start-xxl-13{grid-column-start:13}.panel-grid .g-start-xxl-14{grid-column-start:14}.panel-grid .g-start-xxl-15{grid-column-start:15}.panel-grid .g-start-xxl-16{grid-column-start:16}.panel-grid .g-start-xxl-17{grid-column-start:17}.panel-grid .g-start-xxl-18{grid-column-start:18}.panel-grid .g-start-xxl-19{grid-column-start:19}.panel-grid .g-start-xxl-20{grid-column-start:20}.panel-grid .g-start-xxl-21{grid-column-start:21}.panel-grid .g-start-xxl-22{grid-column-start:22}.panel-grid .g-start-xxl-23{grid-column-start:23}}main{margin-top:1em;margin-bottom:1em}h1,.h1,h2,.h2{opacity:.9;margin-top:2rem;margin-bottom:1rem;font-weight:600}h1.title,.title.h1{margin-top:0}h2,.h2{border-bottom:1px solid #dee2e6;padding-bottom:.5rem}h3,.h3{font-weight:600}h3,.h3,h4,.h4{opacity:.9;margin-top:1.5rem}h5,.h5,h6,.h6{opacity:.9}.header-section-number{color:#5a6570}.nav-link.active .header-section-number{color:inherit}mark,.mark{padding:0em}.panel-caption,caption,.figure-caption{font-size:.9rem}.panel-caption,.figure-caption,figcaption{color:#5a6570}.table-caption,caption{color:#212529}.quarto-layout-cell[data-ref-parent] caption{color:#5a6570}.column-margin figcaption,.margin-caption,div.aside,aside,.column-margin{color:#5a6570;font-size:.825rem}.panel-caption.margin-caption{text-align:inherit}.column-margin.column-container p{margin-bottom:0}.column-margin.column-container>*:not(.collapse){padding-top:.5em;padding-bottom:.5em;display:block}.column-margin.column-container>*.collapse:not(.show){display:none}@media(min-width: 768px){.column-margin.column-container .callout-margin-content:first-child{margin-top:4.5em}.column-margin.column-container .callout-margin-content-simple:first-child{margin-top:3.5em}}.margin-caption>*{padding-top:.5em;padding-bottom:.5em}@media(max-width: 767.98px){.quarto-layout-row{flex-direction:column}}.nav-tabs .nav-item{margin-top:1px;cursor:pointer}.tab-content{margin-top:0px;border-left:#eee 1px solid;border-right:#eee 1px solid;border-bottom:#eee 1px solid;margin-left:0;padding:1em;margin-bottom:1em}@media(max-width: 767.98px){.layout-sidebar{margin-left:0;margin-right:0}}.panel-sidebar,.panel-sidebar .form-control,.panel-input,.panel-input .form-control,.selectize-dropdown{font-size:.9rem}.panel-sidebar .form-control,.panel-input .form-control{padding-top:.1rem}.tab-pane div.sourceCode{margin-top:0px}.tab-pane>p{padding-top:1em}.tab-content>.tab-pane:not(.active){display:none !important}div.sourceCode{background-color:rgba(221,221,221,.65);border:1px solid rgba(221,221,221,.65);border-radius:.25rem}pre.sourceCode{background-color:rgba(0,0,0,0)}pre.sourceCode{border:none;font-size:.875em;overflow:visible !important;padding:.4em}.callout pre.sourceCode{padding-left:0}div.sourceCode{overflow-y:hidden}.callout div.sourceCode{margin-left:initial}.blockquote{font-size:inherit;padding-left:1rem;padding-right:1.5rem;color:#5a6570}.blockquote h1:first-child,.blockquote .h1:first-child,.blockquote h2:first-child,.blockquote .h2:first-child,.blockquote h3:first-child,.blockquote .h3:first-child,.blockquote h4:first-child,.blockquote .h4:first-child,.blockquote h5:first-child,.blockquote .h5:first-child{margin-top:0}pre{background-color:initial;padding:initial;border:initial}p code:not(.sourceCode),li code:not(.sourceCode),td code:not(.sourceCode){background-color:#f3f3f4;padding:.2em}nav p code:not(.sourceCode),nav li code:not(.sourceCode),nav td code:not(.sourceCode){background-color:rgba(0,0,0,0);padding:0}td code:not(.sourceCode){white-space:pre-wrap}#quarto-embedded-source-code-modal>.modal-dialog{max-width:1000px;padding-left:1.75rem;padding-right:1.75rem}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body{padding:0}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body div.sourceCode{margin:0;padding:.2rem .2rem;border-radius:0px;border:none}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-header{padding:.7rem}.code-tools-button{font-size:1rem;padding:.15rem .15rem;margin-left:5px;color:#6c757d;background-color:rgba(0,0,0,0);transition:initial;cursor:pointer}.code-tools-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.sidebar{will-change:top;transition:top 200ms linear;position:sticky;overflow-y:auto;padding-top:1.2em;max-height:100vh}.sidebar.toc-left,.sidebar.margin-sidebar{top:0px;padding-top:1em}.sidebar.toc-left>*,.sidebar.margin-sidebar>*{padding-top:.5em}.sidebar.quarto-banner-title-block-sidebar>*{padding-top:1.65em}figure .quarto-notebook-link{margin-top:.5em}.quarto-notebook-link{font-size:.75em;color:#6c757d;margin-bottom:1em;text-decoration:none;display:block}.quarto-notebook-link:hover{text-decoration:underline;color:#d9230f}.quarto-notebook-link::before{display:inline-block;height:.75rem;width:.75rem;margin-bottom:0em;margin-right:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}.quarto-alternate-notebooks i.bi,.quarto-alternate-formats i.bi{margin-right:.4em}.quarto-notebook .cell-container{display:flex}.quarto-notebook .cell-container .cell{flex-grow:4}.quarto-notebook .cell-container .cell-decorator{padding-top:1.5em;padding-right:1em;text-align:right}.quarto-notebook h2,.quarto-notebook .h2{border-bottom:none}.sidebar .quarto-alternate-formats a,.sidebar .quarto-alternate-notebooks a{text-decoration:none}.sidebar .quarto-alternate-formats a:hover,.sidebar .quarto-alternate-notebooks a:hover{color:#d9230f}.sidebar .quarto-alternate-notebooks h2,.sidebar .quarto-alternate-notebooks .h2,.sidebar .quarto-alternate-formats h2,.sidebar .quarto-alternate-formats .h2,.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-size:.875rem;font-weight:400;margin-bottom:.5rem;margin-top:.3rem;font-family:inherit;border-bottom:0;padding-bottom:0;padding-top:0px}.sidebar .quarto-alternate-notebooks h2,.sidebar .quarto-alternate-notebooks .h2,.sidebar .quarto-alternate-formats h2,.sidebar .quarto-alternate-formats .h2{margin-top:1rem}.sidebar nav[role=doc-toc]>ul a{border-left:1px solid #ddd;padding-left:.6rem}.sidebar .quarto-alternate-notebooks h2>ul a,.sidebar .quarto-alternate-notebooks .h2>ul a,.sidebar .quarto-alternate-formats h2>ul a,.sidebar .quarto-alternate-formats .h2>ul a{border-left:none;padding-left:.6rem}.sidebar .quarto-alternate-notebooks ul a:empty,.sidebar .quarto-alternate-formats ul a:empty,.sidebar nav[role=doc-toc]>ul a:empty{display:none}.sidebar .quarto-alternate-notebooks ul,.sidebar .quarto-alternate-formats ul,.sidebar nav[role=doc-toc] ul{padding-left:0;list-style:none;font-size:.875rem;font-weight:300}.sidebar .quarto-alternate-notebooks ul li a,.sidebar .quarto-alternate-formats ul li a,.sidebar nav[role=doc-toc]>ul li a{line-height:1.1rem;padding-bottom:.2rem;padding-top:.2rem;color:inherit}.sidebar nav[role=doc-toc] ul>li>ul>li>a{padding-left:1.2em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>a{padding-left:2.4em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>a{padding-left:3.6em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:4.8em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:6em}.sidebar nav[role=doc-toc] ul>li>a.active,.sidebar nav[role=doc-toc] ul>li>ul>li>a.active{border-left:1px solid #d9230f;color:#d9230f !important}.sidebar nav[role=doc-toc] ul>li>a:hover,.sidebar nav[role=doc-toc] ul>li>ul>li>a:hover{color:#d9230f !important}kbd,.kbd{color:#212529;background-color:#f8f9fa;border:1px solid;border-radius:5px;border-color:#dee2e6}div.hanging-indent{margin-left:1em;text-indent:-1em}.citation a,.footnote-ref{text-decoration:none}.footnotes ol{padding-left:1em}.tippy-content>*{margin-bottom:.7em}.tippy-content>*:last-child{margin-bottom:0}.table a{word-break:break-word}.table>thead{border-top-width:1px;border-top-color:#dee2e6;border-bottom:1px solid #9ba5ae}.callout{margin-top:1.25rem;margin-bottom:1.25rem;border-radius:.25rem;overflow-wrap:break-word}.callout .callout-title-container{overflow-wrap:anywhere}.callout.callout-style-simple{padding:.4em .7em;border-left:5px solid;border-right:1px solid #dee2e6;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.callout.callout-style-default{border-left:5px solid;border-right:1px solid #dee2e6;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.callout .callout-body-container{flex-grow:1}.callout.callout-style-simple .callout-body{font-size:.9rem;font-weight:400}.callout.callout-style-default .callout-body{font-size:.9rem;font-weight:400}.callout.callout-titled .callout-body{margin-top:.2em}.callout:not(.no-icon).callout-titled.callout-style-simple .callout-body{padding-left:1.6em}.callout.callout-titled>.callout-header{padding-top:.2em;margin-bottom:-0.2em}.callout.callout-style-simple>div.callout-header{border-bottom:none;font-size:.9rem;font-weight:600;opacity:75%}.callout.callout-style-default>div.callout-header{border-bottom:none;font-weight:600;opacity:85%;font-size:.9rem;padding-left:.5em;padding-right:.5em}.callout.callout-style-default div.callout-body{padding-left:.5em;padding-right:.5em}.callout.callout-style-default div.callout-body>:first-child{margin-top:.5em}.callout>div.callout-header[data-bs-toggle=collapse]{cursor:pointer}.callout.callout-style-default .callout-header[aria-expanded=false],.callout.callout-style-default .callout-header[aria-expanded=true]{padding-top:0px;margin-bottom:0px;align-items:center}.callout.callout-titled .callout-body>:last-child:not(.sourceCode),.callout.callout-titled .callout-body>div>:last-child:not(.sourceCode){margin-bottom:.5rem}.callout:not(.callout-titled) .callout-body>:first-child,.callout:not(.callout-titled) .callout-body>div>:first-child{margin-top:.25rem}.callout:not(.callout-titled) .callout-body>:last-child,.callout:not(.callout-titled) .callout-body>div>:last-child{margin-bottom:.2rem}.callout.callout-style-simple .callout-icon::before,.callout.callout-style-simple .callout-toggle::before{height:1rem;width:1rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.callout.callout-style-default .callout-icon::before,.callout.callout-style-default .callout-toggle::before{height:.9rem;width:.9rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:.9rem .9rem}.callout.callout-style-default .callout-toggle::before{margin-top:5px}.callout .callout-btn-toggle .callout-toggle::before{transition:transform .2s linear}.callout .callout-header[aria-expanded=false] .callout-toggle::before{transform:rotate(-90deg)}.callout .callout-header[aria-expanded=true] .callout-toggle::before{transform:none}.callout.callout-style-simple:not(.no-icon) div.callout-icon-container{padding-top:.2em;padding-right:.55em}.callout.callout-style-default:not(.no-icon) div.callout-icon-container{padding-top:.1em;padding-right:.35em}.callout.callout-style-default:not(.no-icon) div.callout-title-container{margin-top:-1px}.callout.callout-style-default.callout-caution:not(.no-icon) div.callout-icon-container{padding-top:.3em;padding-right:.35em}.callout>.callout-body>.callout-icon-container>.no-icon,.callout>.callout-header>.callout-icon-container>.no-icon{display:none}div.callout.callout{border-left-color:#6c757d}div.callout.callout-style-default>.callout-header{background-color:#6c757d}div.callout-note.callout{border-left-color:#007bff}div.callout-note.callout-style-default>.callout-header{background-color:#e6f2ff}div.callout-note:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-tip.callout{border-left-color:#469408}div.callout-tip.callout-style-default>.callout-header{background-color:#edf4e6}div.callout-tip:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-warning.callout{border-left-color:#ffc107}div.callout-warning.callout-style-default>.callout-header{background-color:#fff9e6}div.callout-warning:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-caution.callout{border-left-color:#d9831f}div.callout-caution.callout-style-default>.callout-header{background-color:#fbf3e9}div.callout-caution:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-important.callout{border-left-color:#d9230f}div.callout-important.callout-style-default>.callout-header{background-color:#fbe9e7}div.callout-important:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important .callout-toggle::before{background-image:url('data:image/svg+xml,')}.quarto-toggle-container{display:flex;align-items:center}.quarto-reader-toggle .bi::before,.quarto-color-scheme-toggle .bi::before{display:inline-block;height:1rem;width:1rem;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.sidebar-navigation{padding-left:20px}.navbar .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.quarto-sidebar-toggle{border-color:#dee2e6;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-style:solid;border-width:1px;overflow:hidden;border-top-width:0px;padding-top:0px !important}.quarto-sidebar-toggle-title{cursor:pointer;padding-bottom:2px;margin-left:.25em;text-align:center;font-weight:400;font-size:.775em}#quarto-content .quarto-sidebar-toggle{background:#f7f7f7}#quarto-content .quarto-sidebar-toggle-title{color:#212529}.quarto-sidebar-toggle-icon{color:#dee2e6;margin-right:.5em;float:right;transition:transform .2s ease}.quarto-sidebar-toggle-icon::before{padding-top:5px}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-icon{transform:rotate(-180deg)}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-title{border-bottom:solid #dee2e6 1px}.quarto-sidebar-toggle-contents{background-color:#fcfcfc;padding-right:10px;padding-left:10px;margin-top:0px !important;transition:max-height .5s ease}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-contents{padding-top:1em;padding-bottom:10px}.quarto-sidebar-toggle:not(.expanded) .quarto-sidebar-toggle-contents{padding-top:0px !important;padding-bottom:0px}nav[role=doc-toc]{z-index:1020}#quarto-sidebar>*,nav[role=doc-toc]>*{transition:opacity .1s ease,border .1s ease}#quarto-sidebar.slow>*,nav[role=doc-toc].slow>*{transition:opacity .4s ease,border .4s ease}.quarto-color-scheme-toggle:not(.alternate).top-right .bi::before{background-image:url('data:image/svg+xml,')}.quarto-color-scheme-toggle.alternate.top-right .bi::before{background-image:url('data:image/svg+xml,')}#quarto-appendix.default{border-top:1px solid #dee2e6}#quarto-appendix.default{background-color:#fcfcfc;padding-top:1.5em;margin-top:2em;z-index:998}#quarto-appendix.default .quarto-appendix-heading{margin-top:0;line-height:1.4em;font-weight:600;opacity:.9;border-bottom:none;margin-bottom:0}#quarto-appendix.default .footnotes ol,#quarto-appendix.default .footnotes ol li>p:last-of-type,#quarto-appendix.default .quarto-appendix-contents>p:last-of-type{margin-bottom:0}#quarto-appendix.default .quarto-appendix-secondary-label{margin-bottom:.4em}#quarto-appendix.default .quarto-appendix-bibtex{font-size:.7em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-bibtex code.sourceCode{white-space:pre-wrap}#quarto-appendix.default .quarto-appendix-citeas{font-size:.9em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-heading{font-size:1em !important}#quarto-appendix.default *[role=doc-endnotes]>ol,#quarto-appendix.default .quarto-appendix-contents>*:not(h2):not(.h2){font-size:.9em}#quarto-appendix.default section{padding-bottom:1.5em}#quarto-appendix.default section *[role=doc-endnotes],#quarto-appendix.default section>*:not(a){opacity:.9;word-wrap:break-word}.btn.btn-quarto,div.cell-output-display .btn-quarto{color:#595959;background-color:#fff;border-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn.btn-quarto:hover,div.cell-output-display .btn-quarto:hover{color:#595959;background-color:#fff;border-color:#fff}.btn-check:focus+.btn.btn-quarto,.btn.btn-quarto:focus,.btn-check:focus+div.cell-output-display .btn-quarto,div.cell-output-display .btn-quarto:focus{color:#595959;background-color:#fff;border-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(230,230,230,.5)}.btn-check:checked+.btn.btn-quarto,.btn-check:active+.btn.btn-quarto,.btn.btn-quarto:active,.btn.btn-quarto.active,.show>.btn.btn-quarto.dropdown-toggle,.btn-check:checked+div.cell-output-display .btn-quarto,.btn-check:active+div.cell-output-display .btn-quarto,div.cell-output-display .btn-quarto:active,div.cell-output-display .btn-quarto.active,.show>div.cell-output-display .btn-quarto.dropdown-toggle{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn.btn-quarto:focus,.btn-check:active+.btn.btn-quarto:focus,.btn.btn-quarto:active:focus,.btn.btn-quarto.active:focus,.show>.btn.btn-quarto.dropdown-toggle:focus,.btn-check:checked+div.cell-output-display .btn-quarto:focus,.btn-check:active+div.cell-output-display .btn-quarto:focus,div.cell-output-display .btn-quarto:active:focus,div.cell-output-display .btn-quarto.active:focus,.show>div.cell-output-display .btn-quarto.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(230,230,230,.5)}.btn.btn-quarto:disabled,.btn.btn-quarto.disabled,div.cell-output-display .btn-quarto:disabled,div.cell-output-display .btn-quarto.disabled{color:#000;background-color:#fff;border-color:#fff}nav.quarto-secondary-nav.color-navbar{background-color:#5cb4c1;color:rgba(0,0,0,.6)}nav.quarto-secondary-nav.color-navbar h1,nav.quarto-secondary-nav.color-navbar .h1,nav.quarto-secondary-nav.color-navbar .quarto-btn-toggle{color:rgba(0,0,0,.6)}@media(max-width: 991.98px){body.nav-sidebar .quarto-title-banner{margin-bottom:0;padding-bottom:0}body.nav-sidebar #title-block-header{margin-block-end:0}}p.subtitle{margin-top:.25em;margin-bottom:.5em}code a:any-link{color:inherit;text-decoration-color:#6c757d}/*! light */div.observablehq table thead tr th{background-color:var(--bs-body-bg)}input,button,select,optgroup,textarea{background-color:var(--bs-body-bg)}.code-annotated .code-copy-button{margin-right:1.25em;margin-top:0;padding-bottom:0;padding-top:3px}.code-annotation-gutter-bg{background-color:#fcfcfc}.code-annotation-gutter{background-color:rgba(221,221,221,.65)}.code-annotation-gutter,.code-annotation-gutter-bg{height:100%;width:calc(20px + .5em);position:absolute;top:0;right:0}dl.code-annotation-container-grid dt{margin-right:1em;margin-top:.25rem}dl.code-annotation-container-grid dt{font-family:var(--bs-font-monospace);color:#383f45;border:solid #383f45 1px;border-radius:50%;height:22px;width:22px;line-height:22px;font-size:11px;text-align:center;vertical-align:middle;text-decoration:none}dl.code-annotation-container-grid dt[data-target-cell]{cursor:pointer}dl.code-annotation-container-grid dt[data-target-cell].code-annotation-active{color:#fcfcfc;border:solid #aaa 1px;background-color:#aaa}pre.code-annotation-code{padding-top:0;padding-bottom:0}pre.code-annotation-code code{z-index:3}#code-annotation-line-highlight-gutter{width:100%;border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}#code-annotation-line-highlight{margin-left:-4em;width:calc(100% + 4em);border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}code.sourceCode .code-annotation-anchor.code-annotation-active{background-color:var(--quarto-hl-normal-color, #aaaaaa);border:solid var(--quarto-hl-normal-color, #aaaaaa) 1px;color:#ddd;font-weight:bolder}code.sourceCode .code-annotation-anchor{font-family:var(--bs-font-monospace);color:var(--quarto-hl-co-color);border:solid var(--quarto-hl-co-color) 1px;border-radius:50%;height:18px;width:18px;font-size:9px;margin-top:2px}code.sourceCode button.code-annotation-anchor{padding:2px}code.sourceCode a.code-annotation-anchor{line-height:18px;text-align:center;vertical-align:middle;cursor:default;text-decoration:none}@media print{.page-columns .column-screen-inset{grid-column:page-start-inset/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset table{background:#fcfcfc}.page-columns .column-screen-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-left table{background:#fcfcfc}.page-columns .column-screen-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-right table{background:#fcfcfc}.page-columns .column-screen{grid-column:page-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen table{background:#fcfcfc}.page-columns .column-screen-left{grid-column:page-start/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-left table{background:#fcfcfc}.page-columns .column-screen-right{grid-column:body-content-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-right table{background:#fcfcfc}.page-columns .column-screen-inset-shaded{grid-column:page-start-inset/page-end-inset;padding:1em;background:#fff;z-index:998;transform:translate3d(0, 0, 0);margin-bottom:1em}}.quarto-video{margin-bottom:1em}.table>thead{border-top-width:0}.table>:not(caption)>*:not(:last-child)>*{border-bottom-color:#d3d8dc;border-bottom-style:solid;border-bottom-width:1px}.table>:not(:first-child){border-top:1px solid #9ba5ae;border-bottom:1px solid inherit}.table tbody{border-bottom-color:#9ba5ae}a.external:after{display:inline-block;height:.75rem;width:.75rem;margin-bottom:.15em;margin-left:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}div.sourceCode code a.external:after{content:none}a.external:after:hover{cursor:pointer}.quarto-ext-icon{display:inline-block;font-size:.75em;padding-left:.3em}.code-with-filename .code-with-filename-file{margin-bottom:0;padding-bottom:2px;padding-top:2px;padding-left:.7em;border:var(--quarto-border-width) solid var(--quarto-border-color);border-radius:var(--quarto-border-radius);border-bottom:0;border-bottom-left-radius:0%;border-bottom-right-radius:0%}.code-with-filename div.sourceCode,.reveal .code-with-filename div.sourceCode{margin-top:0;border-top-left-radius:0%;border-top-right-radius:0%}.code-with-filename .code-with-filename-file pre{margin-bottom:0}.code-with-filename .code-with-filename-file,.code-with-filename .code-with-filename-file pre{background-color:rgba(219,219,219,.8)}.quarto-dark .code-with-filename .code-with-filename-file,.quarto-dark .code-with-filename .code-with-filename-file pre{background-color:#555}.code-with-filename .code-with-filename-file strong{font-weight:400}.quarto-title-banner{margin-bottom:1em;color:rgba(0,0,0,.6);background:#5cb4c1}.quarto-title-banner .code-tools-button{color:rgba(51,51,51,.6)}.quarto-title-banner .code-tools-button:hover{color:rgba(0,0,0,.6)}.quarto-title-banner .code-tools-button>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .quarto-title .title{font-weight:600}.quarto-title-banner .quarto-categories{margin-top:.75em}@media(min-width: 992px){.quarto-title-banner{padding-top:2.5em;padding-bottom:2.5em}}@media(max-width: 991.98px){.quarto-title-banner{padding-top:1em;padding-bottom:1em}}main.quarto-banner-title-block>section:first-child>h2,main.quarto-banner-title-block>section:first-child>.h2,main.quarto-banner-title-block>section:first-child>h3,main.quarto-banner-title-block>section:first-child>.h3,main.quarto-banner-title-block>section:first-child>h4,main.quarto-banner-title-block>section:first-child>.h4{margin-top:0}.quarto-title .quarto-categories{display:flex;flex-wrap:wrap;row-gap:.5em;column-gap:.4em;padding-bottom:.5em;margin-top:.75em}.quarto-title .quarto-categories .quarto-category{padding:.25em .75em;font-size:.65em;text-transform:uppercase;border:solid 1px;border-radius:.25rem;opacity:.6}.quarto-title .quarto-categories .quarto-category a{color:inherit}#title-block-header.quarto-title-block.default .quarto-title-meta{display:grid;grid-template-columns:repeat(2, 1fr)}#title-block-header.quarto-title-block.default .quarto-title .title{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-author-orcid img{margin-top:-5px}#title-block-header.quarto-title-block.default .quarto-description p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p,#title-block-header.quarto-title-block.default .quarto-title-authors p,#title-block-header.quarto-title-block.default .quarto-title-affiliations p{margin-bottom:.1em}#title-block-header.quarto-title-block.default .quarto-title-meta-heading{text-transform:uppercase;margin-top:1em;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-contents{font-size:.9em}#title-block-header.quarto-title-block.default .quarto-title-meta-contents a{color:#212529}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p.affiliation:last-of-type{margin-bottom:.7em}#title-block-header.quarto-title-block.default p.affiliation{margin-bottom:.1em}#title-block-header.quarto-title-block.default .description,#title-block-header.quarto-title-block.default .abstract{margin-top:0}#title-block-header.quarto-title-block.default .description>p,#title-block-header.quarto-title-block.default .abstract>p{font-size:.9em}#title-block-header.quarto-title-block.default .description>p:last-of-type,#title-block-header.quarto-title-block.default .abstract>p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .description .abstract-title,#title-block-header.quarto-title-block.default .abstract .abstract-title{margin-top:1em;text-transform:uppercase;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-author{display:grid;grid-template-columns:1fr 1fr}.quarto-title-tools-only{display:flex;justify-content:right}.navbar{border-width:1px;border-style:solid;border-color:#509da8}.navbar-fixed-top{border-width:0 0 1px}.navbar-fixed-bottom{border-top-width:1px 0 0 0;border-style:solid}.navbar.bg-primary{background-color:#d9230f !important;border-color:#bd1e0d !important}.navbar.bg-dark{border-color:#303234 !important}.navbar.bg-light{border-color:#dedede}.btn-primary,.btn-primary:hover{background-image:linear-gradient(#db301d, #d9230f 6%, #cc210e);filter:none;border:1px solid #bd1e0d}.btn-secondary,.btn-secondary:hover{background-image:linear-gradient(white, #fff 6%, #f0f0f0);filter:none;border:1px solid #dedede}.btn-secondary:focus,.btn-secondary:not([disabled]):not(.disabled):active,.btn-secondary:not([disabled]):not(.disabled).active{box-shadow:0 0 0 .2rem rgba(221,221,221,.5)}.btn-success,.btn-success:hover{background-image:linear-gradient(#519a17, #469408 6%, #428b08);filter:none;border:1px solid #3d8107}.btn-info,.btn-info:hover{background-image:linear-gradient(#11a0d2, #029acf 6%, #0291c3);filter:none;border:1px solid #0286b4}.btn-warning,.btn-warning:hover{background-image:linear-gradient(#db8a2c, #d9831f 6%, #cc7b1d);filter:none;border:1px solid #bd721b}.btn-danger,.btn-danger:hover{background-image:linear-gradient(#a152a5, #9b479f 6%, #924395);filter:none;border:1px solid #873e8a}.btn-dark,.btn-dark:hover{background-image:linear-gradient(#434648, #373a3c 6%, #343738);filter:none;border:1px solid #303234}.btn-light,.btn-light:hover{background-image:linear-gradient(white, #fff 6%, #f0f0f0);filter:none;border:1px solid #dedede}.btn-outline-secondary{border-color:#bbb;color:#bbb}.btn-outline-secondary:hover{background-color:#bbb;color:#fff}.text-secondary{color:#6c757d !important}.breadcrumb{border:1px solid #dedede}.pagination .page-link:hover{text-decoration:none}.badge.bg-secondary,.badge.bg-light{color:#373a3c}/*# sourceMappingURL=9161419e6f82ea4435380a70856fa72b.css.map */ diff --git a/site_libs/bootstrap/bootstrap.min.js b/site_libs/bootstrap/bootstrap.min.js new file mode 100644 index 0000000..cc0a255 --- /dev/null +++ b/site_libs/bootstrap/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t="transitionend",e=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e},i=t=>{const i=e(t);return i&&document.querySelector(i)?i:null},n=t=>{const i=e(t);return i?document.querySelector(i):null},s=e=>{e.dispatchEvent(new Event(t))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(t):null,a=(t,e,i)=>{Object.keys(i).forEach((n=>{const s=i[n],r=e[n],a=r&&o(r)?"element":null==(l=r)?`${l}`:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();var l;if(!new RegExp(s).test(a))throw new TypeError(`${t.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${s}".`)}))},l=t=>!(!o(t)||0===t.getClientRects().length)&&"visible"===getComputedStyle(t).getPropertyValue("visibility"),c=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),h=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?h(t.parentNode):null},d=()=>{},u=t=>{t.offsetHeight},f=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},p=[],m=()=>"rtl"===document.documentElement.dir,g=t=>{var e;e=()=>{const e=f();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(p.length||document.addEventListener("DOMContentLoaded",(()=>{p.forEach((t=>t()))})),p.push(e)):e()},_=t=>{"function"==typeof t&&t()},b=(e,i,n=!0)=>{if(!n)return void _(e);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(i)+5;let r=!1;const a=({target:n})=>{n===i&&(r=!0,i.removeEventListener(t,a),_(e))};i.addEventListener(t,a),setTimeout((()=>{r||s(i)}),o)},v=(t,e,i,n)=>{let s=t.indexOf(e);if(-1===s)return t[!i&&n?t.length-1:0];const o=t.length;return s+=i?1:-1,n&&(s=(s+o)%o),t[Math.max(0,Math.min(s,o-1))]},y=/[^.]*(?=\..*)\.|.*/,w=/\..*/,E=/::\d+$/,A={};let T=1;const O={mouseenter:"mouseover",mouseleave:"mouseout"},C=/^(mouseenter|mouseleave)/i,k=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function L(t,e){return e&&`${e}::${T++}`||t.uidEvent||T++}function x(t){const e=L(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function D(t,e,i=null){const n=Object.keys(t);for(let s=0,o=n.length;sfunction(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};n?n=t(n):i=t(i)}const[o,r,a]=S(e,i,n),l=x(t),c=l[a]||(l[a]={}),h=D(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=L(r,e.replace(y,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(let a=o.length;a--;)if(o[a]===r)return s.delegateTarget=r,n.oneOff&&j.off(t,s.type,e,i),i.apply(r,[s]);return null}}(t,i,n):function(t,e){return function i(n){return n.delegateTarget=t,i.oneOff&&j.off(t,n.type,e),e.apply(t,[n])}}(t,i);u.delegationSelector=o?i:null,u.originalHandler=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function I(t,e,i,n,s){const o=D(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function P(t){return t=t.replace(w,""),O[t]||t}const j={on(t,e,i,n){N(t,e,i,n,!1)},one(t,e,i,n){N(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=S(e,i,n),a=r!==e,l=x(t),c=e.startsWith(".");if(void 0!==o){if(!l||!l[r])return;return void I(t,l,r,o,s?i:null)}c&&Object.keys(l).forEach((i=>{!function(t,e,i,n){const s=e[i]||{};Object.keys(s).forEach((o=>{if(o.includes(n)){const n=s[o];I(t,e,i,n.originalHandler,n.delegationSelector)}}))}(t,l,i,e.slice(1))}));const h=l[r]||{};Object.keys(h).forEach((i=>{const n=i.replace(E,"");if(!a||e.includes(n)){const e=h[i];I(t,l,r,e.originalHandler,e.delegationSelector)}}))},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=f(),s=P(e),o=e!==s,r=k.has(s);let a,l=!0,c=!0,h=!1,d=null;return o&&n&&(a=n.Event(e,i),n(t).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),h=a.isDefaultPrevented()),r?(d=document.createEvent("HTMLEvents"),d.initEvent(s,l,!0)):d=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==i&&Object.keys(i).forEach((t=>{Object.defineProperty(d,t,{get:()=>i[t]})})),h&&d.preventDefault(),c&&t.dispatchEvent(d),d.defaultPrevented&&void 0!==a&&a.preventDefault(),d}},M=new Map,H={set(t,e,i){M.has(t)||M.set(t,new Map);const n=M.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>M.has(t)&&M.get(t).get(e)||null,remove(t,e){if(!M.has(t))return;const i=M.get(t);i.delete(e),0===i.size&&M.delete(t)}};class B{constructor(t){(t=r(t))&&(this._element=t,H.set(this._element,this.constructor.DATA_KEY,this))}dispose(){H.remove(this._element,this.constructor.DATA_KEY),j.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach((t=>{this[t]=null}))}_queueCallback(t,e,i=!0){b(t,e,i)}static getInstance(t){return H.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.1.3"}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}}const R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,s=t.NAME;j.on(document,i,`[data-bs-dismiss="${s}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),c(this))return;const o=n(this)||this.closest(`.${s}`);t.getOrCreateInstance(o)[e]()}))};class W extends B{static get NAME(){return"alert"}close(){if(j.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),j.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=W.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(W,"close"),g(W);const $='[data-bs-toggle="button"]';class z extends B{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=z.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}function q(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function F(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}j.on(document,"click.bs.button.data-api",$,(t=>{t.preventDefault();const e=t.target.closest($);z.getOrCreateInstance(e).toggle()})),g(z);const U={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${F(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${F(e)}`)},getDataAttributes(t){if(!t)return{};const e={};return Object.keys(t.dataset).filter((t=>t.startsWith("bs"))).forEach((i=>{let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),e[n]=q(t.dataset[i])})),e},getDataAttribute:(t,e)=>q(t.getAttribute(`data-bs-${F(e)}`)),offset(t){const e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},V={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode;for(;n&&n.nodeType===Node.ELEMENT_NODE&&3!==n.nodeType;)n.matches(e)&&i.push(n),n=n.parentNode;return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(", ");return this.find(e,t).filter((t=>!c(t)&&l(t)))}},K="carousel",X={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Y={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Q="next",G="prev",Z="left",J="right",tt={ArrowLeft:J,ArrowRight:Z},et="slid.bs.carousel",it="active",nt=".active.carousel-item";class st extends B{constructor(t,e){super(t),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._indicatorsElement=V.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return X}static get NAME(){return K}next(){this._slide(Q)}nextWhenVisible(){!document.hidden&&l(this._element)&&this.next()}prev(){this._slide(G)}pause(t){t||(this._isPaused=!0),V.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(s(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=V.findOne(nt,this._element);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void j.one(this._element,et,(()=>this.to(t)));if(e===t)return this.pause(),void this.cycle();const i=t>e?Q:G;this._slide(i,this._items[t])}_getConfig(t){return t={...X,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(K,t,Y),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?J:Z)}_addEventListeners(){this._config.keyboard&&j.on(this._element,"keydown.bs.carousel",(t=>this._keydown(t))),"hover"===this._config.pause&&(j.on(this._element,"mouseenter.bs.carousel",(t=>this.pause(t))),j.on(this._element,"mouseleave.bs.carousel",(t=>this.cycle(t)))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const t=t=>this._pointerEvent&&("pen"===t.pointerType||"touch"===t.pointerType),e=e=>{t(e)?this.touchStartX=e.clientX:this._pointerEvent||(this.touchStartX=e.touches[0].clientX)},i=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},n=e=>{t(e)&&(this.touchDeltaX=e.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((t=>this.cycle(t)),500+this._config.interval))};V.find(".carousel-item img",this._element).forEach((t=>{j.on(t,"dragstart.bs.carousel",(t=>t.preventDefault()))})),this._pointerEvent?(j.on(this._element,"pointerdown.bs.carousel",(t=>e(t))),j.on(this._element,"pointerup.bs.carousel",(t=>n(t))),this._element.classList.add("pointer-event")):(j.on(this._element,"touchstart.bs.carousel",(t=>e(t))),j.on(this._element,"touchmove.bs.carousel",(t=>i(t))),j.on(this._element,"touchend.bs.carousel",(t=>n(t))))}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=tt[t.key];e&&(t.preventDefault(),this._slide(e))}_getItemIndex(t){return this._items=t&&t.parentNode?V.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)}_getItemByOrder(t,e){const i=t===Q;return v(this._items,e,i,this._config.wrap)}_triggerSlideEvent(t,e){const i=this._getItemIndex(t),n=this._getItemIndex(V.findOne(nt,this._element));return j.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:n,to:i})}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=V.findOne(".active",this._indicatorsElement);e.classList.remove(it),e.removeAttribute("aria-current");const i=V.find("[data-bs-target]",this._indicatorsElement);for(let e=0;e{j.trigger(this._element,et,{relatedTarget:o,direction:d,from:s,to:r})};if(this._element.classList.contains("slide")){o.classList.add(h),u(o),n.classList.add(c),o.classList.add(c);const t=()=>{o.classList.remove(c,h),o.classList.add(it),n.classList.remove(it,h,c),this._isSliding=!1,setTimeout(f,0)};this._queueCallback(t,n,!0)}else n.classList.remove(it),o.classList.add(it),this._isSliding=!1,f();a&&this.cycle()}_directionToOrder(t){return[J,Z].includes(t)?m()?t===Z?G:Q:t===Z?Q:G:t}_orderToDirection(t){return[Q,G].includes(t)?m()?t===G?Z:J:t===G?J:Z:t}static carouselInterface(t,e){const i=st.getOrCreateInstance(t,e);let{_config:n}=i;"object"==typeof e&&(n={...n,...e});const s="string"==typeof e?e:n.slide;if("number"==typeof e)i.to(e);else if("string"==typeof s){if(void 0===i[s])throw new TypeError(`No method named "${s}"`);i[s]()}else n.interval&&n.ride&&(i.pause(),i.cycle())}static jQueryInterface(t){return this.each((function(){st.carouselInterface(this,t)}))}static dataApiClickHandler(t){const e=n(this);if(!e||!e.classList.contains("carousel"))return;const i={...U.getDataAttributes(e),...U.getDataAttributes(this)},s=this.getAttribute("data-bs-slide-to");s&&(i.interval=!1),st.carouselInterface(e,i),s&&st.getInstance(e).to(s),t.preventDefault()}}j.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",st.dataApiClickHandler),j.on(window,"load.bs.carousel.data-api",(()=>{const t=V.find('[data-bs-ride="carousel"]');for(let e=0,i=t.length;et===this._element));null!==s&&o.length&&(this._selector=s,this._triggerArray.push(e))}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return rt}static get NAME(){return ot}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t,e=[];if(this._config.parent){const t=V.find(ut,this._config.parent);e=V.find(".collapse.show, .collapse.collapsing",this._config.parent).filter((e=>!t.includes(e)))}const i=V.findOne(this._selector);if(e.length){const n=e.find((t=>i!==t));if(t=n?pt.getInstance(n):null,t&&t._isTransitioning)return}if(j.trigger(this._element,"show.bs.collapse").defaultPrevented)return;e.forEach((e=>{i!==e&&pt.getOrCreateInstance(e,{toggle:!1}).hide(),t||H.set(e,"bs.collapse",null)}));const n=this._getDimension();this._element.classList.remove(ct),this._element.classList.add(ht),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const s=`scroll${n[0].toUpperCase()+n.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct,lt),this._element.style[n]="",j.trigger(this._element,"shown.bs.collapse")}),this._element,!0),this._element.style[n]=`${this._element[s]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(j.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,u(this._element),this._element.classList.add(ht),this._element.classList.remove(ct,lt);const e=this._triggerArray.length;for(let t=0;t{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct),j.trigger(this._element,"hidden.bs.collapse")}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(lt)}_getConfig(t){return(t={...rt,...U.getDataAttributes(this._element),...t}).toggle=Boolean(t.toggle),t.parent=r(t.parent),a(ot,t,at),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=V.find(ut,this._config.parent);V.find(ft,this._config.parent).filter((e=>!t.includes(e))).forEach((t=>{const e=n(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}))}_addAriaAndCollapsedClass(t,e){t.length&&t.forEach((t=>{e?t.classList.remove(dt):t.classList.add(dt),t.setAttribute("aria-expanded",e)}))}static jQueryInterface(t){return this.each((function(){const e={};"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1);const i=pt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}j.on(document,"click.bs.collapse.data-api",ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=i(this);V.find(e).forEach((t=>{pt.getOrCreateInstance(t,{toggle:!1}).toggle()}))})),g(pt);var mt="top",gt="bottom",_t="right",bt="left",vt="auto",yt=[mt,gt,_t,bt],wt="start",Et="end",At="clippingParents",Tt="viewport",Ot="popper",Ct="reference",kt=yt.reduce((function(t,e){return t.concat([e+"-"+wt,e+"-"+Et])}),[]),Lt=[].concat(yt,[vt]).reduce((function(t,e){return t.concat([e,e+"-"+wt,e+"-"+Et])}),[]),xt="beforeRead",Dt="read",St="afterRead",Nt="beforeMain",It="main",Pt="afterMain",jt="beforeWrite",Mt="write",Ht="afterWrite",Bt=[xt,Dt,St,Nt,It,Pt,jt,Mt,Ht];function Rt(t){return t?(t.nodeName||"").toLowerCase():null}function Wt(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function $t(t){return t instanceof Wt(t).Element||t instanceof Element}function zt(t){return t instanceof Wt(t).HTMLElement||t instanceof HTMLElement}function qt(t){return"undefined"!=typeof ShadowRoot&&(t instanceof Wt(t).ShadowRoot||t instanceof ShadowRoot)}const Ft={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];zt(s)&&Rt(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});zt(n)&&Rt(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function Ut(t){return t.split("-")[0]}function Vt(t,e){var i=t.getBoundingClientRect();return{width:i.width/1,height:i.height/1,top:i.top/1,right:i.right/1,bottom:i.bottom/1,left:i.left/1,x:i.left/1,y:i.top/1}}function Kt(t){var e=Vt(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Xt(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&qt(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Yt(t){return Wt(t).getComputedStyle(t)}function Qt(t){return["table","td","th"].indexOf(Rt(t))>=0}function Gt(t){return(($t(t)?t.ownerDocument:t.document)||window.document).documentElement}function Zt(t){return"html"===Rt(t)?t:t.assignedSlot||t.parentNode||(qt(t)?t.host:null)||Gt(t)}function Jt(t){return zt(t)&&"fixed"!==Yt(t).position?t.offsetParent:null}function te(t){for(var e=Wt(t),i=Jt(t);i&&Qt(i)&&"static"===Yt(i).position;)i=Jt(i);return i&&("html"===Rt(i)||"body"===Rt(i)&&"static"===Yt(i).position)?e:i||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&zt(t)&&"fixed"===Yt(t).position)return null;for(var i=Zt(t);zt(i)&&["html","body"].indexOf(Rt(i))<0;){var n=Yt(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function ee(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}var ie=Math.max,ne=Math.min,se=Math.round;function oe(t,e,i){return ie(t,ne(e,i))}function re(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function ae(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const le={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=Ut(i.placement),l=ee(a),c=[bt,_t].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return re("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:ae(t,yt))}(s.padding,i),d=Kt(o),u="y"===l?mt:bt,f="y"===l?gt:_t,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=te(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,E=oe(v,w,y),A=l;i.modifiersData[n]=((e={})[A]=E,e.centerOffset=E-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Xt(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ce(t){return t.split("-")[1]}var he={top:"auto",right:"auto",bottom:"auto",left:"auto"};function de(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=!0===h?function(t){var e=t.x,i=t.y,n=window.devicePixelRatio||1;return{x:se(se(e*n)/n)||0,y:se(se(i*n)/n)||0}}(r):"function"==typeof h?h(r):r,u=d.x,f=void 0===u?0:u,p=d.y,m=void 0===p?0:p,g=r.hasOwnProperty("x"),_=r.hasOwnProperty("y"),b=bt,v=mt,y=window;if(c){var w=te(i),E="clientHeight",A="clientWidth";w===Wt(i)&&"static"!==Yt(w=Gt(i)).position&&"absolute"===a&&(E="scrollHeight",A="scrollWidth"),w=w,s!==mt&&(s!==bt&&s!==_t||o!==Et)||(v=gt,m-=w[E]-n.height,m*=l?1:-1),s!==bt&&(s!==mt&&s!==gt||o!==Et)||(b=_t,f-=w[A]-n.width,f*=l?1:-1)}var T,O=Object.assign({position:a},c&&he);return l?Object.assign({},O,((T={})[v]=_?"0":"",T[b]=g?"0":"",T.transform=(y.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",T)):Object.assign({},O,((e={})[v]=_?m+"px":"",e[b]=g?f+"px":"",e.transform="",e))}const ue={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:Ut(e.placement),variation:ce(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,de(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,de(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var fe={passive:!0};const pe={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=Wt(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,fe)})),a&&l.addEventListener("resize",i.update,fe),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,fe)})),a&&l.removeEventListener("resize",i.update,fe)}},data:{}};var me={left:"right",right:"left",bottom:"top",top:"bottom"};function ge(t){return t.replace(/left|right|bottom|top/g,(function(t){return me[t]}))}var _e={start:"end",end:"start"};function be(t){return t.replace(/start|end/g,(function(t){return _e[t]}))}function ve(t){var e=Wt(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ye(t){return Vt(Gt(t)).left+ve(t).scrollLeft}function we(t){var e=Yt(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ee(t){return["html","body","#document"].indexOf(Rt(t))>=0?t.ownerDocument.body:zt(t)&&we(t)?t:Ee(Zt(t))}function Ae(t,e){var i;void 0===e&&(e=[]);var n=Ee(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=Wt(n),r=s?[o].concat(o.visualViewport||[],we(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Ae(Zt(r)))}function Te(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Oe(t,e){return e===Tt?Te(function(t){var e=Wt(t),i=Gt(t),n=e.visualViewport,s=i.clientWidth,o=i.clientHeight,r=0,a=0;return n&&(s=n.width,o=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=n.offsetLeft,a=n.offsetTop)),{width:s,height:o,x:r+ye(t),y:a}}(t)):zt(e)?function(t){var e=Vt(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):Te(function(t){var e,i=Gt(t),n=ve(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ie(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ie(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+ye(t),l=-n.scrollTop;return"rtl"===Yt(s||i).direction&&(a+=ie(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Gt(t)))}function Ce(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?Ut(s):null,r=s?ce(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case mt:e={x:a,y:i.y-n.height};break;case gt:e={x:a,y:i.y+i.height};break;case _t:e={x:i.x+i.width,y:l};break;case bt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?ee(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case wt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Et:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ke(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.boundary,r=void 0===o?At:o,a=i.rootBoundary,l=void 0===a?Tt:a,c=i.elementContext,h=void 0===c?Ot:c,d=i.altBoundary,u=void 0!==d&&d,f=i.padding,p=void 0===f?0:f,m=re("number"!=typeof p?p:ae(p,yt)),g=h===Ot?Ct:Ot,_=t.rects.popper,b=t.elements[u?g:h],v=function(t,e,i){var n="clippingParents"===e?function(t){var e=Ae(Zt(t)),i=["absolute","fixed"].indexOf(Yt(t).position)>=0&&zt(t)?te(t):t;return $t(i)?e.filter((function(t){return $t(t)&&Xt(t,i)&&"body"!==Rt(t)})):[]}(t):[].concat(e),s=[].concat(n,[i]),o=s[0],r=s.reduce((function(e,i){var n=Oe(t,i);return e.top=ie(n.top,e.top),e.right=ne(n.right,e.right),e.bottom=ne(n.bottom,e.bottom),e.left=ie(n.left,e.left),e}),Oe(t,o));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}($t(b)?b:b.contextElement||Gt(t.elements.popper),r,l),y=Vt(t.elements.reference),w=Ce({reference:y,element:_,strategy:"absolute",placement:s}),E=Te(Object.assign({},_,w)),A=h===Ot?E:y,T={top:v.top-A.top+m.top,bottom:A.bottom-v.bottom+m.bottom,left:v.left-A.left+m.left,right:A.right-v.right+m.right},O=t.modifiersData.offset;if(h===Ot&&O){var C=O[s];Object.keys(T).forEach((function(t){var e=[_t,gt].indexOf(t)>=0?1:-1,i=[mt,gt].indexOf(t)>=0?"y":"x";T[t]+=C[i]*e}))}return T}function Le(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?Lt:l,h=ce(n),d=h?a?kt:kt.filter((function(t){return ce(t)===h})):yt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ke(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[Ut(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const xe={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=Ut(g),b=l||(_!==g&&p?function(t){if(Ut(t)===vt)return[];var e=ge(t);return[be(t),e,be(e)]}(g):[ge(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(Ut(i)===vt?Le(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,E=new Map,A=!0,T=v[0],O=0;O=0,D=x?"width":"height",S=ke(e,{placement:C,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),N=x?L?_t:bt:L?gt:mt;y[D]>w[D]&&(N=ge(N));var I=ge(N),P=[];if(o&&P.push(S[k]<=0),a&&P.push(S[N]<=0,S[I]<=0),P.every((function(t){return t}))){T=C,A=!1;break}E.set(C,P)}if(A)for(var j=function(t){var e=v.find((function(e){var i=E.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==j(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function De(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function Se(t){return[mt,_t,gt,bt].some((function(e){return t[e]>=0}))}const Ne={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ke(e,{elementContext:"reference"}),a=ke(e,{altBoundary:!0}),l=De(r,n),c=De(a,s,o),h=Se(l),d=Se(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},Ie={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=Lt.reduce((function(t,i){return t[i]=function(t,e,i){var n=Ut(t),s=[bt,mt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[bt,_t].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},Pe={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=Ce({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},je={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ke(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=Ut(e.placement),b=ce(e.placement),v=!b,y=ee(_),w="x"===y?"y":"x",E=e.modifiersData.popperOffsets,A=e.rects.reference,T=e.rects.popper,O="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,C={x:0,y:0};if(E){if(o||a){var k="y"===y?mt:bt,L="y"===y?gt:_t,x="y"===y?"height":"width",D=E[y],S=E[y]+g[k],N=E[y]-g[L],I=f?-T[x]/2:0,P=b===wt?A[x]:T[x],j=b===wt?-T[x]:-A[x],M=e.elements.arrow,H=f&&M?Kt(M):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},R=B[k],W=B[L],$=oe(0,A[x],H[x]),z=v?A[x]/2-I-$-R-O:P-$-R-O,q=v?-A[x]/2+I+$+W+O:j+$+W+O,F=e.elements.arrow&&te(e.elements.arrow),U=F?"y"===y?F.clientTop||0:F.clientLeft||0:0,V=e.modifiersData.offset?e.modifiersData.offset[e.placement][y]:0,K=E[y]+z-V-U,X=E[y]+q-V;if(o){var Y=oe(f?ne(S,K):S,D,f?ie(N,X):N);E[y]=Y,C[y]=Y-D}if(a){var Q="x"===y?mt:bt,G="x"===y?gt:_t,Z=E[w],J=Z+g[Q],tt=Z-g[G],et=oe(f?ne(J,K):J,Z,f?ie(tt,X):tt);E[w]=et,C[w]=et-Z}}e.modifiersData[n]=C}},requiresIfExists:["offset"]};function Me(t,e,i){void 0===i&&(i=!1);var n=zt(e);zt(e)&&function(t){var e=t.getBoundingClientRect();e.width,t.offsetWidth,e.height,t.offsetHeight}(e);var s,o,r=Gt(e),a=Vt(t),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(n||!n&&!i)&&(("body"!==Rt(e)||we(r))&&(l=(s=e)!==Wt(s)&&zt(s)?{scrollLeft:(o=s).scrollLeft,scrollTop:o.scrollTop}:ve(s)),zt(e)?((c=Vt(e)).x+=e.clientLeft,c.y+=e.clientTop):r&&(c.x=ye(r))),{x:a.left+l.scrollLeft-c.x,y:a.top+l.scrollTop-c.y,width:a.width,height:a.height}}function He(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var Be={placement:"bottom",modifiers:[],strategy:"absolute"};function Re(){for(var t=arguments.length,e=new Array(t),i=0;ij.on(t,"mouseover",d))),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Je),this._element.classList.add(Je),j.trigger(this._element,"shown.bs.dropdown",t)}hide(){if(c(this._element)||!this._isShown(this._menu))return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){j.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>j.off(t,"mouseover",d))),this._popper&&this._popper.destroy(),this._menu.classList.remove(Je),this._element.classList.remove(Je),this._element.setAttribute("aria-expanded","false"),U.removeDataAttribute(this._menu,"popper"),j.trigger(this._element,"hidden.bs.dropdown",t))}_getConfig(t){if(t={...this.constructor.Default,...U.getDataAttributes(this._element),...t},a(Ue,t,this.constructor.DefaultType),"object"==typeof t.reference&&!o(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Ue.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(t){if(void 0===Fe)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=t:o(this._config.reference)?e=r(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);const i=this._getPopperConfig(),n=i.modifiers.find((t=>"applyStyles"===t.name&&!1===t.enabled));this._popper=qe(e,this._menu,i),n&&U.setDataAttribute(this._menu,"popper","static")}_isShown(t=this._element){return t.classList.contains(Je)}_getMenuElement(){return V.next(this._element,ei)[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains("dropend"))return ri;if(t.classList.contains("dropstart"))return ai;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?ni:ii:e?oi:si}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const i=V.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(l);i.length&&v(i,e,t===Ye,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=hi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(t&&(2===t.button||"keyup"===t.type&&"Tab"!==t.key))return;const e=V.find(ti);for(let i=0,n=e.length;ie+t)),this._setElementAttributes(di,"paddingRight",(e=>e+t)),this._setElementAttributes(ui,"marginRight",(e=>e-t))}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t)[e];t.style[e]=`${i(Number.parseFloat(s))}px`}))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(di,"paddingRight"),this._resetElementAttributes(ui,"marginRight")}_saveInitialAttribute(t,e){const i=t.style[e];i&&U.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=U.getDataAttribute(t,e);void 0===i?t.style.removeProperty(e):(U.removeDataAttribute(t,e),t.style[e]=i)}))}_applyManipulationCallback(t,e){o(t)?e(t):V.find(t,this._element).forEach(e)}isOverflowing(){return this.getWidth()>0}}const pi={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},mi={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"},gi="show",_i="mousedown.bs.backdrop";class bi{constructor(t){this._config=this._getConfig(t),this._isAppended=!1,this._element=null}show(t){this._config.isVisible?(this._append(),this._config.isAnimated&&u(this._getElement()),this._getElement().classList.add(gi),this._emulateAnimation((()=>{_(t)}))):_(t)}hide(t){this._config.isVisible?(this._getElement().classList.remove(gi),this._emulateAnimation((()=>{this.dispose(),_(t)}))):_(t)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_getConfig(t){return(t={...pi,..."object"==typeof t?t:{}}).rootElement=r(t.rootElement),a("backdrop",t,mi),t}_append(){this._isAppended||(this._config.rootElement.append(this._getElement()),j.on(this._getElement(),_i,(()=>{_(this._config.clickCallback)})),this._isAppended=!0)}dispose(){this._isAppended&&(j.off(this._element,_i),this._element.remove(),this._isAppended=!1)}_emulateAnimation(t){b(t,this._getElement(),this._config.isAnimated)}}const vi={trapElement:null,autofocus:!0},yi={trapElement:"element",autofocus:"boolean"},wi=".bs.focustrap",Ei="backward";class Ai{constructor(t){this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}activate(){const{trapElement:t,autofocus:e}=this._config;this._isActive||(e&&t.focus(),j.off(document,wi),j.on(document,"focusin.bs.focustrap",(t=>this._handleFocusin(t))),j.on(document,"keydown.tab.bs.focustrap",(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,j.off(document,wi))}_handleFocusin(t){const{target:e}=t,{trapElement:i}=this._config;if(e===document||e===i||i.contains(e))return;const n=V.focusableChildren(i);0===n.length?i.focus():this._lastTabNavDirection===Ei?n[n.length-1].focus():n[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?Ei:"forward")}_getConfig(t){return t={...vi,..."object"==typeof t?t:{}},a("focustrap",t,yi),t}}const Ti="modal",Oi="Escape",Ci={backdrop:!0,keyboard:!0,focus:!0},ki={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},Li="hidden.bs.modal",xi="show.bs.modal",Di="resize.bs.modal",Si="click.dismiss.bs.modal",Ni="keydown.dismiss.bs.modal",Ii="mousedown.dismiss.bs.modal",Pi="modal-open",ji="show",Mi="modal-static";class Hi extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._dialog=V.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new fi}static get Default(){return Ci}static get NAME(){return Ti}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||j.trigger(this._element,xi,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add(Pi),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),j.on(this._dialog,Ii,(()=>{j.one(this._element,"mouseup.dismiss.bs.modal",(t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)}))})),this._showBackdrop((()=>this._showElement(t))))}hide(){if(!this._isShown||this._isTransitioning)return;if(j.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const t=this._isAnimated();t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),this._focustrap.deactivate(),this._element.classList.remove(ji),j.off(this._element,Si),j.off(this._dialog,Ii),this._queueCallback((()=>this._hideModal()),this._element,t)}dispose(){[window,this._dialog].forEach((t=>j.off(t,".bs.modal"))),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new bi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ai({trapElement:this._element})}_getConfig(t){return t={...Ci,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(Ti,t,ki),t}_showElement(t){const e=this._isAnimated(),i=V.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),e&&u(this._element),this._element.classList.add(ji),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,j.trigger(this._element,"shown.bs.modal",{relatedTarget:t})}),this._dialog,e)}_setEscapeEvent(){this._isShown?j.on(this._element,Ni,(t=>{this._config.keyboard&&t.key===Oi?(t.preventDefault(),this.hide()):this._config.keyboard||t.key!==Oi||this._triggerBackdropTransition()})):j.off(this._element,Ni)}_setResizeEvent(){this._isShown?j.on(window,Di,(()=>this._adjustDialog())):j.off(window,Di)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(Pi),this._resetAdjustments(),this._scrollBar.reset(),j.trigger(this._element,Li)}))}_showBackdrop(t){j.on(this._element,Si,(t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&(!0===this._config.backdrop?this.hide():"static"===this._config.backdrop&&this._triggerBackdropTransition())})),this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(j.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const{classList:t,scrollHeight:e,style:i}=this._element,n=e>document.documentElement.clientHeight;!n&&"hidden"===i.overflowY||t.contains(Mi)||(n||(i.overflowY="hidden"),t.add(Mi),this._queueCallback((()=>{t.remove(Mi),n||this._queueCallback((()=>{i.overflowY=""}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;(!i&&t&&!m()||i&&!t&&m())&&(this._element.style.paddingLeft=`${e}px`),(i&&!t&&!m()||!i&&t&&m())&&(this._element.style.paddingRight=`${e}px`)}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=Hi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}j.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=n(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),j.one(e,xi,(t=>{t.defaultPrevented||j.one(e,Li,(()=>{l(this)&&this.focus()}))}));const i=V.findOne(".modal.show");i&&Hi.getInstance(i).hide(),Hi.getOrCreateInstance(e).toggle(this)})),R(Hi),g(Hi);const Bi="offcanvas",Ri={backdrop:!0,keyboard:!0,scroll:!1},Wi={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"},$i="show",zi=".offcanvas.show",qi="hidden.bs.offcanvas";class Fi extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get NAME(){return Bi}static get Default(){return Ri}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||j.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||(new fi).hide(),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add($i),this._queueCallback((()=>{this._config.scroll||this._focustrap.activate(),j.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(j.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove($i),this._backdrop.hide(),this._queueCallback((()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new fi).reset(),j.trigger(this._element,qi)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_getConfig(t){return t={...Ri,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(Bi,t,Wi),t}_initializeBackDrop(){return new bi({className:"offcanvas-backdrop",isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new Ai({trapElement:this._element})}_addEventListeners(){j.on(this._element,"keydown.dismiss.bs.offcanvas",(t=>{this._config.keyboard&&"Escape"===t.key&&this.hide()}))}static jQueryInterface(t){return this.each((function(){const e=Fi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}j.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=n(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),c(this))return;j.one(e,qi,(()=>{l(this)&&this.focus()}));const i=V.findOne(zi);i&&i!==e&&Fi.getInstance(i).hide(),Fi.getOrCreateInstance(e).toggle(this)})),j.on(window,"load.bs.offcanvas.data-api",(()=>V.find(zi).forEach((t=>Fi.getOrCreateInstance(t).show())))),R(Fi),g(Fi);const Ui=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Vi=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,Ki=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Xi=(t,e)=>{const i=t.nodeName.toLowerCase();if(e.includes(i))return!Ui.has(i)||Boolean(Vi.test(t.nodeValue)||Ki.test(t.nodeValue));const n=e.filter((t=>t instanceof RegExp));for(let t=0,e=n.length;t{Xi(t,r)||i.removeAttribute(t.nodeName)}))}return n.body.innerHTML}const Qi="tooltip",Gi=new Set(["sanitize","allowList","sanitizeFn"]),Zi={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},Ji={AUTO:"auto",TOP:"top",RIGHT:m()?"left":"right",BOTTOM:"bottom",LEFT:m()?"right":"left"},tn={animation:!0,template:'

    ',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},en={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},nn="fade",sn="show",on="show",rn="out",an=".tooltip-inner",ln=".modal",cn="hide.bs.modal",hn="hover",dn="focus";class un extends B{constructor(t,e){if(void 0===Fe)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return tn}static get NAME(){return Qi}static get Event(){return en}static get DefaultType(){return Zi}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains(sn))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),j.off(this._element.closest(ln),cn,this._hideModalHandler),this.tip&&this.tip.remove(),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const t=j.trigger(this._element,this.constructor.Event.SHOW),e=h(this._element),i=null===e?this._element.ownerDocument.documentElement.contains(this._element):e.contains(this._element);if(t.defaultPrevented||!i)return;"tooltip"===this.constructor.NAME&&this.tip&&this.getTitle()!==this.tip.querySelector(an).innerHTML&&(this._disposePopper(),this.tip.remove(),this.tip=null);const n=this.getTipElement(),s=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME);n.setAttribute("id",s),this._element.setAttribute("aria-describedby",s),this._config.animation&&n.classList.add(nn);const o="function"==typeof this._config.placement?this._config.placement.call(this,n,this._element):this._config.placement,r=this._getAttachment(o);this._addAttachmentClass(r);const{container:a}=this._config;H.set(n,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(a.append(n),j.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=qe(this._element,n,this._getPopperConfig(r)),n.classList.add(sn);const l=this._resolvePossibleFunction(this._config.customClass);l&&n.classList.add(...l.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>{j.on(t,"mouseover",d)}));const c=this.tip.classList.contains(nn);this._queueCallback((()=>{const t=this._hoverState;this._hoverState=null,j.trigger(this._element,this.constructor.Event.SHOWN),t===rn&&this._leave(null,this)}),this.tip,c)}hide(){if(!this._popper)return;const t=this.getTipElement();if(j.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;t.classList.remove(sn),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>j.off(t,"mouseover",d))),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;const e=this.tip.classList.contains(nn);this._queueCallback((()=>{this._isWithActiveTrigger()||(this._hoverState!==on&&t.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),j.trigger(this._element,this.constructor.Event.HIDDEN),this._disposePopper())}),this.tip,e),this._hoverState=""}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");t.innerHTML=this._config.template;const e=t.children[0];return this.setContent(e),e.classList.remove(nn,sn),this.tip=e,this.tip}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),an)}_sanitizeAndSetContent(t,e,i){const n=V.findOne(i,t);e||!n?this.setElementContent(n,e):n.remove()}setElementContent(t,e){if(null!==t)return o(e)?(e=r(e),void(this._config.html?e.parentNode!==t&&(t.innerHTML="",t.append(e)):t.textContent=e.textContent)):void(this._config.html?(this._config.sanitize&&(e=Yi(e,this._config.allowList,this._config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){const t=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(t)}updateAttachment(t){return"right"===t?"end":"left"===t?"start":t}_initializeOnDelegatedTarget(t,e){return e||this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return"function"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(t)}`)}_getAttachment(t){return Ji[t.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach((t=>{if("click"===t)j.on(this._element,this.constructor.Event.CLICK,this._config.selector,(t=>this.toggle(t)));else if("manual"!==t){const e=t===hn?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,i=t===hn?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;j.on(this._element,e,this._config.selector,(t=>this._enter(t))),j.on(this._element,i,this._config.selector,(t=>this._leave(t)))}})),this._hideModalHandler=()=>{this._element&&this.hide()},j.on(this._element.closest(ln),cn,this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?dn:hn]=!0),e.getTipElement().classList.contains(sn)||e._hoverState===on?e._hoverState=on:(clearTimeout(e._timeout),e._hoverState=on,e._config.delay&&e._config.delay.show?e._timeout=setTimeout((()=>{e._hoverState===on&&e.show()}),e._config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?dn:hn]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=rn,e._config.delay&&e._config.delay.hide?e._timeout=setTimeout((()=>{e._hoverState===rn&&e.hide()}),e._config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=U.getDataAttributes(this._element);return Object.keys(e).forEach((t=>{Gi.has(t)&&delete e[t]})),(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),a(Qi,t,this.constructor.DefaultType),t.sanitize&&(t.template=Yi(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,"g"),i=t.getAttribute("class").match(e);null!==i&&i.length>0&&i.map((t=>t.trim())).forEach((e=>t.classList.remove(e)))}_getBasicClassPrefix(){return"bs-tooltip"}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(t){return this.each((function(){const e=un.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}g(un);const fn={...un.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:''},pn={...un.DefaultType,content:"(string|element|function)"},mn={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"};class gn extends un{static get Default(){return fn}static get NAME(){return"popover"}static get Event(){return mn}static get DefaultType(){return pn}isWithContent(){return this.getTitle()||this._getContent()}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),".popover-header"),this._sanitizeAndSetContent(t,this._getContent(),".popover-body")}_getContent(){return this._resolvePossibleFunction(this._config.content)}_getBasicClassPrefix(){return"bs-popover"}static jQueryInterface(t){return this.each((function(){const e=gn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}g(gn);const _n="scrollspy",bn={offset:10,method:"auto",target:""},vn={offset:"number",method:"string",target:"(string|element)"},yn="active",wn=".nav-link, .list-group-item, .dropdown-item",En="position";class An extends B{constructor(t,e){super(t),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(e),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,j.on(this._scrollElement,"scroll.bs.scrollspy",(()=>this._process())),this.refresh(),this._process()}static get Default(){return bn}static get NAME(){return _n}refresh(){const t=this._scrollElement===this._scrollElement.window?"offset":En,e="auto"===this._config.method?t:this._config.method,n=e===En?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),V.find(wn,this._config.target).map((t=>{const s=i(t),o=s?V.findOne(s):null;if(o){const t=o.getBoundingClientRect();if(t.width||t.height)return[U[e](o).top+n,s]}return null})).filter((t=>t)).sort(((t,e)=>t[0]-e[0])).forEach((t=>{this._offsets.push(t[0]),this._targets.push(t[1])}))}dispose(){j.off(this._scrollElement,".bs.scrollspy"),super.dispose()}_getConfig(t){return(t={...bn,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}}).target=r(t.target)||document.documentElement,a(_n,t,vn),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),i=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=i){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;)this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&(void 0===this._offsets[e+1]||t`${e}[data-bs-target="${t}"],${e}[href="${t}"]`)),i=V.findOne(e.join(","),this._config.target);i.classList.add(yn),i.classList.contains("dropdown-item")?V.findOne(".dropdown-toggle",i.closest(".dropdown")).classList.add(yn):V.parents(i,".nav, .list-group").forEach((t=>{V.prev(t,".nav-link, .list-group-item").forEach((t=>t.classList.add(yn))),V.prev(t,".nav-item").forEach((t=>{V.children(t,".nav-link").forEach((t=>t.classList.add(yn)))}))})),j.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})}_clear(){V.find(wn,this._config.target).filter((t=>t.classList.contains(yn))).forEach((t=>t.classList.remove(yn)))}static jQueryInterface(t){return this.each((function(){const e=An.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}j.on(window,"load.bs.scrollspy.data-api",(()=>{V.find('[data-bs-spy="scroll"]').forEach((t=>new An(t)))})),g(An);const Tn="active",On="fade",Cn="show",kn=".active",Ln=":scope > li > .active";class xn extends B{static get NAME(){return"tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(Tn))return;let t;const e=n(this._element),i=this._element.closest(".nav, .list-group");if(i){const e="UL"===i.nodeName||"OL"===i.nodeName?Ln:kn;t=V.find(e,i),t=t[t.length-1]}const s=t?j.trigger(t,"hide.bs.tab",{relatedTarget:this._element}):null;if(j.trigger(this._element,"show.bs.tab",{relatedTarget:t}).defaultPrevented||null!==s&&s.defaultPrevented)return;this._activate(this._element,i);const o=()=>{j.trigger(t,"hidden.bs.tab",{relatedTarget:this._element}),j.trigger(this._element,"shown.bs.tab",{relatedTarget:t})};e?this._activate(e,e.parentNode,o):o()}_activate(t,e,i){const n=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?V.children(e,kn):V.find(Ln,e))[0],s=i&&n&&n.classList.contains(On),o=()=>this._transitionComplete(t,n,i);n&&s?(n.classList.remove(Cn),this._queueCallback(o,t,!0)):o()}_transitionComplete(t,e,i){if(e){e.classList.remove(Tn);const t=V.findOne(":scope > .dropdown-menu .active",e.parentNode);t&&t.classList.remove(Tn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}t.classList.add(Tn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),u(t),t.classList.contains(On)&&t.classList.add(Cn);let n=t.parentNode;if(n&&"LI"===n.nodeName&&(n=n.parentNode),n&&n.classList.contains("dropdown-menu")){const e=t.closest(".dropdown");e&&V.find(".dropdown-toggle",e).forEach((t=>t.classList.add(Tn))),t.setAttribute("aria-expanded",!0)}i&&i()}static jQueryInterface(t){return this.each((function(){const e=xn.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}j.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),c(this)||xn.getOrCreateInstance(this).show()})),g(xn);const Dn="toast",Sn="hide",Nn="show",In="showing",Pn={animation:"boolean",autohide:"boolean",delay:"number"},jn={animation:!0,autohide:!0,delay:5e3};class Mn extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return Pn}static get Default(){return jn}static get NAME(){return Dn}show(){j.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(Sn),u(this._element),this._element.classList.add(Nn),this._element.classList.add(In),this._queueCallback((()=>{this._element.classList.remove(In),j.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this._element.classList.contains(Nn)&&(j.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add(In),this._queueCallback((()=>{this._element.classList.add(Sn),this._element.classList.remove(In),this._element.classList.remove(Nn),j.trigger(this._element,"hidden.bs.toast")}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this._element.classList.contains(Nn)&&this._element.classList.remove(Nn),super.dispose()}_getConfig(t){return t={...jn,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}},a(Dn,t,this.constructor.DefaultType),t}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){j.on(this._element,"mouseover.bs.toast",(t=>this._onInteraction(t,!0))),j.on(this._element,"mouseout.bs.toast",(t=>this._onInteraction(t,!1))),j.on(this._element,"focusin.bs.toast",(t=>this._onInteraction(t,!0))),j.on(this._element,"focusout.bs.toast",(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=Mn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(Mn),g(Mn),{Alert:W,Button:z,Carousel:st,Collapse:pt,Dropdown:hi,Modal:Hi,Offcanvas:Fi,Popover:gn,ScrollSpy:An,Tab:xn,Toast:Mn,Tooltip:un}})); +//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/site_libs/clipboard/clipboard.min.js b/site_libs/clipboard/clipboard.min.js new file mode 100644 index 0000000..1103f81 --- /dev/null +++ b/site_libs/clipboard/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1.anchorjs-link,.anchorjs-link:focus{opacity:1}",u.sheet.cssRules.length),u.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",u.sheet.cssRules.length),u.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',u.sheet.cssRules.length)),u=document.querySelectorAll("[id]"),t=[].map.call(u,function(A){return A.id}),i=0;i\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}}); +// @license-end \ No newline at end of file diff --git a/site_libs/quarto-html/popper.min.js b/site_libs/quarto-html/popper.min.js new file mode 100644 index 0000000..2269d66 --- /dev/null +++ b/site_libs/quarto-html/popper.min.js @@ -0,0 +1,6 @@ +/** + * @popperjs/core v2.11.4 - MIT License + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),o=1,i=1;if(r(e)&&t){var a=e.offsetHeight,f=e.offsetWidth;f>0&&(o=s(n.width)/f||1),a>0&&(i=s(n.height)/a||1)}return{width:n.width/o,height:n.height/i,top:n.top/i,right:n.right/o,bottom:n.bottom/i,left:n.left/o,x:n.left/o,y:n.top/i}}function c(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function p(e){return e?(e.nodeName||"").toLowerCase():null}function u(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function l(e){return f(u(e)).left+c(e).scrollLeft}function d(e){return t(e).getComputedStyle(e)}function h(e){var t=d(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function m(e,n,o){void 0===o&&(o=!1);var i,a,d=r(n),m=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),v=u(n),g=f(e,m),y={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(d||!d&&!o)&&(("body"!==p(n)||h(v))&&(y=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:c(i)),r(n)?((b=f(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):v&&(b.x=l(v))),{x:g.left+y.scrollLeft-b.x,y:g.top+y.scrollTop-b.y,width:g.width,height:g.height}}function v(e){var t=f(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function g(e){return"html"===p(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||u(e)}function y(e){return["html","body","#document"].indexOf(p(e))>=0?e.ownerDocument.body:r(e)&&h(e)?e:y(g(e))}function b(e,n){var r;void 0===n&&(n=[]);var o=y(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],h(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(b(g(s)))}function x(e){return["table","td","th"].indexOf(p(e))>=0}function w(e){return r(e)&&"fixed"!==d(e).position?e.offsetParent:null}function O(e){for(var n=t(e),i=w(e);i&&x(i)&&"static"===d(i).position;)i=w(i);return i&&("html"===p(i)||"body"===p(i)&&"static"===d(i).position)?n:i||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&r(e)&&"fixed"===d(e).position)return null;var n=g(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(p(n))<0;){var i=d(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var j="top",E="bottom",D="right",A="left",L="auto",P=[j,E,D,A],M="start",k="end",W="viewport",B="popper",H=P.reduce((function(e,t){return e.concat([t+"-"+M,t+"-"+k])}),[]),T=[].concat(P,[L]).reduce((function(e,t){return e.concat([t,t+"-"+M,t+"-"+k])}),[]),R=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function S(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function q(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function V(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function N(e,r){return r===W?V(function(e){var n=t(e),r=u(e),o=n.visualViewport,i=r.clientWidth,a=r.clientHeight,s=0,f=0;return o&&(i=o.width,a=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=o.offsetLeft,f=o.offsetTop)),{width:i,height:a,x:s+l(e),y:f}}(e)):n(r)?function(e){var t=f(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(r):V(function(e){var t,n=u(e),r=c(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+l(e),p=-r.scrollTop;return"rtl"===d(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:p}}(u(e)))}function I(e,t,o){var s="clippingParents"===t?function(e){var t=b(g(e)),o=["absolute","fixed"].indexOf(d(e).position)>=0&&r(e)?O(e):e;return n(o)?t.filter((function(e){return n(e)&&q(e,o)&&"body"!==p(e)})):[]}(e):[].concat(t),f=[].concat(s,[o]),c=f[0],u=f.reduce((function(t,n){var r=N(e,n);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),N(e,c));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function _(e){return e.split("-")[1]}function F(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function U(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?_(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case j:t={x:s,y:n.y-r.height};break;case E:t={x:s,y:n.y+n.height};break;case D:t={x:n.x+n.width,y:f};break;case A:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?F(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case M:t[c]=t[c]-(n[p]/2-r[p]/2);break;case k:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function z(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function X(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function Y(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.boundary,s=void 0===a?"clippingParents":a,c=r.rootBoundary,p=void 0===c?W:c,l=r.elementContext,d=void 0===l?B:l,h=r.altBoundary,m=void 0!==h&&h,v=r.padding,g=void 0===v?0:v,y=z("number"!=typeof g?g:X(g,P)),b=d===B?"reference":B,x=e.rects.popper,w=e.elements[m?b:d],O=I(n(w)?w:w.contextElement||u(e.elements.popper),s,p),A=f(e.elements.reference),L=U({reference:A,element:x,strategy:"absolute",placement:i}),M=V(Object.assign({},x,L)),k=d===B?M:A,H={top:O.top-k.top+y.top,bottom:k.bottom-O.bottom+y.bottom,left:O.left-k.left+y.left,right:k.right-O.right+y.right},T=e.modifiersData.offset;if(d===B&&T){var R=T[i];Object.keys(H).forEach((function(e){var t=[D,E].indexOf(e)>=0?1:-1,n=[j,E].indexOf(e)>=0?"y":"x";H[e]+=R[n]*t}))}return H}var G={placement:"bottom",modifiers:[],strategy:"absolute"};function J(){for(var e=arguments.length,t=new Array(e),n=0;n=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[A,D].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},ie={left:"right",right:"left",bottom:"top",top:"bottom"};function ae(e){return e.replace(/left|right|bottom|top/g,(function(e){return ie[e]}))}var se={start:"end",end:"start"};function fe(e){return e.replace(/start|end/g,(function(e){return se[e]}))}function ce(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?T:f,p=_(r),u=p?s?H:H.filter((function(e){return _(e)===p})):P,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=Y(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var pe={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,g=C(v),y=f||(g===v||!h?[ae(v)]:function(e){if(C(e)===L)return[];var t=ae(e);return[fe(e),t,fe(t)]}(v)),b=[v].concat(y).reduce((function(e,n){return e.concat(C(n)===L?ce(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,P=!0,k=b[0],W=0;W=0,S=R?"width":"height",q=Y(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),V=R?T?D:A:T?E:j;x[S]>w[S]&&(V=ae(V));var N=ae(V),I=[];if(i&&I.push(q[H]<=0),s&&I.push(q[V]<=0,q[N]<=0),I.every((function(e){return e}))){k=B,P=!1;break}O.set(B,I)}if(P)for(var F=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return k=t,"break"},U=h?3:1;U>0;U--){if("break"===F(U))break}t.placement!==k&&(t.modifiersData[r]._skip=!0,t.placement=k,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function ue(e,t,n){return i(e,a(t,n))}var le={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,g=n.tetherOffset,y=void 0===g?0:g,b=Y(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=_(t.placement),L=!w,P=F(x),k="x"===P?"y":"x",W=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,q={x:0,y:0};if(W){if(s){var V,N="y"===P?j:A,I="y"===P?E:D,U="y"===P?"height":"width",z=W[P],X=z+b[N],G=z-b[I],J=m?-H[U]/2:0,K=w===M?B[U]:H[U],Q=w===M?-H[U]:-B[U],Z=t.elements.arrow,$=m&&Z?v(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=ue(0,B[U],$[U]),oe=L?B[U]/2-J-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=L?-B[U]/2+J+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&O(t.elements.arrow),se=ae?"y"===P?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(V=null==S?void 0:S[P])?V:0,ce=z+ie-fe,pe=ue(m?a(X,z+oe-fe-se):X,z,m?i(G,ce):G);W[P]=pe,q[P]=pe-z}if(c){var le,de="x"===P?j:A,he="x"===P?E:D,me=W[k],ve="y"===k?"height":"width",ge=me+b[de],ye=me-b[he],be=-1!==[j,A].indexOf(x),xe=null!=(le=null==S?void 0:S[k])?le:0,we=be?ge:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ye,je=m&&be?function(e,t,n){var r=ue(e,t,n);return r>n?n:r}(we,me,Oe):ue(m?we:ge,me,m?Oe:ye);W[k]=je,q[k]=je-me}t.modifiersData[r]=q}},requiresIfExists:["offset"]};var de={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=F(s),c=[A,D].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return z("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:X(e,P))}(o.padding,n),u=v(i),l="y"===f?j:A,d="y"===f?E:D,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],g=O(i),y=g?"y"===f?g.clientHeight||0:g.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],L=y/2-u[c]/2+b,M=ue(x,L,w),k=f;n.modifiersData[r]=((t={})[k]=M,t.centerOffset=M-L,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&q(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function he(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function me(e){return[j,D,E,A].some((function(t){return e[t]>=0}))}var ve={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=Y(t,{elementContext:"reference"}),s=Y(t,{altBoundary:!0}),f=he(a,r),c=he(s,o,i),p=me(f),u=me(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},ge=K({defaultModifiers:[Z,$,ne,re]}),ye=[Z,$,ne,re,oe,pe,le,de,ve],be=K({defaultModifiers:ye});e.applyStyles=re,e.arrow=de,e.computeStyles=ne,e.createPopper=be,e.createPopperLite=ge,e.defaultModifiers=ye,e.detectOverflow=Y,e.eventListeners=Z,e.flip=pe,e.hide=ve,e.offset=oe,e.popperGenerator=K,e.popperOffsets=$,e.preventOverflow=le,Object.defineProperty(e,"__esModule",{value:!0})})); + diff --git a/site_libs/quarto-html/quarto-syntax-highlighting.css b/site_libs/quarto-html/quarto-syntax-highlighting.css new file mode 100644 index 0000000..d9fd98f --- /dev/null +++ b/site_libs/quarto-html/quarto-syntax-highlighting.css @@ -0,0 +1,203 @@ +/* quarto syntax highlight colors */ +:root { + --quarto-hl-ot-color: #003B4F; + --quarto-hl-at-color: #657422; + --quarto-hl-ss-color: #20794D; + --quarto-hl-an-color: #5E5E5E; + --quarto-hl-fu-color: #4758AB; + --quarto-hl-st-color: #20794D; + --quarto-hl-cf-color: #003B4F; + --quarto-hl-op-color: #5E5E5E; + --quarto-hl-er-color: #AD0000; + --quarto-hl-bn-color: #AD0000; + --quarto-hl-al-color: #AD0000; + --quarto-hl-va-color: #111111; + --quarto-hl-bu-color: inherit; + --quarto-hl-ex-color: inherit; + --quarto-hl-pp-color: #AD0000; + --quarto-hl-in-color: #5E5E5E; + --quarto-hl-vs-color: #20794D; + --quarto-hl-wa-color: #5E5E5E; + --quarto-hl-do-color: #5E5E5E; + --quarto-hl-im-color: #00769E; + --quarto-hl-ch-color: #20794D; + --quarto-hl-dt-color: #AD0000; + --quarto-hl-fl-color: #AD0000; + --quarto-hl-co-color: #5E5E5E; + --quarto-hl-cv-color: #5E5E5E; + --quarto-hl-cn-color: #8f5902; + --quarto-hl-sc-color: #5E5E5E; + --quarto-hl-dv-color: #AD0000; + --quarto-hl-kw-color: #003B4F; +} + +/* other quarto variables */ +:root { + --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +pre > code.sourceCode > span { + color: #003B4F; +} + +code span { + color: #003B4F; +} + +code.sourceCode > span { + color: #003B4F; +} + +div.sourceCode, +div.sourceCode pre.sourceCode { + color: #003B4F; +} + +code span.ot { + color: #003B4F; + font-style: inherit; +} + +code span.at { + color: #657422; + font-style: inherit; +} + +code span.ss { + color: #20794D; + font-style: inherit; +} + +code span.an { + color: #5E5E5E; + font-style: inherit; +} + +code span.fu { + color: #4758AB; + font-style: inherit; +} + +code span.st { + color: #20794D; + font-style: inherit; +} + +code span.cf { + color: #003B4F; + font-style: inherit; +} + +code span.op { + color: #5E5E5E; + font-style: inherit; +} + +code span.er { + color: #AD0000; + font-style: inherit; +} + +code span.bn { + color: #AD0000; + font-style: inherit; +} + +code span.al { + color: #AD0000; + font-style: inherit; +} + +code span.va { + color: #111111; + font-style: inherit; +} + +code span.bu { + font-style: inherit; +} + +code span.ex { + font-style: inherit; +} + +code span.pp { + color: #AD0000; + font-style: inherit; +} + +code span.in { + color: #5E5E5E; + font-style: inherit; +} + +code span.vs { + color: #20794D; + font-style: inherit; +} + +code span.wa { + color: #5E5E5E; + font-style: italic; +} + +code span.do { + color: #5E5E5E; + font-style: italic; +} + +code span.im { + color: #00769E; + font-style: inherit; +} + +code span.ch { + color: #20794D; + font-style: inherit; +} + +code span.dt { + color: #AD0000; + font-style: inherit; +} + +code span.fl { + color: #AD0000; + font-style: inherit; +} + +code span.co { + color: #5E5E5E; + font-style: inherit; +} + +code span.cv { + color: #5E5E5E; + font-style: italic; +} + +code span.cn { + color: #8f5902; + font-style: inherit; +} + +code span.sc { + color: #5E5E5E; + font-style: inherit; +} + +code span.dv { + color: #AD0000; + font-style: inherit; +} + +code span.kw { + color: #003B4F; + font-style: inherit; +} + +.prevent-inlining { + content: " { + // Find any conflicting margin elements and add margins to the + // top to prevent overlap + const marginChildren = window.document.querySelectorAll( + ".column-margin.column-container > * " + ); + + let lastBottom = 0; + for (const marginChild of marginChildren) { + if (marginChild.offsetParent !== null) { + // clear the top margin so we recompute it + marginChild.style.marginTop = null; + const top = marginChild.getBoundingClientRect().top + window.scrollY; + console.log({ + childtop: marginChild.getBoundingClientRect().top, + scroll: window.scrollY, + top, + lastBottom, + }); + if (top < lastBottom) { + const margin = lastBottom - top; + marginChild.style.marginTop = `${margin}px`; + } + const styles = window.getComputedStyle(marginChild); + const marginTop = parseFloat(styles["marginTop"]); + + console.log({ + top, + height: marginChild.getBoundingClientRect().height, + marginTop, + total: top + marginChild.getBoundingClientRect().height + marginTop, + }); + lastBottom = top + marginChild.getBoundingClientRect().height + marginTop; + } + } +}; + +window.document.addEventListener("DOMContentLoaded", function (_event) { + // Recompute the position of margin elements anytime the body size changes + if (window.ResizeObserver) { + const resizeObserver = new window.ResizeObserver( + throttle(layoutMarginEls, 50) + ); + resizeObserver.observe(window.document.body); + } + + const tocEl = window.document.querySelector('nav.toc-active[role="doc-toc"]'); + const sidebarEl = window.document.getElementById("quarto-sidebar"); + const leftTocEl = window.document.getElementById("quarto-sidebar-toc-left"); + const marginSidebarEl = window.document.getElementById( + "quarto-margin-sidebar" + ); + // function to determine whether the element has a previous sibling that is active + const prevSiblingIsActiveLink = (el) => { + const sibling = el.previousElementSibling; + if (sibling && sibling.tagName === "A") { + return sibling.classList.contains("active"); + } else { + return false; + } + }; + + // fire slideEnter for bootstrap tab activations (for htmlwidget resize behavior) + function fireSlideEnter(e) { + const event = window.document.createEvent("Event"); + event.initEvent("slideenter", true, true); + window.document.dispatchEvent(event); + } + const tabs = window.document.querySelectorAll('a[data-bs-toggle="tab"]'); + tabs.forEach((tab) => { + tab.addEventListener("shown.bs.tab", fireSlideEnter); + }); + + // fire slideEnter for tabby tab activations (for htmlwidget resize behavior) + document.addEventListener("tabby", fireSlideEnter, false); + + // Track scrolling and mark TOC links as active + // get table of contents and sidebar (bail if we don't have at least one) + const tocLinks = tocEl + ? [...tocEl.querySelectorAll("a[data-scroll-target]")] + : []; + const makeActive = (link) => tocLinks[link].classList.add("active"); + const removeActive = (link) => tocLinks[link].classList.remove("active"); + const removeAllActive = () => + [...Array(tocLinks.length).keys()].forEach((link) => removeActive(link)); + + // activate the anchor for a section associated with this TOC entry + tocLinks.forEach((link) => { + link.addEventListener("click", () => { + if (link.href.indexOf("#") !== -1) { + const anchor = link.href.split("#")[1]; + const heading = window.document.querySelector( + `[data-anchor-id=${anchor}]` + ); + if (heading) { + // Add the class + heading.classList.add("reveal-anchorjs-link"); + + // function to show the anchor + const handleMouseout = () => { + heading.classList.remove("reveal-anchorjs-link"); + heading.removeEventListener("mouseout", handleMouseout); + }; + + // add a function to clear the anchor when the user mouses out of it + heading.addEventListener("mouseout", handleMouseout); + } + } + }); + }); + + const sections = tocLinks.map((link) => { + const target = link.getAttribute("data-scroll-target"); + if (target.startsWith("#")) { + return window.document.getElementById(decodeURI(`${target.slice(1)}`)); + } else { + return window.document.querySelector(decodeURI(`${target}`)); + } + }); + + const sectionMargin = 200; + let currentActive = 0; + // track whether we've initialized state the first time + let init = false; + + const updateActiveLink = () => { + // The index from bottom to top (e.g. reversed list) + let sectionIndex = -1; + if ( + window.innerHeight + window.pageYOffset >= + window.document.body.offsetHeight + ) { + sectionIndex = 0; + } else { + sectionIndex = [...sections].reverse().findIndex((section) => { + if (section) { + return window.pageYOffset >= section.offsetTop - sectionMargin; + } else { + return false; + } + }); + } + if (sectionIndex > -1) { + const current = sections.length - sectionIndex - 1; + if (current !== currentActive) { + removeAllActive(); + currentActive = current; + makeActive(current); + if (init) { + window.dispatchEvent(sectionChanged); + } + init = true; + } + } + }; + + const inHiddenRegion = (top, bottom, hiddenRegions) => { + for (const region of hiddenRegions) { + if (top <= region.bottom && bottom >= region.top) { + return true; + } + } + return false; + }; + + const categorySelector = "header.quarto-title-block .quarto-category"; + const activateCategories = (href) => { + // Find any categories + // Surround them with a link pointing back to: + // #category=Authoring + try { + const categoryEls = window.document.querySelectorAll(categorySelector); + for (const categoryEl of categoryEls) { + const categoryText = categoryEl.textContent; + if (categoryText) { + const link = `${href}#category=${encodeURIComponent(categoryText)}`; + const linkEl = window.document.createElement("a"); + linkEl.setAttribute("href", link); + for (const child of categoryEl.childNodes) { + linkEl.append(child); + } + categoryEl.appendChild(linkEl); + } + } + } catch { + // Ignore errors + } + }; + function hasTitleCategories() { + return window.document.querySelector(categorySelector) !== null; + } + + function offsetRelativeUrl(url) { + const offset = getMeta("quarto:offset"); + return offset ? offset + url : url; + } + + function offsetAbsoluteUrl(url) { + const offset = getMeta("quarto:offset"); + const baseUrl = new URL(offset, window.location); + + const projRelativeUrl = url.replace(baseUrl, ""); + if (projRelativeUrl.startsWith("/")) { + return projRelativeUrl; + } else { + return "/" + projRelativeUrl; + } + } + + // read a meta tag value + function getMeta(metaName) { + const metas = window.document.getElementsByTagName("meta"); + for (let i = 0; i < metas.length; i++) { + if (metas[i].getAttribute("name") === metaName) { + return metas[i].getAttribute("content"); + } + } + return ""; + } + + async function findAndActivateCategories() { + const currentPagePath = offsetAbsoluteUrl(window.location.href); + const response = await fetch(offsetRelativeUrl("listings.json")); + if (response.status == 200) { + return response.json().then(function (listingPaths) { + const listingHrefs = []; + for (const listingPath of listingPaths) { + const pathWithoutLeadingSlash = listingPath.listing.substring(1); + for (const item of listingPath.items) { + if ( + item === currentPagePath || + item === currentPagePath + "index.html" + ) { + // Resolve this path against the offset to be sure + // we already are using the correct path to the listing + // (this adjusts the listing urls to be rooted against + // whatever root the page is actually running against) + const relative = offsetRelativeUrl(pathWithoutLeadingSlash); + const baseUrl = window.location; + const resolvedPath = new URL(relative, baseUrl); + listingHrefs.push(resolvedPath.pathname); + break; + } + } + } + + // Look up the tree for a nearby linting and use that if we find one + const nearestListing = findNearestParentListing( + offsetAbsoluteUrl(window.location.pathname), + listingHrefs + ); + if (nearestListing) { + activateCategories(nearestListing); + } else { + // See if the referrer is a listing page for this item + const referredRelativePath = offsetAbsoluteUrl(document.referrer); + const referrerListing = listingHrefs.find((listingHref) => { + const isListingReferrer = + listingHref === referredRelativePath || + listingHref === referredRelativePath + "index.html"; + return isListingReferrer; + }); + + if (referrerListing) { + // Try to use the referrer if possible + activateCategories(referrerListing); + } else if (listingHrefs.length > 0) { + // Otherwise, just fall back to the first listing + activateCategories(listingHrefs[0]); + } + } + }); + } + } + if (hasTitleCategories()) { + findAndActivateCategories(); + } + + const findNearestParentListing = (href, listingHrefs) => { + if (!href || !listingHrefs) { + return undefined; + } + // Look up the tree for a nearby linting and use that if we find one + const relativeParts = href.substring(1).split("/"); + while (relativeParts.length > 0) { + const path = relativeParts.join("/"); + for (const listingHref of listingHrefs) { + if (listingHref.startsWith(path)) { + return listingHref; + } + } + relativeParts.pop(); + } + + return undefined; + }; + + const manageSidebarVisiblity = (el, placeholderDescriptor) => { + let isVisible = true; + let elRect; + + return (hiddenRegions) => { + if (el === null) { + return; + } + + // Find the last element of the TOC + const lastChildEl = el.lastElementChild; + + if (lastChildEl) { + // Converts the sidebar to a menu + const convertToMenu = () => { + for (const child of el.children) { + child.style.opacity = 0; + child.style.overflow = "hidden"; + } + + nexttick(() => { + const toggleContainer = window.document.createElement("div"); + toggleContainer.style.width = "100%"; + toggleContainer.classList.add("zindex-over-content"); + toggleContainer.classList.add("quarto-sidebar-toggle"); + toggleContainer.classList.add("headroom-target"); // Marks this to be managed by headeroom + toggleContainer.id = placeholderDescriptor.id; + toggleContainer.style.position = "fixed"; + + const toggleIcon = window.document.createElement("i"); + toggleIcon.classList.add("quarto-sidebar-toggle-icon"); + toggleIcon.classList.add("bi"); + toggleIcon.classList.add("bi-caret-down-fill"); + + const toggleTitle = window.document.createElement("div"); + const titleEl = window.document.body.querySelector( + placeholderDescriptor.titleSelector + ); + if (titleEl) { + toggleTitle.append( + titleEl.textContent || titleEl.innerText, + toggleIcon + ); + } + toggleTitle.classList.add("zindex-over-content"); + toggleTitle.classList.add("quarto-sidebar-toggle-title"); + toggleContainer.append(toggleTitle); + + const toggleContents = window.document.createElement("div"); + toggleContents.classList = el.classList; + toggleContents.classList.add("zindex-over-content"); + toggleContents.classList.add("quarto-sidebar-toggle-contents"); + for (const child of el.children) { + if (child.id === "toc-title") { + continue; + } + + const clone = child.cloneNode(true); + clone.style.opacity = 1; + clone.style.display = null; + toggleContents.append(clone); + } + toggleContents.style.height = "0px"; + const positionToggle = () => { + // position the element (top left of parent, same width as parent) + if (!elRect) { + elRect = el.getBoundingClientRect(); + } + toggleContainer.style.left = `${elRect.left}px`; + toggleContainer.style.top = `${elRect.top}px`; + toggleContainer.style.width = `${elRect.width}px`; + }; + positionToggle(); + + toggleContainer.append(toggleContents); + el.parentElement.prepend(toggleContainer); + + // Process clicks + let tocShowing = false; + // Allow the caller to control whether this is dismissed + // when it is clicked (e.g. sidebar navigation supports + // opening and closing the nav tree, so don't dismiss on click) + const clickEl = placeholderDescriptor.dismissOnClick + ? toggleContainer + : toggleTitle; + + const closeToggle = () => { + if (tocShowing) { + toggleContainer.classList.remove("expanded"); + toggleContents.style.height = "0px"; + tocShowing = false; + } + }; + + // Get rid of any expanded toggle if the user scrolls + window.document.addEventListener( + "scroll", + throttle(() => { + closeToggle(); + }, 50) + ); + + // Handle positioning of the toggle + window.addEventListener( + "resize", + throttle(() => { + elRect = undefined; + positionToggle(); + }, 50) + ); + + window.addEventListener("quarto-hrChanged", () => { + elRect = undefined; + }); + + // Process the click + clickEl.onclick = () => { + if (!tocShowing) { + toggleContainer.classList.add("expanded"); + toggleContents.style.height = null; + tocShowing = true; + } else { + closeToggle(); + } + }; + }); + }; + + // Converts a sidebar from a menu back to a sidebar + const convertToSidebar = () => { + for (const child of el.children) { + child.style.opacity = 1; + child.style.overflow = null; + } + + const placeholderEl = window.document.getElementById( + placeholderDescriptor.id + ); + if (placeholderEl) { + placeholderEl.remove(); + } + + el.classList.remove("rollup"); + }; + + if (isReaderMode()) { + convertToMenu(); + isVisible = false; + } else { + // Find the top and bottom o the element that is being managed + const elTop = el.offsetTop; + const elBottom = + elTop + lastChildEl.offsetTop + lastChildEl.offsetHeight; + + if (!isVisible) { + // If the element is current not visible reveal if there are + // no conflicts with overlay regions + if (!inHiddenRegion(elTop, elBottom, hiddenRegions)) { + convertToSidebar(); + isVisible = true; + } + } else { + // If the element is visible, hide it if it conflicts with overlay regions + // and insert a placeholder toggle (or if we're in reader mode) + if (inHiddenRegion(elTop, elBottom, hiddenRegions)) { + convertToMenu(); + isVisible = false; + } + } + } + } + }; + }; + + const tabEls = document.querySelectorAll('a[data-bs-toggle="tab"]'); + for (const tabEl of tabEls) { + const id = tabEl.getAttribute("data-bs-target"); + if (id) { + const columnEl = document.querySelector( + `${id} .column-margin, .tabset-margin-content` + ); + if (columnEl) + tabEl.addEventListener("shown.bs.tab", function (event) { + const el = event.srcElement; + if (el) { + const visibleCls = `${el.id}-margin-content`; + // walk up until we find a parent tabset + let panelTabsetEl = el.parentElement; + while (panelTabsetEl) { + if (panelTabsetEl.classList.contains("panel-tabset")) { + break; + } + panelTabsetEl = panelTabsetEl.parentElement; + } + + if (panelTabsetEl) { + const prevSib = panelTabsetEl.previousElementSibling; + if ( + prevSib && + prevSib.classList.contains("tabset-margin-container") + ) { + const childNodes = prevSib.querySelectorAll( + ".tabset-margin-content" + ); + for (const childEl of childNodes) { + if (childEl.classList.contains(visibleCls)) { + childEl.classList.remove("collapse"); + } else { + childEl.classList.add("collapse"); + } + } + } + } + } + + layoutMarginEls(); + }); + } + } + + // Manage the visibility of the toc and the sidebar + const marginScrollVisibility = manageSidebarVisiblity(marginSidebarEl, { + id: "quarto-toc-toggle", + titleSelector: "#toc-title", + dismissOnClick: true, + }); + const sidebarScrollVisiblity = manageSidebarVisiblity(sidebarEl, { + id: "quarto-sidebarnav-toggle", + titleSelector: ".title", + dismissOnClick: false, + }); + let tocLeftScrollVisibility; + if (leftTocEl) { + tocLeftScrollVisibility = manageSidebarVisiblity(leftTocEl, { + id: "quarto-lefttoc-toggle", + titleSelector: "#toc-title", + dismissOnClick: true, + }); + } + + // Find the first element that uses formatting in special columns + const conflictingEls = window.document.body.querySelectorAll( + '[class^="column-"], [class*=" column-"], aside, [class*="margin-caption"], [class*=" margin-caption"], [class*="margin-ref"], [class*=" margin-ref"]' + ); + + // Filter all the possibly conflicting elements into ones + // the do conflict on the left or ride side + const arrConflictingEls = Array.from(conflictingEls); + const leftSideConflictEls = arrConflictingEls.filter((el) => { + if (el.tagName === "ASIDE") { + return false; + } + return Array.from(el.classList).find((className) => { + return ( + className !== "column-body" && + className.startsWith("column-") && + !className.endsWith("right") && + !className.endsWith("container") && + className !== "column-margin" + ); + }); + }); + const rightSideConflictEls = arrConflictingEls.filter((el) => { + if (el.tagName === "ASIDE") { + return true; + } + + const hasMarginCaption = Array.from(el.classList).find((className) => { + return className == "margin-caption"; + }); + if (hasMarginCaption) { + return true; + } + + return Array.from(el.classList).find((className) => { + return ( + className !== "column-body" && + !className.endsWith("container") && + className.startsWith("column-") && + !className.endsWith("left") + ); + }); + }); + + const kOverlapPaddingSize = 10; + function toRegions(els) { + return els.map((el) => { + const boundRect = el.getBoundingClientRect(); + const top = + boundRect.top + + document.documentElement.scrollTop - + kOverlapPaddingSize; + return { + top, + bottom: top + el.scrollHeight + 2 * kOverlapPaddingSize, + }; + }); + } + + let hasObserved = false; + const visibleItemObserver = (els) => { + let visibleElements = [...els]; + const intersectionObserver = new IntersectionObserver( + (entries, _observer) => { + entries.forEach((entry) => { + if (entry.isIntersecting) { + if (visibleElements.indexOf(entry.target) === -1) { + visibleElements.push(entry.target); + } + } else { + visibleElements = visibleElements.filter((visibleEntry) => { + return visibleEntry !== entry; + }); + } + }); + + if (!hasObserved) { + hideOverlappedSidebars(); + } + hasObserved = true; + }, + {} + ); + els.forEach((el) => { + intersectionObserver.observe(el); + }); + + return { + getVisibleEntries: () => { + return visibleElements; + }, + }; + }; + + const rightElementObserver = visibleItemObserver(rightSideConflictEls); + const leftElementObserver = visibleItemObserver(leftSideConflictEls); + + const hideOverlappedSidebars = () => { + marginScrollVisibility(toRegions(rightElementObserver.getVisibleEntries())); + sidebarScrollVisiblity(toRegions(leftElementObserver.getVisibleEntries())); + if (tocLeftScrollVisibility) { + tocLeftScrollVisibility( + toRegions(leftElementObserver.getVisibleEntries()) + ); + } + }; + + window.quartoToggleReader = () => { + // Applies a slow class (or removes it) + // to update the transition speed + const slowTransition = (slow) => { + const manageTransition = (id, slow) => { + const el = document.getElementById(id); + if (el) { + if (slow) { + el.classList.add("slow"); + } else { + el.classList.remove("slow"); + } + } + }; + + manageTransition("TOC", slow); + manageTransition("quarto-sidebar", slow); + }; + const readerMode = !isReaderMode(); + setReaderModeValue(readerMode); + + // If we're entering reader mode, slow the transition + if (readerMode) { + slowTransition(readerMode); + } + highlightReaderToggle(readerMode); + hideOverlappedSidebars(); + + // If we're exiting reader mode, restore the non-slow transition + if (!readerMode) { + slowTransition(!readerMode); + } + }; + + const highlightReaderToggle = (readerMode) => { + const els = document.querySelectorAll(".quarto-reader-toggle"); + if (els) { + els.forEach((el) => { + if (readerMode) { + el.classList.add("reader"); + } else { + el.classList.remove("reader"); + } + }); + } + }; + + const setReaderModeValue = (val) => { + if (window.location.protocol !== "file:") { + window.localStorage.setItem("quarto-reader-mode", val); + } else { + localReaderMode = val; + } + }; + + const isReaderMode = () => { + if (window.location.protocol !== "file:") { + return window.localStorage.getItem("quarto-reader-mode") === "true"; + } else { + return localReaderMode; + } + }; + let localReaderMode = null; + + const tocOpenDepthStr = tocEl?.getAttribute("data-toc-expanded"); + const tocOpenDepth = tocOpenDepthStr ? Number(tocOpenDepthStr) : 1; + + // Walk the TOC and collapse/expand nodes + // Nodes are expanded if: + // - they are top level + // - they have children that are 'active' links + // - they are directly below an link that is 'active' + const walk = (el, depth) => { + // Tick depth when we enter a UL + if (el.tagName === "UL") { + depth = depth + 1; + } + + // It this is active link + let isActiveNode = false; + if (el.tagName === "A" && el.classList.contains("active")) { + isActiveNode = true; + } + + // See if there is an active child to this element + let hasActiveChild = false; + for (child of el.children) { + hasActiveChild = walk(child, depth) || hasActiveChild; + } + + // Process the collapse state if this is an UL + if (el.tagName === "UL") { + if (tocOpenDepth === -1 && depth > 1) { + el.classList.add("collapse"); + } else if ( + depth <= tocOpenDepth || + hasActiveChild || + prevSiblingIsActiveLink(el) + ) { + el.classList.remove("collapse"); + } else { + el.classList.add("collapse"); + } + + // untick depth when we leave a UL + depth = depth - 1; + } + return hasActiveChild || isActiveNode; + }; + + // walk the TOC and expand / collapse any items that should be shown + + if (tocEl) { + walk(tocEl, 0); + updateActiveLink(); + } + + // Throttle the scroll event and walk peridiocally + window.document.addEventListener( + "scroll", + throttle(() => { + if (tocEl) { + updateActiveLink(); + walk(tocEl, 0); + } + if (!isReaderMode()) { + hideOverlappedSidebars(); + } + }, 5) + ); + window.addEventListener( + "resize", + throttle(() => { + if (!isReaderMode()) { + hideOverlappedSidebars(); + } + }, 10) + ); + hideOverlappedSidebars(); + highlightReaderToggle(isReaderMode()); +}); + +// grouped tabsets +window.addEventListener("pageshow", (_event) => { + function getTabSettings() { + const data = localStorage.getItem("quarto-persistent-tabsets-data"); + if (!data) { + localStorage.setItem("quarto-persistent-tabsets-data", "{}"); + return {}; + } + if (data) { + return JSON.parse(data); + } + } + + function setTabSettings(data) { + localStorage.setItem( + "quarto-persistent-tabsets-data", + JSON.stringify(data) + ); + } + + function setTabState(groupName, groupValue) { + const data = getTabSettings(); + data[groupName] = groupValue; + setTabSettings(data); + } + + function toggleTab(tab, active) { + const tabPanelId = tab.getAttribute("aria-controls"); + const tabPanel = document.getElementById(tabPanelId); + if (active) { + tab.classList.add("active"); + tabPanel.classList.add("active"); + } else { + tab.classList.remove("active"); + tabPanel.classList.remove("active"); + } + } + + function toggleAll(selectedGroup, selectorsToSync) { + for (const [thisGroup, tabs] of Object.entries(selectorsToSync)) { + const active = selectedGroup === thisGroup; + for (const tab of tabs) { + toggleTab(tab, active); + } + } + } + + function findSelectorsToSyncByLanguage() { + const result = {}; + const tabs = Array.from( + document.querySelectorAll(`div[data-group] a[id^='tabset-']`) + ); + for (const item of tabs) { + const div = item.parentElement.parentElement.parentElement; + const group = div.getAttribute("data-group"); + if (!result[group]) { + result[group] = {}; + } + const selectorsToSync = result[group]; + const value = item.innerHTML; + if (!selectorsToSync[value]) { + selectorsToSync[value] = []; + } + selectorsToSync[value].push(item); + } + return result; + } + + function setupSelectorSync() { + const selectorsToSync = findSelectorsToSyncByLanguage(); + Object.entries(selectorsToSync).forEach(([group, tabSetsByValue]) => { + Object.entries(tabSetsByValue).forEach(([value, items]) => { + items.forEach((item) => { + item.addEventListener("click", (_event) => { + setTabState(group, value); + toggleAll(value, selectorsToSync[group]); + }); + }); + }); + }); + return selectorsToSync; + } + + const selectorsToSync = setupSelectorSync(); + for (const [group, selectedName] of Object.entries(getTabSettings())) { + const selectors = selectorsToSync[group]; + // it's possible that stale state gives us empty selections, so we explicitly check here. + if (selectors) { + toggleAll(selectedName, selectors); + } + } +}); + +function throttle(func, wait) { + let waiting = false; + return function () { + if (!waiting) { + func.apply(this, arguments); + waiting = true; + setTimeout(function () { + waiting = false; + }, wait); + } + }; +} + +function nexttick(func) { + return setTimeout(func, 0); +} diff --git a/site_libs/quarto-html/tippy.css b/site_libs/quarto-html/tippy.css new file mode 100644 index 0000000..e6ae635 --- /dev/null +++ b/site_libs/quarto-html/tippy.css @@ -0,0 +1 @@ +.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} \ No newline at end of file diff --git a/site_libs/quarto-html/tippy.umd.min.js b/site_libs/quarto-html/tippy.umd.min.js new file mode 100644 index 0000000..ca292be --- /dev/null +++ b/site_libs/quarto-html/tippy.umd.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],t):(e=e||self).tippy=t(e.Popper)}(this,(function(e){"use strict";var t={passive:!0,capture:!0},n=function(){return document.body};function r(e,t,n){if(Array.isArray(e)){var r=e[t];return null==r?Array.isArray(n)?n[t]:n:r}return e}function o(e,t){var n={}.toString.call(e);return 0===n.indexOf("[object")&&n.indexOf(t+"]")>-1}function i(e,t){return"function"==typeof e?e.apply(void 0,t):e}function a(e,t){return 0===t?e:function(r){clearTimeout(n),n=setTimeout((function(){e(r)}),t)};var n}function s(e,t){var n=Object.assign({},e);return t.forEach((function(e){delete n[e]})),n}function u(e){return[].concat(e)}function c(e,t){-1===e.indexOf(t)&&e.push(t)}function p(e){return e.split("-")[0]}function f(e){return[].slice.call(e)}function l(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function d(){return document.createElement("div")}function v(e){return["Element","Fragment"].some((function(t){return o(e,t)}))}function m(e){return o(e,"MouseEvent")}function g(e){return!(!e||!e._tippy||e._tippy.reference!==e)}function h(e){return v(e)?[e]:function(e){return o(e,"NodeList")}(e)?f(e):Array.isArray(e)?e:f(document.querySelectorAll(e))}function b(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function y(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function w(e){var t,n=u(e)[0];return null!=n&&null!=(t=n.ownerDocument)&&t.body?n.ownerDocument:document}function E(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[r](t,n)}))}function O(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=null==n.getRootNode||null==(r=n.getRootNode())?void 0:r.host}return!1}var x={isTouch:!1},C=0;function T(){x.isTouch||(x.isTouch=!0,window.performance&&document.addEventListener("mousemove",A))}function A(){var e=performance.now();e-C<20&&(x.isTouch=!1,document.removeEventListener("mousemove",A)),C=e}function L(){var e=document.activeElement;if(g(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}var D=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,R=Object.assign({appendTo:n,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),k=Object.keys(R);function P(e){var t=(e.plugins||[]).reduce((function(t,n){var r,o=n.name,i=n.defaultValue;o&&(t[o]=void 0!==e[o]?e[o]:null!=(r=R[o])?r:i);return t}),{});return Object.assign({},e,t)}function j(e,t){var n=Object.assign({},t,{content:i(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(P(Object.assign({},R,{plugins:t}))):k).reduce((function(t,n){var r=(e.getAttribute("data-tippy-"+n)||"").trim();if(!r)return t;if("content"===n)t[n]=r;else try{t[n]=JSON.parse(r)}catch(e){t[n]=r}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},R.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}function M(e,t){e.innerHTML=t}function V(e){var t=d();return!0===e?t.className="tippy-arrow":(t.className="tippy-svg-arrow",v(e)?t.appendChild(e):M(t,e)),t}function I(e,t){v(t.content)?(M(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?M(e,t.content):e.textContent=t.content)}function S(e){var t=e.firstElementChild,n=f(t.children);return{box:t,content:n.find((function(e){return e.classList.contains("tippy-content")})),arrow:n.find((function(e){return e.classList.contains("tippy-arrow")||e.classList.contains("tippy-svg-arrow")})),backdrop:n.find((function(e){return e.classList.contains("tippy-backdrop")}))}}function N(e){var t=d(),n=d();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=d();function o(n,r){var o=S(t),i=o.box,a=o.content,s=o.arrow;r.theme?i.setAttribute("data-theme",r.theme):i.removeAttribute("data-theme"),"string"==typeof r.animation?i.setAttribute("data-animation",r.animation):i.removeAttribute("data-animation"),r.inertia?i.setAttribute("data-inertia",""):i.removeAttribute("data-inertia"),i.style.maxWidth="number"==typeof r.maxWidth?r.maxWidth+"px":r.maxWidth,r.role?i.setAttribute("role",r.role):i.removeAttribute("role"),n.content===r.content&&n.allowHTML===r.allowHTML||I(a,e.props),r.arrow?s?n.arrow!==r.arrow&&(i.removeChild(s),i.appendChild(V(r.arrow))):i.appendChild(V(r.arrow)):s&&i.removeChild(s)}return r.className="tippy-content",r.setAttribute("data-state","hidden"),I(r,e.props),t.appendChild(n),n.appendChild(r),o(e.props,e.props),{popper:t,onUpdate:o}}N.$$tippy=!0;var B=1,H=[],U=[];function _(o,s){var v,g,h,C,T,A,L,k,M=j(o,Object.assign({},R,P(l(s)))),V=!1,I=!1,N=!1,_=!1,F=[],W=a(we,M.interactiveDebounce),X=B++,Y=(k=M.plugins).filter((function(e,t){return k.indexOf(e)===t})),$={id:X,reference:o,popper:d(),popperInstance:null,props:M,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:Y,clearDelayTimeouts:function(){clearTimeout(v),clearTimeout(g),cancelAnimationFrame(h)},setProps:function(e){if($.state.isDestroyed)return;ae("onBeforeUpdate",[$,e]),be();var t=$.props,n=j(o,Object.assign({},t,l(e),{ignoreAttributes:!0}));$.props=n,he(),t.interactiveDebounce!==n.interactiveDebounce&&(ce(),W=a(we,n.interactiveDebounce));t.triggerTarget&&!n.triggerTarget?u(t.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):n.triggerTarget&&o.removeAttribute("aria-expanded");ue(),ie(),J&&J(t,n);$.popperInstance&&(Ce(),Ae().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));ae("onAfterUpdate",[$,e])},setContent:function(e){$.setProps({content:e})},show:function(){var e=$.state.isVisible,t=$.state.isDestroyed,o=!$.state.isEnabled,a=x.isTouch&&!$.props.touch,s=r($.props.duration,0,R.duration);if(e||t||o||a)return;if(te().hasAttribute("disabled"))return;if(ae("onShow",[$],!1),!1===$.props.onShow($))return;$.state.isVisible=!0,ee()&&(z.style.visibility="visible");ie(),de(),$.state.isMounted||(z.style.transition="none");if(ee()){var u=re(),p=u.box,f=u.content;b([p,f],0)}A=function(){var e;if($.state.isVisible&&!_){if(_=!0,z.offsetHeight,z.style.transition=$.props.moveTransition,ee()&&$.props.animation){var t=re(),n=t.box,r=t.content;b([n,r],s),y([n,r],"visible")}se(),ue(),c(U,$),null==(e=$.popperInstance)||e.forceUpdate(),ae("onMount",[$]),$.props.animation&&ee()&&function(e,t){me(e,t)}(s,(function(){$.state.isShown=!0,ae("onShown",[$])}))}},function(){var e,t=$.props.appendTo,r=te();e=$.props.interactive&&t===n||"parent"===t?r.parentNode:i(t,[r]);e.contains(z)||e.appendChild(z);$.state.isMounted=!0,Ce()}()},hide:function(){var e=!$.state.isVisible,t=$.state.isDestroyed,n=!$.state.isEnabled,o=r($.props.duration,1,R.duration);if(e||t||n)return;if(ae("onHide",[$],!1),!1===$.props.onHide($))return;$.state.isVisible=!1,$.state.isShown=!1,_=!1,V=!1,ee()&&(z.style.visibility="hidden");if(ce(),ve(),ie(!0),ee()){var i=re(),a=i.box,s=i.content;$.props.animation&&(b([a,s],o),y([a,s],"hidden"))}se(),ue(),$.props.animation?ee()&&function(e,t){me(e,(function(){!$.state.isVisible&&z.parentNode&&z.parentNode.contains(z)&&t()}))}(o,$.unmount):$.unmount()},hideWithInteractivity:function(e){ne().addEventListener("mousemove",W),c(H,W),W(e)},enable:function(){$.state.isEnabled=!0},disable:function(){$.hide(),$.state.isEnabled=!1},unmount:function(){$.state.isVisible&&$.hide();if(!$.state.isMounted)return;Te(),Ae().forEach((function(e){e._tippy.unmount()})),z.parentNode&&z.parentNode.removeChild(z);U=U.filter((function(e){return e!==$})),$.state.isMounted=!1,ae("onHidden",[$])},destroy:function(){if($.state.isDestroyed)return;$.clearDelayTimeouts(),$.unmount(),be(),delete o._tippy,$.state.isDestroyed=!0,ae("onDestroy",[$])}};if(!M.render)return $;var q=M.render($),z=q.popper,J=q.onUpdate;z.setAttribute("data-tippy-root",""),z.id="tippy-"+$.id,$.popper=z,o._tippy=$,z._tippy=$;var G=Y.map((function(e){return e.fn($)})),K=o.hasAttribute("aria-expanded");return he(),ue(),ie(),ae("onCreate",[$]),M.showOnCreate&&Le(),z.addEventListener("mouseenter",(function(){$.props.interactive&&$.state.isVisible&&$.clearDelayTimeouts()})),z.addEventListener("mouseleave",(function(){$.props.interactive&&$.props.trigger.indexOf("mouseenter")>=0&&ne().addEventListener("mousemove",W)})),$;function Q(){var e=$.props.touch;return Array.isArray(e)?e:[e,0]}function Z(){return"hold"===Q()[0]}function ee(){var e;return!(null==(e=$.props.render)||!e.$$tippy)}function te(){return L||o}function ne(){var e=te().parentNode;return e?w(e):document}function re(){return S(z)}function oe(e){return $.state.isMounted&&!$.state.isVisible||x.isTouch||C&&"focus"===C.type?0:r($.props.delay,e?0:1,R.delay)}function ie(e){void 0===e&&(e=!1),z.style.pointerEvents=$.props.interactive&&!e?"":"none",z.style.zIndex=""+$.props.zIndex}function ae(e,t,n){var r;(void 0===n&&(n=!0),G.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(r=$.props)[e].apply(r,t)}function se(){var e=$.props.aria;if(e.content){var t="aria-"+e.content,n=z.id;u($.props.triggerTarget||o).forEach((function(e){var r=e.getAttribute(t);if($.state.isVisible)e.setAttribute(t,r?r+" "+n:n);else{var o=r&&r.replace(n,"").trim();o?e.setAttribute(t,o):e.removeAttribute(t)}}))}}function ue(){!K&&$.props.aria.expanded&&u($.props.triggerTarget||o).forEach((function(e){$.props.interactive?e.setAttribute("aria-expanded",$.state.isVisible&&e===te()?"true":"false"):e.removeAttribute("aria-expanded")}))}function ce(){ne().removeEventListener("mousemove",W),H=H.filter((function(e){return e!==W}))}function pe(e){if(!x.isTouch||!N&&"mousedown"!==e.type){var t=e.composedPath&&e.composedPath()[0]||e.target;if(!$.props.interactive||!O(z,t)){if(u($.props.triggerTarget||o).some((function(e){return O(e,t)}))){if(x.isTouch)return;if($.state.isVisible&&$.props.trigger.indexOf("click")>=0)return}else ae("onClickOutside",[$,e]);!0===$.props.hideOnClick&&($.clearDelayTimeouts(),$.hide(),I=!0,setTimeout((function(){I=!1})),$.state.isMounted||ve())}}}function fe(){N=!0}function le(){N=!1}function de(){var e=ne();e.addEventListener("mousedown",pe,!0),e.addEventListener("touchend",pe,t),e.addEventListener("touchstart",le,t),e.addEventListener("touchmove",fe,t)}function ve(){var e=ne();e.removeEventListener("mousedown",pe,!0),e.removeEventListener("touchend",pe,t),e.removeEventListener("touchstart",le,t),e.removeEventListener("touchmove",fe,t)}function me(e,t){var n=re().box;function r(e){e.target===n&&(E(n,"remove",r),t())}if(0===e)return t();E(n,"remove",T),E(n,"add",r),T=r}function ge(e,t,n){void 0===n&&(n=!1),u($.props.triggerTarget||o).forEach((function(r){r.addEventListener(e,t,n),F.push({node:r,eventType:e,handler:t,options:n})}))}function he(){var e;Z()&&(ge("touchstart",ye,{passive:!0}),ge("touchend",Ee,{passive:!0})),(e=$.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(ge(e,ye),e){case"mouseenter":ge("mouseleave",Ee);break;case"focus":ge(D?"focusout":"blur",Oe);break;case"focusin":ge("focusout",Oe)}}))}function be(){F.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),F=[]}function ye(e){var t,n=!1;if($.state.isEnabled&&!xe(e)&&!I){var r="focus"===(null==(t=C)?void 0:t.type);C=e,L=e.currentTarget,ue(),!$.state.isVisible&&m(e)&&H.forEach((function(t){return t(e)})),"click"===e.type&&($.props.trigger.indexOf("mouseenter")<0||V)&&!1!==$.props.hideOnClick&&$.state.isVisible?n=!0:Le(e),"click"===e.type&&(V=!n),n&&!r&&De(e)}}function we(e){var t=e.target,n=te().contains(t)||z.contains(t);"mousemove"===e.type&&n||function(e,t){var n=t.clientX,r=t.clientY;return e.every((function(e){var t=e.popperRect,o=e.popperState,i=e.props.interactiveBorder,a=p(o.placement),s=o.modifiersData.offset;if(!s)return!0;var u="bottom"===a?s.top.y:0,c="top"===a?s.bottom.y:0,f="right"===a?s.left.x:0,l="left"===a?s.right.x:0,d=t.top-r+u>i,v=r-t.bottom-c>i,m=t.left-n+f>i,g=n-t.right-l>i;return d||v||m||g}))}(Ae().concat(z).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:M}:null})).filter(Boolean),e)&&(ce(),De(e))}function Ee(e){xe(e)||$.props.trigger.indexOf("click")>=0&&V||($.props.interactive?$.hideWithInteractivity(e):De(e))}function Oe(e){$.props.trigger.indexOf("focusin")<0&&e.target!==te()||$.props.interactive&&e.relatedTarget&&z.contains(e.relatedTarget)||De(e)}function xe(e){return!!x.isTouch&&Z()!==e.type.indexOf("touch")>=0}function Ce(){Te();var t=$.props,n=t.popperOptions,r=t.placement,i=t.offset,a=t.getReferenceClientRect,s=t.moveTransition,u=ee()?S(z).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||te()}:o,p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!s}},{name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(ee()){var n=re().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}}];ee()&&u&&p.push({name:"arrow",options:{element:u,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),$.popperInstance=e.createPopper(c,z,Object.assign({},n,{placement:r,onFirstUpdate:A,modifiers:p}))}function Te(){$.popperInstance&&($.popperInstance.destroy(),$.popperInstance=null)}function Ae(){return f(z.querySelectorAll("[data-tippy-root]"))}function Le(e){$.clearDelayTimeouts(),e&&ae("onTrigger",[$,e]),de();var t=oe(!0),n=Q(),r=n[0],o=n[1];x.isTouch&&"hold"===r&&o&&(t=o),t?v=setTimeout((function(){$.show()}),t):$.show()}function De(e){if($.clearDelayTimeouts(),ae("onUntrigger",[$,e]),$.state.isVisible){if(!($.props.trigger.indexOf("mouseenter")>=0&&$.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&V)){var t=oe(!1);t?g=setTimeout((function(){$.state.isVisible&&$.hide()}),t):h=requestAnimationFrame((function(){$.hide()}))}}else ve()}}function F(e,n){void 0===n&&(n={});var r=R.plugins.concat(n.plugins||[]);document.addEventListener("touchstart",T,t),window.addEventListener("blur",L);var o=Object.assign({},n,{plugins:r}),i=h(e).reduce((function(e,t){var n=t&&_(t,o);return n&&e.push(n),e}),[]);return v(e)?i[0]:i}F.defaultProps=R,F.setDefaultProps=function(e){Object.keys(e).forEach((function(t){R[t]=e[t]}))},F.currentInput=x;var W=Object.assign({},e.applyStyles,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),X={mouseover:"mouseenter",focusin:"focus",click:"click"};var Y={name:"animateFill",defaultValue:!1,fn:function(e){var t;if(null==(t=e.props.render)||!t.$$tippy)return{};var n=S(e.popper),r=n.box,o=n.content,i=e.props.animateFill?function(){var e=d();return e.className="tippy-backdrop",y([e],"hidden"),e}():null;return{onCreate:function(){i&&(r.insertBefore(i,r.firstElementChild),r.setAttribute("data-animatefill",""),r.style.overflow="hidden",e.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(i){var e=r.style.transitionDuration,t=Number(e.replace("ms",""));o.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y([i],"visible")}},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y([i],"hidden")}}}};var $={clientX:0,clientY:0},q=[];function z(e){var t=e.clientX,n=e.clientY;$={clientX:t,clientY:n}}var J={name:"followCursor",defaultValue:!1,fn:function(e){var t=e.reference,n=w(e.props.triggerTarget||t),r=!1,o=!1,i=!0,a=e.props;function s(){return"initial"===e.props.followCursor&&e.state.isVisible}function u(){n.addEventListener("mousemove",f)}function c(){n.removeEventListener("mousemove",f)}function p(){r=!0,e.setProps({getReferenceClientRect:null}),r=!1}function f(n){var r=!n.target||t.contains(n.target),o=e.props.followCursor,i=n.clientX,a=n.clientY,s=t.getBoundingClientRect(),u=i-s.left,c=a-s.top;!r&&e.props.interactive||e.setProps({getReferenceClientRect:function(){var e=t.getBoundingClientRect(),n=i,r=a;"initial"===o&&(n=e.left+u,r=e.top+c);var s="horizontal"===o?e.top:r,p="vertical"===o?e.right:n,f="horizontal"===o?e.bottom:r,l="vertical"===o?e.left:n;return{width:p-l,height:f-s,top:s,right:p,bottom:f,left:l}}})}function l(){e.props.followCursor&&(q.push({instance:e,doc:n}),function(e){e.addEventListener("mousemove",z)}(n))}function d(){0===(q=q.filter((function(t){return t.instance!==e}))).filter((function(e){return e.doc===n})).length&&function(e){e.removeEventListener("mousemove",z)}(n)}return{onCreate:l,onDestroy:d,onBeforeUpdate:function(){a=e.props},onAfterUpdate:function(t,n){var i=n.followCursor;r||void 0!==i&&a.followCursor!==i&&(d(),i?(l(),!e.state.isMounted||o||s()||u()):(c(),p()))},onMount:function(){e.props.followCursor&&!o&&(i&&(f($),i=!1),s()||u())},onTrigger:function(e,t){m(t)&&($={clientX:t.clientX,clientY:t.clientY}),o="focus"===t.type},onHidden:function(){e.props.followCursor&&(p(),c(),i=!0)}}}};var G={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t,n=e.reference;var r=-1,o=!1,i=[],a={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(o){var a=o.state;e.props.inlinePositioning&&(-1!==i.indexOf(a.placement)&&(i=[]),t!==a.placement&&-1===i.indexOf(a.placement)&&(i.push(a.placement),e.setProps({getReferenceClientRect:function(){return function(e){return function(e,t,n,r){if(n.length<2||null===e)return t;if(2===n.length&&r>=0&&n[0].left>n[1].right)return n[r]||t;switch(e){case"top":case"bottom":var o=n[0],i=n[n.length-1],a="top"===e,s=o.top,u=i.bottom,c=a?o.left:i.left,p=a?o.right:i.right;return{top:s,bottom:u,left:c,right:p,width:p-c,height:u-s};case"left":case"right":var f=Math.min.apply(Math,n.map((function(e){return e.left}))),l=Math.max.apply(Math,n.map((function(e){return e.right}))),d=n.filter((function(t){return"left"===e?t.left===f:t.right===l})),v=d[0].top,m=d[d.length-1].bottom;return{top:v,bottom:m,left:f,right:l,width:l-f,height:m-v};default:return t}}(p(e),n.getBoundingClientRect(),f(n.getClientRects()),r)}(a.placement)}})),t=a.placement)}};function s(){var t;o||(t=function(e,t){var n;return{popperOptions:Object.assign({},e.popperOptions,{modifiers:[].concat(((null==(n=e.popperOptions)?void 0:n.modifiers)||[]).filter((function(e){return e.name!==t.name})),[t])})}}(e.props,a),o=!0,e.setProps(t),o=!1)}return{onCreate:s,onAfterUpdate:s,onTrigger:function(t,n){if(m(n)){var o=f(e.reference.getClientRects()),i=o.find((function(e){return e.left-2<=n.clientX&&e.right+2>=n.clientX&&e.top-2<=n.clientY&&e.bottom+2>=n.clientY})),a=o.indexOf(i);r=a>-1?a:r}},onHidden:function(){r=-1}}}};var K={name:"sticky",defaultValue:!1,fn:function(e){var t=e.reference,n=e.popper;function r(t){return!0===e.props.sticky||e.props.sticky===t}var o=null,i=null;function a(){var s=r("reference")?(e.popperInstance?e.popperInstance.state.elements.reference:t).getBoundingClientRect():null,u=r("popper")?n.getBoundingClientRect():null;(s&&Q(o,s)||u&&Q(i,u))&&e.popperInstance&&e.popperInstance.update(),o=s,i=u,e.state.isMounted&&requestAnimationFrame(a)}return{onMount:function(){e.props.sticky&&a()}}}};function Q(e,t){return!e||!t||(e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left)}return F.setDefaultProps({plugins:[Y,J,G,K],render:N}),F.createSingleton=function(e,t){var n;void 0===t&&(t={});var r,o=e,i=[],a=[],c=t.overrides,p=[],f=!1;function l(){a=o.map((function(e){return u(e.props.triggerTarget||e.reference)})).reduce((function(e,t){return e.concat(t)}),[])}function v(){i=o.map((function(e){return e.reference}))}function m(e){o.forEach((function(t){e?t.enable():t.disable()}))}function g(e){return o.map((function(t){var n=t.setProps;return t.setProps=function(o){n(o),t.reference===r&&e.setProps(o)},function(){t.setProps=n}}))}function h(e,t){var n=a.indexOf(t);if(t!==r){r=t;var s=(c||[]).concat("content").reduce((function(e,t){return e[t]=o[n].props[t],e}),{});e.setProps(Object.assign({},s,{getReferenceClientRect:"function"==typeof s.getReferenceClientRect?s.getReferenceClientRect:function(){var e;return null==(e=i[n])?void 0:e.getBoundingClientRect()}}))}}m(!1),v(),l();var b={fn:function(){return{onDestroy:function(){m(!0)},onHidden:function(){r=null},onClickOutside:function(e){e.props.showOnCreate&&!f&&(f=!0,r=null)},onShow:function(e){e.props.showOnCreate&&!f&&(f=!0,h(e,i[0]))},onTrigger:function(e,t){h(e,t.currentTarget)}}}},y=F(d(),Object.assign({},s(t,["overrides"]),{plugins:[b].concat(t.plugins||[]),triggerTarget:a,popperOptions:Object.assign({},t.popperOptions,{modifiers:[].concat((null==(n=t.popperOptions)?void 0:n.modifiers)||[],[W])})})),w=y.show;y.show=function(e){if(w(),!r&&null==e)return h(y,i[0]);if(!r||null!=e){if("number"==typeof e)return i[e]&&h(y,i[e]);if(o.indexOf(e)>=0){var t=e.reference;return h(y,t)}return i.indexOf(e)>=0?h(y,e):void 0}},y.showNext=function(){var e=i[0];if(!r)return y.show(0);var t=i.indexOf(r);y.show(i[t+1]||e)},y.showPrevious=function(){var e=i[i.length-1];if(!r)return y.show(e);var t=i.indexOf(r),n=i[t-1]||e;y.show(n)};var E=y.setProps;return y.setProps=function(e){c=e.overrides||c,E(e)},y.setInstances=function(e){m(!0),p.forEach((function(e){return e()})),o=e,m(!1),v(),l(),p=g(y),y.setProps({triggerTarget:a})},p=g(y),y},F.delegate=function(e,n){var r=[],o=[],i=!1,a=n.target,c=s(n,["target"]),p=Object.assign({},c,{trigger:"manual",touch:!1}),f=Object.assign({touch:R.touch},c,{showOnCreate:!0}),l=F(e,p);function d(e){if(e.target&&!i){var t=e.target.closest(a);if(t){var r=t.getAttribute("data-tippy-trigger")||n.trigger||R.trigger;if(!t._tippy&&!("touchstart"===e.type&&"boolean"==typeof f.touch||"touchstart"!==e.type&&r.indexOf(X[e.type])<0)){var s=F(t,f);s&&(o=o.concat(s))}}}}function v(e,t,n,o){void 0===o&&(o=!1),e.addEventListener(t,n,o),r.push({node:e,eventType:t,handler:n,options:o})}return u(l).forEach((function(e){var n=e.destroy,a=e.enable,s=e.disable;e.destroy=function(e){void 0===e&&(e=!0),e&&o.forEach((function(e){e.destroy()})),o=[],r.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),r=[],n()},e.enable=function(){a(),o.forEach((function(e){return e.enable()})),i=!1},e.disable=function(){s(),o.forEach((function(e){return e.disable()})),i=!0},function(e){var n=e.reference;v(n,"touchstart",d,t),v(n,"mouseover",d),v(n,"focusin",d),v(n,"click",d)}(e)})),l},F.hideAll=function(e){var t=void 0===e?{}:e,n=t.exclude,r=t.duration;U.forEach((function(e){var t=!1;if(n&&(t=g(n)?e.reference===n:e.popper===n.popper),!t){var o=e.props.duration;e.setProps({duration:r}),e.hide(),e.state.isDestroyed||e.setProps({duration:o})}}))},F.roundArrow='',F})); + diff --git a/site_libs/quarto-nav/headroom.min.js b/site_libs/quarto-nav/headroom.min.js new file mode 100644 index 0000000..b08f1df --- /dev/null +++ b/site_libs/quarto-nav/headroom.min.js @@ -0,0 +1,7 @@ +/*! + * headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it + * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js + * License: MIT + */ + +!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t=t||self).Headroom=n()}(this,function(){"use strict";function t(){return"undefined"!=typeof window}function d(t){return function(t){return t&&t.document&&function(t){return 9===t.nodeType}(t.document)}(t)?function(t){var n=t.document,o=n.body,s=n.documentElement;return{scrollHeight:function(){return Math.max(o.scrollHeight,s.scrollHeight,o.offsetHeight,s.offsetHeight,o.clientHeight,s.clientHeight)},height:function(){return t.innerHeight||s.clientHeight||o.clientHeight},scrollY:function(){return void 0!==t.pageYOffset?t.pageYOffset:(s||o.parentNode||o).scrollTop}}}(t):function(t){return{scrollHeight:function(){return Math.max(t.scrollHeight,t.offsetHeight,t.clientHeight)},height:function(){return Math.max(t.offsetHeight,t.clientHeight)},scrollY:function(){return t.scrollTop}}}(t)}function n(t,s,e){var n,o=function(){var n=!1;try{var t={get passive(){n=!0}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){n=!1}return n}(),i=!1,r=d(t),l=r.scrollY(),a={};function c(){var t=Math.round(r.scrollY()),n=r.height(),o=r.scrollHeight();a.scrollY=t,a.lastScrollY=l,a.direction=ls.tolerance[a.direction],e(a),l=t,i=!1}function h(){i||(i=!0,n=requestAnimationFrame(c))}var u=!!o&&{passive:!0,capture:!1};return t.addEventListener("scroll",h,u),c(),{destroy:function(){cancelAnimationFrame(n),t.removeEventListener("scroll",h,u)}}}function o(t){return t===Object(t)?t:{down:t,up:t}}function s(t,n){n=n||{},Object.assign(this,s.options,n),this.classes=Object.assign({},s.options.classes,n.classes),this.elem=t,this.tolerance=o(this.tolerance),this.offset=o(this.offset),this.initialised=!1,this.frozen=!1}return s.prototype={constructor:s,init:function(){return s.cutsTheMustard&&!this.initialised&&(this.addClass("initial"),this.initialised=!0,setTimeout(function(t){t.scrollTracker=n(t.scroller,{offset:t.offset,tolerance:t.tolerance},t.update.bind(t))},100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass("pinned")&&this.hasClass("unpinned")||(this.addClass("unpinned"),this.removeClass("pinned"),this.onUnpin&&this.onUnpin.call(this))},pin:function(){this.hasClass("unpinned")&&(this.addClass("pinned"),this.removeClass("unpinned"),this.onPin&&this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass("frozen")},unfreeze:function(){this.frozen=!1,this.removeClass("frozen")},top:function(){this.hasClass("top")||(this.addClass("top"),this.removeClass("notTop"),this.onTop&&this.onTop.call(this))},notTop:function(){this.hasClass("notTop")||(this.addClass("notTop"),this.removeClass("top"),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){this.hasClass("bottom")||(this.addClass("bottom"),this.removeClass("notBottom"),this.onBottom&&this.onBottom.call(this))},notBottom:function(){this.hasClass("notBottom")||(this.addClass("notBottom"),this.removeClass("bottom"),this.onNotBottom&&this.onNotBottom.call(this))},shouldUnpin:function(t){return"down"===t.direction&&!t.top&&t.toleranceExceeded},shouldPin:function(t){return"up"===t.direction&&t.toleranceExceeded||t.top},addClass:function(t){this.elem.classList.add.apply(this.elem.classList,this.classes[t].split(" "))},removeClass:function(t){this.elem.classList.remove.apply(this.elem.classList,this.classes[t].split(" "))},hasClass:function(t){return this.classes[t].split(" ").every(function(t){return this.classList.contains(t)},this.elem)},update:function(t){t.isOutOfBounds||!0!==this.frozen&&(t.top?this.top():this.notTop(),t.bottom?this.bottom():this.notBottom(),this.shouldUnpin(t)?this.unpin():this.shouldPin(t)&&this.pin())}},s.options={tolerance:{up:0,down:0},offset:0,scroller:t()?window:null,classes:{frozen:"headroom--frozen",pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",bottom:"headroom--bottom",notBottom:"headroom--not-bottom",initial:"headroom"}},s.cutsTheMustard=!!(t()&&function(){}.bind&&"classList"in document.documentElement&&Object.assign&&Object.keys&&requestAnimationFrame),s}); diff --git a/site_libs/quarto-nav/quarto-nav.js b/site_libs/quarto-nav/quarto-nav.js new file mode 100644 index 0000000..3b21201 --- /dev/null +++ b/site_libs/quarto-nav/quarto-nav.js @@ -0,0 +1,277 @@ +const headroomChanged = new CustomEvent("quarto-hrChanged", { + detail: {}, + bubbles: true, + cancelable: false, + composed: false, +}); + +window.document.addEventListener("DOMContentLoaded", function () { + let init = false; + + // Manage the back to top button, if one is present. + let lastScrollTop = window.pageYOffset || document.documentElement.scrollTop; + const scrollDownBuffer = 5; + const scrollUpBuffer = 35; + const btn = document.getElementById("quarto-back-to-top"); + const hideBackToTop = () => { + btn.style.display = "none"; + }; + const showBackToTop = () => { + btn.style.display = "inline-block"; + }; + if (btn) { + window.document.addEventListener( + "scroll", + function () { + const currentScrollTop = + window.pageYOffset || document.documentElement.scrollTop; + + // Shows and hides the button 'intelligently' as the user scrolls + if (currentScrollTop - scrollDownBuffer > lastScrollTop) { + hideBackToTop(); + lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop; + } else if (currentScrollTop < lastScrollTop - scrollUpBuffer) { + showBackToTop(); + lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop; + } + + // Show the button at the bottom, hides it at the top + if (currentScrollTop <= 0) { + hideBackToTop(); + } else if ( + window.innerHeight + currentScrollTop >= + document.body.offsetHeight + ) { + showBackToTop(); + } + }, + false + ); + } + + function throttle(func, wait) { + var timeout; + return function () { + const context = this; + const args = arguments; + const later = function () { + clearTimeout(timeout); + timeout = null; + func.apply(context, args); + }; + + if (!timeout) { + timeout = setTimeout(later, wait); + } + }; + } + + function headerOffset() { + // Set an offset if there is are fixed top navbar + const headerEl = window.document.querySelector("header.fixed-top"); + if (headerEl) { + return headerEl.clientHeight; + } else { + return 0; + } + } + + function footerOffset() { + const footerEl = window.document.querySelector("footer.footer"); + if (footerEl) { + return footerEl.clientHeight; + } else { + return 0; + } + } + + function updateDocumentOffsetWithoutAnimation() { + updateDocumentOffset(false); + } + + function updateDocumentOffset(animated) { + // set body offset + const topOffset = headerOffset(); + const bodyOffset = topOffset + footerOffset(); + const bodyEl = window.document.body; + bodyEl.setAttribute("data-bs-offset", topOffset); + bodyEl.style.paddingTop = topOffset + "px"; + + // deal with sidebar offsets + const sidebars = window.document.querySelectorAll( + ".sidebar, .headroom-target" + ); + sidebars.forEach((sidebar) => { + if (!animated) { + sidebar.classList.add("notransition"); + // Remove the no transition class after the animation has time to complete + setTimeout(function () { + sidebar.classList.remove("notransition"); + }, 201); + } + + if (window.Headroom && sidebar.classList.contains("sidebar-unpinned")) { + sidebar.style.top = "0"; + sidebar.style.maxHeight = "100vh"; + } else { + sidebar.style.top = topOffset + "px"; + sidebar.style.maxHeight = "calc(100vh - " + topOffset + "px)"; + } + }); + + // allow space for footer + const mainContainer = window.document.querySelector(".quarto-container"); + if (mainContainer) { + mainContainer.style.minHeight = "calc(100vh - " + bodyOffset + "px)"; + } + + // link offset + let linkStyle = window.document.querySelector("#quarto-target-style"); + if (!linkStyle) { + linkStyle = window.document.createElement("style"); + linkStyle.setAttribute("id", "quarto-target-style"); + window.document.head.appendChild(linkStyle); + } + while (linkStyle.firstChild) { + linkStyle.removeChild(linkStyle.firstChild); + } + if (topOffset > 0) { + linkStyle.appendChild( + window.document.createTextNode(` + section:target::before { + content: ""; + display: block; + height: ${topOffset}px; + margin: -${topOffset}px 0 0; + }`) + ); + } + if (init) { + window.dispatchEvent(headroomChanged); + } + init = true; + } + + // initialize headroom + var header = window.document.querySelector("#quarto-header"); + if (header && window.Headroom) { + const headroom = new window.Headroom(header, { + tolerance: 5, + onPin: function () { + const sidebars = window.document.querySelectorAll( + ".sidebar, .headroom-target" + ); + sidebars.forEach((sidebar) => { + sidebar.classList.remove("sidebar-unpinned"); + }); + updateDocumentOffset(); + }, + onUnpin: function () { + const sidebars = window.document.querySelectorAll( + ".sidebar, .headroom-target" + ); + sidebars.forEach((sidebar) => { + sidebar.classList.add("sidebar-unpinned"); + }); + updateDocumentOffset(); + }, + }); + headroom.init(); + + let frozen = false; + window.quartoToggleHeadroom = function () { + if (frozen) { + headroom.unfreeze(); + frozen = false; + } else { + headroom.freeze(); + frozen = true; + } + }; + } + + window.addEventListener( + "hashchange", + function (e) { + if ( + getComputedStyle(document.documentElement).scrollBehavior !== "smooth" + ) { + window.scrollTo(0, window.pageYOffset - headerOffset()); + } + }, + false + ); + + // Observe size changed for the header + const headerEl = window.document.querySelector("header.fixed-top"); + if (headerEl && window.ResizeObserver) { + const observer = new window.ResizeObserver( + updateDocumentOffsetWithoutAnimation + ); + observer.observe(headerEl, { + attributes: true, + childList: true, + characterData: true, + }); + } else { + window.addEventListener( + "resize", + throttle(updateDocumentOffsetWithoutAnimation, 50) + ); + } + setTimeout(updateDocumentOffsetWithoutAnimation, 250); + + // fixup index.html links if we aren't on the filesystem + if (window.location.protocol !== "file:") { + const links = window.document.querySelectorAll("a"); + for (let i = 0; i < links.length; i++) { + if (links[i].href) { + links[i].href = links[i].href.replace(/\/index\.html/, "/"); + } + } + + // Fixup any sharing links that require urls + // Append url to any sharing urls + const sharingLinks = window.document.querySelectorAll( + "a.sidebar-tools-main-item" + ); + for (let i = 0; i < sharingLinks.length; i++) { + const sharingLink = sharingLinks[i]; + const href = sharingLink.getAttribute("href"); + if (href) { + sharingLink.setAttribute( + "href", + href.replace("|url|", window.location.href) + ); + } + } + + // Scroll the active navigation item into view, if necessary + const navSidebar = window.document.querySelector("nav#quarto-sidebar"); + if (navSidebar) { + // Find the active item + const activeItem = navSidebar.querySelector("li.sidebar-item a.active"); + if (activeItem) { + // Wait for the scroll height and height to resolve by observing size changes on the + // nav element that is scrollable + const resizeObserver = new ResizeObserver((_entries) => { + // The bottom of the element + const elBottom = activeItem.offsetTop; + const viewBottom = navSidebar.scrollTop + navSidebar.clientHeight; + + // The element height and scroll height are the same, then we are still loading + if (viewBottom !== navSidebar.scrollHeight) { + // Determine if the item isn't visible and scroll to it + if (elBottom >= viewBottom) { + navSidebar.scrollTop = elBottom; + } + + // stop observing now since we've completed the scroll + resizeObserver.unobserve(navSidebar); + } + }); + resizeObserver.observe(navSidebar); + } + } + } +}); diff --git a/site_libs/quarto-search/autocomplete.umd.js b/site_libs/quarto-search/autocomplete.umd.js new file mode 100644 index 0000000..619c57c --- /dev/null +++ b/site_libs/quarto-search/autocomplete.umd.js @@ -0,0 +1,3 @@ +/*! @algolia/autocomplete-js 1.7.3 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-js"]={})}(this,(function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],u=!0,a=!1;try{for(n=n.call(e);!(u=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);u=!0);}catch(e){a=!0,o=e}finally{try{u||null==n.return||n.return()}finally{if(a)throw o}}return i}(e,t)||l(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=n?null===r?null:0:o}function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function I(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function E(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ae,ce,le,se=null,pe=(ae=-1,ce=-1,le=void 0,function(e){var t=++ae;return Promise.resolve(e).then((function(e){return le&&t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ye=["props","refresh","store"],be=["inputElement","formElement","panelElement"],Oe=["inputElement"],_e=["inputElement","maxLength"],Pe=["item","source"];function je(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function we(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Ee(e){var t=e.props,n=e.refresh,r=e.store,o=Ie(e,ye);return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,i=e.panelElement;function u(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,i].some((function(t){return n=t,r=e.target,n===r||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return we({onTouchStart:u,onMouseDown:u,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},Ie(e,be))},getRootProps:function(e){return we({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){return e.inputElement,we({action:"",noValidate:!0,role:"search",onSubmit:function(i){var u;i.preventDefault(),t.onSubmit(we({event:i,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(u=e.inputElement)||void 0===u||u.blur()},onReset:function(i){var u;i.preventDefault(),t.onReset(we({event:i,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(u=e.inputElement)||void 0===u||u.focus()}},Ie(e,Oe))},getLabelProps:function(e){return we({htmlFor:"".concat(t.id,"-input"),id:"".concat(t.id,"-label")},e)},getInputProps:function(e){var i;function u(e){(t.openOnFocus||Boolean(r.getState().query))&&fe(we({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var a=e||{};a.inputElement;var c=a.maxLength,l=void 0===c?512:c,s=Ie(a,_e),p=A(r.getState()),f=function(e){return Boolean(e&&e.match(C))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),d=null!=p&&p.itemUrl&&!f?"go":"search";return we({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?"".concat(t.id,"-item-").concat(r.getState().activeItemId):void 0,"aria-controls":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:r.getState().completion||r.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:d,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:l,type:"search",onChange:function(e){fe(we({event:e,props:t,query:e.currentTarget.value.slice(0,l),refresh:n,store:r},o))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,i=ge(e,de);if("ArrowUp"===t.key||"ArrowDown"===t.key){var u=function(){var e=n.environment.document.getElementById("".concat(n.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},a=function(){var e=A(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,u=e.itemInputValue,a=e.itemUrl,c=e.source;c.onActive(ve({event:t,item:n,itemInputValue:u,itemUrl:a,refresh:r,source:c,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?fe(ve({event:t,props:n,query:o.getState().query,refresh:r,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),a(),setTimeout(u,0)})):(o.dispatch(t.key,{}),a(),u())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||o.pendingRequests.cancelAll());t.preventDefault();var c=A(o.getState()),l=c.item,s=c.itemInputValue,p=c.itemUrl,f=c.source;if(t.metaKey||t.ctrlKey)void 0!==p&&(f.onSelect(ve({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},i)),n.navigator.navigateNewTab({itemUrl:p,item:l,state:o.getState()}));else if(t.shiftKey)void 0!==p&&(f.onSelect(ve({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},i)),n.navigator.navigateNewWindow({itemUrl:p,item:l,state:o.getState()}));else if(t.altKey);else{if(void 0!==p)return f.onSelect(ve({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},i)),void n.navigator.navigate({itemUrl:p,item:l,state:o.getState()});fe(ve({event:t,nextState:{isOpen:!1},props:n,query:s,refresh:r,store:o},i)).then((function(){f.onSelect(ve({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},i))}))}}}(we({event:e,props:t,refresh:n,store:r},o))},onFocus:u,onBlur:y,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||u(n)}},s)},getPanelProps:function(e){return we({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){return we({role:"listbox","aria-labelledby":"".concat(t.id,"-label"),id:"".concat(t.id,"-list")},e)},getItemProps:function(e){var i=e.item,u=e.source,a=Ie(e,Pe);return we({id:"".concat(t.id,"-item-").concat(i.__autocomplete_id),role:"option","aria-selected":r.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(e){if(i.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",i.__autocomplete_id);var t=A(r.getState());if(null!==r.getState().activeItemId&&t){var u=t.item,a=t.itemInputValue,c=t.itemUrl,l=t.source;l.onActive(we({event:e,item:u,itemInputValue:a,itemUrl:c,refresh:n,source:l,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var a=u.getItemInputValue({item:i,state:r.getState()}),c=u.getItemUrl({item:i,state:r.getState()});(c?Promise.resolve():fe(we({event:e,nextState:{isOpen:!1},props:t,query:a,refresh:n,store:r},o))).then((function(){u.onSelect(we({event:e,item:i,itemInputValue:a,itemUrl:c,refresh:n,source:u,state:r.getState()},o))}))}},a)}}}function Ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ce(e){for(var t=1;t0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:v(),plugins:o,initialState:H({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(F(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return E(e,n)}))).then((function(e){return d(e)})).then((function(e){return e.map((function(e){return H(H({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:H({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}(e,t),r=R(Te,n,(function(e){var t=e.prevState,r=e.state;n.onStateChange(Be({prevState:t,state:r,refresh:u},o))})),o=function(e){var t=e.store;return{setActiveItemId:function(e){t.dispatch("setActiveItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var n=0,r=e.map((function(e){return L(L({},e),{},{items:d(e.items).map((function(e){return L(L({},e),{},{__autocomplete_id:n++})}))})}));t.dispatch("setCollections",r)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:r}),i=Ee(Be({props:n,refresh:u,store:r},o));function u(){return fe(Be({event:new Event("input"),nextState:{isOpen:r.getState().isOpen},props:n,query:r.getState().query,refresh:u,store:r},o))}return n.plugins.forEach((function(e){var n;return null===(n=e.subscribe)||void 0===n?void 0:n.call(e,Be(Be({},o),{},{refresh:u,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})}}))})),function(e){var t,n,r=e.metadata,o=e.environment;if(null===(t=o.navigator)||void 0===t||null===(n=t.userAgent)||void 0===n?void 0:n.includes("Algolia Crawler")){var i=o.document.createElement("meta"),u=o.document.querySelector("head");i.name="algolia:metadata",setTimeout((function(){i.content=JSON.stringify(r),u.appendChild(i)}),0)}}({metadata:ke({plugins:n.plugins,options:e}),environment:n.environment}),Be(Be({refresh:u},i),o)}var Ue=function(e,t,n,r){var o;t[0]=0;for(var i=1;i=5&&((o||!e&&5===r)&&(u.push(r,0,o,n),r=6),e&&(u.push(r,e,0,n),r=6)),o=""},c=0;c"===t?(r=1,o=""):o=t+o[0]:i?t===i?i="":o+=t:'"'===t||"'"===t?i=t:">"===t?(a(),r=1):r&&("="===t?(r=5,n=o,o=""):"/"===t&&(r<5||">"===e[c][l+1])?(a(),3===r&&(u=u[0]),r=u,(u=u[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(a(),r=2):o+=t),3===r&&"!--"===o&&(r=4,u=u[0])}return a(),u}(e)),t),arguments,[])).length>1?t:t[0]}var We=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-ClearIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","18"),n.setAttribute("height","18"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z"),n.appendChild(r),n};function Qe(e,t){if("string"==typeof t){var n=e.document.querySelector(t);return"The element ".concat(JSON.stringify(t)," is not in the document."),n}return t}function $e(){for(var e=arguments.length,t=new Array(e),n=0;n2&&(u.children=arguments.length>3?lt.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(i in e.defaultProps)void 0===u[i]&&(u[i]=e.defaultProps[i]);return _t(e,u,r,o,null)}function _t(e,t,n,r,o){var i={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++pt:o};return null==o&&null!=st.vnode&&st.vnode(i),i}function Pt(e){return e.children}function jt(e,t){this.props=e,this.context=t}function wt(e,t){if(null==t)return e.__?wt(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t0?_t(d.type,d.props,d.key,null,d.__v):d)){if(d.__=n,d.__b=n.__b+1,null===(f=g[s])||f&&d.key==f.key&&d.type===f.type)g[s]=void 0;else for(p=0;p0&&void 0!==arguments[0]?arguments[0]:[];return{get:function(){return e},add:function(t){var n=e[e.length-1];(null==n?void 0:n.isHighlighted)===t.isHighlighted?e[e.length-1]={value:n.value+t.value,isHighlighted:n.isHighlighted}:e.push(t)}}}(n?[{value:n,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split(Ht);r.add({value:t[0],isHighlighted:!0}),""!==t[1]&&r.add({value:t[1],isHighlighted:!1})})),r.get()}function Wt(e){return function(e){if(Array.isArray(e))return Qt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Qt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Qt(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Qt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n",""":'"',"'":"'"},Gt=new RegExp(/\w/i),Kt=/&(amp|quot|lt|gt|#39);/g,Jt=RegExp(Kt.source);function Yt(e,t){var n,r,o,i=e[t],u=(null===(n=e[t+1])||void 0===n?void 0:n.isHighlighted)||!0,a=(null===(r=e[t-1])||void 0===r?void 0:r.isHighlighted)||!0;return Gt.test((o=i.value)&&Jt.test(o)?o.replace(Kt,(function(e){return zt[e]})):o)||a!==u?i.isHighlighted:a}function Xt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Zt(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function mn(e){return function(e){if(Array.isArray(e))return vn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return vn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return vn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function vn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0;if(!O.value.core.openOnFocus&&!t.query)return n;var r=Boolean(h.current||O.value.renderer.renderNoResults);return!n&&r||n},__autocomplete_metadata:{userAgents:Sn,options:e}}))})),j=p(n({collections:[],completion:null,context:{},isOpen:!1,query:"",activeItemId:null,status:"idle"},O.value.core.initialState)),w={getEnvironmentProps:O.value.renderer.getEnvironmentProps,getFormProps:O.value.renderer.getFormProps,getInputProps:O.value.renderer.getInputProps,getItemProps:O.value.renderer.getItemProps,getLabelProps:O.value.renderer.getLabelProps,getListProps:O.value.renderer.getListProps,getPanelProps:O.value.renderer.getPanelProps,getRootProps:O.value.renderer.getRootProps},S={setActiveItemId:P.value.setActiveItemId,setQuery:P.value.setQuery,setCollections:P.value.setCollections,setIsOpen:P.value.setIsOpen,setStatus:P.value.setStatus,setContext:P.value.setContext,refresh:P.value.refresh},I=d((function(){return Ve.bind(O.value.renderer.renderer.createElement)})),E=d((function(){return ct({autocomplete:P.value,autocompleteScopeApi:S,classNames:O.value.renderer.classNames,environment:O.value.core.environment,isDetached:_.value,placeholder:O.value.core.placeholder,propGetters:w,setIsModalOpen:k,state:j.current,translations:O.value.renderer.translations})}));function A(){tt(E.value.panel,{style:_.value?{}:wn({panelPlacement:O.value.renderer.panelPlacement,container:E.value.root,form:E.value.form,environment:O.value.core.environment})})}function C(e){j.current=e;var t={autocomplete:P.value,autocompleteScopeApi:S,classNames:O.value.renderer.classNames,components:O.value.renderer.components,container:O.value.renderer.container,html:I.value,dom:E.value,panelContainer:_.value?E.value.detachedContainer:O.value.renderer.panelContainer,propGetters:w,state:j.current,renderer:O.value.renderer.renderer},r=!g(e)&&!h.current&&O.value.renderer.renderNoResults||O.value.renderer.render;!function(e){var t=e.autocomplete,r=e.autocompleteScopeApi,o=e.dom,i=e.propGetters,u=e.state;nt(o.root,i.getRootProps(n({state:u,props:t.getRootProps({})},r))),nt(o.input,i.getInputProps(n({state:u,props:t.getInputProps({inputElement:o.input}),inputElement:o.input},r))),tt(o.label,{hidden:"stalled"===u.status}),tt(o.loadingIndicator,{hidden:"stalled"!==u.status}),tt(o.clearButton,{hidden:!u.query})}(t),function(e,t){var r=t.autocomplete,o=t.autocompleteScopeApi,u=t.classNames,a=t.html,c=t.dom,l=t.panelContainer,s=t.propGetters,p=t.state,f=t.components,d=t.renderer;if(p.isOpen){l.contains(c.panel)||"loading"===p.status||l.appendChild(c.panel),c.panel.classList.toggle("aa-Panel--stalled","stalled"===p.status);var m=p.collections.filter((function(e){var t=e.source,n=e.items;return t.templates.noResults||n.length>0})).map((function(e,t){var c=e.source,l=e.items;return d.createElement("section",{key:t,className:u.source,"data-autocomplete-source-id":c.sourceId},c.templates.header&&d.createElement("div",{className:u.sourceHeader},c.templates.header({components:f,createElement:d.createElement,Fragment:d.Fragment,items:l,source:c,state:p,html:a})),c.templates.noResults&&0===l.length?d.createElement("div",{className:u.sourceNoResults},c.templates.noResults({components:f,createElement:d.createElement,Fragment:d.Fragment,source:c,state:p,html:a})):d.createElement("ul",i({className:u.list},s.getListProps(n({state:p,props:r.getListProps({})},o))),l.map((function(e){var t=r.getItemProps({item:e,source:c});return d.createElement("li",i({key:t.id,className:u.item},s.getItemProps(n({state:p,props:t},o))),c.templates.item({components:f,createElement:d.createElement,Fragment:d.Fragment,item:e,state:p,html:a}))}))),c.templates.footer&&d.createElement("div",{className:u.sourceFooter},c.templates.footer({components:f,createElement:d.createElement,Fragment:d.Fragment,items:l,source:c,state:p,html:a})))})),v=d.createElement(d.Fragment,null,d.createElement("div",{className:u.panelLayout},m),d.createElement("div",{className:"aa-GradientBottom"})),h=m.reduce((function(e,t){return e[t.props["data-autocomplete-source-id"]]=t,e}),{});e(n(n({children:v,state:p,sections:m,elements:h},d),{},{components:f,html:a},o),c.panel)}else l.contains(c.panel)&&l.removeChild(c.panel)}(r,t)}function D(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};c();var t=O.value.renderer,n=t.components,r=u(t,In);y.current=Ge(r,O.value.core,{components:Ke(n,(function(e){return!e.value.hasOwnProperty("__autocomplete_componentName")})),initialState:j.current},e),m(),l(),P.value.refresh().then((function(){C(j.current)}))}function k(e){requestAnimationFrame((function(){var t=O.value.core.environment.document.body.contains(E.value.detachedOverlay);e!==t&&(e?(O.value.core.environment.document.body.appendChild(E.value.detachedOverlay),O.value.core.environment.document.body.classList.add("aa-Detached"),E.value.input.focus()):(O.value.core.environment.document.body.removeChild(E.value.detachedOverlay),O.value.core.environment.document.body.classList.remove("aa-Detached"),P.value.setQuery(""),P.value.refresh()))}))}return a((function(){var e=P.value.getEnvironmentProps({formElement:E.value.form,panelElement:E.value.panel,inputElement:E.value.input});return tt(O.value.core.environment,e),function(){tt(O.value.core.environment,Object.keys(e).reduce((function(e,t){return n(n({},e),{},o({},t,void 0))}),{}))}})),a((function(){var e=_.value?O.value.core.environment.document.body:O.value.renderer.panelContainer,t=_.value?E.value.detachedOverlay:E.value.panel;return _.value&&j.current.isOpen&&k(!0),C(j.current),function(){e.contains(t)&&e.removeChild(t)}})),a((function(){var e=O.value.renderer.container;return e.appendChild(E.value.root),function(){e.removeChild(E.value.root)}})),a((function(){var e=f((function(e){C(e.state)}),0);return b.current=function(t){var n=t.state,r=t.prevState;(_.value&&r.isOpen!==n.isOpen&&k(n.isOpen),_.value||!n.isOpen||r.isOpen||A(),n.query!==r.query)&&O.value.core.environment.document.querySelectorAll(".aa-Panel--scrollable").forEach((function(e){0!==e.scrollTop&&(e.scrollTop=0)}));e({state:n})},function(){b.current=void 0}})),a((function(){var e=f((function(){var e=_.value;_.value=O.value.core.environment.matchMedia(O.value.renderer.detachedMediaQuery).matches,e!==_.value?D({}):requestAnimationFrame(A)}),20);return O.value.core.environment.addEventListener("resize",e),function(){O.value.core.environment.removeEventListener("resize",e)}})),a((function(){if(!_.value)return function(){};function e(e){E.value.detachedContainer.classList.toggle("aa-DetachedContainer--modal",e)}function t(t){e(t.matches)}var n=O.value.core.environment.matchMedia(getComputedStyle(O.value.core.environment.document.documentElement).getPropertyValue("--aa-detached-modal-media-query"));e(n.matches);var r=Boolean(n.addEventListener);return r?n.addEventListener("change",t):n.addListener(t),function(){r?n.removeEventListener("change",t):n.removeListener(t)}})),a((function(){return requestAnimationFrame(A),function(){}})),n(n({},S),{},{update:D,destroy:function(){c()}})},e.getAlgoliaFacets=function(e){var t=En({transformResponse:function(e){return e.facetHits}}),r=e.queries.map((function(e){return n(n({},e),{},{type:"facet"})}));return t(n(n({},e),{},{queries:r}))},e.getAlgoliaResults=An,Object.defineProperty(e,"__esModule",{value:!0})})); + diff --git a/site_libs/quarto-search/fuse.min.js b/site_libs/quarto-search/fuse.min.js new file mode 100644 index 0000000..adc2835 --- /dev/null +++ b/site_libs/quarto-search/fuse.min.js @@ -0,0 +1,9 @@ +/** + * Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io) + * + * Copyright (c) 2022 Kiro Risk (http://kiro.me) + * All Rights Reserved. Apache Software License 2.0 + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ +var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,n=new Map,r=Math.pow(10,t);return{get:function(t){var i=t.match(C).length;if(n.has(i))return n.get(i);var o=1/Math.pow(i,.5*e),c=parseFloat(Math.round(o*r)/r);return n.set(i,c),c},clear:function(){n.clear()}}}var $=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.getFn,i=void 0===n?I.getFn:n,o=t.fieldNormWeight,c=void 0===o?I.fieldNormWeight:o;r(this,e),this.norm=E(c,3),this.getFn=i,this.isCreated=!1,this.setIndexRecords()}return o(e,[{key:"setSources",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.docs=e}},{key:"setIndexRecords",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.records=e}},{key:"setKeys",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.keys=t,this._keysMap={},t.forEach((function(t,n){e._keysMap[t.id]=n}))}},{key:"create",value:function(){var e=this;!this.isCreated&&this.docs.length&&(this.isCreated=!0,g(this.docs[0])?this.docs.forEach((function(t,n){e._addString(t,n)})):this.docs.forEach((function(t,n){e._addObject(t,n)})),this.norm.clear())}},{key:"add",value:function(e){var t=this.size();g(e)?this._addString(e,t):this._addObject(e,t)}},{key:"removeAt",value:function(e){this.records.splice(e,1);for(var t=e,n=this.size();t2&&void 0!==arguments[2]?arguments[2]:{},r=n.getFn,i=void 0===r?I.getFn:r,o=n.fieldNormWeight,c=void 0===o?I.fieldNormWeight:o,a=new $({getFn:i,fieldNormWeight:c});return a.setKeys(e.map(_)),a.setSources(t),a.create(),a}function R(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.errors,r=void 0===n?0:n,i=t.currentLocation,o=void 0===i?0:i,c=t.expectedLocation,a=void 0===c?0:c,s=t.distance,u=void 0===s?I.distance:s,h=t.ignoreLocation,l=void 0===h?I.ignoreLocation:h,f=r/e.length;if(l)return f;var d=Math.abs(a-o);return u?f+d/u:d?1:f}function N(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:I.minMatchCharLength,n=[],r=-1,i=-1,o=0,c=e.length;o=t&&n.push([r,i]),r=-1)}return e[o-1]&&o-r>=t&&n.push([r,o-1]),n}var P=32;function W(e){for(var t={},n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:{},o=i.location,c=void 0===o?I.location:o,a=i.threshold,s=void 0===a?I.threshold:a,u=i.distance,h=void 0===u?I.distance:u,l=i.includeMatches,f=void 0===l?I.includeMatches:l,d=i.findAllMatches,v=void 0===d?I.findAllMatches:d,g=i.minMatchCharLength,y=void 0===g?I.minMatchCharLength:g,p=i.isCaseSensitive,m=void 0===p?I.isCaseSensitive:p,k=i.ignoreLocation,M=void 0===k?I.ignoreLocation:k;if(r(this,e),this.options={location:c,threshold:s,distance:h,includeMatches:f,findAllMatches:v,minMatchCharLength:y,isCaseSensitive:m,ignoreLocation:M},this.pattern=m?t:t.toLowerCase(),this.chunks=[],this.pattern.length){var b=function(e,t){n.chunks.push({pattern:e,alphabet:W(e),startIndex:t})},x=this.pattern.length;if(x>P){for(var w=0,L=x%P,S=x-L;w3&&void 0!==arguments[3]?arguments[3]:{},i=r.location,o=void 0===i?I.location:i,c=r.distance,a=void 0===c?I.distance:c,s=r.threshold,u=void 0===s?I.threshold:s,h=r.findAllMatches,l=void 0===h?I.findAllMatches:h,f=r.minMatchCharLength,d=void 0===f?I.minMatchCharLength:f,v=r.includeMatches,g=void 0===v?I.includeMatches:v,y=r.ignoreLocation,p=void 0===y?I.ignoreLocation:y;if(t.length>P)throw new Error(w(P));for(var m,k=t.length,M=e.length,b=Math.max(0,Math.min(o,M)),x=u,L=b,S=d>1||g,_=S?Array(M):[];(m=e.indexOf(t,L))>-1;){var O=R(t,{currentLocation:m,expectedLocation:b,distance:a,ignoreLocation:p});if(x=Math.min(O,x),L=m+k,S)for(var j=0;j=z;q-=1){var B=q-1,J=n[e.charAt(B)];if(S&&(_[B]=+!!J),K[q]=(K[q+1]<<1|1)&J,F&&(K[q]|=(A[q+1]|A[q])<<1|1|A[q+1]),K[q]&$&&(C=R(t,{errors:F,currentLocation:B,expectedLocation:b,distance:a,ignoreLocation:p}))<=x){if(x=C,(L=B)<=b)break;z=Math.max(1,2*b-L)}}if(R(t,{errors:F+1,currentLocation:b,expectedLocation:b,distance:a,ignoreLocation:p})>x)break;A=K}var U={isMatch:L>=0,score:Math.max(.001,C)};if(S){var V=N(_,d);V.length?g&&(U.indices=V):U.isMatch=!1}return U}(e,n,i,{location:c+o,distance:a,threshold:s,findAllMatches:u,minMatchCharLength:h,includeMatches:r,ignoreLocation:l}),p=y.isMatch,m=y.score,k=y.indices;p&&(g=!0),v+=m,p&&k&&(d=[].concat(f(d),f(k)))}));var y={isMatch:g,score:g?v/this.chunks.length:1};return g&&r&&(y.indices=d),y}}]),e}(),z=function(){function e(t){r(this,e),this.pattern=t}return o(e,[{key:"search",value:function(){}}],[{key:"isMultiMatch",value:function(e){return D(e,this.multiRegex)}},{key:"isSingleMatch",value:function(e){return D(e,this.singleRegex)}}]),e}();function D(e,t){var n=e.match(t);return n?n[1]:null}var K=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"exact"}},{key:"multiRegex",get:function(){return/^="(.*)"$/}},{key:"singleRegex",get:function(){return/^=(.*)$/}}]),n}(z),q=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=-1===e.indexOf(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"$/}},{key:"singleRegex",get:function(){return/^!(.*)$/}}]),n}(z),B=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"prefix-exact"}},{key:"multiRegex",get:function(){return/^\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^\^(.*)$/}}]),n}(z),J=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=!e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-prefix-exact"}},{key:"multiRegex",get:function(){return/^!\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^!\^(.*)$/}}]),n}(z),U=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}],[{key:"type",get:function(){return"suffix-exact"}},{key:"multiRegex",get:function(){return/^"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^(.*)\$$/}}]),n}(z),V=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=!e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-suffix-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^!(.*)\$$/}}]),n}(z),G=function(e){a(n,e);var t=l(n);function n(e){var i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=o.location,a=void 0===c?I.location:c,s=o.threshold,u=void 0===s?I.threshold:s,h=o.distance,l=void 0===h?I.distance:h,f=o.includeMatches,d=void 0===f?I.includeMatches:f,v=o.findAllMatches,g=void 0===v?I.findAllMatches:v,y=o.minMatchCharLength,p=void 0===y?I.minMatchCharLength:y,m=o.isCaseSensitive,k=void 0===m?I.isCaseSensitive:m,M=o.ignoreLocation,b=void 0===M?I.ignoreLocation:M;return r(this,n),(i=t.call(this,e))._bitapSearch=new T(e,{location:a,threshold:u,distance:l,includeMatches:d,findAllMatches:g,minMatchCharLength:p,isCaseSensitive:k,ignoreLocation:b}),i}return o(n,[{key:"search",value:function(e){return this._bitapSearch.searchIn(e)}}],[{key:"type",get:function(){return"fuzzy"}},{key:"multiRegex",get:function(){return/^"(.*)"$/}},{key:"singleRegex",get:function(){return/^(.*)$/}}]),n}(z),H=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){for(var t,n=0,r=[],i=this.pattern.length;(t=e.indexOf(this.pattern,n))>-1;)n=t+i,r.push([t,n-1]);var o=!!r.length;return{isMatch:o,score:o?0:1,indices:r}}}],[{key:"type",get:function(){return"include"}},{key:"multiRegex",get:function(){return/^'"(.*)"$/}},{key:"singleRegex",get:function(){return/^'(.*)$/}}]),n}(z),Q=[K,H,B,J,V,U,q,G],X=Q.length,Y=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/;function Z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.split("|").map((function(e){for(var n=e.trim().split(Y).filter((function(e){return e&&!!e.trim()})),r=[],i=0,o=n.length;i1&&void 0!==arguments[1]?arguments[1]:{},i=n.isCaseSensitive,o=void 0===i?I.isCaseSensitive:i,c=n.includeMatches,a=void 0===c?I.includeMatches:c,s=n.minMatchCharLength,u=void 0===s?I.minMatchCharLength:s,h=n.ignoreLocation,l=void 0===h?I.ignoreLocation:h,f=n.findAllMatches,d=void 0===f?I.findAllMatches:f,v=n.location,g=void 0===v?I.location:v,y=n.threshold,p=void 0===y?I.threshold:y,m=n.distance,k=void 0===m?I.distance:m;r(this,e),this.query=null,this.options={isCaseSensitive:o,includeMatches:a,minMatchCharLength:u,findAllMatches:d,ignoreLocation:l,location:g,threshold:p,distance:k},this.pattern=o?t:t.toLowerCase(),this.query=Z(this.pattern,this.options)}return o(e,[{key:"searchIn",value:function(e){var t=this.query;if(!t)return{isMatch:!1,score:1};var n=this.options,r=n.includeMatches;e=n.isCaseSensitive?e:e.toLowerCase();for(var i=0,o=[],c=0,a=0,s=t.length;a-1&&(n.refIndex=e.idx),t.matches.push(n)}}))}function ve(e,t){t.score=e.score}function ge(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.includeMatches,i=void 0===r?I.includeMatches:r,o=n.includeScore,c=void 0===o?I.includeScore:o,a=[];return i&&a.push(de),c&&a.push(ve),e.map((function(e){var n=e.idx,r={item:t[n],refIndex:n};return a.length&&a.forEach((function(t){t(e,r)})),r}))}var ye=function(){function e(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;r(this,e),this.options=t(t({},I),i),this.options.useExtendedSearch,this._keyStore=new S(this.options.keys),this.setCollection(n,o)}return o(e,[{key:"setCollection",value:function(e,t){if(this._docs=e,t&&!(t instanceof $))throw new Error("Incorrect 'index' type");this._myIndex=t||F(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}},{key:"add",value:function(e){k(e)&&(this._docs.push(e),this._myIndex.add(e))}},{key:"remove",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1},t=[],n=0,r=this._docs.length;n1&&void 0!==arguments[1]?arguments[1]:{},n=t.limit,r=void 0===n?-1:n,i=this.options,o=i.includeMatches,c=i.includeScore,a=i.shouldSort,s=i.sortFn,u=i.ignoreFieldNorm,h=g(e)?g(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return fe(h,{ignoreFieldNorm:u}),a&&h.sort(s),y(r)&&r>-1&&(h=h.slice(0,r)),ge(h,this._docs,{includeMatches:o,includeScore:c})}},{key:"_searchStringList",value:function(e){var t=re(e,this.options),n=this._myIndex.records,r=[];return n.forEach((function(e){var n=e.v,i=e.i,o=e.n;if(k(n)){var c=t.searchIn(n),a=c.isMatch,s=c.score,u=c.indices;a&&r.push({item:n,idx:i,matches:[{score:s,value:n,norm:o,indices:u}]})}})),r}},{key:"_searchLogical",value:function(e){var t=this,n=function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).auto,r=void 0===n||n,i=function e(n){var i=Object.keys(n),o=ue(n);if(!o&&i.length>1&&!se(n))return e(le(n));if(he(n)){var c=o?n[ce]:i[0],a=o?n[ae]:n[c];if(!g(a))throw new Error(x(c));var s={keyId:j(c),pattern:a};return r&&(s.searcher=re(a,t)),s}var u={children:[],operator:i[0]};return i.forEach((function(t){var r=n[t];v(r)&&r.forEach((function(t){u.children.push(e(t))}))})),u};return se(e)||(e=le(e)),i(e)}(e,this.options),r=function e(n,r,i){if(!n.children){var o=n.keyId,c=n.searcher,a=t._findMatches({key:t._keyStore.get(o),value:t._myIndex.getValueForItemAtKeyId(r,o),searcher:c});return a&&a.length?[{idx:i,item:r,matches:a}]:[]}for(var s=[],u=0,h=n.children.length;u1&&void 0!==arguments[1]?arguments[1]:{},n=t.getFn,r=void 0===n?I.getFn:n,i=t.fieldNormWeight,o=void 0===i?I.fieldNormWeight:i,c=e.keys,a=e.records,s=new $({getFn:r,fieldNormWeight:o});return s.setKeys(c),s.setIndexRecords(a),s},ye.config=I,function(){ne.push.apply(ne,arguments)}(te),ye},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Fuse=t(); \ No newline at end of file diff --git a/site_libs/quarto-search/quarto-search.js b/site_libs/quarto-search/quarto-search.js new file mode 100644 index 0000000..f5d852d --- /dev/null +++ b/site_libs/quarto-search/quarto-search.js @@ -0,0 +1,1140 @@ +const kQueryArg = "q"; +const kResultsArg = "show-results"; + +// If items don't provide a URL, then both the navigator and the onSelect +// function aren't called (and therefore, the default implementation is used) +// +// We're using this sentinel URL to signal to those handlers that this +// item is a more item (along with the type) and can be handled appropriately +const kItemTypeMoreHref = "0767FDFD-0422-4E5A-BC8A-3BE11E5BBA05"; + +window.document.addEventListener("DOMContentLoaded", function (_event) { + // Ensure that search is available on this page. If it isn't, + // should return early and not do anything + var searchEl = window.document.getElementById("quarto-search"); + if (!searchEl) return; + + const { autocomplete } = window["@algolia/autocomplete-js"]; + + let quartoSearchOptions = {}; + let language = {}; + const searchOptionEl = window.document.getElementById( + "quarto-search-options" + ); + if (searchOptionEl) { + const jsonStr = searchOptionEl.textContent; + quartoSearchOptions = JSON.parse(jsonStr); + language = quartoSearchOptions.language; + } + + // note the search mode + if (quartoSearchOptions.type === "overlay") { + searchEl.classList.add("type-overlay"); + } else { + searchEl.classList.add("type-textbox"); + } + + // Used to determine highlighting behavior for this page + // A `q` query param is expected when the user follows a search + // to this page + const currentUrl = new URL(window.location); + const query = currentUrl.searchParams.get(kQueryArg); + const showSearchResults = currentUrl.searchParams.get(kResultsArg); + const mainEl = window.document.querySelector("main"); + + // highlight matches on the page + if (query !== null && mainEl) { + // perform any highlighting + highlight(escapeRegExp(query), mainEl); + + // fix up the URL to remove the q query param + const replacementUrl = new URL(window.location); + replacementUrl.searchParams.delete(kQueryArg); + window.history.replaceState({}, "", replacementUrl); + } + + // function to clear highlighting on the page when the search query changes + // (e.g. if the user edits the query or clears it) + let highlighting = true; + const resetHighlighting = (searchTerm) => { + if (mainEl && highlighting && query !== null && searchTerm !== query) { + clearHighlight(query, mainEl); + highlighting = false; + } + }; + + // Clear search highlighting when the user scrolls sufficiently + const resetFn = () => { + resetHighlighting(""); + window.removeEventListener("quarto-hrChanged", resetFn); + window.removeEventListener("quarto-sectionChanged", resetFn); + }; + + // Register this event after the initial scrolling and settling of events + // on the page + window.addEventListener("quarto-hrChanged", resetFn); + window.addEventListener("quarto-sectionChanged", resetFn); + + // Responsively switch to overlay mode if the search is present on the navbar + // Note that switching the sidebar to overlay mode requires more coordinate (not just + // the media query since we generate different HTML for sidebar overlays than we do + // for sidebar input UI) + const detachedMediaQuery = + quartoSearchOptions.type === "overlay" ? "all" : "(max-width: 991px)"; + + // If configured, include the analytics client to send insights + const plugins = configurePlugins(quartoSearchOptions); + + let lastState = null; + const { setIsOpen, setQuery, setCollections } = autocomplete({ + container: searchEl, + detachedMediaQuery: detachedMediaQuery, + defaultActiveItemId: 0, + panelContainer: "#quarto-search-results", + panelPlacement: quartoSearchOptions["panel-placement"], + debug: false, + openOnFocus: true, + plugins, + classNames: { + form: "d-flex", + }, + translations: { + clearButtonTitle: language["search-clear-button-title"], + detachedCancelButtonText: language["search-detached-cancel-button-title"], + submitButtonTitle: language["search-submit-button-title"], + }, + initialState: { + query, + }, + getItemUrl({ item }) { + return item.href; + }, + onStateChange({ state }) { + // Perhaps reset highlighting + resetHighlighting(state.query); + + // If the panel just opened, ensure the panel is positioned properly + if (state.isOpen) { + if (lastState && !lastState.isOpen) { + setTimeout(() => { + positionPanel(quartoSearchOptions["panel-placement"]); + }, 150); + } + } + + // Perhaps show the copy link + showCopyLink(state.query, quartoSearchOptions); + + lastState = state; + }, + reshape({ sources, state }) { + return sources.map((source) => { + try { + const items = source.getItems(); + + // Validate the items + validateItems(items); + + // group the items by document + const groupedItems = new Map(); + items.forEach((item) => { + const hrefParts = item.href.split("#"); + const baseHref = hrefParts[0]; + const isDocumentItem = hrefParts.length === 1; + + const items = groupedItems.get(baseHref); + if (!items) { + groupedItems.set(baseHref, [item]); + } else { + // If the href for this item matches the document + // exactly, place this item first as it is the item that represents + // the document itself + if (isDocumentItem) { + items.unshift(item); + } else { + items.push(item); + } + groupedItems.set(baseHref, items); + } + }); + + const reshapedItems = []; + let count = 1; + for (const [_key, value] of groupedItems) { + const firstItem = value[0]; + reshapedItems.push({ + ...firstItem, + type: kItemTypeDoc, + }); + + const collapseMatches = quartoSearchOptions["collapse-after"]; + const collapseCount = + typeof collapseMatches === "number" ? collapseMatches : 1; + + if (value.length > 1) { + const target = `search-more-${count}`; + const isExpanded = + state.context.expanded && + state.context.expanded.includes(target); + + const remainingCount = value.length - collapseCount; + + for (let i = 1; i < value.length; i++) { + if (collapseMatches && i === collapseCount) { + reshapedItems.push({ + target, + title: isExpanded + ? language["search-hide-matches-text"] + : remainingCount === 1 + ? `${remainingCount} ${language["search-more-match-text"]}` + : `${remainingCount} ${language["search-more-matches-text"]}`, + type: kItemTypeMore, + href: kItemTypeMoreHref, + }); + } + + if (isExpanded || !collapseMatches || i < collapseCount) { + reshapedItems.push({ + ...value[i], + type: kItemTypeItem, + target, + }); + } + } + } + count += 1; + } + + return { + ...source, + getItems() { + return reshapedItems; + }, + }; + } catch (error) { + // Some form of error occurred + return { + ...source, + getItems() { + return [ + { + title: error.name || "An Error Occurred While Searching", + text: + error.message || + "An unknown error occurred while attempting to perform the requested search.", + type: kItemTypeError, + }, + ]; + }, + }; + } + }); + }, + navigator: { + navigate({ itemUrl }) { + if (itemUrl !== offsetURL(kItemTypeMoreHref)) { + window.location.assign(itemUrl); + } + }, + navigateNewTab({ itemUrl }) { + if (itemUrl !== offsetURL(kItemTypeMoreHref)) { + const windowReference = window.open(itemUrl, "_blank", "noopener"); + if (windowReference) { + windowReference.focus(); + } + } + }, + navigateNewWindow({ itemUrl }) { + if (itemUrl !== offsetURL(kItemTypeMoreHref)) { + window.open(itemUrl, "_blank", "noopener"); + } + }, + }, + getSources({ state, setContext, setActiveItemId, refresh }) { + return [ + { + sourceId: "documents", + getItemUrl({ item }) { + if (item.href) { + return offsetURL(item.href); + } else { + return undefined; + } + }, + onSelect({ + item, + state, + setContext, + setIsOpen, + setActiveItemId, + refresh, + }) { + if (item.type === kItemTypeMore) { + toggleExpanded(item, state, setContext, setActiveItemId, refresh); + + // Toggle more + setIsOpen(true); + } + }, + getItems({ query }) { + if (query === null || query === "") { + return []; + } + + const limit = quartoSearchOptions.limit; + if (quartoSearchOptions.algolia) { + return algoliaSearch(query, limit, quartoSearchOptions.algolia); + } else { + // Fuse search options + const fuseSearchOptions = { + isCaseSensitive: false, + shouldSort: true, + minMatchCharLength: 2, + limit: limit, + }; + + return readSearchData().then(function (fuse) { + return fuseSearch(query, fuse, fuseSearchOptions); + }); + } + }, + templates: { + noResults({ createElement }) { + const hasQuery = lastState.query; + + return createElement( + "div", + { + class: `quarto-search-no-results${ + hasQuery ? "" : " no-query" + }`, + }, + language["search-no-results-text"] + ); + }, + header({ items, createElement }) { + // count the documents + const count = items.filter((item) => { + return item.type === kItemTypeDoc; + }).length; + + if (count > 0) { + return createElement( + "div", + { class: "search-result-header" }, + `${count} ${language["search-matching-documents-text"]}` + ); + } else { + return createElement( + "div", + { class: "search-result-header-no-results" }, + `` + ); + } + }, + footer({ _items, createElement }) { + if ( + quartoSearchOptions.algolia && + quartoSearchOptions.algolia["show-logo"] + ) { + const libDir = quartoSearchOptions.algolia["libDir"]; + const logo = createElement("img", { + src: offsetURL( + `${libDir}/quarto-search/search-by-algolia.svg` + ), + class: "algolia-search-logo", + }); + return createElement( + "a", + { href: "http://www.algolia.com/" }, + logo + ); + } + }, + + item({ item, createElement }) { + return renderItem( + item, + createElement, + state, + setActiveItemId, + setContext, + refresh + ); + }, + }, + }, + ]; + }, + }); + + window.quartoOpenSearch = () => { + setIsOpen(false); + setIsOpen(true); + focusSearchInput(); + }; + + // Remove the labeleledby attribute since it is pointing + // to a non-existent label + if (quartoSearchOptions.type === "overlay") { + const inputEl = window.document.querySelector( + "#quarto-search .aa-Autocomplete" + ); + if (inputEl) { + inputEl.removeAttribute("aria-labelledby"); + } + } + + // If the main document scrolls dismiss the search results + // (otherwise, since they're floating in the document they can scroll with the document) + window.document.body.onscroll = () => { + setIsOpen(false); + }; + + if (showSearchResults) { + setIsOpen(true); + focusSearchInput(); + } +}); + +function configurePlugins(quartoSearchOptions) { + const autocompletePlugins = []; + const algoliaOptions = quartoSearchOptions.algolia; + if ( + algoliaOptions && + algoliaOptions["analytics-events"] && + algoliaOptions["search-only-api-key"] && + algoliaOptions["application-id"] + ) { + const apiKey = algoliaOptions["search-only-api-key"]; + const appId = algoliaOptions["application-id"]; + + // Aloglia insights may not be loaded because they require cookie consent + // Use deferred loading so events will start being recorded when/if consent + // is granted. + const algoliaInsightsDeferredPlugin = deferredLoadPlugin(() => { + if ( + window.aa && + window["@algolia/autocomplete-plugin-algolia-insights"] + ) { + window.aa("init", { + appId, + apiKey, + useCookie: true, + }); + + const { createAlgoliaInsightsPlugin } = + window["@algolia/autocomplete-plugin-algolia-insights"]; + // Register the insights client + const algoliaInsightsPlugin = createAlgoliaInsightsPlugin({ + insightsClient: window.aa, + onItemsChange({ insights, insightsEvents }) { + const events = insightsEvents.map((event) => { + const maxEvents = event.objectIDs.slice(0, 20); + return { + ...event, + objectIDs: maxEvents, + }; + }); + + insights.viewedObjectIDs(...events); + }, + }); + return algoliaInsightsPlugin; + } + }); + + // Add the plugin + autocompletePlugins.push(algoliaInsightsDeferredPlugin); + return autocompletePlugins; + } +} + +// For plugins that may not load immediately, create a wrapper +// plugin and forward events and plugin data once the plugin +// is initialized. This is useful for cases like cookie consent +// which may prevent the analytics insights event plugin from initializing +// immediately. +function deferredLoadPlugin(createPlugin) { + let plugin = undefined; + let subscribeObj = undefined; + const wrappedPlugin = () => { + if (!plugin && subscribeObj) { + plugin = createPlugin(); + if (plugin && plugin.subscribe) { + plugin.subscribe(subscribeObj); + } + } + return plugin; + }; + + return { + subscribe: (obj) => { + subscribeObj = obj; + }, + onStateChange: (obj) => { + const plugin = wrappedPlugin(); + if (plugin && plugin.onStateChange) { + plugin.onStateChange(obj); + } + }, + onSubmit: (obj) => { + const plugin = wrappedPlugin(); + if (plugin && plugin.onSubmit) { + plugin.onSubmit(obj); + } + }, + onReset: (obj) => { + const plugin = wrappedPlugin(); + if (plugin && plugin.onReset) { + plugin.onReset(obj); + } + }, + getSources: (obj) => { + const plugin = wrappedPlugin(); + if (plugin && plugin.getSources) { + return plugin.getSources(obj); + } else { + return Promise.resolve([]); + } + }, + data: (obj) => { + const plugin = wrappedPlugin(); + if (plugin && plugin.data) { + plugin.data(obj); + } + }, + }; +} + +function validateItems(items) { + // Validate the first item + if (items.length > 0) { + const item = items[0]; + const missingFields = []; + if (item.href == undefined) { + missingFields.push("href"); + } + if (!item.title == undefined) { + missingFields.push("title"); + } + if (!item.text == undefined) { + missingFields.push("text"); + } + + if (missingFields.length === 1) { + throw { + name: `Error: Search index is missing the ${missingFields[0]} field.`, + message: `The items being returned for this search do not include all the required fields. Please ensure that your index items include the ${missingFields[0]} field or use index-fields in your _quarto.yml file to specify the field names.`, + }; + } else if (missingFields.length > 1) { + const missingFieldList = missingFields + .map((field) => { + return `${field}`; + }) + .join(", "); + + throw { + name: `Error: Search index is missing the following fields: ${missingFieldList}.`, + message: `The items being returned for this search do not include all the required fields. Please ensure that your index items includes the following fields: ${missingFieldList}, or use index-fields in your _quarto.yml file to specify the field names.`, + }; + } + } +} + +let lastQuery = null; +function showCopyLink(query, options) { + const language = options.language; + lastQuery = query; + // Insert share icon + const inputSuffixEl = window.document.body.querySelector( + ".aa-Form .aa-InputWrapperSuffix" + ); + + if (inputSuffixEl) { + let copyButtonEl = window.document.body.querySelector( + ".aa-Form .aa-InputWrapperSuffix .aa-CopyButton" + ); + + if (copyButtonEl === null) { + copyButtonEl = window.document.createElement("button"); + copyButtonEl.setAttribute("class", "aa-CopyButton"); + copyButtonEl.setAttribute("type", "button"); + copyButtonEl.setAttribute("title", language["search-copy-link-title"]); + copyButtonEl.onmousedown = (e) => { + e.preventDefault(); + e.stopPropagation(); + }; + + const linkIcon = "bi-clipboard"; + const checkIcon = "bi-check2"; + + const shareIconEl = window.document.createElement("i"); + shareIconEl.setAttribute("class", `bi ${linkIcon}`); + copyButtonEl.appendChild(shareIconEl); + inputSuffixEl.prepend(copyButtonEl); + + const clipboard = new window.ClipboardJS(".aa-CopyButton", { + text: function (_trigger) { + const copyUrl = new URL(window.location); + copyUrl.searchParams.set(kQueryArg, lastQuery); + copyUrl.searchParams.set(kResultsArg, "1"); + return copyUrl.toString(); + }, + }); + clipboard.on("success", function (e) { + // Focus the input + + // button target + const button = e.trigger; + const icon = button.querySelector("i.bi"); + + // flash "checked" + icon.classList.add(checkIcon); + icon.classList.remove(linkIcon); + setTimeout(function () { + icon.classList.remove(checkIcon); + icon.classList.add(linkIcon); + }, 1000); + }); + } + + // If there is a query, show the link icon + if (copyButtonEl) { + if (lastQuery && options["copy-button"]) { + copyButtonEl.style.display = "flex"; + } else { + copyButtonEl.style.display = "none"; + } + } + } +} + +/* Search Index Handling */ +// create the index +var fuseIndex = undefined; +async function readSearchData() { + // Initialize the search index on demand + if (fuseIndex === undefined) { + // create fuse index + const options = { + keys: [ + { name: "title", weight: 20 }, + { name: "section", weight: 20 }, + { name: "text", weight: 10 }, + ], + ignoreLocation: true, + threshold: 0.1, + }; + const fuse = new window.Fuse([], options); + + // fetch the main search.json + const response = await fetch(offsetURL("search.json")); + if (response.status == 200) { + return response.json().then(function (searchDocs) { + searchDocs.forEach(function (searchDoc) { + fuse.add(searchDoc); + }); + fuseIndex = fuse; + return fuseIndex; + }); + } else { + return Promise.reject( + new Error( + "Unexpected status from search index request: " + response.status + ) + ); + } + } + return fuseIndex; +} + +function inputElement() { + return window.document.body.querySelector(".aa-Form .aa-Input"); +} + +function focusSearchInput() { + setTimeout(() => { + const inputEl = inputElement(); + if (inputEl) { + inputEl.focus(); + } + }, 50); +} + +/* Panels */ +const kItemTypeDoc = "document"; +const kItemTypeMore = "document-more"; +const kItemTypeItem = "document-item"; +const kItemTypeError = "error"; + +function renderItem( + item, + createElement, + state, + setActiveItemId, + setContext, + refresh +) { + switch (item.type) { + case kItemTypeDoc: + return createDocumentCard( + createElement, + "file-richtext", + item.title, + item.section, + item.text, + item.href + ); + case kItemTypeMore: + return createMoreCard( + createElement, + item, + state, + setActiveItemId, + setContext, + refresh + ); + case kItemTypeItem: + return createSectionCard( + createElement, + item.section, + item.text, + item.href + ); + case kItemTypeError: + return createErrorCard(createElement, item.title, item.text); + default: + return undefined; + } +} + +function createDocumentCard(createElement, icon, title, section, text, href) { + const iconEl = createElement("i", { + class: `bi bi-${icon} search-result-icon`, + }); + const titleEl = createElement("p", { class: "search-result-title" }, title); + const titleContainerEl = createElement( + "div", + { class: "search-result-title-container" }, + [iconEl, titleEl] + ); + + const textEls = []; + if (section) { + const sectionEl = createElement( + "p", + { class: "search-result-section" }, + section + ); + textEls.push(sectionEl); + } + const descEl = createElement("p", { + class: "search-result-text", + dangerouslySetInnerHTML: { + __html: text, + }, + }); + textEls.push(descEl); + + const textContainerEl = createElement( + "div", + { class: "search-result-text-container" }, + textEls + ); + + const containerEl = createElement( + "div", + { + class: "search-result-container", + }, + [titleContainerEl, textContainerEl] + ); + + const linkEl = createElement( + "a", + { + href: offsetURL(href), + class: "search-result-link", + }, + containerEl + ); + + const classes = ["search-result-doc", "search-item"]; + if (!section) { + classes.push("document-selectable"); + } + + return createElement( + "div", + { + class: classes.join(" "), + }, + linkEl + ); +} + +function createMoreCard( + createElement, + item, + state, + setActiveItemId, + setContext, + refresh +) { + const moreCardEl = createElement( + "div", + { + class: "search-result-more search-item", + onClick: (e) => { + // Handle expanding the sections by adding the expanded + // section to the list of expanded sections + toggleExpanded(item, state, setContext, setActiveItemId, refresh); + e.stopPropagation(); + }, + }, + item.title + ); + + return moreCardEl; +} + +function toggleExpanded(item, state, setContext, setActiveItemId, refresh) { + const expanded = state.context.expanded || []; + if (expanded.includes(item.target)) { + setContext({ + expanded: expanded.filter((target) => target !== item.target), + }); + } else { + setContext({ expanded: [...expanded, item.target] }); + } + + refresh(); + setActiveItemId(item.__autocomplete_id); +} + +function createSectionCard(createElement, section, text, href) { + const sectionEl = createSection(createElement, section, text, href); + return createElement( + "div", + { + class: "search-result-doc-section search-item", + }, + sectionEl + ); +} + +function createSection(createElement, title, text, href) { + const descEl = createElement("p", { + class: "search-result-text", + dangerouslySetInnerHTML: { + __html: text, + }, + }); + + const titleEl = createElement("p", { class: "search-result-section" }, title); + const linkEl = createElement( + "a", + { + href: offsetURL(href), + class: "search-result-link", + }, + [titleEl, descEl] + ); + return linkEl; +} + +function createErrorCard(createElement, title, text) { + const descEl = createElement("p", { + class: "search-error-text", + dangerouslySetInnerHTML: { + __html: text, + }, + }); + + const titleEl = createElement("p", { + class: "search-error-title", + dangerouslySetInnerHTML: { + __html: ` ${title}`, + }, + }); + const errorEl = createElement("div", { class: "search-error" }, [ + titleEl, + descEl, + ]); + return errorEl; +} + +function positionPanel(pos) { + const panelEl = window.document.querySelector( + "#quarto-search-results .aa-Panel" + ); + const inputEl = window.document.querySelector( + "#quarto-search .aa-Autocomplete" + ); + + if (panelEl && inputEl) { + panelEl.style.top = `${Math.round(panelEl.offsetTop)}px`; + if (pos === "start") { + panelEl.style.left = `${Math.round(inputEl.left)}px`; + } else { + panelEl.style.right = `${Math.round(inputEl.offsetRight)}px`; + } + } +} + +/* Highlighting */ +// highlighting functions +function highlightMatch(query, text) { + if (text) { + const start = text.toLowerCase().indexOf(query.toLowerCase()); + if (start !== -1) { + const startMark = ""; + const endMark = ""; + + const end = start + query.length; + text = + text.slice(0, start) + + startMark + + text.slice(start, end) + + endMark + + text.slice(end); + const startInfo = clipStart(text, start); + const endInfo = clipEnd( + text, + startInfo.position + startMark.length + endMark.length + ); + text = + startInfo.prefix + + text.slice(startInfo.position, endInfo.position) + + endInfo.suffix; + + return text; + } else { + return text; + } + } else { + return text; + } +} + +function clipStart(text, pos) { + const clipStart = pos - 50; + if (clipStart < 0) { + // This will just return the start of the string + return { + position: 0, + prefix: "", + }; + } else { + // We're clipping before the start of the string, walk backwards to the first space. + const spacePos = findSpace(text, pos, -1); + return { + position: spacePos.position, + prefix: "", + }; + } +} + +function clipEnd(text, pos) { + const clipEnd = pos + 200; + if (clipEnd > text.length) { + return { + position: text.length, + suffix: "", + }; + } else { + const spacePos = findSpace(text, clipEnd, 1); + return { + position: spacePos.position, + suffix: spacePos.clipped ? "…" : "", + }; + } +} + +function findSpace(text, start, step) { + let stepPos = start; + while (stepPos > -1 && stepPos < text.length) { + const char = text[stepPos]; + if (char === " " || char === "," || char === ":") { + return { + position: step === 1 ? stepPos : stepPos - step, + clipped: stepPos > 1 && stepPos < text.length, + }; + } + stepPos = stepPos + step; + } + + return { + position: stepPos - step, + clipped: false, + }; +} + +// removes highlighting as implemented by the mark tag +function clearHighlight(searchterm, el) { + const childNodes = el.childNodes; + for (let i = childNodes.length - 1; i >= 0; i--) { + const node = childNodes[i]; + if (node.nodeType === Node.ELEMENT_NODE) { + if ( + node.tagName === "MARK" && + node.innerText.toLowerCase() === searchterm.toLowerCase() + ) { + el.replaceChild(document.createTextNode(node.innerText), node); + } else { + clearHighlight(searchterm, node); + } + } + } +} + +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string +} + +// highlight matches +function highlight(term, el) { + const termRegex = new RegExp(term, "ig"); + const childNodes = el.childNodes; + + // walk back to front avoid mutating elements in front of us + for (let i = childNodes.length - 1; i >= 0; i--) { + const node = childNodes[i]; + + if (node.nodeType === Node.TEXT_NODE) { + // Search text nodes for text to highlight + const text = node.nodeValue; + + let startIndex = 0; + let matchIndex = text.search(termRegex); + if (matchIndex > -1) { + const markFragment = document.createDocumentFragment(); + while (matchIndex > -1) { + const prefix = text.slice(startIndex, matchIndex); + markFragment.appendChild(document.createTextNode(prefix)); + + const mark = document.createElement("mark"); + mark.appendChild( + document.createTextNode( + text.slice(matchIndex, matchIndex + term.length) + ) + ); + markFragment.appendChild(mark); + + startIndex = matchIndex + term.length; + matchIndex = text.slice(startIndex).search(new RegExp(term, "ig")); + if (matchIndex > -1) { + matchIndex = startIndex + matchIndex; + } + } + if (startIndex < text.length) { + markFragment.appendChild( + document.createTextNode(text.slice(startIndex, text.length)) + ); + } + + el.replaceChild(markFragment, node); + } + } else if (node.nodeType === Node.ELEMENT_NODE) { + // recurse through elements + highlight(term, node); + } + } +} + +/* Link Handling */ +// get the offset from this page for a given site root relative url +function offsetURL(url) { + var offset = getMeta("quarto:offset"); + return offset ? offset + url : url; +} + +// read a meta tag value +function getMeta(metaName) { + var metas = window.document.getElementsByTagName("meta"); + for (let i = 0; i < metas.length; i++) { + if (metas[i].getAttribute("name") === metaName) { + return metas[i].getAttribute("content"); + } + } + return ""; +} + +function algoliaSearch(query, limit, algoliaOptions) { + const { getAlgoliaResults } = window["@algolia/autocomplete-preset-algolia"]; + + const applicationId = algoliaOptions["application-id"]; + const searchOnlyApiKey = algoliaOptions["search-only-api-key"]; + const indexName = algoliaOptions["index-name"]; + const indexFields = algoliaOptions["index-fields"]; + const searchClient = window.algoliasearch(applicationId, searchOnlyApiKey); + const searchParams = algoliaOptions["params"]; + const searchAnalytics = !!algoliaOptions["analytics-events"]; + + return getAlgoliaResults({ + searchClient, + queries: [ + { + indexName: indexName, + query, + params: { + hitsPerPage: limit, + clickAnalytics: searchAnalytics, + ...searchParams, + }, + }, + ], + transformResponse: (response) => { + if (!indexFields) { + return response.hits.map((hit) => { + return hit.map((item) => { + return { + ...item, + text: highlightMatch(query, item.text), + }; + }); + }); + } else { + const remappedHits = response.hits.map((hit) => { + return hit.map((item) => { + const newItem = { ...item }; + ["href", "section", "title", "text"].forEach((keyName) => { + const mappedName = indexFields[keyName]; + if ( + mappedName && + item[mappedName] !== undefined && + mappedName !== keyName + ) { + newItem[keyName] = item[mappedName]; + delete newItem[mappedName]; + } + }); + newItem.text = highlightMatch(query, newItem.text); + return newItem; + }); + }); + return remappedHits; + } + }, + }); +} + +function fuseSearch(query, fuse, fuseOptions) { + return fuse.search(query, fuseOptions).map((result) => { + const addParam = (url, name, value) => { + const anchorParts = url.split("#"); + const baseUrl = anchorParts[0]; + const sep = baseUrl.search("\\?") > 0 ? "&" : "?"; + anchorParts[0] = baseUrl + sep + name + "=" + value; + return anchorParts.join("#"); + }; + + return { + title: result.item.title, + section: result.item.section, + href: addParam(result.item.href, kQueryArg, query), + text: highlightMatch(query, result.item.text), + }; + }); +} diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..698ab1e --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,139 @@ + + + + https://FlorianFuerrutter.github.io/genQC/printing.html + 2023-11-10T20:16:28.232Z + + + https://FlorianFuerrutter.github.io/genQC/inference/infer_misc.html + 2023-11-10T20:16:27.480Z + + + https://FlorianFuerrutter.github.io/genQC/inference/infer_gate_hist.html + 2023-11-10T20:16:26.744Z + + + https://FlorianFuerrutter.github.io/genQC/dataset/qc_dataset.html + 2023-11-10T20:16:26.060Z + + + https://FlorianFuerrutter.github.io/genQC/dataset/mixed_cached_qc_dataset.html + 2023-11-10T20:16:25.396Z + + + https://FlorianFuerrutter.github.io/genQC/scheduler/scheduler.html + 2023-11-10T20:16:24.716Z + + + https://FlorianFuerrutter.github.io/genQC/scheduler/scheduler_ddim.html + 2023-11-10T20:16:24.068Z + + + https://FlorianFuerrutter.github.io/genQC/util.html + 2023-11-10T20:16:23.364Z + + + https://FlorianFuerrutter.github.io/genQC/models/frozen_open_clip.html + 2023-11-10T20:16:22.620Z + + + https://FlorianFuerrutter.github.io/genQC/models/unet_qc.html + 2023-11-10T20:16:21.908Z + + + https://FlorianFuerrutter.github.io/genQC/models/config_model.html + 2023-11-10T20:16:21.212Z + + + https://FlorianFuerrutter.github.io/genQC/pipeline/pipeline.html + 2023-11-10T20:16:20.548Z + + + https://FlorianFuerrutter.github.io/genQC/index.html + 2023-11-10T20:16:19.868Z + + + https://FlorianFuerrutter.github.io/genQC/examples/hello_circuit.html + 2023-11-10T20:16:18.532Z + + + https://FlorianFuerrutter.github.io/genQC/metrics.html + 2023-11-10T20:16:17.556Z + + + https://FlorianFuerrutter.github.io/genQC/platform/qcircuit_metrics.html + 2023-11-10T20:16:16.792Z + + + https://FlorianFuerrutter.github.io/genQC/platform/simulation/qcircuit_sim.html + 2023-11-10T20:16:16.084Z + + + https://FlorianFuerrutter.github.io/genQC/platform/qcircuit_evaluation.html + 2023-11-10T20:16:15.308Z + + + https://FlorianFuerrutter.github.io/genQC/platform/qcircuit_util.html + 2023-11-10T20:16:16.440Z + + + https://FlorianFuerrutter.github.io/genQC/platform/qcircuit_dataset_construction.html + 2023-11-10T20:16:17.188Z + + + https://FlorianFuerrutter.github.io/genQC/examples/editing_and_masking.html + 2023-11-10T20:16:18.080Z + + + https://FlorianFuerrutter.github.io/genQC/examples/unitary_compilation.html + 2023-11-10T20:16:19.056Z + + + https://FlorianFuerrutter.github.io/genQC/pipeline/diffusion_pipeline.html + 2023-11-10T20:16:20.216Z + + + https://FlorianFuerrutter.github.io/genQC/pipeline/diffusion_pipeline_special.html + 2023-11-10T20:16:20.884Z + + + https://FlorianFuerrutter.github.io/genQC/models/unitary_encoder.html + 2023-11-10T20:16:21.536Z + + + https://FlorianFuerrutter.github.io/genQC/models/transformers.html + 2023-11-10T20:16:22.252Z + + + https://FlorianFuerrutter.github.io/genQC/models/layers.html + 2023-11-10T20:16:22.984Z + + + https://FlorianFuerrutter.github.io/genQC/config_loader.html + 2023-11-10T20:16:23.744Z + + + https://FlorianFuerrutter.github.io/genQC/scheduler/scheduler_ddpm.html + 2023-11-10T20:16:24.400Z + + + https://FlorianFuerrutter.github.io/genQC/dataset/dataset_helper.html + 2023-11-10T20:16:25.076Z + + + https://FlorianFuerrutter.github.io/genQC/dataset/config_dataset.html + 2023-11-10T20:16:25.720Z + + + https://FlorianFuerrutter.github.io/genQC/dataset/cached_qc_dataset.html + 2023-11-10T20:16:26.416Z + + + https://FlorianFuerrutter.github.io/genQC/inference/infer_compilation.html + 2023-11-10T20:16:27.148Z + + + https://FlorianFuerrutter.github.io/genQC/inference/infer_srv.html + 2023-11-10T20:16:27.852Z + + diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..66ccc49 --- /dev/null +++ b/styles.css @@ -0,0 +1,37 @@ +.cell { + margin-bottom: 1rem; +} + +.cell > .sourceCode { + margin-bottom: 0; +} + +.cell-output > pre { + margin-bottom: 0; +} + +.cell-output > pre, .cell-output > .sourceCode > pre, .cell-output-stdout > pre { + margin-left: 0.8rem; + margin-top: 0; + background: none; + border-left: 2px solid lightsalmon; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.cell-output > .sourceCode { + border: none; +} + +.cell-output > .sourceCode { + background: none; + margin-top: 0; +} + +div.description { + padding-left: 2px; + padding-top: 5px; + font-style: italic; + font-size: 135%; + opacity: 70%; +} diff --git a/util.html b/util.html new file mode 100644 index 0000000..8f95302 --- /dev/null +++ b/util.html @@ -0,0 +1,926 @@ + + + + + + + + + +genQC - Util + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + +
    + + + +
    + +
    +
    +

    Util

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

    Miscellaneous util code.

    +
    +

    Memory utils

    +
    +

    source

    +
    +

    MemoryCleaner

    +
    +
     MemoryCleaner ()
    +
    +

    CLass with static methods to clean (gpu) memory.

    +
    +
    +
    +

    Python utils

    +
    +

    source

    +
    +

    virtual

    +
    +
     virtual (f:<built-infunctioncallable>)
    +
    +

    Decorator to enfore subclass method implementations and raises error at method calls.

    +
    +
    class A():
    +    def p1(self, x): print("A p1", x)
    +    
    +    @virtual
    +    def p2(self, x): pass
    + 
    +class B(A):
    +    def p3(self, x): print("B p2", x)
    +    
    +b = B()
    +b.p1(1)
    +try:
    +    b.p2(1)
    +except BaseException as e:
    +    print("Exception that would be raised: ", e)
    +
    +
    A p1 1
    +Exception that would be raised:  Virtual method p2 needs to be implemented by subclass B.
    +
    +
    +
    +
    +
    +

    Torch utils

    +
    +

    source

    +
    +

    DataLoaders

    +
    +
     DataLoaders (*dls:list[torch.utils.data.dataloader.DataLoader])
    +
    +

    Combines train and valid DataLoader.

    +
    +

    source

    +
    +
    +

    infer_torch_device

    +
    +
     infer_torch_device ()
    +
    +
    +
    infer_torch_device()
    +
    +
    [INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul.
    +
    +
    +
    device(type='cuda')
    +
    +
    +
    +

    source

    +
    +
    +

    number_of_paramters

    +
    +
     number_of_paramters (model:torch.nn.modules.module.Module)
    +
    +
    +

    source

    +
    +
    +

    scale_tensor

    +
    +
     scale_tensor (t:torch.Tensor)
    +
    +

    [-1,1] to [0,1]

    +
    +

    source

    +
    +
    +

    normalize_tensor

    +
    +
     normalize_tensor (t:torch.Tensor)
    +
    +

    [0,1] to [-1,1]

    +
    +
    +
    +

    Plot utils

    +
    +

    source

    +
    +

    saveSvg

    +
    +
     saveSvg (filename)
    +
    +
    +

    source

    +
    +
    +

    savePng

    +
    +
     savePng (filename)
    +
    +
    +

    source

    +
    +
    +

    savePdf

    +
    +
     savePdf (filename)
    +
    +
    +

    source

    +
    +
    +

    plot_image_grid

    +
    +
     plot_image_grid (imgs:Union[list,<built-infunctionarray>,torch.Tensor],
    +                  labels:list=None, labels_fs='medium', figsize=(16, 4),
    +                  cols=8, cmap='Greys', show_colorbar=False,
    +                  **imshow_kwargs)
    +
    +
    +
    n = 6
    +plot_image_grid(torch.randn((n,28,28,1)), [f"label {i}" for i in range(n)])
    +
    +

    +
    +
    +
    +

    source

    +
    +
    +

    latents_to_pil

    +
    +
     latents_to_pil (latents:torch.Tensor, channels=None)
    +
    + + +
    +
    + + Back to top
    + +
    + + + + \ No newline at end of file diff --git a/util_files/figure-html/cell-15-output-1.png b/util_files/figure-html/cell-15-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..89279760bdee42f418ae97e00f46fcde6dc616f9 GIT binary patch literal 26947 zcmc(Ic~sNqwzjQpt+m$ETJ=~Q>V)C|)krKFz&Z~EYjHvuT1|qQAZkPiV{NO}Dk`%f z8fw*8D+UcJgwZ-6Q%DshMj2EzQ9%YHAToW=e$(D{&bQY6<6HNheqHOVb1Vo+e($^Y zv!7v~Jzu)d@B7{-@Ac@>qwm56bH3`)rVfDDH*S$BQWz%=>ngNmncJUl9J4s#{K13&uwT)mBXM5TCqiA4W7@C3j@$dwPnz;GYwk7V zb$9t4c>Deb9RIshPp?T=Kh`M>TOSt*9mVD6n`*9i8`r&&F`Iw*^Bc2f%}SA)OCwvx z^{D@B-Szz!4jw!h*|wzguv2&4xklG->D73qiK3e8jAgHzYyA|{0xp&wnX$%Pdc^wDDyV`Zw(g_|c9-#h!wm6Xj7E=RU}-lP7@;)F?QO6SnK_=5lQyBAiZtePyo zck#?n*N6`Nu)dduj`qzBYk77$_3qsZV*h&={aXq~9k?^<0B^0utnW^n-*fYBr?6LN zb6!2%Tb|;X<{J8OkDy-*3KlG0wCJ@t@}vI!yX&Iq^~HSpSwu%Ly~nw8=B#>fdFS)r zdksJDanil>!zo@=;{rWxp2``}6{R3GZ<-L0ZU7QhkCL^Tzw@Uod7mtfu z1M=SawnREsJz&SoO9LHzB%v*J=S(_9cXU9%nYJ0R<$FfV-nHuY@7_M+n-?K(I`c-s zoS>Vlx3s+wPFVWO4+AEwD5=NQzo(V@iNf|~l)cp$=`N8-zP^8HM|$ULoVK2#ff?JL ze)Z`;-hC^<-usi!(k@-y)4$tz{P^*=E?>U=nF*7fs^UVWz0(se`c$Pgq zHGKN1hRj&QPdJplaDfKA+qZAuM+MQNJ`

    (3i7r^ed74q+3CKh;-Yr$34W77b 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 Fe*ksA*Uta| literal 0 HcmV?d00001

    + + +
+ + +
+ + +