diff --git a/docs/404.html b/docs/404.html index aa5035b12..27f5b6dd0 100644 --- a/docs/404.html +++ b/docs/404.html @@ -4,8 +4,8 @@ Page Not Found | Izanami - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

diff --git a/docs/assets/js/1756af0d.3671f6d6.js b/docs/assets/js/1756af0d.251c4d34.js similarity index 90% rename from docs/assets/js/1756af0d.3671f6d6.js rename to docs/assets/js/1756af0d.251c4d34.js index e75a9ffb6..3fe2f2a0f 100644 --- a/docs/assets/js/1756af0d.3671f6d6.js +++ b/docs/assets/js/1756af0d.251c4d34.js @@ -1 +1 @@ -"use strict";(self.webpackChunkizanami_documentation=self.webpackChunkizanami_documentation||[]).push([[3418],{4297:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>I,contentTitle:()=>J,default:()=>Y,frontMatter:()=>W,metadata:()=>L,toc:()=>z});var c,a,l,n,r,M,o,d,s,w=i(5893),x=i(1151),m=i(1361),D=i(7294);function A(){return A=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:i,...w}=e;return D.createElement("svg",A({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 947.268 647.939",width:1894.536,height:1295.878,"aria-labelledby":i},w),t?D.createElement("title",{id:i},t):null,"eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1bW1PbyFx1MDAxMn7nV7g4r2F2pue+L6dcdTAwMDImQMItXHUwMDA0SLJnt7aELbBcdTAwMGVCMpa4mK3899MjwJIlyzbBXHUwMDA2c3ZVLrCl0Uxrpr/ur3tafy01XHUwMDFhy2m/6y//2lj2b1teXHUwMDE4tHvezfI7d/7a7yVBXHUwMDFj4SXIfifxVa+VteykaTf59Zdf8jtIK764v8tcdTAwMGb9XHUwMDBiP0pcdTAwMTNs91x1MDAxZvzdaPyV/S2M01x1MDAwZbyLOGpnzbNcdTAwMGL5QFxmoHx2N46yQZlgwCXn2lx1MDAwZVpcdTAwMDRJXHUwMDEzR0v9Nl4+9cLEz6+4U8uwXHUwMDFlJSv+nrCbcXhcdTAwMTd/+tY/XHUwMDEyN0E+7GlcdTAwMTCGX9J+mFx0lcT4IPm1JO3F5/7XoJ12XHUwMDFln79wvu6uXnx11on8xD08XHUwMDFinI27XitI++5cdTAwMWOlg7NedJb1kZ+5xV+WW8JcdTAwMTRXVlkhXGbIwcXsdsYk0UIqJbmQVEFZrrU4jHtOrn8xq1lcdTAwMGJyyU681vlcdTAwMTmKXHUwMDE3tfM2p9mRt7l5fFrOXHQvXHUwMDFlYtCk41x1MDAwN2ed1LVhlmjJqVFcdTAwMDKHwmXJJfGz9WCWgVIoRb5cXG787lY704w/8lXoeVx1MDAxN/6WuyW6XG7D4lRG7YepfNSgXFyH4OHMj/xcdTAwMDFd+/Wy7lx1MDAxNfVvSFx1MDAwN1P/Nlx1MDAxZDx5QWV+27lsr653Op917+jrl61+5889tro8aPfj3ehu729utb7vXHUwMDFld0+/JZ3VpHcjdlx1MDAwZSRnN8OjPI7v9XrxzbT9qlx1MDAwYlxi9d7J9vbd973e7blvgV7uT9fvw7d8uq+6be9cdTAwMWUxTDNqpNFcdTAwMTREQc/CIDovr0VcdTAwMTi3znOQLVx1MDAxNVx1MDAwNK5ge2heXHUwMDBiwOamXHUwMDE216jpVFx1MDAxOU7Z1LhcdTAwMWW9SFx1MDAwYo1rRlx1MDAxOSXKXHUwMDAx21x1MDAwMOLbUlNCtjGEXHUwMDE5brGBpHjIuSDbOlx1MDAxOfC4N6WSqSqwtSwjmVx1MDAwYjS6XGbNzvOBPHShgthZKmkuVVx1MDAxY6VfgrvMaNChs1x1MDAxZryLIOxcdTAwMGataKa9OIFbSeP36NT30quej9/8yDtcdP1249/LQy3fh8FZlOFcdTAwMWWfwO9ccql9XHUwMDFhoGdcdTAwMWM0uFxi2m1UikGDXHUwMDE2XHUwMDBl71x1MDAwNZHf25rGT8W94CyIvPAwl+5Rtlx1MDAxMZLh3Pibj6vJXGLIsXi9t1x1MDAxNyNcdTAwMDArhSifXHUwMDFkIFYqYOhcdTAwMTX01IBcdTAwMWRvXHUwMDE4X1x1MDAwMbB2XCJemeZEWEXBclx1MDAwZTJ/1P49S5FcdTAwMGVI6KyNlMaALomVI1x1MDAxMU6tL8TPoZVRIFRcYmqp1ZqjgVx1MDAxY+GHmZKEolx1MDAxZrZMXCJbsEZUXHUwMDFkMVx1MDAxM0ppLV/NXHUwMDExj4E1XHUwMDFhOy1NUXWnhXWSer10NYjaQXQ2LNhcdTAwMDP/nFx1MDAwNlmZIWhdOSlXKE61loIzXHUwMDAzVjFpXHUwMDE1h0KzM6/rpK48rFx1MDAxZrWnXHUwMDEwXCI4h32WfvxcdTAwMWNs362mx+tBbz9sLld65yiBotQwQHdcIkFwPUJOSnDikP5RQI1Ar4GUsFwiVOgl6Vp8cVx1MDAxMaQ42ftxXHUwMDEwpeVJzWbvvYN+x/cqK45cdTAwMGZVvFa2XHUwMDExXdfjMMXKvzVyXHUwMDFjZT9cdTAwMDbf/3g3srVhXHUwMDA0fVx1MDAwYpWUXHUwMDAzUoChZ27gjChprFx1MDAwNoFPK62lVEzqrlx1MDAxZTLZ1VxuWPL+lor/n8puXG6OtGQrOdNg0HnlXHIm2sr47HBn7aDJr06aQeez+rZ2vFx1MDAwYottK0FcdTAwMWFimdKGcyWkNnkv99zGXHUwMDAyXHUwMDAxY4yWgNyHSlVcdTAwMTJsNtaSXHUwMDAzYS5YkYxxXHSS5+YuXHUwMDBmWircXHUwMDA2KIZUXHUwMDE4vlx1MDAxNMzmi5JcdTAwMWJqMEhcdTAwMTKcKp5P6bzJzXc/qeExoX+ajmExadytozBDwpb5ytCAM6InQrDy2Vx1MDAwMT3hlFx1MDAxYqGLrnBcdTAwMTLmxlx1MDAwN1iLiDnLMV5QXG6UlsqI0Vx1MDAwNFx1MDAwNdsogeGEtfX8xKeccfaT0YQgXHUwMDBlPkh/jDZcdTAwMTZd+lxiesJcdTAwMDQxXFxcdTAwMDBohW0whqhGXHUwMDE3klx1MDAwM0U7PVx1MDAwM1x1MDAwMM6Fndii5r5cdTAwMTY7Qa/PgGqca4aSIU9RhUbP4iY7zVx1MDAxZC43Vz59+66PzjdiuDW+ulx1MDAxZC1cdTAwMDJFcoLmVWlcXCxcXE90n1UhNDFcdTAwMTjpKlx0XHUwMDE2l5tLId80OVmp1XB3WGKstFKhXHLHsFx1MDAxZKid2J1cdTAwMTGEWytBo4tSYHIwuKNcbpUnkpOe30rvjcUohjKGolxiVC75lLzqeKVZyPyLXHUwMDA2RdDOICe0hlx1MDAxOVx1MDAwNbm5ye7nyGA4R1KoLddKSl5cdTAwMTJsNlx1MDAwNlx1MDAxM2eZXGYypvhlRPol01x1MDAwMiZcdTAwMWU/spBcdTAwMTV7NJgopstcdTAwMWblNn2GXHUwMDA285FcdTAwMTDPPK9qt3zvtHeysfNx66Cz0kzuPkfnL5H/XHUwMDFj2+/Kp5Om+XquvKOweaM6yUdxSO/eVl5cdTAwMTXGbJhotNiCXG47PVx1MDAwZlx1MDAxYb1Ki1xybCGdZ1JcdTAwMTSJXHUwMDBlRlx1MDAxZbZEhFx1MDAwNOVcdTAwMDRcbjsm82FCwCThLrGKq85w/Y2pXCK7XHUwMDFhfDCnXCLoQfjfKLP64SFxXHUwMDE5JI0oTlx1MDAxYl4rXHKu/Zpw5Llp1Vx0bqpcdTAwMWOmTFx1MDAxMO1pgUstXmvDXHUwMDE2pHWOXHUwMDFjiFx1MDAxYzqT0HpwvN47/vP91rn6mFxcXHUwMDFmNu0+xr7fXHUwMDE2OmpBykNcdTAwMDDjM21cdTAwMTXSJl1IMT8kXG5cdTAwMDTR0iCEUCmpXHUwMDE2c1x1MDAwMisn1iVcbkAgj+WaXHUwMDE39lrGZVxutJFWWZY/9/99omA3ftk8QXG8p6FtTEVcdTAwMDEqUlx1MDAxZOKk1lx1MDAxYVx1MDAxZKR9QkHB2EzuQvpHXHUwMDE3MFx1MDAxMrBW4Idxi56yxHwtJ1x1MDAxMjhigVx1MDAwMVx1MDAxOHSXtZh7zsYjoo1QjFx0lUTM4ZdRyTnFiC2WXHUwMDE0VFx1MDAxMKiEXHUwMDE2is6F9/50PcG8Nv4n8enw/cbOxiexu3HbOlpb+TPdV3diY+o6hVx1MDAwM9DR5vX5bnfztnUl4p2Tzfi3f/j0vX+uzytcdTAwMDJcdTAwMDaHlksxvb1cdTAwMTi9SottL4BqwqhGm4D+TtlypCyMJpRpwOUwQ6VBszRcdTAwMTeMXHUwMDBiXCKyyiMuqUTHO2Lns1qowNBHovWAWYTGb4VPN2M/acSR34hPXHUwMDFiv0dpx2+gw21cdTAwMDcp6i3+vvDSVmd+ZVx1MDAwYuO9Ydm9XHUwMDE3RVx1MDAxZFx1MDAxNrRcIuaMNlx0dD3bZoaDVJzrfKYnbsyNtZqLSLeZXHUwMDEwjLhcdTAwMWFcdTAwMDWMSFx1MDAxNVx1MDAxN6BLvl9cdTAwMDJcdTAwMTCdJZrAKs2g3vc/Z2POWGKtQnBcbuBIQMSI2NgywjD+0VZQXHRmSJBcdTAwMDdouy1Us2i7XHUwMDA0zyTl0+5cdTAwMTJMKlx1MDAxZijWMGgqXHUwMDE1gMLJXHUwMDE2XHUwMDE0f9hCs/tcdTAwMTQ98jDKlWKo+i7T/JPbXHUwMDA2bS/YS1x1MDAwZU7ew9rK+lx1MDAxZbuOXHUwMDA1P+zdjJLJiYS8zyVnLFPcXGJcdTAwMThRViEwIFNcdTAwMWFcdChFLUBcdTAwMTVcdTAwMTBcdTAwMTWh3tKugUFQMeXyblx1MDAwNrSr9SvezYmmfPBRVvKJ3dXBx1x1MDAxZFx1MDAxNeDkvS1cdTAwMTX/P9l0KlZcdTAwMWI2MYnhs0QwTl//NZ5cdTAwMTgupOlk1Fx1MDAxMmms4I7zof5WTCdGVeBoXHUwMDEyzkQhgpztdlx1MDAwMXN7vFS79eV2ZLmmK3hcdTAwMTHKulxyXGZnXCItrbBcIuG2pqidRfnm29tgndZ0UlwiqKLIeNHFoF00XHUwMDA1XG5XsJxu245pvGrQUCla3dyc9ZYrQppaaykwLYTAXHUwMDAwuGo7XHUwMDE5QfduXFz5lOKubsxWhHpLtnNcdTAwMDU1g+S2k2LEX7xfWuSCdvDhcmJ/9Vx1MDAxOMouXHUwMDBiTqCQl9BPNJ91UaSor3bnOJSrMHxcdTAwMDLvVNur/e+X9LLr71x1MDAxZXtcdTAwMWJh/7ZcdTAwMTP3XHUwMDE32niiNydcbi2OYlxmnVx1MDAxNv4r2U6JXHUwMDFl0rhcYlx1MDAxMldcdTAwMTn1u/4tlldI82Loa5Gk0Fx1MDAxOVTL/pPnfdCcmeV5x5Y4XHUwMDAwq61YR1tcdTAwMDLSbbVNXHK68Vx1MDAwNHcxMzfI+Fx0d6+XMG2U0KaUuVFIWdDlupJaylxy1/MpWp9JjYNcdTAwMDJcZlx1MDAxNtDtzYWzzK3GwWzoXHUwMDBm/uVcdNDWYT8+WO9cXFx1MDAxZtxsfX2BnOyjq6onWi/0jldevV3Zalx1MDAwMXAvXHSa6VOnoydzwVx1MDAwMSgocaVUyqDnXHUwMDAzxUsxXHUwMDAzhrjEbTkpZGpcZkT9K17PemlcdTAwMDRcdTAwMDdR7lxyMqRcdTAwMThcXLpXdaZxe0y7Slx1MDAwNPQ+r+T2XrlcdTAwMTRhrmVcYlx1MDAxM1xcyZgyhDmVINRWXHUwMDAyMio1Olx1MDAxMFDT1yB80CdHfOe/l3x9Y3tNNrfvZLpyvNDkXHUwMDE0/VxyXHUwMDA2VkJbdIXAOaWlXCJcdTAwMDRhgChDXeaGXHUwMDFiauo3OF78ZVx1MDAwNaal4Uqje//7cNOFfFlh6cHZLnvd7pdcdTAwMTTnZ8Azlq9cdTAwMDP/ZrVeXHUwMDExllx1MDAxZeDqgOFn9OTH0o//XHUwMDAxVlTb5SJ9",c||(c=D.createElement("defs",null,D.createElement("style",null,'@font-face{font-family:"Virgil";src:url(https://excalidraw.com/Virgil.woff2)}@font-face{font-family:"Cascadia";src:url(https://excalidraw.com/Cascadia.woff2)}@font-face{font-family:"Assistant";src:url(https://excalidraw.com/Assistant-Regular.woff2)}'))),a||(a=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M369.213 37.5c16.32 17.57 39.09 36.43 57.83 55 31.98 28.07 31.61 26.43 0 55-15 16.15-38.23 33.56-57.83 54.75-30.98 30.55-27.62 28.68-58.5 0-19.22-20.04-32.3-32.87-58.5-54.75-31.6-24.46-26.82-24.81 0-55 17.84-14.61 32.4-32.85 58.5-55 31.89-27.44 31.03-27.51 58.5 0",strokeWidth:0,fill:"#fff"}),D.createElement("path",{d:"M369.213 37.5c23.41 21.28 43.04 38.95 57.83 55m-57.83-55c11.35 12.2 23.41 23.3 57.83 55m0 0c28.26 25.55 28.83 27.39 0 55m0-55c29.74 29.25 30.42 29.71 0 55m0 0c-17.68 16.63-34.56 32.86-57.83 54.75m57.83-54.75c-15.32 13.61-29.51 28.7-57.83 54.75m0 0c-30.44 26.48-27.5 27.89-58.5 0m58.5 0c-29.9 25.94-31.27 26.52-58.5 0m0 0c-10.99-11.16-26.8-23.51-58.5-54.75m58.5 54.75c-13.27-14.39-27.9-26.62-58.5-54.75m0 0c-28.22-27.34-27.54-28.1 0-55m0 55c-28.88-25.66-30.28-26.75 0-55m0 0c14.33-14.87 26.62-27.86 58.5-55m-58.5 55c14.54-12.77 29.66-28.49 58.5-55m0 0c30.33-26.39 29.61-27.96 58.5 0m-58.5 0c31.33-26.59 27.43-28.28 58.5 0",stroke:"#1971c2",strokeWidth:2,fill:"none"}))),D.createElement("text",{x:45.333,y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",textAnchor:"middle",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(294.463 82.438)"},"Is "),D.createElement("text",{x:45.333,y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",textAnchor:"middle",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(294.463 82.438)"},"feature "),D.createElement("text",{x:45.333,y:67.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",textAnchor:"middle",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(294.463 82.438)"},"enabled ?"),l||(l=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M458.155 119.531c13.58.58 64.98-24.36 81.67 3.23 16.69 27.58 15.1 135.22 18.45 162.27m-101.12-166.74c13.39.76 64.9-22.44 82.15 5.57 17.24 28.02 17.78 135.46 21.31 162.52",stroke:"#2f9e44",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}),D.createElement("path",{d:"M550.455 263.541c3.19 10.16 6.41 15.92 10.16 22.84m-10.16-22.84c3.48 7.68 5.35 13.75 10.16 22.84M567.515 262.361c-3.45 10.74-6.86 16.96-6.9 24.02m6.9-24.02c-1.72 8.05-5.06 14.48-6.9 24.02",stroke:"#2f9e44",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}))),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#2f9e44",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(542.716 86.543)",strokeOpacity:.9,fillOpacity:.9},"Yes"),n||(n=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M222.906 120.138c-15.58 1.82-80.82-9.58-95.12 9.53-14.3 19.11 7.83 87.45 9.33 105.16m84.82-115.63c-15.69 2.1-80.88-7.58-95.18 11.92-14.31 19.49 7.7 87.91 9.36 105.05",stroke:"#e03131",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}),D.createElement("path",{d:"M123.016 214.878c3.29 4.77 5.85 9.45 13.1 21.29m-13.1-21.29c3.63 5.88 8.53 12.11 13.1 21.29",stroke:"#e03131",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}),D.createElement("path",{d:"M139.766 211.428c-.8 5.74-2.3 11.26-3.65 24.74m3.65-24.74c-1.48 7.09-1.66 14.36-3.65 24.74",stroke:"#e03131",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}))),r||(r=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M38.7 252.593c81.6 4.25 153.1 2.54 195.68 0 21.87 1.22 26.02 11.51 28.71 28.7 2.51 11.92-3.08 27.1 0 57.41-2.23 22.42-12.29 29.34-28.71 28.7-68.01-.27-137.53.61-195.68 0-17.11-.04-26.31-7.91-28.7-28.7 3.04-12.85 2.45-28.37 0-57.41 3.17-18.19 10.97-26.78 28.7-28.7",strokeWidth:0,fill:"#fff"}),D.createElement("path",{d:"M38.7 252.593c76.88-2.92 148.59-.18 195.68 0m-195.68 0c75.54-.89 153.46-.25 195.68 0m0 0c19.41-.18 30.5 11.07 28.71 28.7m-28.71-28.7c18.86-.48 26.9 8.84 28.71 28.7m0 0c.34 19.48.66 35.56 0 57.41m0-57.41c.38 19.42.68 39.69 0 57.41m0 0c1.51 21.06-11.03 28.53-28.71 28.7m28.71-28.7c.21 17.82-7.3 26.57-28.71 28.7m0 0c-67.1.9-132.59-2.73-195.68 0m195.68 0c-65.88-1.17-130.73.28-195.68 0m0 0c-19.31.07-27.92-8.7-28.7-28.7m28.7 28.7c-20.64-1.87-30.07-11.73-28.7-28.7m0 0c.36-21.44 1.19-41.45 0-57.41m0 57.41c-.9-19.29-.63-40.4 0-57.41m0 0c-.42-17.51 8.41-28.34 28.7-28.7m-28.7 28.7c.47-20.94 9.18-30.63 28.7-28.7",stroke:"#e03131",strokeWidth:2,fill:"none"}))),D.createElement("text",{x:107.683,y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#e03131",textAnchor:"middle",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(28.86 297.5)"},"Feature is not active"),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#e03131",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(139.012 89.012)",strokeOpacity:.9,fillOpacity:.9},"No"),M||(M=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M600.849 320.528c33.19 24.64 66.75 55.44 81.6 65.5 41.53 35.6 44.95 36.07 0 65.5-18.02 18.24-44.35 36.75-81.6 65.48-44.44 33.16-43.75 29.99-83.5 0-16.52-16.15-42.04-31.86-83.5-65.48-44.58-32.82-43.56-33.78 0-65.5 28.43-22.17 57.72-44.85 83.5-65.5 44.56-33.54 39.48-30.14 83.5 0",strokeWidth:0,fill:"#fff"}),D.createElement("path",{d:"M600.849 320.528c18.95 16.5 35.11 31.14 81.6 65.5m-81.6-65.5c30.93 25.11 61.91 48.88 81.6 65.5m0 0c42.03 33.12 40.49 31.32 0 65.5m0-65.5c43.84 34.37 43.71 33.65 0 65.5m0 0c-22.39 19.8-47.39 37.37-81.6 65.48m81.6-65.48c-23.36 19.79-47.06 39.13-81.6 65.48m0 0c-40.99 31.7-43.1 32.33-83.5 0m83.5 0c-40.23 34.01-40.37 33.02-83.5 0m0 0c-21.01-16.82-41.62-33.78-83.5-65.48m83.5 65.48c-20.52-15.72-39.57-30.47-83.5-65.48m0 0c-40.85-33.73-40.43-32.16 0-65.5m0 65.5c-39.66-33.71-39.95-31.75 0-65.5m0 0c32.17-26.19 62.01-47.29 83.5-65.5m-83.5 65.5c23.52-16.96 43.95-35.02 83.5-65.5m0 0c41.06-31.52 42.05-31.12 83.5 0m-83.5 0c42.52-33.68 40.29-32.77 83.5 0",stroke:"#1971c2",strokeWidth:2,fill:"none"}))),D.createElement("text",{x:67.217,y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",textAnchor:"middle",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(490.907 381.272)"},"Does one of "),D.createElement("text",{x:67.217,y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",textAnchor:"middle",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(490.907 381.272)"},"the condition "),D.createElement("text",{x:67.217,y:67.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",textAnchor:"middle",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(490.907 381.272)"},"match ?"),o||(o=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M725.508 417.932c13.81.72 67.14-12.46 81.98 2.45 14.85 14.91 5.83 72.23 7.09 86.99m-90.36-90c13.66.98 67.22-10.77 82.1 4.38 14.88 15.14 5.69 72.34 7.17 86.51",stroke:"#2f9e44",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}),D.createElement("path",{d:"M805.588 484.542c3.37 5.31 3.29 11.02 7.9 23.72m-7.9-23.72c.99 5.53 2.69 10.95 7.9 23.72M822.688 485.012c-.98 5.24-5.41 10.83-9.2 23.25m9.2-23.25c-2.99 5.53-5.26 10.84-9.2 23.25",stroke:"#2f9e44",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}))),d||(d=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M393.629 422.875c-28.94 10-131 67.03-173.04 59.69-42.04-7.33-66.04-86.41-79.21-103.71m250.91 43.19c-28.66 9.65-128.2 65.85-169.61 58.84-41.42-7.01-65.32-84.06-78.86-100.93",stroke:"#e03131",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}),D.createElement("path",{d:"M162.559 396.515c-6.28-8.08-12.49-13.63-18.74-16.56m18.74 16.56c-5.35-4.65-9.9-8.48-18.74-16.56M147.529 404.685c-.72-11.14-1.37-19.71-3.71-24.73m3.71 24.73c-1.31-6.77-1.86-12.77-3.71-24.73",stroke:"#e03131",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}))),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#e03131",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(220.494 447.037)",strokeOpacity:.9,fillOpacity:.9},"No"),s||(s=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M712.881 523.124c41.38.55 84.02.18 195.68 0 18.4-1.38 32.22 9.6 28.71 28.7 2.79 21.09-2.71 39.39 0 57.41.85 15.89-11.98 25.15-28.71 28.7-70.93 4.49-145.88.22-195.68 0-17.39 3.35-29.15-10.18-28.7-28.7-2.93-23.99-2.03-44.58 0-57.41 1.4-21.93 12.69-25.91 28.7-28.7",strokeWidth:0,fill:"#fff"}),D.createElement("path",{d:"M712.881 523.124c55.19 2.04 109.67-.18 195.68 0m-195.68 0c42.6 1.04 84.35.55 195.68 0m0 0c19.24 1.62 28.64 11.06 28.71 28.7m-28.71-28.7c19.78-1.35 28.76 7.38 28.71 28.7m0 0c-1.18 21.3-2.13 44.78 0 57.41m0-57.41c-.95 17.03.16 32.05 0 57.41m0 0c.78 17.82-10.28 27.37-28.71 28.7m28.71-28.7c1.42 20.59-8.12 27.31-28.71 28.7m0 0c-70.74.6-138.13.24-195.68 0m195.68 0c-58.9-.21-118.05-.28-195.68 0m0 0c-19.59-1.67-28.99-10.98-28.7-28.7m28.7 28.7c-20.21-1.17-27.12-9.47-28.7-28.7m0 0c.85-22.1.97-42.32 0-57.41m0 57.41c.22-19.17.74-40 0-57.41m0 0c-1.14-20.71 10.35-27.55 28.7-28.7m-28.7 28.7c-1.23-18.32 10.46-28.26 28.7-28.7",stroke:"#2f9e44",strokeWidth:2,fill:"none"}))),D.createElement("text",{x:86.8,y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#2f9e44",textAnchor:"middle",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(723.925 568.031)"},"Feature is active"),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#2f9e44",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(784.047 376.935)",strokeOpacity:.9,fillOpacity:.9},"Yes"))};var p,T,X,h,y,U,u,H,V,F,E,k,j,O,S,N,v,b;function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:i,...c}=e;return D.createElement("svg",g({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 851.56 802.438",width:1703.121,height:1604.876,"aria-labelledby":i},c),t?D.createElement("title",{id:i},t):null,"eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1daXPiyLL9Pr/C0S9uxHtcdTAwMTFjTVVlLVnzXHIvXHUwMDE4t3fwXHUwMDA2N244MIjdrLLB3Jj//rJwt8Gy1Vx1MDAwNlx1MDAxYdqiTc/StiSgkPLUOblU1n//2Nj4XHUwMDEyPLb9L39vfPFcdTAwMDeFfKNa7Ob7X/50x1x1MDAxZvxur9pq0ikx+r3Xuu9cdTAwMTZGV1aCoN37+6+/xq/wXG6tu6dX+Vxy/85vXHUwMDA2Pbru3/T7xsZ/R/+f+JyuX1xi8s1yw1x1MDAxZr1gdGr8UVJi+Ohxqzn6WG5cdTAwMDTTXFwqq56vqPZ26PNcdTAwMDK/SKdL+UbPXHUwMDFmn3GHvlx1MDAwNMlcdTAwMGVcdTAwMGXKyZy4XHUwMDFlnN/r4/1cdTAwMWOH0/r4Y0vVRiNcdTAwMTM8NkbD6rXoq4zP9YJuq+5fVYtBxX126HjUq7qt+3Kl6fd6L17TaudcdTAwMGLV4NFcdTAwMWRj7Pno0z34e2N8ZEC/oWKe1lZcdTAwMWJAoyWI55NPL0fjaTquhVBKcFx1MDAxMVx1MDAxYdZ2q9HqumH9XHUwMDBmt4ZcdTAwMTfEeGC3+UK9TKNrXHUwMDE2x9f41i/4pfE1/W9fXHUwMDE2gXtKM6FcdTAwMTWCNMDM81x1MDAxNVx1MDAxNb9arlx1MDAwNHSJQeFJQI6gXHUwMDA1ILLxQ+v5o6chmEUupVXjb+c+vr1fXHUwMDFjWcZ/xs+gm7/z991LmveNxuSNbFx1MDAxNr/dyFx1MDAxNydu3YndXHQjXHUwMDFiv9V9u5h/slx1MDAwNW7oTilEXHIg4fl8o9qsh9+u0SrUx+YzOvrPn3PYLVc8ym6FMXSXtLJTm61/gNu5bT3of+2wZFx1MDAwZm/VYSXFYm62iFx1MDAxZVx1MDAxN1x1MDAxYyyzZLxswmZGr+eAnuaabEkg/SvDXHUwMDAzm81wS6M/r1xyXHUwMDE3XHUwMDA0epYs1mHHKCPgteFcdTAwMDJTXHUwMDFlU5IrXHUwMDBi1pB1glxmW65cdTAwMDRrXHUwMDE1Sil+3nC/m9DYiODbkX/mtGcmOVuUPVx1MDAwN/4geMuUNURZspaMSSWEntqSXHUwMDBmMlubeVx1MDAwYvleut2s90/vL7PJxO5HWrJ915AteFJK7r4rmfIrQ+bgMZqfLf0nUf3cXGZcdTAwMWN0881eO9+lR//amLnlZKmMMTJZTtaMr41ZqLDxcklcdTAwMTNcdTAwMWWisVx1MDAxZjTtMlx1MDAxNJpuXHUwMDFlXHUwMDAzLWcw0/GoWs0gU1x1MDAxZI5mTfbiaDJ/V208vnioI/ulu5goXHUwMDA01Yd8QHa6UWg1i1X305dcdTAwMTdXJVx1MDAxYdWys+wvXHK/9NLkgyopmOfTQas9PkvvXHUwMDE15KtNv/v6LrW61XK1mW+cTzVcdTAwMDL6/n7q+yPjnlDzs1xm8UikOqIpjbSDVWODfVx1MDAwZpyNo27qtF9Wg4NyrpWwN4VOJ52KN81wXHUwMDEw0vFcZlNGabpcdTAwMWPGXGJ45lx1MDAxOU64RJKJXFxYXGJccuxcdTAwMTfSjPWMdFxmo0mmKTsxTTxcdTAwMDHVgiBIXHUwMDBiWFx1MDAwME5Xk2VIXHUwMDA3RFx1MDAwYn1gKK2eoOD3TNlkXHUwMDFmTju1m0Hz1tTTfjZ1cle63Yo1z5AlW1wiXHUwMDFhQGCacWYnhMg3olx1MDAxMZ6yVlx1MDAxOJIj9EjiRTNWXHRNxs/XLDNx1SqxjLv6LVTa8LFnTFrLjVx1MDAwNDVcdTAwMDMmu7vZ8/Q9PtaaJ7VKPlx1MDAxNVx1MDAxY5+K64d4Y1JY5jEkbVx1MDAwN8CZXHUwMDA0XHUwMDFlXHUwMDEyf8DdxE/yj1SwXCJcdTAwMTZYXHUwMDFlKI0nrFaktYnoOPlLY/w/o3I89G+gJK+L2MYswuN+TSliXkr5Saz2gnw32KqSuTfL4Zf4zWLEmUa+XHUwMDE3bLfu7qpcdTAwMDFccuO0VW1cdTAwMDbhK0bvm+h2W/2Kn391L+idI8+13duNw1vuz/injfFjXHUwMDE5/fL883/+fPPq6Fx1MDAwN1x1MDAxZHr5XHUwMDFmk3/PimrNwlx1MDAwN589Olx1MDAxMoxWWjE9qlx1MDAwYtuZo+Ovl7Ujv1Qt7tXuXHUwMDFld64z2ZijWlx1MDAxOI9cdTAwMWJjNLn9JFxmQ5LRgZpLQrTUoIDrJXp086CaIzmb9Fx1MDAxNSYuXsP6c8H6x1x1MDAwMXOIXGaYXHUwMDBi0nTGklx1MDAxYjJ+RO+h++7iVqTrnTRcdTAwMWXe9NnXg2p55z6VWCi6i/lexV8kvK2L6Fx1MDAxOVx1MDAxON1nTX+Pb8dcYt6CXHUwMDE5z1xiYnSFdNXydLRA8IQhJY9cdTAwMWO0XHUwMDFizHiaeVx1MDAwNrdcdTAwMDLPMvJcdTAwMDZJPoPVXHUwMDAyx2rrO9hcdTAwMTVaXHUwMDAyvFxchLBeoFs4XHUwMDFm2H9o05FuYTRXXHSiKY3WsKmt2SRNTnUu9KDWyO9v1Tf7pW77MObWTF4hV2SwUlvOJnNdj9+pTIqRV6iAPDa1PHtcdTAwMDb0XHUwMDE0XHUwMDAyqVxcIVxyM+yNIId4TVZcdTAwMWGVXCJcdTAwMWaSLSB4/rGOIdcvjr7nXHUwMDE4+lx1MDAxYqVu626D8b/oX8GE3MBcbrBcdTAwMGbwXHUwMDBm31x1MDAxYshsbmJcdTAwMTRKOURcdTAwMDdvXHUwMDA0WaY2fGJcdTAwMWV+XHUwMDBmpnT53YlcdTAwMGVyj1x1MDAxZMzoq9J94343UYu1pLREKmCRXHUwMDE4hSOS2YVjN0Z7gFx1MDAxYVxmwdVN+MtjXHUwMDFk8ldcdTAwMDVcdTAwMTBIrTHipY7/UZJAaeJKJj9TkuC8eudvdO8nNdSvwORcdTAwMWJcdTAwMWa7wHSA4pFJZzI/48J60zt2R5XKQCaGg/pxNZ3N3iRrUK/amJMlQ8JcdTAwMTl3Opv0n7RjPfXk2Wn0pFwiSciIMdHIJZLlXCLEXHUwMDFmMFx1MDAxMFxullx1MDAxNL9ZXHUwMDA17Vx1MDAwNzYy82xcdTAwMTg9QeAzZJ4vXG63eJpMXZxcZnvHW92H+2Ilw77G3JyV8uhOM5f84JpcXLeQOaPykDHJR6LMLs+aOVx1MDAxMru5lICmx66ILd5ildfaz1x1MDAxYXpC5GItIFCxatqv1d1Q/9polTbue2S3XHUwMDFmI/uixrBcdTAwMTjFJ4RcZlx1MDAxZv2OTUnOXGLNWjg91Vxc7Mr0eVtcXO3Z/fOgX+5ov6eTsVx1MDAxN3xcdTAwMTKZJlx1MDAwMydcdTAwMTdcdTAwMWQmgnFP0Fx1MDAwNO1cdTAwMTHBoFx1MDAwMm4lOfDLwyZcdD6aXHUwMDFkrEVpJFx1MDAxN1x1MDAxM/z/XHUwMDAzvadBKiXZRKBoRYE5vdy7IFxmfIDce+NjXHUwMDE3XHUwMDAzP1x1MDAxYok+wZkhXHUwMDFmhJnp/a3bvjy5qp2L87Pri8zd3aXJVtNcIt7UyJkg8rOW5JFUgCBD3CgsXHQwwlx1MDAwNFrNiUbN8oL44D5cYmaMi1x1MDAwMLOgtLIrj8BcdTAwMTmo8XjnXHUwMDE38+DkXHUwMDA3LiZcdTAwMWI+qeNf1agocu5cdTAwMDHt9LDLXHUwMDE1zk72XHUwMDEzN7vX3Urb5tJ8V1xc80qsWY+0qPDIsVx1MDAxMsRcdTAwMWZcdTAwMDQ8hFBsnTxcdTAwMTZSpNpcbkZcdTAwMDDU4ueqelx1MDAxN586XHUwMDEzo1HRINdcdTAwMTnxz5o6i0S2inQ1iUolkoSbQc9uZnrt8+vj5LWod1x1MDAxZa5cdTAwMTOFXHUwMDAyaz/cxlx1MDAxY9lcdTAwMWE8yThcdTAwMDf9lPVcdTAwMWXfjmdka8e0dFxyWK5kaGBcdTAwMWaNbKOZIDd1XHUwMDAxfLpcdTAwMDb2Slx1MDAwMvvHOXFcdTAwMWKZXHUwMDEzl9ZcdTAwMThkMENKXHUwMDFjUru9rVYhXeTFvZ1O41x1MDAwMZL15EHM1TJI4UkrXHUwMDE5jkr2VDg/IZj0tNJE3CRjmZbLK2RbTFZcdTAwMWNcdTAwMDXTXHUwMDA2xSeOjE5cdTAwMDQ+w3RFd0zTfD09W2WH4vzyonssav1cdTAwMWR9N2xAOdHejrtBa01C1EFcdTAwMTeBXHUwMDEwXHUwMDFjtmchPVBcdTAwMTaASUOExZbn/Vx0KT1O3lx1MDAxZpC0RFx1MDAxNMinXHUwMDBijWojnX5Wn8n/m8xGq7ikxaNcdTAwMDayoLS4jU6L69FakcnywnfDNKp2y1xu/lx1MDAwMZ6dn9ab27fb5dq2jLeqXHUwMDA0glx1MDAwN3JcdTAwMGIuJ61cdTAwMTHDi3NcZngkNaVAY60hp3FpMJ0rLW6JKVx1MDAxZMmsfP7is2fFVWSwVFx1MDAwM9KUbWZII57zrVxcaqvX71x1MDAxZO330/v9q9MqP/LjTpZSe1pcYmtJclx1MDAxMVx1MDAxOWI4aqONp6TlLoeATKrlwXAx6o9LSVxuZ1x1MDAxMbHT1Vx1MDAxNH9CR7KKJFx1MDAwN94qukNT23O7t91vnrKLXHUwMDAyXHUwMDFj9NXFQ/XgcudAx51UlGeEYMi4kYKHl3xcdTAwMDIoz2pNZlx1MDAwNsaCMj+15nPhuTdO2lxckFx1MDAwZraI8v1VYZXfLfkmVeSqa02G+TIw/lx1MDAxZVx1MDAwMOtcdTAwMDNcdTAwMWaLqbafb2dqlzzX2bwpJTtxJ1x1MDAxNOu8XHUwMDFloUi3XHTLw7k3QO1xmuHR5cPEMvmESGCewlx1MDAxNGW14fTPXHUwMDE4XHUwMDAxK1xuwflcblNYXHUwMDFjKlPeXHUwMDFjxILgXHUwMDE5uWKAPFx1MDAxMVx1MDAwNdq1KZpcdTAwMWGemZv2YXsvk3rQ+DWb3GpcdTAwMGWuhpVCzOEplPK4VFpzknUvepJ8i+VcdTAwMWJcdTAwMGbpOLlcXEqRmFpcdTAwMWVBXG7hSU1/jMuO0lTxRuOot+rG3NXqU61cdTAwMTk4Sf9aJE5+3oJCXHUwMDFk0Vx1MDAxMUlSRiBcdTAwMTjAXGZcdLStwmG/lareXe/flpvsMJHwh/o85qiTRnjcXG5mRuFcdTAwMGUlQlx1MDAxOTRhXHSUYI1m7kqtl4e6uSpSuFx1MDAxNjRXgIHPRIq/Q0mKinRcdTAwMDZHKkeoXHUwMDE51nKz/eJVrWaCYj29edYo7O3fIG8uXHUwMDE0dlx1MDAwYndcdTAwMDalRFx1MDAwZl3vLSslKcHXXFynPOJBtEyTJ1xiy1x1MDAwM918a7mtK2GncS+lt9w6b/39XFyM89aRuMbIUjPLgHE7Q+OVi20hhJ9N3Z5vXHUwMDFk7V6d+J3ro+1SvGGtmPW0deUmipE7XHLh+mqCtXLdvqSSjrli1nmFXHUwMDBiYFxiWi2CTNe4XklcXP84I8Gi+yo5XHUwMDFmlVxmfvrmsGf1nf1dU9l+TGxcdTAwMWVjLt3ePNovnX4kuqdpXHUwMDBlXHUwMDBintVMXHUwMDEy/YGL9IfS91xuLDmoXHUwMDFj6DJcdTAwMDdu+Cl0L7Vrn1bIXHUwMDE16k/bXHUwMDFhVkJkak1cdFx1MDAxZIpzv2fIMtPPXHUwMDFjXl5cdTAwMWNVyjk7qDZO2fZWaT/WNIVonatF3lx1MDAxYye/XHUwMDBlX9kxl1x1MDAxZUjyXGJccllcdTAwMTdOZmVi0bSPNFx1MDAwNGiDk4WtK+ryfdaufT8kXHUwMDE5LaNcdTAwMTcrSCO1UDCDa1g3/leRvm9vZVVi96G9k2432ovNXHUwMDEzLmE1uPBgXHUwMDE0iWGcSSnGbzKyXHLNtFx1MDAwN5ZcdTAwMWNHzVx1MDAxNF1cdTAwMTHzTkCSnpmBheQsVjPrLc1cdTAwMGY0kyRu5lpNn/bu6Ua9m9xp71/lt9qPlaNS+S4xjLk5XHUwMDBi7Ulu6Hs6W9DhvlaaTnMmOEhu3aq3uHVcdTAwMDJcdTAwMDJuybr16i86na/kkbOYlDxGXHUwMDBlZDF5XHUwMDAwkNErU5k0XGKoZ1hcIne7f9roXHUwMDE267vls6vbfHazl0hfwWOsJaFcdTAwMWSV0qNbXHUwMDE1zjk5XHUwMDE2oXikMm67XHRXZ6+E1GaJknCukkfytlxmyYJ1yWP8S1x1MDAxZSN5kkdcdTAwMDKQXHUwMDA0v7HMilx0I35cdTAwMGaAx2elbKWQOkmUL7NcdTAwMTem1LxcdTAwMWaaXi7mXHUwMDAwVJ5cIvrjrlx1MDAwMZBcdTAwMGLlvFx1MDAwNCD5+55hVpGfxCSwJTZSn6s6zFgjULF1ddjqVoeZ6OBcdTAwMWXNrJKmfjO9Tt1M7lx1MDAxNVxu+btkoXeWNYc3JjGs+q2Y61SOnluMXHRcZujHyc2Bnlx1MDAwMIjKo1x1MDAxOUi5lJ2jp+XJVMM8l/JcdTAwMDMjmVx1MDAwMFx05lxyt+u1TjXGWNDwsbVhku7cLLG7n5Opx61RXHUwMDFk1lxiXGZcdTAwMWL/m1x1MDAxZlx1MDAxN2n5ZL6Prab/f79cdTAwMTaZs4xnQc2MTPTqb8mcu6VmWKdz1GHy6vxKY7qhN7Pl9Fx1MDAwMWvXXHUwMDE3275yXHTtVEB4XGZcXMRcdTAwMTItkoZcdTAwMGbVVGurPUTh3DcjXHUwMDA0N8sr6ZyzeEVKy1x1MDAxOP+ozVx1MDAwNdfFK/NcdTAwMTWvXHUwMDAwi9Sqxi1ENrM0+DtM2M395E5FS8xcZlKPje2vw9qH7l41TTtcdTAwMTUkMUqgUsxFR0SokNq4JmOkXHUwMDA1rVx1MDAwNOJRhOVx5XxZbk6403xJMcl1lvv7uVx1MDAxOGe5I4FccpErJOwou61nXHUwMDAwdtmcXHJ327mdMyVPK489c7d7MVjskrsldFOxnqKbYFxc107Hm6+BLSTRLZmq26Fnibt5zVx1MDAwM2zS5fSQXHUwMDA0LsBcdF3j+rfCNeeROUXBjEbJZ2mAtnupsqrfUUe3e6XS5sN5q8B7Md+kj2np0fckW0QkvzJcdTAwMTRcXJLGeswtZTfo1lYsscH0fIStrFJo9Zqw18BcdTAwMWVcdTAwMWSdXHUwMDAwto5cdTAwMDa20qNMxvRBq0Swc6TKmaDQkK30jayldlxum9cxxzXjXHUwMDFl0lx1MDAxN3UrIJSc7J7zXGZs7Tb6My6DY8RcdTAwMTIreeZcdTAwMDG2JP9hMtC2RvXnQnXkoixcdTAwMTnd90xZg2KGhZCXm9ed8mU1n+yUXHUwMDBl91x1MDAwNtfn983DYLG7dy6jSbD1UEiGnFx1MDAwYo2TfVx1MDAxM55QrdGj26/JizVcdTAwMDImY02xWFxiSSOzwCaf0W9cdTAwMWbUWp11kD/uNygjXHUwMDE3Q/JRiZexXHUwMDEzS5HeLYLYfCg8nGRcdTAwMTK7qdNqr1wi89VS6utid65YxrbsxtOkNumbopvlQlx1MDAwZbBcdTAwMDL0JFx1MDAwMVx1MDAwZYC5yFx1MDAxN8a3wpvTK4VE+Lw13jBcdTAwMTHtXHUwMDBmx3LQMpJcdTAwMWUz1N1d6kZNVsxDf6+fPlx1MDAxZZ5cdTAwMWWrzcvz3XhLQzJSj5Ew5K7nvJJcIpRcdTAwMWFRXFx4VtA54lx1MDAxObJcIlx1MDAxZLNcIm+QrjLdfKaCgt+rxjsyZ4mRsORcdTAwMTJcXHdcdTAwMTY9Q3n32Xbu9v6elS+vL4uDo/6BychhPua4lOiBXHUwMDA1ZGC0XHUwMDAzaSh5olxmeK7VhzFcdTAwMDROKZaIy/n23Fx1MDAxM25JXGIz9kNcdTAwMGJcctaldj+t9XT0fstKkIJcdTAwMTdyhp0vz/JcdTAwMDCdUlx1MDAwZi80b/Xzj3Bw0r7YjLmTXHUwMDA1inlcdTAwMDQh12nXKGlCZelGXHUwMDFiXHUwMDBmXHKz5GshXHUwMDFhtcSC18U0XHUwMDE3ZE4rSv15u1x1MDAwYoKKlntgmeV8hvLRYHNQYcUgXHUwMDEznN3Uj2vXRp2flDNxp1x1MDAxNTtcbs1opixqPVx1MDAxMer7Vj+qPYEonc/AmF7iXHUwMDA24vPUj1x1MDAwMnDlOn58XCK197uVjypcdTAwMWRdv22Qpi422ZH4PVx1MDAwMDYy+WRj5zqRK1xy+Vll/7G2XHUwMDA3RYg7oVjlNs9TnHNcdTAwMDWah1x0XHUwMDA1tadcdTAwMThcdFxccsjIbefL6+3OrfSUi9rRI7GSS/ZGKP6tWjRyXHRccoeJbelXXHUwMDE0g3N1XHUwMDE33GrdbuSbxVxyXHUwMDAyWOFcdTAwMTdD8v1RLMjzit5lXHUwMDE5ubNcdTAwMTeup1x1MDAwN2hnXHUwMDBmXHUwMDBm29vNQrVxwMo53jmqbLGjmFx1MDAwM1RcdTAwMWHlXHUwMDE5goVyqlx1MDAwZl/1XFzShF9JKGColFvPXHUwMDEwt2JRl3JcdTAwMDFjXHUwMDE3XHUwMDEx0VtcdTAwMTmA/lx1MDAwNsWiQkbWlFx0d0+VXHUwMDE2M9SepHd3XG5cdTAwMGbJ5O49/5rh7LA4yO63Y56jlkp4ZDiSvqa2UrFQINIw5VlcdTAwMDRNXCJdI7kxMatcdTAwMTbVbqMlLlx1MDAxN5HNWmepVzJLXHUwMDFkXHTsXHSp9HpXTcbJXHUwMDFih+kzXGaid9ztXHUwMDA3XHUwMDBmW5nLYau8fXF8l9/rxTySqTjxmEZcdTAwMTBubSZxWXjJXCJcdTAwMDFcdTAwMWKFSzG4sFx1MDAwNbCYVYtyoVx1MDAxOYdcdTAwMTeT71x1MDAxYdlrZD81J432ZSWCXHUwMDE0Qs7QxjDln1x1MDAwNcNcdTAwMGUmOn6lU0zs3Vx1MDAwNs10q1x1MDAxOH9kS1x1MDAxMDR/XHTjJMpq1YuiZlx1MDAwNtxCzjWw18B+SdnRXHUwMDBit5TblVx1MDAxZNFMXHUwMDFmJL5NZCqFXHUwMDAzdlNp7p43j7NcdTAwMGYyaZOLXeO8XHUwMDA0Kc48JUabTohcdTAwMTdphFWoXHUwMDE2Jb3FaMLha1h/VlhH1oti9H6FpDuZ20B9elxc71x1MDAxNVx1MDAwNvqoV+lcdTAwMDSJ0rCSkDs7X+9qi93fflx1MDAxOaEt9CSiXHUwMDA1objRqEI+dswrRlxyMsLRZ2qxtTpcdTAwMDWjczTw55JszPWun14jK9Mq5qrmsndzVOqfNbP3TFx1MDAxY8RcXCOTOibIKZcxUVx1MDAwMGhetVx1MDAxZSCNLN2OMMxcdTAwMWHS0nFr9Vxyxj0lvV4s+WnZNFokR1wiW2mQrtnGXGaLoMuDdi44TVx1MDAwZk6z2cRe6Vp0XHUwMDFmN+NcdTAwMGVsIJFswFW7M+5s8TWwXHUwMDE10r133VxypIpbWMtqq13ThXVU67PiOnpX78h4NVx1MDAxYausXHUwMDE0dvpwdYbrM//84vDw6lwikTvtPfZcdTAwMWLD1EXMRbJQ6Cm31axTpiQ5w/lfJJHMlHTb7pDzu8RcdTAwMTZ7c4lkcJlraeQnSv+ujkqOwpyNbNDlUlwi1rJcdTAwMTkgXHUwMDE37G5cciuF5jDZym1cdTAwMGUv673EZjJcdTAwMTf7XHUwMDFkV7X0uGudol2DLlxmXHUwMDE1JWrOPPJcXIVcdTAwMTGGULfEMDKZLolxa9G4nV81TtdTT9O4adT8Q0vdhZistf9cdTAwMDU99YLvZefPPezyjcZGUPFHZ359T72px1x1MDAxM4HYP77R7pd8u51cdOjuPiubL1x1MDAwZlW/v1x1MDAxNb0w749veHfQ8keC6J8//vl/vXynNCJ9",p||(p=D.createElement("defs",null,D.createElement("style",null,'@font-face{font-family:"Virgil";src:url(https://excalidraw.com/Virgil.woff2)}@font-face{font-family:"Cascadia";src:url(https://excalidraw.com/Cascadia.woff2)}@font-face{font-family:"Assistant";src:url(https://excalidraw.com/Assistant-Regular.woff2)}'))),T||(T=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"m9.78 11.29 830.56-2.78.06 784.53-831.6-2.1",strokeWidth:0,fill:"#e9ecef"}),D.createElement("path",{d:"M10 10c327.14-1.69 654.31-2.27 831.56 0M10 10c211.79-1.99 423.63-1.97 831.56 0m0 0c-.09 182.03.77 364.49 0 782.44m0-782.44c2.7 232.62 3.3 465.76 0 782.44m0 0c-225.58.17-449.71.12-831.56 0m831.56 0c-267.83.62-535.53 1.13-831.56 0m0 0C8.99 623.83 9.39 454.7 10 10m0 782.44C6.72 528.92 7.31 265.59 10 10",stroke:"#1971c2",fill:"none"}))),X||(X=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M79.452 60.94c87.72-.69 176.42-1.21 264.95 0 21.83 2.35 32.86 10.62 32 32-1.16 59.94 2.82 120.1 0 241.05 2.77 20.79-8.42 30.19-32 32-99.64-3.74-205.17-4.96-264.95 0-23.68-1.85-31.58-12.16-32-32 3.04-85.51.87-166.3 0-241.05 1.55-21.68 11.51-33.62 32-32",strokeWidth:0,fill:"#fff"}),D.createElement("path",{d:"M79.452 60.94c72.61.39 143.77 2.81 264.95 0m-264.95 0c83.48-1.63 168.23-2.12 264.95 0m0 0c22.2 1.5 30.23 9.62 32 32m-32-32c22.9-.86 32.3 10.11 32 32m0 0c-2.08 51.64-1.91 102.28 0 241.05m0-241.05c-.73 72.99.2 145.46 0 241.05m0 0c.77 22.33-12.59 32.25-32 32m32-32c1.09 19.6-9.87 32.74-32 32m0 0c-91.75 2.89-182.44 1.44-264.95 0m264.95 0c-91.34 2.31-184.89 2.61-264.95 0m0 0c-22.93-.71-33.37-9.23-32-32m32 32c-20.76.16-31.75-12.41-32-32m0 0c.5-86.52-.03-171.56 0-241.05m0 241.05c1.38-88.39 2.26-177.81 0-241.05m0 0c-.89-22.68 10.16-32.92 32-32m-32 32c1.99-19.96 9.01-31.29 32-32",stroke:"#1971c2",fill:"none"}))),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(52.774 35.39)",strokeOpacity:.9,fillOpacity:.9},"Activation condition"),h||(h=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M515.451 60.472c95.27-2.05 191.66 1.48 264.95 0 23.98-1.74 32.18 8.58 32 32 4.21 73.14 1.18 143.79 0 245.75 3.31 20.21-10.87 29.77-32 32-55.35-2.04-107.27-1.1-264.95 0-19.4-2.43-31.89-10.4-32-32-.13-94.69-3.29-184.57 0-245.75-2.65-22.43 11.39-33.46 32-32",strokeWidth:0,fill:"#fff"}),D.createElement("path",{d:"M515.451 60.472c74.96-.95 151.13 1.05 264.95 0m-264.95 0c75.89-1.92 153.39-1.93 264.95 0m0 0c21.74-1.21 31.29 11.66 32 32m-32-32c22.7.32 32.34 9.97 32 32m0 0c.56 57.24-2.12 117.15 0 245.75m0-245.75c.46 63.2 1.58 125.01 0 245.75m0 0c1.28 22.07-9.9 30.29-32 32m32-32c-.07 21.71-10.5 32.41-32 32m0 0c-102.9 1.1-208.31 1.18-264.95 0m264.95 0c-103.75-2.11-207.06-1.7-264.95 0m0 0c-20.08-1.68-30.23-10.59-32-32m32 32c-19.96-1.77-33.84-9.05-32-32m0 0c-.96-56.06-1.4-109.64 0-245.75m0 245.75c.41-85.41.78-171.57 0-245.75m0 0c1.21-20.5 12.52-32.61 32-32m-32 32c1.52-22.07 8.8-33.48 32-32",stroke:"#1971c2",fill:"none"}))),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(488.774 34.923)",strokeOpacity:.9,fillOpacity:.9},"Activation condition"),y||(y=D.createElement("path",{d:"M448.93 241.104c2.86-.01 14.54-.14 17.6-.12m-16.85-.43c2.77.08 13.4.78 16.32.99M385.978 240.724c2.81.05 14.71-.5 17.71-.49m-16.99.14c2.71.17 13.66.52 16.5.44",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),U||(U=D.createElement("path",{d:"M77.884 130.05c82.69-2.82 166.08-1.17 256.31 0m0 0c10.56 1.83 12.3 3.12 13.48 13.48m0 0c-1.2 10.44.26 20.53 0 26.95m0 0c-1.33 8.7-4.16 13.83-13.48 13.47m0 0c-85.28 2.66-167.19.37-256.31 0m0 0c-8.41.14-13.98-3.24-13.48-13.47m0 0c-.3-3.7-1.8-12.16 0-26.95m0 0c.45-9.65 3.59-14.14 13.48-13.48",stroke:"#1971c2",strokeWidth:1.5,fill:"none",strokeDasharray:"8 9",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(88.488 149.753)",strokeOpacity:.9,fillOpacity:.9},"Active from 01/01/2024 8h30"),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(66.73 98.71)",strokeOpacity:.9,fillOpacity:.9},"Time rule"),u||(u=D.createElement("path",{d:"M81.192 290.78c78.85-.18 155.56.35 256.31 0m0 0c8.52.67 11.91 2.86 13.48 13.48m0 0c.89 6.17 1.14 14.91 0 26.95m0 0c.4 8.04-4.07 12.78-13.48 13.47m0 0c-57.91-1.29-114.88-.53-256.31 0m0 0c-10.56-.62-14.45-2.72-13.48-13.47m0 0c1.51-8.38-.8-18.67 0-26.95m0 0c-1.72-9.69 5.3-12.01 13.48-13.48",stroke:"#1971c2",strokeWidth:1.5,fill:"none",strokeDasharray:"8 9",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(114.74 308.124)",strokeOpacity:.9,fillOpacity:.9},"Active for 5% of users"),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(66.811 259.198)",strokeOpacity:.9,fillOpacity:.9},"User rule"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(185.23 215.608)",strokeOpacity:.9,fillOpacity:.9},"AND"),H||(H=D.createElement("path",{d:"M161.845 225.86c2.91-.12 14.68-.13 17.6-.03m-18.3 1.09c2.86.18 15.01-.31 17.99-.55M222.711 226.179c2.99.02 14.88-.43 17.84-.47m-18.51.11c2.97.12 15.3.34 18.34.46",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),V||(V=D.createElement("path",{d:"M515.304 126.98c55.65.46 113 1.56 256.31 0m0 0c9.21-.15 13.05 6.47 13.48 13.48m0 0c.92 6.29-.56 16.93 0 26.95m0 0c.24 9.41-3.11 13.24-13.48 13.47m0 0c-56.7-1-113.16-.86-256.31 0m0 0c-10.68-1.6-11.74-4.84-13.48-13.47m0 0c1.11-10.92-1.14-17.11 0-26.95m0 0c-1.75-10.12 3.16-15.27 13.48-13.48",stroke:"#1971c2",strokeWidth:1.5,fill:"none",strokeDasharray:"8 9",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(525.908 146.683)",strokeOpacity:.9,fillOpacity:.9},"Active from 05/01/2024 8h30"),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(504.15 95.64)",strokeOpacity:.9,fillOpacity:.9},"Time rule"),F||(F=D.createElement("path",{d:"M519.433 289.873c71.5 2.12 143.64 2.15 256.31 0m0 0c8.44-.11 12.5 2.51 13.48 13.48m0 0c1.96 8.03-.15 16.97 0 26.95m0 0c.16 9.38-5.45 13.74-13.48 13.47m0 0c-78.01.46-157.75-.76-256.31 0m0 0c-7.56 1.32-13.96-3.75-13.48-13.47m0 0c.28-10.48-.54-16.64 0-26.95m0 0c-.07-9.81 4.85-14.38 13.48-13.48",stroke:"#1971c2",strokeWidth:1.5,fill:"none",strokeDasharray:"8 9",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(505.052 258.29)",strokeOpacity:.9,fillOpacity:.9},"User rule"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(553.463 308.505)",strokeOpacity:.9,fillOpacity:.9},"Active for 50% of users"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(414.476 230.222)",strokeOpacity:.9,fillOpacity:.9},"OR"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(631.522 217.463)",strokeOpacity:.9,fillOpacity:.9},"AND"),E||(E=D.createElement("path",{d:"M608.377 227.835c2.77.01 13.87.24 16.8.35m-17.37-.91c2.91-.16 15.44-.02 18.44.04M668.704 228.024c2.93.1 15.13.28 18.05.29m-17.21-.67c2.88-.02 14.28.04 17-.05",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),k||(k=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M75.29 462.215c83.41.94 168.94 2.6 264.95 0 18.47 1.67 28.58 9.65 32 32-2.17 59.25.12 115.78 0 245.75.51 24.62-11.26 28.71-32 32-57.26 1.05-107.77-2.83-264.95 0-22.78-2.85-30.04-14.15-32-32-2.08-67.58-.15-135.32 0-245.75 2.49-20.47 9.67-28.79 32-32",strokeWidth:0,fill:"#fff"}),D.createElement("path",{d:"M75.29 462.215c73.46-2.41 149.24-.73 264.95 0m-264.95 0c68.91-1.15 136.43-1.9 264.95 0m0 0c20.95 1.06 33.84 10.75 32 32m-32-32c22.45-.3 29.81 12.12 32 32m0 0c.87 93.23.58 186.5 0 245.75m0-245.75c2.23 59.72 2.41 118.33 0 245.75m0 0c.12 21.36-11.22 33.56-32 32m32-32c-1.18 20.89-12.14 30.22-32 32m0 0c-93.18-1.39-185.46-1.53-264.95 0m264.95 0c-75.91-.05-152.71-.58-264.95 0m0 0c-20.59 1.68-31.2-8.94-32-32m32 32c-21.13 1.95-31.83-10.1-32-32m0 0c-.86-68.18-1.26-134.4 0-245.75m0 245.75c-.27-74.07-.48-147.67 0-245.75m0 0c-1.58-19.98 9.95-30.06 32-32m-32 32c.57-19.94 9.52-31.55 32-32",stroke:"#1971c2",fill:"none"}))),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(48.614 436.666)",strokeOpacity:.9,fillOpacity:.9},"Activation condition"),j||(j=D.createElement("path",{d:"M75.144 528.723c63.14-2.23 128.92-.11 256.31 0m0 0c10.34-.97 12.93 4.11 13.48 13.48m0 0c1.22 9.25-1.65 20.3 0 26.95m0 0c1.53 9.47-4.34 13.94-13.48 13.47m0 0c-88.08 2.97-173.38 2.95-256.31 0m0 0c-7.82 1.98-13.85-4.36-13.48-13.47m0 0c-.95-8.52-1.2-17.81 0-26.95m0 0c1.01-9.18 4.36-13.94 13.48-13.48",stroke:"#1971c2",strokeWidth:1.5,fill:"none",strokeDasharray:"8 9",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(85.748 548.426)",strokeOpacity:.9,fillOpacity:.9},"Active from 10/01/2024 8h30"),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(63.99 497.383)",strokeOpacity:.9,fillOpacity:.9},"Time rule"),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(64.892 660.033)",strokeOpacity:.9,fillOpacity:.9},"User rule"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(77.352 707.614)",strokeOpacity:.9,fillOpacity:.9},"No user rule (active for everyone)"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(191.362 619.206)",strokeOpacity:.9,fillOpacity:.9},"AND"),O||(O=D.createElement("path",{d:"M167.517 630.078c2.91.03 15.26-.18 18.24-.22m-17.51-.08c2.85-.13 14.49-.94 17.29-.81M229.284 629.697c2.98-.03 14.07.01 16.92 0m-17.37-.4c2.96-.24 14.07-.66 16.96-.5M223.748 401.173c2.81.02 14.33-.28 17.32-.16m-16.5 1.21c2.98.13 14.74-.53 17.56-.72M160.857 401.554c2.99.13 15.04.89 17.92.9m-17.09.08c2.98.01 13.87-.71 16.8-.8",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(189.154 390.381)",strokeOpacity:.9,fillOpacity:.9},"OR"),S||(S=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M519.026 460.794c68.76 4.4 139.07 1.38 264.95 0 21.25 3.5 31.3 10.34 32 32-1.25 64.02 3.26 123.15 0 245.75 2.23 23.1-10.98 29.44-32 32-93.95.54-180.98-2.61-264.95 0-19.78-2.5-33.46-9.31-32-32 2.76-97.8 5.52-194.77 0-245.75 1.02-23.74 8.09-31.19 32-32",strokeWidth:0,fill:"#fff"}),D.createElement("path",{d:"M519.026 460.794c102.77-1.36 201.84-.52 264.95 0m-264.95 0c83.2-.48 165.59.47 264.95 0m0 0c22.21.25 32 9.97 32 32m-32-32c22.19.4 30.91 8.54 32 32m0 0c-.05 49.79 2.47 102.04 0 245.75m0-245.75c2.04 90.93 1.25 183.04 0 245.75m0 0c-.83 21.15-9.89 33.21-32 32m32-32c.33 23.02-11.17 32.56-32 32m0 0c-59.67 1.6-119.95-1.19-264.95 0m264.95 0c-96.18-.77-191.3-.75-264.95 0m0 0c-20.65 1.99-32.59-12.45-32-32m32 32c-21.95-1.47-31.7-11.9-32-32m0 0c.4-51.55 1.15-103.73 0-245.75m0 245.75c-1.4-94.31-2.14-190.63 0-245.75m0 0c1.14-23.01 12.18-33.44 32-32m-32 32c1.9-22.3 8.51-30.33 32-32",stroke:"#1971c2",fill:"none"}))),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(492.349 435.245)",strokeOpacity:.9,fillOpacity:.9},"Activation condition"),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(507.724 495.962)",strokeOpacity:.9,fillOpacity:.9},"Time rule"),N||(N=D.createElement("path",{d:"M523.008 690.194c78.28 2.76 155.13 2.06 256.31 0m0 0c8.29.74 13.83 3.54 13.48 13.48m0 0c.71 3.79-1.13 12.43 0 26.95m0 0c1.22 10.41-2.88 14.47-13.48 13.47m0 0c-88.85-1.61-179.57-.31-256.31 0m0 0c-7.77.29-12.01-4.93-13.48-13.47m0 0c.22-7.48 2.17-15.74 0-26.95m0 0c-1.54-7.76 4.6-14.73 13.48-13.48",stroke:"#1971c2",strokeWidth:1.5,fill:"none",strokeDasharray:"8 9",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(508.627 658.612)",strokeOpacity:.9,fillOpacity:.9},"User rule"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(555.205 708.827)",strokeOpacity:.9,fillOpacity:.9},"Active for Bob and Alice"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(635.097 617.785)",strokeOpacity:.9,fillOpacity:.9},"AND"),v||(v=D.createElement("path",{d:"M611.512 627.797c2.76.05 14.07.9 17.04.9m-16.17.03c2.9-.11 14.34-.7 17.13-.8M672.079 628.536c2.97 0 15.15-.88 18.08-.88m-17.35.6c2.95.1 14.33-.05 17.06-.16M673.103 400.913c2.96.07 14.5.37 17.36.53m-17.84.4c2.92.2 14.71.44 17.62.32M610.261 401.984c2.87.17 14.36.42 17.15.46m-17.61-.92c2.79.07 14.53.24 17.31.2",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(637.82 390.381)",strokeOpacity:.9,fillOpacity:.9},"OR"),b||(b=D.createElement("path",{d:"M452.395 621.011c2.95-.04 14.72.05 17.6.11m-16.81.89c2.91.04 13.39-.31 16.32-.32M389.784 621.662c2.88.06 14.06.11 16.96.22m-16.02.84c3.08.18 14.34.05 17.02-.15",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(417.871 610.329)",strokeOpacity:.9,fillOpacity:.9},"OR"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(523.526 532.802)",strokeOpacity:.9,fillOpacity:.9},"No time rule (active all the time)"))},W={title:"Features"},J=void 0,L={id:"usages/features",title:"Features",description:'In Izanami, feature flags are just called "features" for the sake of simplicity.',source:"@site/docs/03-usages/01-features.mdx",sourceDirName:"03-usages",slug:"/usages/features",permalink:"/izanami/docs/usages/features",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Features"},sidebar:"tutorialSidebar",previous:{title:"Concepts",permalink:"/izanami/docs/usages/"},next:{title:"Contexts",permalink:"/izanami/docs/usages/contexts"}},I={},z=[{value:"Feature activation",id:"feature-activation",level:2},{value:"Activation rules",id:"activation-rules",level:2},{value:"Time rules",id:"time-rules",level:3},{value:"User based rules",id:"user-based-rules",level:3},{value:"Scripted feature",id:"scripted-feature",level:2}];function G(e){const t={a:"a",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,x.a)(),...e.components};return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(t.p,{children:'In Izanami, feature flags are just called "features" for the sake of simplicity.'}),"\n",(0,w.jsx)(t.h2,{id:"feature-activation",children:"Feature activation"}),"\n",(0,w.jsx)(t.p,{children:"Two elements are used to decide if a feature is active:"}),"\n",(0,w.jsxs)(t.ul,{children:["\n",(0,w.jsx)(t.li,{children:"Feature status: enabled / disabled"}),"\n",(0,w.jsx)(t.li,{children:"Feature activation conditions"}),"\n"]}),"\n",(0,w.jsx)(t.p,{children:"If a feature is disabled, then this feature is not active, regardless of activation conditions."}),"\n",(0,w.jsx)(t.p,{children:"If a feature is enabled, activation conditions are used to compute feature activation."}),"\n",(0,w.jsx)(m.j,{children:(0,w.jsx)(t.p,{children:"If you just want an on / off feature, don't define any activation condition.\nIn this scenario, feature activation is deduced from feature status (enabled\n-> active, disabled -> inactive)."})}),"\n",(0,w.jsx)(t.p,{children:"A feature can have 0, 1 or more activation conditions, however only one of them need to match to make the whole feature active."}),"\n",(0,w.jsx)(t.p,{children:"A condition is composed of one time rule and/or one user rule. Possible rules are detailled below."}),"\n",(0,w.jsx)(t.p,{children:"If both rule are defined, both need to be active to activate condition."}),"\n",(0,w.jsx)(m.j,{children:(0,w.jsx)(t.p,{children:'There is a logical "OR" between activation conditions. Inside a condition,\nthere is a logical "AND" between time and user rules.'})}),"\n",(0,w.jsxs)("figure",{children:[(0,w.jsx)(f,{height:"400"}),(0,w.jsx)("figcaption",{children:"Feature activation decision tree"})]}),"\n",(0,w.jsx)(t.p,{children:"Below schema givena an example of feature that define several activation conditions."}),"\n",(0,w.jsx)(t.p,{children:'Conditions are used here to progressively activate feature for all users, while keeping feature active for two "admin" users: Alice and Bob.'}),"\n",(0,w.jsxs)("figure",{children:[(0,w.jsx)(Z,{width:"100%",height:"700"}),(0,w.jsx)("figcaption",{children:"Multi condition feature example"})]}),"\n",(0,w.jsx)(t.h2,{id:"activation-rules",children:"Activation rules"}),"\n",(0,w.jsx)(t.h3,{id:"time-rules",children:"Time rules"}),"\n",(0,w.jsx)(t.p,{children:"With this kind of rules, Izanami will activate feature when current time is in provided range."}),"\n",(0,w.jsxs)(t.p,{children:["These startegies are used to implement ",(0,w.jsx)("a",{href:"",target:"_blank",children:"release"})," or ",(0,w.jsx)("a",{href:"",target:"_blank",children:"ops"})," flags."]}),"\n",(0,w.jsx)(t.p,{children:"There is several variation for this catrgory of feature, that can be composed to craft exactly what you need."}),"\n",(0,w.jsxs)(t.ul,{children:["\n",(0,w.jsx)(t.li,{children:"Date range feature: define a start and/or end date for feature activation"}),"\n",(0,w.jsx)(t.li,{children:"Hour range: feature will be active every day on provided range(s)"}),"\n",(0,w.jsx)(t.li,{children:"Activation days: feature will be active only on provided days"}),"\n"]}),"\n",(0,w.jsxs)(m.j,{children:[(0,w.jsx)(t.p,{children:"Here is an example of conditions combination for time features:"}),(0,w.jsxs)("ul",{children:[(0,w.jsx)("li",{children:"has a date range condition from 1st January to 31 January of 2024"}),(0,w.jsx)("li",{children:"has two hour ranges: 08h00 -> 10h00 and 14h00 -> 18h00"}),(0,w.jsx)("li",{children:"has following activation days: monday, tuesday"})]}),(0,w.jsxs)("ul",{style:{listStyleType:"none",paddingLeft:"12px"},children:[(0,w.jsx)("li",{children:"\u2705 Will be active on Monday 8 January at 9h00"}),(0,w.jsx)("li",{children:"\u274c Won't be active on Friday 26 January at 9h00"}),(0,w.jsx)("li",{children:"\u274c Won't be active on Tuesday 16 January at 13h00"}),(0,w.jsx)("li",{children:"\u274c Won't be active before 1st Januar or after 31 January"})]})]}),"\n",(0,w.jsx)(t.h3,{id:"user-based-rules",children:"User based rules"}),"\n",(0,w.jsxs)(t.p,{children:["With user based rules, activation conditions are based on ",(0,w.jsx)("a",{href:"#",target:"_blank",children:"provided user"}),"."]}),"\n",(0,w.jsx)(t.p,{children:"Three is two types of user based conditions:"}),"\n",(0,w.jsxs)(t.ul,{children:["\n",(0,w.jsxs)(t.li,{children:["user list: define a list of user for which feature will be active. This rule is used to implement ",(0,w.jsx)("a",{href:"",target:"_blank",children:"permission flag"}),"."]}),"\n",(0,w.jsxs)(t.li,{children:["percentage: feature will be active only for given percentage of users. Percentage is based on user hash (using ",(0,w.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/MurmurHash",children:"murmum3"}),"), this means that activation is consistent for a given user (if feature is active once, it'll remain active). This rule is used to implement ",(0,w.jsx)("a",{href:"",target:"_blank",children:"canary flag"}),"."]}),"\n"]}),"\n",(0,w.jsx)(t.h2,{id:"scripted-feature",children:"Scripted feature"}),"\n",(0,w.jsx)(t.p,{children:'Sometimes above rules are not enough. For instance feature activation decision may depend on more than "just" the user.'}),"\n",(0,w.jsxs)(t.p,{children:["In such a case, Izanami offers (with the help of ",(0,w.jsx)(t.a,{href:"https://github.com/MAIF/wasmo",children:"WASMO"}),') the possibility to define "script feature".']}),"\n",(0,w.jsx)(t.p,{children:"Such features rely on an underlying wasm script, which will be executed with provided the input each time feature activation is required."}),"\n",(0,w.jsxs)(t.p,{children:["To learn more about these script, refer to the ",(0,w.jsx)("a",{href:"#",target:"_blank",children:"wasm script section"}),"."]})]})}function Y(e={}){const{wrapper:t}={...(0,x.a)(),...e.components};return t?(0,w.jsx)(t,{...e,children:(0,w.jsx)(G,{...e})}):G(e)}},1361:(e,t,i)=>{i.d(t,{j:()=>n});const c={description__trivia:"description__trivia_yesz"};var a=i(6678),l=i(5893);function n(e){let{children:t}=e;return(0,l.jsxs)("div",{className:c.description__trivia,children:[(0,l.jsx)("img",{src:a.Z}),(0,l.jsx)("div",{children:t})]})}},6678:(e,t,i)=>{i.d(t,{Z:()=>c});const c=i.p+"assets/images/izanami-fcff3cbcd789d673683f3365a3ddf9e4.png"},1151:(e,t,i)=>{i.d(t,{Z:()=>r,a:()=>n});var c=i(7294);const a={},l=c.createContext(a);function n(e){const t=c.useContext(l);return c.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:n(e.components),c.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkizanami_documentation=self.webpackChunkizanami_documentation||[]).push([[3418],{4297:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>I,contentTitle:()=>J,default:()=>Y,frontMatter:()=>g,metadata:()=>L,toc:()=>z});var c,a,l,n,r,M,o,d,s,w=i(5893),x=i(1151),m=i(1361),D=i(7294);function A(){return A=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:i,...w}=e;return D.createElement("svg",A({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 947.268 647.939",width:1894.536,height:1295.878,"aria-labelledby":i},w),t?D.createElement("title",{id:i},t):null,"eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1bW1PbyFx1MDAxMn7nV7g4r2F2pue+L6dcdTAwMDImQMItXHUwMDA0SLJnt7aELbBcdTAwMGVCMpa4mK3899MjwJIlyzbBXHUwMDA2c3ZVLrCl0Uxrpr/ur3tafy01XHUwMDFhy2m/6y//2lj2b1teXHUwMDE4tHvezfI7d/7a7yVBXHUwMDFj4SXIfifxVa+VteykaTf59Zdf8jtIK764v8tcdTAwMGb9XHUwMDBiP0pcdTAwMTNs91x1MDAxZvzdaPyV/S2M01x1MDAwZbyLOGpnzbNcdTAwMGL5QFxmoHx2N46yQZlgwCXn2lx1MDAwZVpcdTAwMDRJXHUwMDEzR0v9Nl4+9cLEz6+4U8uwXHUwMDFlJSv+nrCbcXhcdTAwMTd/+tY/XHUwMDEyN0E+7GlcdTAwMTCGX9J+mFx0lcT4IPm1JO3F5/7XoJ12XHUwMDFln79wvu6uXnx11on8xD08XHUwMDFinI27XitI++5cdTAwMWOlg7NedJb1kZ+5xV+WW8JcdTAwMTRXVlkhXGbIwcXsdsYk0UIqJbmQVEFZrrU4jHtOrn8xq1lcdTAwMGJyyU681vlcdTAwMTmKXHUwMDE3tfM2p9mRt7l5fFrOXHQvXHUwMDFlYtCk41x1MDAwN2ed1LVhlmjJqVFcdTAwMDKHwmXJJfGz9WCWgVIoRb5cXG787lY704w/8lXoeVx1MDAxN/6WuyW6XG7D4lRG7YepfNSgXFyH4OHMj/xcdTAwMDFd+/Wy7lx1MDAxNfVvSFx1MDAwN1P/Nlx1MDAxZDx5QWV+27lsr653Op917+jrl61+5889tro8aPfj3ehu729utb7vXHUwMDFld0+/JZ3VpHcjdlx1MDAwZSRnN8OjPI7v9XrxzbT9qlx1MDAwYlxi9d7J9vbd973e7blvgV7uT9fvw7d8uq+6be9cdTAwMWUxTDNqpNFcdTAwMTREQc/CIDovr0VcdTAwMTi3znOQLVx1MDAxNVx1MDAwNK5ge2heXHUwMDBiwOamXHUwMDE216jpVFx1MDAxOU7Z1LhcdTAwMWW9SFx1MDAwYo1rRlx1MDAxOSXKXHUwMDAx21x1MDAwMOLbUlNCtjGEXHUwMDE5brGBpHjIuSDbOlx1MDAxOfC4N6WSqSqwtSwjmVx1MDAwYjS6XGbNzvOBPHShgthZKmkuVVx1MDAxY6VfgrvMaNChs1x1MDAxZryLIOxcdTAwMGataKa9OIFbSeP36NT30quej9/8yDtcdP1249/LQy3fh8FZlOFcdTAwMWWfwO9ccql9XHUwMDFhoGdcdTAwMWM0uFxi2m1UikGDXHUwMDE2XHUwMDBl71x1MDAwNZHf25rGT8W94CyIvPAwl+5Rtlx1MDAxMZLh3Pibj6vJXGLIsXi9t1x1MDAxNyNcdTAwMDArhSifXHUwMDFkIFYqYOhcdTAwMTX01IBcdTAwMWRvXHUwMDE4X1x1MDAwMbB2XCJemeZEWEXBclx1MDAwZTJ/1P49S5FcdTAwMGVI6KyNlMaALomVI1x1MDAxMU6tL8TPoZVRIFRcYmqp1ZqjgVx1MDAxY+GHmZKEolx1MDAxZrZMXCJbsEZUXHUwMDFkMVx1MDAxM0ppLV/NXHUwMDExj4E1XHUwMDFhOy1NUXWnhXWSer10NYjaQXQ2LNhcdTAwMDP/nFx1MDAwNlmZIWhdOSlXKE61loIzXHUwMDAzVjFpXHUwMDE1h0KzM6/rpK48rFx1MDAxZrWnXHUwMDEwXCI4h32WfvxcdTAwMWNs362mx+tBbz9sLld65yiBotQwQHdcIkFwPUJOSnDikP5RQI1Ar4GUsFwiVOgl6Vp8cVx1MDAxMaQ42ftxXHUwMDEwpeVJzWbvvYN+x/cqK45cdTAwMGZVvFa2XHUwMDExXdfjMMXKvzVyXHUwMDFjZT9cdTAwMDbf/3g3srVhXHUwMDA0fVx1MDAwYpWUXHUwMDAzUoChZ27gjChprFx1MDAwNoFPK62lVEzqrlx1MDAxZTLZ1VxuWPL+lor/n8puXG6OtGQrOdNg0HnlXHIm2sr47HBn7aDJr06aQeez+rZ2vFx1MDAwYottK0FcdTAwMWFimdKGcyWkNnkv99zGXHUwMDAyXHUwMDAxY4yWgNyHSlVcdTAwMTJsNtaSXHUwMDAzYS5YkYxxXHSS5+YuXHUwMDBmWircXHUwMDA2KIZUXHUwMDE4vlx1MDAxNMzmi5JcdTAwMWJqMEhcdTAwMTKcKp5P6bzJzXc/qeExoX+ajmExadytozBDwpb5ytCAM6InQrDy2Vx1MDAwMT3hlFx1MDAxYqGLrnBcdTAwMTLmxlx1MDAwN1iLiDnLMV5QXG6UlsqI0Vx1MDAwNFx1MDAwNdsogeGEtfX8xKeccfaT0YQgXHUwMDBlPkh/jDZcdTAwMTZd+lxiesJcdTAwMDQxXFxcdTAwMDBohW0whqhGXHUwMDE3klx1MDAwM0U7PVx1MDAwM1x1MDAwMM6Fndii5r5cdTAwMTY7Qa/PgGqca4aSIU9RhUbP4iY7zVx1MDAxZC43Vz59+66PzjdiuDW+ulx1MDAxZC1cdTAwMDJFcoLmVWlcXCxcXE90n1UhNDFcdTAwMTjpKlx0XHUwMDE2l5tLId80OVmp1XB3WGKstFKhXHLHsFx1MDAxZKid2J1cdTAwMTGEWytBo4tSYHIwuKNcbpUnkpOe30rvjcUohjKGolxiVC75lLzqeKVZyPyLXHUwMDA2RdDOICe0hlx1MDAxOVx1MDAwNbm5ye7nyGA4R1KoLddKSl5cdTAwMTJsNlx1MDAwNlx1MDAxM2eZXGYypvhlRPol01x1MDAwMiZcdTAwMWU/spBcdTAwMTV7NJgopstcdTAwMWblNn2GXHUwMDA285FcdTAwMTDPPK9qt3zvtHeysfNx66Cz0kzuPkfnL5H/XHUwMDFj2+/Kp5Om+XquvKOweaM6yUdxSO/eVl5cdTAwMTXGbJhotNiCXG47PVx1MDAwZlx1MDAxYb1Ki1xybCGdZ1JcdTAwMTSJXHUwMDBlRlx1MDAxZbZEhFx1MDAwNOVcdTAwMDRcbjsm82FCwCThLrGKq85w/Y2pXCK7XHUwMDFhfDCnXCLoQfjfKLP64SFxXHUwMDE5JI0oTlx1MDAxYl4rXHKu/Zpw5Llp1Vx0bqpcdTAwMWOmTFx1MDAxMO1pgUstXmvDXHUwMDE2pHWOXHUwMDFjiFx1MDAxYzqT0HpwvN47/vP91rn6mFxcXHUwMDFmNu0+xr7fXHUwMDE2OmpBykNcdTAwMDDjM21cdTAwMTXSJl1IMT8kXG5cdTAwMDTR0iCEUCmpXHUwMDE2c1x1MDAwMisn1iVcbkAgj+WaXHUwMDE39lrGZVxutJFWWZY/9/99omA3ftk8QXG8p6FtTEVcdTAwMDEqUlx1MDAxZOKk1lx1MDAxYVx1MDAxZKR9QkHB2EzuQvpHXHUwMDE3MFx1MDAxMrBW4Idxi56yxHwtJ1x1MDAxMjhigVx1MDAwMVx1MDAxOHSXtZh7zsYjoo1QjFx0lUTM4ZdRyTnFiC2WXHUwMDE0VFx1MDAxMKiEXHUwMDE2is6F9/50PcG8Nv4n8enw/cbOxiexu3HbOlpb+TPdV3diY+o6hVx1MDAwM9DR5vX5bnfztnUl4p2Tzfi3f/j0vX+uzytcdTAwMDJcdTAwMDaHlksxvb1cdTAwMTi9SottL4BqwqhGm4D+TtlypCyMJpRpwOUwQ6VBszRcdTAwMTeMXHUwMDBiXCKyyiMuqUTHO2Lns1qowNBHovWAWYTGb4VPN2M/acSR34hPXHUwMDFiv0dpx2+gw21cdTAwMDcp6i3+vvDSVmd+ZVx1MDAwYuO9Ydm9XHUwMDE3RVx1MDAxZFx1MDAxNrRcIuaMNlx0dD3bZoaDVJzrfKYnbsyNtZqLSLeZXHUwMDEwjLhcdTAwMWFcdTAwMDWMSFx1MDAxNVx1MDAxN6BLvl9cdTAwMDJcdTAwMTCdJZrAKs2g3vc/Z2POWGKtQnBcbuBIQMSI2NgywjD+0VZQXHRmSJBcdTAwMDdouy1Us2i7XHUwMDA0zyTl0+5cdTAwMTJMKlx1MDAxZijWMGgqXHUwMDE1gMLJXHUwMDE2XHUwMDE0f9hCs/tcdTAwMTQ98jDKlWKo+i7T/JPbXHUwMDA2bS/YS1x1MDAwZU7ew9rK+lx1MDAxZbuOXHUwMDA1P+zdjJLJiYS8zyVnLFPcXGJcdTAwMThRViEwIFNcdTAwMWFcdChFLUBcdTAwMTVcdTAwMTBcdTAwMTWh3tKugUFQMeXyblx1MDAwNrSr9SvezYmmfPBRVvKJ3dXBx1x1MDAxZFx1MDAxNeDkvS1cdTAwMTX/P9l0KlZcdTAwMWI2MYnhs0QwTl//NZ5cdTAwMTgupOlk1Fx1MDAxMmms4I7zof5WTCdGVeBoXHUwMDEyzkQhgpztdlx1MDAwMXN7vFS79eV2ZLmmK3hcdTAwMTHKulxyXGZnXCItrbBcIuG2pqidRfnm29tgndZ0UlwiqKLIeNHFoF00XHUwMDA1XG5XsJxu245pvGrQUCla3dyc9ZYrQppaaykwLYTAXHUwMDAwuGo7XHUwMDE5QfduXFz5lOKubsxWhHpLtnNcdTAwMDU1g+S2k2LEX7xfWuSCdvDhcmJ/9Vx1MDAxOMouXHUwMDBiTqCQl9BPNJ91UaSor3bnOJSrMHxcdTAwMDLvVNur/e+X9LLr71x1MDAxZXtcdTAwMWJh/7ZcdTAwMTP3XHUwMDE32niiNydcbi2OYlxmnVx1MDAxNv4r2U6JXHUwMDFl0rhcYlx1MDAxMldcdTAwMTn1u/4tlldI82Loa5Gk0Fx1MDAxOVTL/pPnfdCcmeV5x5Y4XHUwMDAwq61YR1tcdTAwMDLSbbVNXHK68Vx1MDAwNHcxMzfI+Fx0d6+XMG2U0KaUuVFIWdDlupJaylxy1/MpWp9JjYNcdTAwMDJcZlx1MDAxNtDtzYWzzK3GwWzoXHUwMDBm/uVcdNDWYT8+WO9cXFx1MDAxZtxsfX2BnOyjq6onWi/0jldevV3Zalx1MDAwMXAvXHSa6VOnoydzwVx1MDAwMSgocaVUyqDnXHUwMDAzxUsxXHUwMDAzhrjEbTkpZGpcZkT9K17PemlcdTAwMDRcdTAwMDdR7lxyMqRcdTAwMThcXLpXdaZxe0y7Slx1MDAwNPQ+r+T2XrlcdTAwMTRhrmVcYlx1MDAxM1xcyZgyhDmVINRWXHUwMDAyMio1Olx1MDAxMFDT1yB80CdHfOe/l3x9Y3tNNrfvZLpyvNDkXHUwMDE0/VxyXHUwMDA2VkJbdIXAOaWlXCJcdTAwMDRhgChDXeaGXHUwMDFiauo3OF78ZVx1MDAwNaal4Uqje//7cNOFfFlh6cHZLnvd7pdcdTAwMTTnZ8Azlq9cdTAwMDP/ZrVeXHUwMDExllx1MDAxZeDqgOFn9OTH0o//XHUwMDAxVlTb5SJ9",c||(c=D.createElement("defs",null,D.createElement("style",null,'@font-face{font-family:"Virgil";src:url(https://excalidraw.com/Virgil.woff2)}@font-face{font-family:"Cascadia";src:url(https://excalidraw.com/Cascadia.woff2)}@font-face{font-family:"Assistant";src:url(https://excalidraw.com/Assistant-Regular.woff2)}'))),a||(a=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M369.213 37.5c16.32 17.57 39.09 36.43 57.83 55 31.98 28.07 31.61 26.43 0 55-15 16.15-38.23 33.56-57.83 54.75-30.98 30.55-27.62 28.68-58.5 0-19.22-20.04-32.3-32.87-58.5-54.75-31.6-24.46-26.82-24.81 0-55 17.84-14.61 32.4-32.85 58.5-55 31.89-27.44 31.03-27.51 58.5 0",strokeWidth:0,fill:"#fff"}),D.createElement("path",{d:"M369.213 37.5c23.41 21.28 43.04 38.95 57.83 55m-57.83-55c11.35 12.2 23.41 23.3 57.83 55m0 0c28.26 25.55 28.83 27.39 0 55m0-55c29.74 29.25 30.42 29.71 0 55m0 0c-17.68 16.63-34.56 32.86-57.83 54.75m57.83-54.75c-15.32 13.61-29.51 28.7-57.83 54.75m0 0c-30.44 26.48-27.5 27.89-58.5 0m58.5 0c-29.9 25.94-31.27 26.52-58.5 0m0 0c-10.99-11.16-26.8-23.51-58.5-54.75m58.5 54.75c-13.27-14.39-27.9-26.62-58.5-54.75m0 0c-28.22-27.34-27.54-28.1 0-55m0 55c-28.88-25.66-30.28-26.75 0-55m0 0c14.33-14.87 26.62-27.86 58.5-55m-58.5 55c14.54-12.77 29.66-28.49 58.5-55m0 0c30.33-26.39 29.61-27.96 58.5 0m-58.5 0c31.33-26.59 27.43-28.28 58.5 0",stroke:"#1971c2",strokeWidth:2,fill:"none"}))),D.createElement("text",{x:45.333,y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",textAnchor:"middle",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(294.463 82.438)"},"Is "),D.createElement("text",{x:45.333,y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",textAnchor:"middle",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(294.463 82.438)"},"feature "),D.createElement("text",{x:45.333,y:67.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",textAnchor:"middle",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(294.463 82.438)"},"enabled ?"),l||(l=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M458.155 119.531c13.58.58 64.98-24.36 81.67 3.23 16.69 27.58 15.1 135.22 18.45 162.27m-101.12-166.74c13.39.76 64.9-22.44 82.15 5.57 17.24 28.02 17.78 135.46 21.31 162.52",stroke:"#2f9e44",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}),D.createElement("path",{d:"M550.455 263.541c3.19 10.16 6.41 15.92 10.16 22.84m-10.16-22.84c3.48 7.68 5.35 13.75 10.16 22.84M567.515 262.361c-3.45 10.74-6.86 16.96-6.9 24.02m6.9-24.02c-1.72 8.05-5.06 14.48-6.9 24.02",stroke:"#2f9e44",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}))),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#2f9e44",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(542.716 86.543)",strokeOpacity:.9,fillOpacity:.9},"Yes"),n||(n=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M222.906 120.138c-15.58 1.82-80.82-9.58-95.12 9.53-14.3 19.11 7.83 87.45 9.33 105.16m84.82-115.63c-15.69 2.1-80.88-7.58-95.18 11.92-14.31 19.49 7.7 87.91 9.36 105.05",stroke:"#e03131",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}),D.createElement("path",{d:"M123.016 214.878c3.29 4.77 5.85 9.45 13.1 21.29m-13.1-21.29c3.63 5.88 8.53 12.11 13.1 21.29",stroke:"#e03131",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}),D.createElement("path",{d:"M139.766 211.428c-.8 5.74-2.3 11.26-3.65 24.74m3.65-24.74c-1.48 7.09-1.66 14.36-3.65 24.74",stroke:"#e03131",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}))),r||(r=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M38.7 252.593c81.6 4.25 153.1 2.54 195.68 0 21.87 1.22 26.02 11.51 28.71 28.7 2.51 11.92-3.08 27.1 0 57.41-2.23 22.42-12.29 29.34-28.71 28.7-68.01-.27-137.53.61-195.68 0-17.11-.04-26.31-7.91-28.7-28.7 3.04-12.85 2.45-28.37 0-57.41 3.17-18.19 10.97-26.78 28.7-28.7",strokeWidth:0,fill:"#fff"}),D.createElement("path",{d:"M38.7 252.593c76.88-2.92 148.59-.18 195.68 0m-195.68 0c75.54-.89 153.46-.25 195.68 0m0 0c19.41-.18 30.5 11.07 28.71 28.7m-28.71-28.7c18.86-.48 26.9 8.84 28.71 28.7m0 0c.34 19.48.66 35.56 0 57.41m0-57.41c.38 19.42.68 39.69 0 57.41m0 0c1.51 21.06-11.03 28.53-28.71 28.7m28.71-28.7c.21 17.82-7.3 26.57-28.71 28.7m0 0c-67.1.9-132.59-2.73-195.68 0m195.68 0c-65.88-1.17-130.73.28-195.68 0m0 0c-19.31.07-27.92-8.7-28.7-28.7m28.7 28.7c-20.64-1.87-30.07-11.73-28.7-28.7m0 0c.36-21.44 1.19-41.45 0-57.41m0 57.41c-.9-19.29-.63-40.4 0-57.41m0 0c-.42-17.51 8.41-28.34 28.7-28.7m-28.7 28.7c.47-20.94 9.18-30.63 28.7-28.7",stroke:"#e03131",strokeWidth:2,fill:"none"}))),D.createElement("text",{x:107.683,y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#e03131",textAnchor:"middle",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(28.86 297.5)"},"Feature is not active"),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#e03131",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(139.012 89.012)",strokeOpacity:.9,fillOpacity:.9},"No"),M||(M=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M600.849 320.528c33.19 24.64 66.75 55.44 81.6 65.5 41.53 35.6 44.95 36.07 0 65.5-18.02 18.24-44.35 36.75-81.6 65.48-44.44 33.16-43.75 29.99-83.5 0-16.52-16.15-42.04-31.86-83.5-65.48-44.58-32.82-43.56-33.78 0-65.5 28.43-22.17 57.72-44.85 83.5-65.5 44.56-33.54 39.48-30.14 83.5 0",strokeWidth:0,fill:"#fff"}),D.createElement("path",{d:"M600.849 320.528c18.95 16.5 35.11 31.14 81.6 65.5m-81.6-65.5c30.93 25.11 61.91 48.88 81.6 65.5m0 0c42.03 33.12 40.49 31.32 0 65.5m0-65.5c43.84 34.37 43.71 33.65 0 65.5m0 0c-22.39 19.8-47.39 37.37-81.6 65.48m81.6-65.48c-23.36 19.79-47.06 39.13-81.6 65.48m0 0c-40.99 31.7-43.1 32.33-83.5 0m83.5 0c-40.23 34.01-40.37 33.02-83.5 0m0 0c-21.01-16.82-41.62-33.78-83.5-65.48m83.5 65.48c-20.52-15.72-39.57-30.47-83.5-65.48m0 0c-40.85-33.73-40.43-32.16 0-65.5m0 65.5c-39.66-33.71-39.95-31.75 0-65.5m0 0c32.17-26.19 62.01-47.29 83.5-65.5m-83.5 65.5c23.52-16.96 43.95-35.02 83.5-65.5m0 0c41.06-31.52 42.05-31.12 83.5 0m-83.5 0c42.52-33.68 40.29-32.77 83.5 0",stroke:"#1971c2",strokeWidth:2,fill:"none"}))),D.createElement("text",{x:67.217,y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",textAnchor:"middle",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(490.907 381.272)"},"Does one of "),D.createElement("text",{x:67.217,y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",textAnchor:"middle",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(490.907 381.272)"},"the condition "),D.createElement("text",{x:67.217,y:67.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",textAnchor:"middle",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(490.907 381.272)"},"match ?"),o||(o=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M725.508 417.932c13.81.72 67.14-12.46 81.98 2.45 14.85 14.91 5.83 72.23 7.09 86.99m-90.36-90c13.66.98 67.22-10.77 82.1 4.38 14.88 15.14 5.69 72.34 7.17 86.51",stroke:"#2f9e44",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}),D.createElement("path",{d:"M805.588 484.542c3.37 5.31 3.29 11.02 7.9 23.72m-7.9-23.72c.99 5.53 2.69 10.95 7.9 23.72M822.688 485.012c-.98 5.24-5.41 10.83-9.2 23.25m9.2-23.25c-2.99 5.53-5.26 10.84-9.2 23.25",stroke:"#2f9e44",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}))),d||(d=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M393.629 422.875c-28.94 10-131 67.03-173.04 59.69-42.04-7.33-66.04-86.41-79.21-103.71m250.91 43.19c-28.66 9.65-128.2 65.85-169.61 58.84-41.42-7.01-65.32-84.06-78.86-100.93",stroke:"#e03131",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}),D.createElement("path",{d:"M162.559 396.515c-6.28-8.08-12.49-13.63-18.74-16.56m18.74 16.56c-5.35-4.65-9.9-8.48-18.74-16.56M147.529 404.685c-.72-11.14-1.37-19.71-3.71-24.73m3.71 24.73c-1.31-6.77-1.86-12.77-3.71-24.73",stroke:"#e03131",strokeWidth:2,fill:"none",strokeOpacity:.9,fillOpacity:.9}))),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#e03131",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(220.494 447.037)",strokeOpacity:.9,fillOpacity:.9},"No"),s||(s=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M712.881 523.124c41.38.55 84.02.18 195.68 0 18.4-1.38 32.22 9.6 28.71 28.7 2.79 21.09-2.71 39.39 0 57.41.85 15.89-11.98 25.15-28.71 28.7-70.93 4.49-145.88.22-195.68 0-17.39 3.35-29.15-10.18-28.7-28.7-2.93-23.99-2.03-44.58 0-57.41 1.4-21.93 12.69-25.91 28.7-28.7",strokeWidth:0,fill:"#fff"}),D.createElement("path",{d:"M712.881 523.124c55.19 2.04 109.67-.18 195.68 0m-195.68 0c42.6 1.04 84.35.55 195.68 0m0 0c19.24 1.62 28.64 11.06 28.71 28.7m-28.71-28.7c19.78-1.35 28.76 7.38 28.71 28.7m0 0c-1.18 21.3-2.13 44.78 0 57.41m0-57.41c-.95 17.03.16 32.05 0 57.41m0 0c.78 17.82-10.28 27.37-28.71 28.7m28.71-28.7c1.42 20.59-8.12 27.31-28.71 28.7m0 0c-70.74.6-138.13.24-195.68 0m195.68 0c-58.9-.21-118.05-.28-195.68 0m0 0c-19.59-1.67-28.99-10.98-28.7-28.7m28.7 28.7c-20.21-1.17-27.12-9.47-28.7-28.7m0 0c.85-22.1.97-42.32 0-57.41m0 57.41c.22-19.17.74-40 0-57.41m0 0c-1.14-20.71 10.35-27.55 28.7-28.7m-28.7 28.7c-1.23-18.32 10.46-28.26 28.7-28.7",stroke:"#2f9e44",strokeWidth:2,fill:"none"}))),D.createElement("text",{x:86.8,y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#2f9e44",textAnchor:"middle",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(723.925 568.031)"},"Feature is active"),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#2f9e44",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(784.047 376.935)",strokeOpacity:.9,fillOpacity:.9},"Yes"))};var p,T,X,h,y,u,U,H,V,F,E,O,k,j,S,N,v,b;function Z(){return Z=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:i,...c}=e;return D.createElement("svg",Z({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 851.56 802.438",width:1703.121,height:1604.876,"aria-labelledby":i},c),t?D.createElement("title",{id:i},t):null,"eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1daXPiyLL9Pr/C0S9uxHtcdTAwMTFjTVVlLVnzXHIvXHUwMDE4t3fwXHUwMDA2N244MIjdrLLB3Jj//rJwt8Gy1Vx1MDAwNlx1MDAxYdqiTc/StiSgkPLUOblU1n//2Nj4XHUwMDEyPLb9L39vfPFcdTAwMDeFfKNa7Ob7X/50x1x1MDAxZvxur9pq0ikx+r3Xuu9cdTAwMTZGV1aCoN37+6+/xq/wXG6tu6dX+Vxy/85vXHUwMDA2Pbru3/T7xsZ/R/+f+JyuX1xi8s1yw1x1MDAxZr1gdGr8UVJi+Ohxqzn6WG5cdTAwMDTTXFwqq56vqPZ26PNcdTAwMDK/SKdL+UbPXHUwMDFmn3GHvlx1MDAwNMlcdTAwMGVcdTAwMGXKyZy4XHUwMDFlnN/r4/1cdTAwMWOH0/r4Y0vVRiNcdTAwMTM8NkbD6rXoq4zP9YJuq+5fVYtBxX126HjUq7qt+3Kl6fd6L17TaudcdTAwMGLV4NFcdTAwMWRj7Pno0z34e2N8ZEC/oWKe1lZcdTAwMWJAoyWI55NPL0fjaTquhVBKcFx1MDAxMVx1MDAxYdZ2q9HqumH9XHUwMDBmt4ZcdTAwMTfEeGC3+UK9TKNrXHUwMDE2x9f41i/4pfE1/W9fXHUwMDE2gXtKM6FcdTAwMTWCNMDM81x1MDAxNVx1MDAxNb9arlx1MDAwNHSJQeFJQI6gXHUwMDA1ILLxQ+v5o6chmEUupVXjb+c+vr1fXHUwMDFjWcZ/xs+gm7/z991LmveNxuSNbFx1MDAxNr/dyFx1MDAxNydu3YndXHQjXHUwMDFiv9V9u5h/slx1MDAwNW7oTilEXHIg4fl8o9qsh9+u0SrUx+YzOvrPn3PYLVc8ym6FMXSXtLJTm61/gNu5bT3of+2wZFx1MDAwZm/VYSXFYm62iFx1MDAxZVx1MDAxN1x1MDAxYyyzZLxswmZGr+eAnuaabEkg/SvDXHUwMDAzm81wS6M/r1xyXHUwMDE3XHUwMDA0epYs1mHHKCPgteFcdTAwMDJTXHUwMDFlU5IrXHUwMDBi1pB1glxmW65cdTAwMDRrXHUwMDE1Sil+3nC/m9DYiODbkX/mtGcmOVuUPVx1MDAwN/4geMuUNURZspaMSSWEntqSXHUwMDBmMlubeVx1MDAwYvleut2s90/vL7PJxO5HWrJ915AteFJK7r4rmfIrQ+bgMZqfLf0nUf3cXGZcdTAwMWN0881eO9+lR//amLnlZKmMMTJZTtaMr41ZqLDxcklcdTAwMTNcdTAwMWWisVx1MDAxZjTtMlx1MDAxNJpuXHUwMDFlXHUwMDAzLWcw0/GoWs0gU1x1MDAxZI5mTfbiaDJ/V208vnioI/ulu5goXHUwMDA01Yd8QHa6UWg1i1X305dcdTAwMTdXJVx1MDAxYdWys+wvXHK/9NLkgyopmOfTQas9PkvvXHUwMDE15KtNv/v6LrW61XK1mW+cTzVcdTAwMDL6/n7q+yPjnlDzs1xm8UikOqIpjbSDVWODfVx1MDAwZpyNo27qtF9Wg4NyrpWwN4VOJ52KN81wXHUwMDEw0vFcZlNGabpcdTAwMWPGXGJ45lx1MDAxOU64RJKJXFxYXGJccuxcdTAwMTfSjPWMdFxmo0mmKTsxTTxcdTAwMDHVgiBIXHUwMDBiWFx1MDAwME5Xk2VIXHUwMDA3RFx1MDAwYn1gKK2eoOD3TNlkXHUwMDFmTju1m0Hz1tTTfjZ1cle63Yo1z5AlW1wiXHUwMDFhQGCacWYnhMg3olx1MDAxMZ6yVlx1MDAxOJIj9EjiRTNWXHRNxs/XLDNx1SqxjLv6LVTa8LFnTFrLjVx1MDAwNDVcdTAwMDMmu7vZ8/Q9PtaaJ7VKPlx1MDAxNVx1MDAxY5+K64d4Y1JY5jEkbVx1MDAwN8CZXHUwMDA0XHUwMDFlXHUwMDEyf8DdxE/yj1SwXCJcdTAwMTZYXHUwMDFlKI0nrFaktYnoOPlLY/w/o3I89G+gJK+L2MYswuN+TSliXkr5Saz2gnw32KqSuTfL4Zf4zWLEmUa+XHUwMDE3bLfu7qpcdTAwMDFccuO0VW1cdTAwMDbhK0bvm+h2W/2Kn391L+idI8+13duNw1vuz/injfFjXHUwMDE5/fL883/+fPPq6Fx1MDAwN1x1MDAxZHr5XHUwMDFmk3/PimrNwlx1MDAwN589Olx1MDAxMoxWWjE9qlx1MDAwYtuZo+Ovl7Ujv1Qt7tXuXHUwMDFld64z2ZijWlx1MDAxOI9cdTAwMWJjNLn9JFxmQ5LRgZpLQrTUoIDrJXp086CaIzmb9Fx1MDAxNSYuXsP6c8H6x1x1MDAwMXOIXGaYXHUwMDBi0nTGklx1MDAxYjJ+RO+h++7iVqTrnTRcdTAwMWXe9NnXg2p55z6VWCi6i/lexV8kvK2L6Fx1MDAxOVx1MDAxON1nTX+Pb8dcYt6CXHUwMDE5z1xiYnSFdNXydLRA8IQhJY9cdTAwMWO0XHUwMDFizHiaeVx1MDAwNrdcdTAwMDLPMvJcdTAwMDZJPoPVXHUwMDAyx2rrO9hcdTAwMTVaXHUwMDAyvFxchLBeoFs4XHUwMDFm2H9o05FuYTRXXHSiKY3WsKmt2SRNTnUu9KDWyO9v1Tf7pW77MObWTF4hV2SwUlvOJnNdj9+pTIqRV6iAPDa1PHtcdTAwMDb0XHUwMDE0XHUwMDAyqVxcIVxyM+yNIId4TVZcdTAwMWGVXCJcdTAwMWaSLSB4/rGOIdcvjr7nXHUwMDE4+lx1MDAxYqVu626D8b/oX8GE3MBcbrBcdTAwMGbwXHUwMDBm31x1MDAxYshsbmJcdTAwMTRKOURcdTAwMDdvXHUwMDA0WaY2fGJcdTAwMWV+XHUwMDBmpnT53YlcdTAwMGVyj1x1MDAxZMzoq9J94343UYu1pLREKmCRXHUwMDE4hSOS2YVjN0Z7gFx1MDAxYVxmwdVN+MtjXHUwMDFk8ldcdTAwMDVcdTAwMTBIrTHipY7/UZJAaeJKJj9TkuC8eudvdO8nNdSvwORcdTAwMWJcdTAwMWa7wHSA4pFJZzI/48J60zt2R5XKQCaGg/pxNZ3N3iRrUK/amJMlQ8JcdTAwMTl3Opv0n7RjPfXk2Wn0pFwiSciIMdHIJZLlXCLEXHUwMDFmMFx1MDAxMFxullx1MDAxNL9ZXHUwMDA17Vx1MDAwNzYy82xcdTAwMTg9QeAzZJ4vXG63eJpMXZxcZnvHW92H+2Ilw77G3JyV8uhOM5f84JpcXLeQOaPykDHJR6LMLs+aOVx1MDAxMru5lICmx66ILd5ildfaz1x1MDAxYXpC5GItIFCxatqv1d1Q/9polTbue2S3XHUwMDFmI/uixrBcdTAwMTjFJ4RcZlx1MDAxZv2OTUnOXGLNWjg91Vxc7Mr0eVtcXO3Z/fOgX+5ov6eTsVx1MDAxN3xcdTAwMTKZJlx1MDAwMydcdTAwMTdcdTAwMWQmgnFP0Fx1MDAwNO1cdTAwMTHBoFx1MDAwMm4lOfDLwyZcdD6aXHUwMDFkrEVpJFx1MDAxN1x1MDAxM/z/XHUwMDAzvadBKiXZRKBoRYE5vdy7IFxmfIDce+NjXHUwMDE3XHUwMDAzP1x1MDAxYok+wZkhXHUwMDFmhJnp/a3bvjy5qp2L87Pri8zd3aXJVtNcIt7UyJkg8rOW5JFUgCBD3CgsXHQwwlx1MDAwNFrNiUbN8oL44D5cYmaMi1x1MDAwMLOgtLIrj8BcdTAwMTmo8XjnXHUwMDE38+DkXHUwMDA3LiZcdTAwMWI+qeNf1agocu5cdTAwMDHt9LDLXHUwMDE1zk72XHUwMDEzN7vX3Urb5tJ8V1xc80qsWY+0qPDIsVx1MDAxMsRcdTAwMWZcdTAwMDQ8hFBsnTxcdTAwMTZSpNpcbkZcdTAwMDDU4ueqelx1MDAxN586XHUwMDEzo1HRINdcdTAwMTnxz5o6i0S2inQ1iUolkoSbQc9uZnrt8+vj5LWod1x1MDAxZa5cdTAwMTOFXHUwMDAyaz/cxlx1MDAxY9lcdTAwMWE8yThcdTAwMDf9lPVcdTAwMWXfjmdka8e0dFxyWK5kaGBcdTAwMWaNbKOZIDd1XHUwMDAxfLpcdTAwMDb2Slx1MDAwMvvHOXFcdTAwMWKZXHUwMDEzl9ZcdTAwMThkMENKXHUwMDFjUru9rVYhXeTFvZ1O41x1MDAwMZL15EHM1TJI4UkrXHUwMDE5jkr2VDg/IZj0tNJE3CRjmZbLK2RbTFZcdTAwMWNcdTAwMDXTXHUwMDA2xSeOjE5cdTAwMDQ+w3RFd0zTfD09W2WH4vzyonssav1cdTAwMWR9N2xAOdHejrtBa01C1EFcdTAwMTeBXHUwMDEwXHUwMDFjtmchPVBcdTAwMTaASUOExZbn/Vx0KT1O3lx1MDAxZpC0RFx1MDAxNMinXHUwMDBijWojnX5Wn8n/m8xGq7ikxaNcdTAwMDayoLS4jU6L69FakcnywnfDNKp2y1xu/lx1MDAwMZ6dn9ab27fb5dq2jLeqXHUwMDA0glx1MDAwN3JcdTAwMGIuJ61cdTAwMTHDi3NcZngkNaVAY60hp3FpMJ0rLW6JKVx1MDAxZMmsfP7is2fFVWSwVFx1MDAwM9KUbWZII57zrVxcaqvX71x1MDAxZO330/v9q9MqP/LjTpZSe1pcYmtJclx1MDAxMVx1MDAxOWI4aqONp6TlLoeATKrlwXAx6o9LSVxuZ1x1MDAxMbHT1Vx1MDAxNH9CR7KKJFx1MDAwN94qukNT23O7t91vnrKLXHUwMDAyXHUwMDFj9NXFQ/XgcudAx51UlGeEYMi4kYKHl3xcdTAwMDIoz2pNZlx1MDAwNsaCMj+15nPhuTdO2lxckFx1MDAwZraI8v1VYZXfLfkmVeSqa02G+TIw/lx1MDAxZVx1MDAwMOtcdTAwMDNcdTAwMWaLqbafb2dqlzzX2bwpJTtxJ1x1MDAxNOu8XHUwMDFloUi3XHTLw7k3QO1xmuHR5cPEMvmESGCewlx1MDAxNGW14fTPXHUwMDE4XHUwMDAxK1xuwflcblNYXHUwMDFjKlPeXHUwMDFjxILgXHUwMDE5uWKAPFx1MDAxMVx1MDAwNdq1KZpcdTAwMWGemZv2YXsvk3rQ+DWb3GpcdTAwMGWuhpVCzOEplPK4VFpzknUvepJ8i+VcdTAwMWJcdTAwMGbpOLlcXEqRmFpcdTAwMWVBXG7hSU1/jMuO0lTxRuOot+rG3NXqU61cdTAwMTk4Sf9aJE5+3oJCXHUwMDFk0Vx1MDAxMUlSRiBcdTAwMTjAXGZcdLStwmG/lareXe/flpvsMJHwh/o85qiTRnjcXG5mRuFcdTAwMGUlQlx1MDAxOTRhXHSUYI1m7kqtl4e6uSpSuFx1MDAxNjRXgIHPRIq/Q0mKinRcdTAwMDZHKkeoXHUwMDE51nKz/eJVrWaCYj29edYo7O3fIG8uXHUwMDE0dlx1MDAwYndcdTAwMDalRFx1MDAwZl3vLSslKcHXXFynPOJBtEyTJ1xiy1x1MDAwM918a7mtK2GncS+lt9w6b/39XFyM89aRuMbIUjPLgHE7Q+OVi20hhJ9N3Z5vXHUwMDFk7V6d+J3ro+1SvGGtmPW0deUmipE7XHLh+mqCtXLdvqSSjrli1nmFXHUwMDBiYFxiWi2CTNe4XklcXP84I8Gi+yo5XHUwMDFmlVxmfvrmsGf1nf1dU9l+TGxcdTAwMWVjLt3ePNovnX4kuqdpXHUwMDBlXHUwMDBintVMXHUwMDEy/YGL9IfS91xuLDmoXHUwMDFj6DJcdTAwMDdu+Cl0L7Vrn1bIXHUwMDE16k/bXHUwMDFhVkJkak1cdFx1MDAxZIpzv2fIMtPPXHUwMDFjXl5cdTAwMWNVyjk7qDZO2fZWaT/WNIVonatF3lx1MDAxYye/XHUwMDBlX9kxl1x1MDAxZUjyXGJccllcdTAwMTdOZmVi0bSPNFx1MDAwNGiDk4WtK+ryfdaufT8kXHUwMDE5LaNcdTAwMTcrSCO1UDCDa1g3/leRvm9vZVVi96G9k2432ovNXHUwMDEzLmE1uPBgXHUwMDE0iWGcSSnGbzKyXHLNtFx1MDAwN5ZcdTAwMWNHzVx1MDAxNF1cdTAwMTHzTkCSnpmBheQsVjPrLc1cdTAwMGY0kyRu5lpNn/bu6Ua9m9xp71/lt9qPlaNS+S4xjLk5XHUwMDBi7Ulu6Hs6W9DhvlaaTnMmOEhu3aq3uHVcdTAwMDJcdTAwMDJuybr16i86na/kkbOYlDxGXHUwMDBlZDF5XHUwMDAwkNErU5k0XGKoZ1hcIne7f9roXHUwMDE267vls6vbfHazl0hfwWOsJaFcdTAwMWSV0qNbXHUwMDE1zjk5XHUwMDE2oXikMm67XHRXZ6+E1GaJknCukkfytlxmyYJ1yWP8S1x1MDAxZSN5kkdcdTAwMDKQXHUwMDA0v7HMilx0I35cdTAwMGaAx2elbKWQOkmUL7NcdTAwMTem1LxcdTAwMWaaXi7mXHUwMDAwVJ5cIvrjrlx1MDAwMZBcdTAwMGLlvFx1MDAwNCD5+55hVpGfxCSwJTZSn6s6zFgjULF1ddjqVoeZ6OBcdTAwMWXNrJKmfjO9Tt1M7lx1MDAxNVxu+btkoXeWNYc3JjGs+q2Y61SOnluMXHRcZujHyc2Bnlx1MDAwMIjKo1x1MDAxOUi5lJ2jp+XJVMM8l/JcdTAwMDMjmVx1MDAwMFx05lxyt+u1TjXGWNDwsbVhku7cLLG7n5Opx61RXHUwMDFk1lxiXGZcdTAwMWL/m1x1MDAxZlx1MDAxN2n5ZL6Prab/f79cdTAwMTaZs4xnQc2MTPTqb8mcu6VmWKdz1GHy6vxKY7qhN7Pl9Fx1MDAwMWvXXHUwMDE3275yXHTtVEB4XGZcXMRcdTAwMTItkoZcdTAwMGbVVGurPUTh3DcjXHUwMDA0N8sr6ZyzeEVKy1x1MDAxOP+ozVx1MDAwNdfFK/NcdTAwMTWvXHUwMDAwi9Sqxi1ENrM0+DtM2M395E5FS8xcZlKPje2vw9qH7l41TTtcdTAwMTUkMUqgUsxFR0SokNq4JmOkXHUwMDA1rVx1MDAwNOJRhOVx5XxZbk6403xJMcl1lvv7uVx1MDAxOGe5I4FccpErJOwou61nXHUwMDAwdtmcXHJ327mdMyVPK489c7d7MVjskrsldFOxnqKbYFxc107Hm6+BLSTRLZmq26Fnibt5zVx1MDAwM2zS5fSQXHUwMDA0LsBcdF3j+rfCNeeROUXBjEbJZ2mAtnupsqrfUUe3e6XS5sN5q8B7Md+kj2np0fckW0QkvzJcdTAwMTRcXJLGeswtZTfo1lYsscH0fIStrFJo9Zqw18BcdTAwMWVcdTAwMWSdXHUwMDAwto5cdTAwMDa20qNMxvRBq0Swc6TKmaDQkK30jayldlxum9cxxzXjXHUwMDFl0lx1MDAxN3UrIJSc7J7zXGZs7Tb6My6DY8RcdTAwMTIreeZcdTAwMDG2JP9hMtC2RvXnQnXkoixcdTAwMTnd90xZg2KGhZCXm9ed8mU1n+yUXHUwMDBl91x1MDAwNtfn983DYLG7dy6jSbD1UEiGnFx1MDAwYo2TfVx1MDAxM55QrdGj26/JizVcdTAwMDImY02xWFxiSSOzwCaf0W9cdTAwMWbUWp11kD/uNygjXHUwMDE3Q/JRiZexXHUwMDEzS5HeLYLYfCg8nGRcdTAwMTK7qdNqr1wi89VS6utid65YxrbsxtOkNumbopvlQlx1MDAwZbBcdTAwMDL0JFx1MDAwMVx1MDAwZYC5yFx1MDAxN8a3wpvTK4VE+Lw13jBcdTAwMTHtXHUwMDBmx3LQMpJcdTAwMWUz1N1d6kZNVsxDf6+fPlx1MDAxZZ5cdTAwMWWrzcvz3XhLQzJSj5Ew5K7nvJJcIpRcdTAwMWFRXFx4VtA54lx1MDAxObJcIlx1MDAxZLNcIm+QrjLdfKaCgt+rxjsyZ4mRsORcdTAwMTJcXHdcdTAwMTY9Q3n32Xbu9v6elS+vL4uDo/6BychhPua4lOiBXHUwMDA1ZGC0XHUwMDAzaSh5olxmeK7VhzFcdTAwMDROKZaIy/n23Fx1MDAxM25JXGIz9kNcdTAwMGJcctaldj+t9XT0fstKkIJcdTAwMTdyhp0vz/JcdTAwMDCdUlx1MDAwZi80b/Xzj3Bw0r7YjLmTXHUwMDA1inlcdTAwMDQh12nXKGlCZelGXHUwMDFiXHUwMDBmXHKz5GshXHUwMDFhtcSC18U0XHUwMDE3ZE4rSv15u1x1MDAwYoKKlntgmeV8hvLRYHNQYcUgXHUwMDEznN3Uj2vXRp2flDNxp1x1MDAxNTtcbs1opixqPVx1MDAxMer7Vj+qPYEonc/AmF7iXHUwMDA24vPUj1x1MDAwMnDlOn58XCK197uVjypcdTAwMWRdv22Qpi422ZH4PVx1MDAwMDYy+WRj5zqRK1xy+Vll/7G2XHUwMDA3RYg7oVjlNs9TnHNcdTAwMDWah1x0XHUwMDA1tadcdTAwMThcdFxccsjIbefL6+3OrfSUi9rRI7GSS/ZGKP6tWjRyXHRccoeJbelXXHUwMDE0g3N1XHUwMDE33GrdbuSbxVxyXHUwMDAyWOFcdTAwMTdD8v1RLMjzit5lXHUwMDE5ubNcdTAwMTeup1x1MDAwN2hnXHUwMDBmXHUwMDBm29vNQrVxwMo53jmqbLGjmFx1MDAwM1RcdTAwMWHlXHUwMDE5goVyqlx1MDAwZl/1XFzShF9JKGColFvPXHUwMDEwt2JRl3JcdTAwMDFjXHUwMDE3XHUwMDEx0VtcdTAwMTmA/lx1MDAwNsWiQkbWlFx0d0+VXHUwMDE2M9SepHd3XG5cdTAwMGbJ5O49/5rh7LA4yO63Y56jlkp4ZDiSvqa2UrFQINIw5VlcdTAwMDRNXCJdI7kxMatcdTAwMTbVbqMlLlx1MDAxN5HNWmepVzJLXHUwMDFkXHTsXHSp9HpXTcbJXHUwMDFih+kzXGaid9ztXHUwMDA3XHUwMDBmW5nLYau8fXF8l9/rxTySqTjxmEZcdTAwMTBubSZxWXjJXCJcdTAwMDFcdTAwMWKFSzG4sFx1MDAwNbCYVYtyoVx1MDAxOYdcdTAwMTeT71x1MDAxYdlrZD81J432ZSWCXHUwMDE0Qs7QxjDln1x1MDAwNcNcdTAwMGUmOn6lU0zs3Vx1MDAwNs10q1x1MDAxOH9kS1x1MDAxMDR/XHTjJMpq1YuiZlx1MDAwNtxCzjWw18B+SdnRXHUwMDBit5TblVx1MDAxZNFMXHUwMDFmJL5NZCqFXHUwMDAzdlNp7p43j7NcdTAwMGYyaZOLXeO8XHUwMDA0Kc48JUabTohcdTAwMTdphFWoXHUwMDE2Jb3FaMLha1h/VlhH1oti9H6FpDuZ20B9elxc71x1MDAxNVx1MDAwNvqoV+lcdTAwMDSJ0rCSkDs7X+9qi93fflx1MDAxOaEt9CSiXHUwMDA1objRqEI+dswrRlxyMsLRZ2qxtTpcdTAwMDWjczTw55JszPWun14jK9Mq5qrmsndzVOqfNbP3TFx1MDAxY8RcXCOTOibIKZcxUVx1MDAwMGhetVx1MDAxZSCNLN2OMMxcdTAwMWHS0nFr9Vxyxj0lvV4s+WnZNFokR1wiW2mQrtnGXGaLoMuDdi44TVx1MDAwZk6z2cRe6Vp0XHUwMDFmN+NcdTAwMGVsIJFswFW7M+5s8TWwXHUwMDE10r133VxypIpbWMtqq13ThXVU67PiOnpX78h4NVx1MDAxYausXHUwMDE0dvpwdYbrM//84vDw6lwikTvtPfZcdTAwMWLD1EXMRbJQ6Cm31axTpiQ5w/lfJJHMlHTb7pDzu8RcdTAwMTZ7c4lkcJlraeQnSv+ujkqOwpyNbNDlUlwi1rJcdTAwMTkgXHUwMDE37G5cciuF5jDZym1cdTAwMGUv673EZjJcdTAwMTf7XHUwMDFkV7X0uGudol2DLlxmXHUwMDE1JWrOPPJcXIVcdTAwMTGGULfEMDKZLolxa9G4nV81TtdTT9O4adT8Q0vdhZistf9cdTAwMDU99YLvZefPPezyjcZGUPFHZ359T72px1x1MDAxM4HYP77R7pd8u51cdOjuPiubL1x1MDAwZlW/v1x1MDAxNb0w749veHfQ8keC6J8//vl/vXynNCJ9",p||(p=D.createElement("defs",null,D.createElement("style",null,'@font-face{font-family:"Virgil";src:url(https://excalidraw.com/Virgil.woff2)}@font-face{font-family:"Cascadia";src:url(https://excalidraw.com/Cascadia.woff2)}@font-face{font-family:"Assistant";src:url(https://excalidraw.com/Assistant-Regular.woff2)}'))),T||(T=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"m9.78 11.29 830.56-2.78.06 784.53-831.6-2.1",strokeWidth:0,fill:"#e9ecef"}),D.createElement("path",{d:"M10 10c327.14-1.69 654.31-2.27 831.56 0M10 10c211.79-1.99 423.63-1.97 831.56 0m0 0c-.09 182.03.77 364.49 0 782.44m0-782.44c2.7 232.62 3.3 465.76 0 782.44m0 0c-225.58.17-449.71.12-831.56 0m831.56 0c-267.83.62-535.53 1.13-831.56 0m0 0C8.99 623.83 9.39 454.7 10 10m0 782.44C6.72 528.92 7.31 265.59 10 10",stroke:"#1971c2",fill:"none"}))),X||(X=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M79.452 60.94c87.72-.69 176.42-1.21 264.95 0 21.83 2.35 32.86 10.62 32 32-1.16 59.94 2.82 120.1 0 241.05 2.77 20.79-8.42 30.19-32 32-99.64-3.74-205.17-4.96-264.95 0-23.68-1.85-31.58-12.16-32-32 3.04-85.51.87-166.3 0-241.05 1.55-21.68 11.51-33.62 32-32",strokeWidth:0,fill:"#fff"}),D.createElement("path",{d:"M79.452 60.94c72.61.39 143.77 2.81 264.95 0m-264.95 0c83.48-1.63 168.23-2.12 264.95 0m0 0c22.2 1.5 30.23 9.62 32 32m-32-32c22.9-.86 32.3 10.11 32 32m0 0c-2.08 51.64-1.91 102.28 0 241.05m0-241.05c-.73 72.99.2 145.46 0 241.05m0 0c.77 22.33-12.59 32.25-32 32m32-32c1.09 19.6-9.87 32.74-32 32m0 0c-91.75 2.89-182.44 1.44-264.95 0m264.95 0c-91.34 2.31-184.89 2.61-264.95 0m0 0c-22.93-.71-33.37-9.23-32-32m32 32c-20.76.16-31.75-12.41-32-32m0 0c.5-86.52-.03-171.56 0-241.05m0 241.05c1.38-88.39 2.26-177.81 0-241.05m0 0c-.89-22.68 10.16-32.92 32-32m-32 32c1.99-19.96 9.01-31.29 32-32",stroke:"#1971c2",fill:"none"}))),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(52.774 35.39)",strokeOpacity:.9,fillOpacity:.9},"Activation condition"),h||(h=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M515.451 60.472c95.27-2.05 191.66 1.48 264.95 0 23.98-1.74 32.18 8.58 32 32 4.21 73.14 1.18 143.79 0 245.75 3.31 20.21-10.87 29.77-32 32-55.35-2.04-107.27-1.1-264.95 0-19.4-2.43-31.89-10.4-32-32-.13-94.69-3.29-184.57 0-245.75-2.65-22.43 11.39-33.46 32-32",strokeWidth:0,fill:"#fff"}),D.createElement("path",{d:"M515.451 60.472c74.96-.95 151.13 1.05 264.95 0m-264.95 0c75.89-1.92 153.39-1.93 264.95 0m0 0c21.74-1.21 31.29 11.66 32 32m-32-32c22.7.32 32.34 9.97 32 32m0 0c.56 57.24-2.12 117.15 0 245.75m0-245.75c.46 63.2 1.58 125.01 0 245.75m0 0c1.28 22.07-9.9 30.29-32 32m32-32c-.07 21.71-10.5 32.41-32 32m0 0c-102.9 1.1-208.31 1.18-264.95 0m264.95 0c-103.75-2.11-207.06-1.7-264.95 0m0 0c-20.08-1.68-30.23-10.59-32-32m32 32c-19.96-1.77-33.84-9.05-32-32m0 0c-.96-56.06-1.4-109.64 0-245.75m0 245.75c.41-85.41.78-171.57 0-245.75m0 0c1.21-20.5 12.52-32.61 32-32m-32 32c1.52-22.07 8.8-33.48 32-32",stroke:"#1971c2",fill:"none"}))),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(488.774 34.923)",strokeOpacity:.9,fillOpacity:.9},"Activation condition"),y||(y=D.createElement("path",{d:"M448.93 241.104c2.86-.01 14.54-.14 17.6-.12m-16.85-.43c2.77.08 13.4.78 16.32.99M385.978 240.724c2.81.05 14.71-.5 17.71-.49m-16.99.14c2.71.17 13.66.52 16.5.44",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),u||(u=D.createElement("path",{d:"M77.884 130.05c82.69-2.82 166.08-1.17 256.31 0m0 0c10.56 1.83 12.3 3.12 13.48 13.48m0 0c-1.2 10.44.26 20.53 0 26.95m0 0c-1.33 8.7-4.16 13.83-13.48 13.47m0 0c-85.28 2.66-167.19.37-256.31 0m0 0c-8.41.14-13.98-3.24-13.48-13.47m0 0c-.3-3.7-1.8-12.16 0-26.95m0 0c.45-9.65 3.59-14.14 13.48-13.48",stroke:"#1971c2",strokeWidth:1.5,fill:"none",strokeDasharray:"8 9",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(88.488 149.753)",strokeOpacity:.9,fillOpacity:.9},"Active from 01/01/2024 8h30"),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(66.73 98.71)",strokeOpacity:.9,fillOpacity:.9},"Time rule"),U||(U=D.createElement("path",{d:"M81.192 290.78c78.85-.18 155.56.35 256.31 0m0 0c8.52.67 11.91 2.86 13.48 13.48m0 0c.89 6.17 1.14 14.91 0 26.95m0 0c.4 8.04-4.07 12.78-13.48 13.47m0 0c-57.91-1.29-114.88-.53-256.31 0m0 0c-10.56-.62-14.45-2.72-13.48-13.47m0 0c1.51-8.38-.8-18.67 0-26.95m0 0c-1.72-9.69 5.3-12.01 13.48-13.48",stroke:"#1971c2",strokeWidth:1.5,fill:"none",strokeDasharray:"8 9",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(114.74 308.124)",strokeOpacity:.9,fillOpacity:.9},"Active for 5% of users"),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(66.811 259.198)",strokeOpacity:.9,fillOpacity:.9},"User rule"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(185.23 215.608)",strokeOpacity:.9,fillOpacity:.9},"AND"),H||(H=D.createElement("path",{d:"M161.845 225.86c2.91-.12 14.68-.13 17.6-.03m-18.3 1.09c2.86.18 15.01-.31 17.99-.55M222.711 226.179c2.99.02 14.88-.43 17.84-.47m-18.51.11c2.97.12 15.3.34 18.34.46",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),V||(V=D.createElement("path",{d:"M515.304 126.98c55.65.46 113 1.56 256.31 0m0 0c9.21-.15 13.05 6.47 13.48 13.48m0 0c.92 6.29-.56 16.93 0 26.95m0 0c.24 9.41-3.11 13.24-13.48 13.47m0 0c-56.7-1-113.16-.86-256.31 0m0 0c-10.68-1.6-11.74-4.84-13.48-13.47m0 0c1.11-10.92-1.14-17.11 0-26.95m0 0c-1.75-10.12 3.16-15.27 13.48-13.48",stroke:"#1971c2",strokeWidth:1.5,fill:"none",strokeDasharray:"8 9",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(525.908 146.683)",strokeOpacity:.9,fillOpacity:.9},"Active from 05/01/2024 8h30"),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(504.15 95.64)",strokeOpacity:.9,fillOpacity:.9},"Time rule"),F||(F=D.createElement("path",{d:"M519.433 289.873c71.5 2.12 143.64 2.15 256.31 0m0 0c8.44-.11 12.5 2.51 13.48 13.48m0 0c1.96 8.03-.15 16.97 0 26.95m0 0c.16 9.38-5.45 13.74-13.48 13.47m0 0c-78.01.46-157.75-.76-256.31 0m0 0c-7.56 1.32-13.96-3.75-13.48-13.47m0 0c.28-10.48-.54-16.64 0-26.95m0 0c-.07-9.81 4.85-14.38 13.48-13.48",stroke:"#1971c2",strokeWidth:1.5,fill:"none",strokeDasharray:"8 9",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(505.052 258.29)",strokeOpacity:.9,fillOpacity:.9},"User rule"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(553.463 308.505)",strokeOpacity:.9,fillOpacity:.9},"Active for 50% of users"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(414.476 230.222)",strokeOpacity:.9,fillOpacity:.9},"OR"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(631.522 217.463)",strokeOpacity:.9,fillOpacity:.9},"AND"),E||(E=D.createElement("path",{d:"M608.377 227.835c2.77.01 13.87.24 16.8.35m-17.37-.91c2.91-.16 15.44-.02 18.44.04M668.704 228.024c2.93.1 15.13.28 18.05.29m-17.21-.67c2.88-.02 14.28.04 17-.05",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),O||(O=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M75.29 462.215c83.41.94 168.94 2.6 264.95 0 18.47 1.67 28.58 9.65 32 32-2.17 59.25.12 115.78 0 245.75.51 24.62-11.26 28.71-32 32-57.26 1.05-107.77-2.83-264.95 0-22.78-2.85-30.04-14.15-32-32-2.08-67.58-.15-135.32 0-245.75 2.49-20.47 9.67-28.79 32-32",strokeWidth:0,fill:"#fff"}),D.createElement("path",{d:"M75.29 462.215c73.46-2.41 149.24-.73 264.95 0m-264.95 0c68.91-1.15 136.43-1.9 264.95 0m0 0c20.95 1.06 33.84 10.75 32 32m-32-32c22.45-.3 29.81 12.12 32 32m0 0c.87 93.23.58 186.5 0 245.75m0-245.75c2.23 59.72 2.41 118.33 0 245.75m0 0c.12 21.36-11.22 33.56-32 32m32-32c-1.18 20.89-12.14 30.22-32 32m0 0c-93.18-1.39-185.46-1.53-264.95 0m264.95 0c-75.91-.05-152.71-.58-264.95 0m0 0c-20.59 1.68-31.2-8.94-32-32m32 32c-21.13 1.95-31.83-10.1-32-32m0 0c-.86-68.18-1.26-134.4 0-245.75m0 245.75c-.27-74.07-.48-147.67 0-245.75m0 0c-1.58-19.98 9.95-30.06 32-32m-32 32c.57-19.94 9.52-31.55 32-32",stroke:"#1971c2",fill:"none"}))),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(48.614 436.666)",strokeOpacity:.9,fillOpacity:.9},"Activation condition"),k||(k=D.createElement("path",{d:"M75.144 528.723c63.14-2.23 128.92-.11 256.31 0m0 0c10.34-.97 12.93 4.11 13.48 13.48m0 0c1.22 9.25-1.65 20.3 0 26.95m0 0c1.53 9.47-4.34 13.94-13.48 13.47m0 0c-88.08 2.97-173.38 2.95-256.31 0m0 0c-7.82 1.98-13.85-4.36-13.48-13.47m0 0c-.95-8.52-1.2-17.81 0-26.95m0 0c1.01-9.18 4.36-13.94 13.48-13.48",stroke:"#1971c2",strokeWidth:1.5,fill:"none",strokeDasharray:"8 9",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(85.748 548.426)",strokeOpacity:.9,fillOpacity:.9},"Active from 10/01/2024 8h30"),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(63.99 497.383)",strokeOpacity:.9,fillOpacity:.9},"Time rule"),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(64.892 660.033)",strokeOpacity:.9,fillOpacity:.9},"User rule"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(77.352 707.614)",strokeOpacity:.9,fillOpacity:.9},"No user rule (active for everyone)"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(191.362 619.206)",strokeOpacity:.9,fillOpacity:.9},"AND"),j||(j=D.createElement("path",{d:"M167.517 630.078c2.91.03 15.26-.18 18.24-.22m-17.51-.08c2.85-.13 14.49-.94 17.29-.81M229.284 629.697c2.98-.03 14.07.01 16.92 0m-17.37-.4c2.96-.24 14.07-.66 16.96-.5M223.748 401.173c2.81.02 14.33-.28 17.32-.16m-16.5 1.21c2.98.13 14.74-.53 17.56-.72M160.857 401.554c2.99.13 15.04.89 17.92.9m-17.09.08c2.98.01 13.87-.71 16.8-.8",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(189.154 390.381)",strokeOpacity:.9,fillOpacity:.9},"OR"),S||(S=D.createElement("g",{strokeLinecap:"round"},D.createElement("path",{d:"M519.026 460.794c68.76 4.4 139.07 1.38 264.95 0 21.25 3.5 31.3 10.34 32 32-1.25 64.02 3.26 123.15 0 245.75 2.23 23.1-10.98 29.44-32 32-93.95.54-180.98-2.61-264.95 0-19.78-2.5-33.46-9.31-32-32 2.76-97.8 5.52-194.77 0-245.75 1.02-23.74 8.09-31.19 32-32",strokeWidth:0,fill:"#fff"}),D.createElement("path",{d:"M519.026 460.794c102.77-1.36 201.84-.52 264.95 0m-264.95 0c83.2-.48 165.59.47 264.95 0m0 0c22.21.25 32 9.97 32 32m-32-32c22.19.4 30.91 8.54 32 32m0 0c-.05 49.79 2.47 102.04 0 245.75m0-245.75c2.04 90.93 1.25 183.04 0 245.75m0 0c-.83 21.15-9.89 33.21-32 32m32-32c.33 23.02-11.17 32.56-32 32m0 0c-59.67 1.6-119.95-1.19-264.95 0m264.95 0c-96.18-.77-191.3-.75-264.95 0m0 0c-20.65 1.99-32.59-12.45-32-32m32 32c-21.95-1.47-31.7-11.9-32-32m0 0c.4-51.55 1.15-103.73 0-245.75m0 245.75c-1.4-94.31-2.14-190.63 0-245.75m0 0c1.14-23.01 12.18-33.44 32-32m-32 32c1.9-22.3 8.51-30.33 32-32",stroke:"#1971c2",fill:"none"}))),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(492.349 435.245)",strokeOpacity:.9,fillOpacity:.9},"Activation condition"),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(507.724 495.962)",strokeOpacity:.9,fillOpacity:.9},"Time rule"),N||(N=D.createElement("path",{d:"M523.008 690.194c78.28 2.76 155.13 2.06 256.31 0m0 0c8.29.74 13.83 3.54 13.48 13.48m0 0c.71 3.79-1.13 12.43 0 26.95m0 0c1.22 10.41-2.88 14.47-13.48 13.47m0 0c-88.85-1.61-179.57-.31-256.31 0m0 0c-7.77.29-12.01-4.93-13.48-13.47m0 0c.22-7.48 2.17-15.74 0-26.95m0 0c-1.54-7.76 4.6-14.73 13.48-13.48",stroke:"#1971c2",strokeWidth:1.5,fill:"none",strokeDasharray:"8 9",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(508.627 658.612)",strokeOpacity:.9,fillOpacity:.9},"User rule"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(555.205 708.827)",strokeOpacity:.9,fillOpacity:.9},"Active for Bob and Alice"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(635.097 617.785)",strokeOpacity:.9,fillOpacity:.9},"AND"),v||(v=D.createElement("path",{d:"M611.512 627.797c2.76.05 14.07.9 17.04.9m-16.17.03c2.9-.11 14.34-.7 17.13-.8M672.079 628.536c2.97 0 15.15-.88 18.08-.88m-17.35.6c2.95.1 14.33-.05 17.06-.16M673.103 400.913c2.96.07 14.5.37 17.36.53m-17.84.4c2.92.2 14.71.44 17.62.32M610.261 401.984c2.87.17 14.36.42 17.15.46m-17.61-.92c2.79.07 14.53.24 17.31.2",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(637.82 390.381)",strokeOpacity:.9,fillOpacity:.9},"OR"),b||(b=D.createElement("path",{d:"M452.395 621.011c2.95-.04 14.72.05 17.6.11m-16.81.89c2.91.04 13.39-.31 16.32-.32M389.784 621.662c2.88.06 14.06.11 16.96.22m-16.02.84c3.08.18 14.34.05 17.02-.15",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(417.871 610.329)",strokeOpacity:.9,fillOpacity:.9},"OR"),D.createElement("text",{y:14.016,fontFamily:"Virgil, Segoe UI Emoji",fontSize:16,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(523.526 532.802)",strokeOpacity:.9,fillOpacity:.9},"No time rule (active all the time)"))},g={title:"Features"},J=void 0,L={id:"usages/features",title:"Features",description:'In Izanami, feature flags are just called "features" for the sake of simplicity.',source:"@site/docs/03-usages/01-features.mdx",sourceDirName:"03-usages",slug:"/usages/features",permalink:"/izanami/docs/usages/features",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Features"},sidebar:"tutorialSidebar",previous:{title:"Concepts",permalink:"/izanami/docs/usages/"},next:{title:"Contexts",permalink:"/izanami/docs/usages/contexts"}},I={},z=[{value:"Feature activation",id:"feature-activation",level:2},{value:"Activation rules",id:"activation-rules",level:2},{value:"Time rules",id:"time-rules",level:3},{value:"User based rules",id:"user-based-rules",level:3},{value:"Scripted feature",id:"scripted-feature",level:2}];function G(e){const t={a:"a",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,x.a)(),...e.components};return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(t.p,{children:'In Izanami, feature flags are just called "features" for the sake of simplicity.'}),"\n",(0,w.jsx)(t.h2,{id:"feature-activation",children:"Feature activation"}),"\n",(0,w.jsx)(t.p,{children:"Two elements are used to decide if a feature is active:"}),"\n",(0,w.jsxs)(t.ul,{children:["\n",(0,w.jsx)(t.li,{children:"Feature status: enabled / disabled"}),"\n",(0,w.jsx)(t.li,{children:"Feature activation conditions"}),"\n"]}),"\n",(0,w.jsx)(t.p,{children:"If a feature is disabled, then this feature is not active, regardless of activation conditions."}),"\n",(0,w.jsx)(t.p,{children:"If a feature is enabled, activation conditions are used to compute feature activation."}),"\n",(0,w.jsx)(m.j,{children:(0,w.jsx)(t.p,{children:"If you just want an on / off feature, don't define any activation condition.\nIn this scenario, feature activation is deduced from feature status (enabled\n-> active, disabled -> inactive)."})}),"\n",(0,w.jsx)(t.p,{children:"A feature can have 0, 1 or more activation conditions, however only one of them need to match to make the whole feature active."}),"\n",(0,w.jsx)(t.p,{children:"A condition is composed of one time rule and/or one user rule. Possible rules are detailled below."}),"\n",(0,w.jsx)(t.p,{children:"If both rule are defined, both need to be active to activate condition."}),"\n",(0,w.jsx)(m.j,{children:(0,w.jsx)(t.p,{children:'There is a logical "OR" between activation conditions. Inside a condition,\nthere is a logical "AND" between time and user rules.'})}),"\n",(0,w.jsxs)("figure",{children:[(0,w.jsx)(f,{height:"400"}),(0,w.jsx)("figcaption",{children:"Feature activation decision tree"})]}),"\n",(0,w.jsx)(t.p,{children:"Below schema givena an example of feature that define several activation conditions."}),"\n",(0,w.jsx)(t.p,{children:'Conditions are used here to progressively activate feature for all users, while keeping feature active for two "admin" users: Alice and Bob.'}),"\n",(0,w.jsxs)("figure",{children:[(0,w.jsx)(W,{width:"100%",height:"700"}),(0,w.jsx)("figcaption",{children:"Multi condition feature example"})]}),"\n",(0,w.jsx)(t.h2,{id:"activation-rules",children:"Activation rules"}),"\n",(0,w.jsx)(t.h3,{id:"time-rules",children:"Time rules"}),"\n",(0,w.jsx)(t.p,{children:"With this kind of rules, Izanami will activate feature when current time is in provided range."}),"\n",(0,w.jsx)(t.p,{children:"These startegies are used to implement release or ops flags."}),"\n",(0,w.jsx)(t.p,{children:"There is several variation for this catrgory of feature, that can be composed to craft exactly what you need."}),"\n",(0,w.jsxs)(t.ul,{children:["\n",(0,w.jsx)(t.li,{children:"Date range feature: define a start and/or end date for feature activation"}),"\n",(0,w.jsx)(t.li,{children:"Hour range: feature will be active every day on provided range(s)"}),"\n",(0,w.jsx)(t.li,{children:"Activation days: feature will be active only on provided days"}),"\n"]}),"\n",(0,w.jsxs)(m.j,{children:[(0,w.jsx)(t.p,{children:"Here is an example of conditions combination for time features:"}),(0,w.jsxs)("ul",{children:[(0,w.jsx)("li",{children:"has a date range condition from 1st January to 31 January of 2024"}),(0,w.jsx)("li",{children:"has two hour ranges: 08h00 -> 10h00 and 14h00 -> 18h00"}),(0,w.jsx)("li",{children:"has following activation days: monday, tuesday"})]}),(0,w.jsxs)("ul",{style:{listStyleType:"none",paddingLeft:"12px"},children:[(0,w.jsx)("li",{children:"\u2705 Will be active on Monday 8 January at 9h00"}),(0,w.jsx)("li",{children:"\u274c Won't be active on Friday 26 January at 9h00"}),(0,w.jsx)("li",{children:"\u274c Won't be active on Tuesday 16 January at 13h00"}),(0,w.jsx)("li",{children:"\u274c Won't be active before 1st Januar or after 31 January"})]})]}),"\n",(0,w.jsx)(t.h3,{id:"user-based-rules",children:"User based rules"}),"\n",(0,w.jsx)(t.p,{children:"With user based rules, activation conditions are based on provided user."}),"\n",(0,w.jsx)(t.p,{children:"Three is two types of user based conditions:"}),"\n",(0,w.jsxs)(t.ul,{children:["\n",(0,w.jsx)(t.li,{children:"user list: define a list of user for which feature will be active. This rule is used to implement permission flags."}),"\n",(0,w.jsxs)(t.li,{children:["percentage: feature will be active only for given percentage of users. Percentage is based on user hash (using ",(0,w.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/MurmurHash",children:"murmum3"}),"), this means that activation is consistent for a given user (if feature is active once, it'll remain active). This rule is used to implement canary flags."]}),"\n"]}),"\n",(0,w.jsx)(t.h2,{id:"scripted-feature",children:"Scripted feature"}),"\n",(0,w.jsx)(t.p,{children:'Sometimes above rules are not enough. For instance feature activation decision may depend on more than "just" the user.'}),"\n",(0,w.jsxs)(t.p,{children:["In such a case, Izanami offers (with the help of ",(0,w.jsx)(t.a,{href:"https://github.com/MAIF/wasmo",children:"WASMO"}),') the possibility to define "script feature".']}),"\n",(0,w.jsx)(t.p,{children:"Such features rely on an underlying wasm script, which will be executed with provided the input each time feature activation is required."}),"\n",(0,w.jsxs)(t.p,{children:["To learn more about these script, refer to the ",(0,w.jsx)(t.a,{href:"../guides/local-scripts",children:"wasm script guides"}),"."]})]})}function Y(e={}){const{wrapper:t}={...(0,x.a)(),...e.components};return t?(0,w.jsx)(t,{...e,children:(0,w.jsx)(G,{...e})}):G(e)}},1361:(e,t,i)=>{i.d(t,{j:()=>n});const c={description__trivia:"description__trivia_yesz"};var a=i(6678),l=i(5893);function n(e){let{children:t}=e;return(0,l.jsxs)("div",{className:c.description__trivia,children:[(0,l.jsx)("img",{src:a.Z}),(0,l.jsx)("div",{children:t})]})}},6678:(e,t,i)=>{i.d(t,{Z:()=>c});const c=i.p+"assets/images/izanami-fcff3cbcd789d673683f3365a3ddf9e4.png"},1151:(e,t,i)=>{i.d(t,{Z:()=>r,a:()=>n});var c=i(7294);const a={},l=c.createContext(a);function n(e){const t=c.useContext(l);return c.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:n(e.components),c.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/22a808b3.3a633a01.js b/docs/assets/js/22a808b3.3a633a01.js deleted file mode 100644 index 7e1b618d2..000000000 --- a/docs/assets/js/22a808b3.3a633a01.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkizanami_documentation=self.webpackChunkizanami_documentation||[]).push([[9097],{8299:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>r,contentTitle:()=>l,default:()=>p,frontMatter:()=>d,metadata:()=>c,toc:()=>o});var i=s(5893),t=s(1151),a=s(9217);const d={title:"UI usage"},l=void 0,c={id:"ui",title:"UI usage",description:"Global search",source:"@site/v1/08-ui.mdx",sourceDirName:".",slug:"/ui",permalink:"/izanami/v1/ui",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{title:"UI usage"},sidebar:"defaultSidebar",previous:{title:"All the settings",permalink:"/izanami/v1/settings/settings"},next:{title:"APIs usage",permalink:"/izanami/v1/api"}},r={},o=[{value:"Global search",id:"global-search",level:2},{value:"Features",id:"features",level:2},{value:"Configurations",id:"configurations",level:2},{value:"Experiments (A/B testing)",id:"experiments-ab-testing",level:2},{value:"Scripts",id:"scripts",level:2},{value:"Create or update a script",id:"create-or-update-a-script",level:3},{value:"Web hooks",id:"web-hooks",level:2},{value:"Manage web hooks",id:"manage-web-hooks",level:2},{value:"Download and Upload",id:"download-and-upload",level:3},{value:"Manage users",id:"manage-users",level:2},{value:"Edit a user",id:"edit-a-user",level:3},{value:"Download and Upload",id:"download-and-upload-1",level:3},{value:"Manage API keys",id:"manage-api-keys",level:2},{value:"Edit a api key",id:"edit-a-api-key",level:3},{value:"Download and Upload",id:"download-and-upload-2",level:3}];function h(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"global-search",children:"Global search"}),"\n",(0,i.jsx)(n.p,{children:'On the top of the screen you can quick search and access "features", "configurations", "experiments" or "global script".'}),"\n",(0,i.jsx)(n.p,{children:"The search can be refined by clicking the buttons:"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Search",src:s(8594).Z+"",width:"2528",height:"812"})}),"\n",(0,i.jsx)(n.p,{children:"Clicking one item will bring you to the edit page of the selected item."}),"\n",(0,i.jsx)(n.h2,{id:"features",children:"Features"}),"\n",(0,i.jsxs)(n.p,{children:["Visit to the ",(0,i.jsx)(n.a,{href:"http://google.com",children:"features UI doc"})]}),"\n",(0,i.jsx)(n.h2,{id:"configurations",children:"Configurations"}),"\n",(0,i.jsxs)(n.p,{children:["Visit to the ",(0,i.jsx)(n.a,{href:"http://google.com",children:"features UI doc"})]}),"\n",(0,i.jsx)(n.h2,{id:"experiments-ab-testing",children:"Experiments (A/B testing)"}),"\n",(0,i.jsxs)(n.p,{children:["Visit to the ",(0,i.jsx)(n.a,{href:"http://google.com",children:"experiments UI doc"})]}),"\n",(0,i.jsx)(n.h2,{id:"scripts",children:"Scripts"}),"\n",(0,i.jsxs)(n.p,{children:["You can write script once and reuse it between strategies. Just click to the ",(0,i.jsx)(n.code,{children:"Global Scripts"})," menu."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Scripts",src:s(3790).Z+"",width:"2520",height:"794"})}),"\n",(0,i.jsx)(n.h3,{id:"create-or-update-a-script",children:"Create or update a script"}),"\n",(0,i.jsxs)(n.p,{children:["Hit the ",(0,i.jsx)(n.code,{children:"Add item"})," or the pencil button to edit a script"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Scripts",src:s(1848).Z+"",width:"2524",height:"1348"})}),"\n",(0,i.jsx)(n.p,{children:"When writing a script, you have access to"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"context"}),": A json object send by the client"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"enabled"}),": A function to call, the feature is enabled"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"disabled"}),": A function to call, the feature is disabled"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"http"}),": An http client that can be used to request an API."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"The http client expose the call method that take two args :"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"options"}),", an object with the following possible attributes","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"url"})," (required): The url to call."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"method"})," (default get): The http method betwwen ",(0,i.jsx)(n.code,{children:"get"}),", ",(0,i.jsx)(n.code,{children:"post"}),", ",(0,i.jsx)(n.code,{children:"put"}),", ",(0,i.jsx)(n.code,{children:"delete"}),", ",(0,i.jsx)(n.code,{children:"option"}),", ",(0,i.jsx)(n.code,{children:"patch"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"headers"})," : A object with headerName -> Value"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"body"})," : An optional json string"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"callback"}),": A bifunction with failure or success."]}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-javascript",children:'function enabled(context, enabled, disabled, http) {\n http.call(\n {\n url: "http://localhost:9000/api/features/feature:with:script/check",\n method: "post",\n headers: {\n "Izanami-Client-Id": "xxxx",\n "Izanami-Client-Secret": "xxxx",\n "Content-Type": "application/json",\n },\n body: JSON.stringify({\n user: context.user,\n }),\n },\n function (error, success) {\n if (error) {\n return enabled();\n } else {\n var resp = JSON.parse(success);\n if (resp.active) {\n return enabled();\n } else {\n return disabled();\n }\n }\n }\n );\n}\n'})}),"\n",(0,i.jsx)(n.h2,{id:"web-hooks",children:"Web hooks"}),"\n",(0,i.jsx)(n.p,{children:"Like the other screen you can see the existing hooks on a table:"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Hooks",src:s(639).Z+"",width:"2514",height:"776"})}),"\n",(0,i.jsx)(n.h2,{id:"manage-web-hooks",children:"Manage web hooks"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Hook",src:s(7070).Z+"",width:"2548",height:"896"})}),"\n",(0,i.jsx)(n.p,{children:"The registered hooks will be called when new events occur"}),"\n",(0,i.jsx)(n.h3,{id:"download-and-upload",children:"Download and Upload"}),"\n",(0,i.jsx)(n.p,{children:"If you're admin you have the right to download or upload."}),"\n",(0,i.jsx)("img",{src:a.Z,width:"50%"}),"\n",(0,i.jsx)(n.h2,{id:"manage-users",children:"Manage users"}),"\n",(0,i.jsx)(n.p,{children:"You can manage user if you're an admin."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Users",src:s(269).Z+"",width:"2524",height:"792"})}),"\n",(0,i.jsx)(n.p,{children:"Like the other screen you can see the existing users on a table:"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Users",src:s(7516).Z+"",width:"2876",height:"794"})}),"\n",(0,i.jsx)(n.h3,{id:"edit-a-user",children:"Edit a user"}),"\n",(0,i.jsx)(n.p,{children:"To create or edit a user, you have to"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"an Id"}),"\n",(0,i.jsx)(n.li,{children:"A name"}),"\n",(0,i.jsx)(n.li,{children:"An email"}),"\n",(0,i.jsx)(n.li,{children:"A password"}),"\n",(0,i.jsx)(n.li,{children:"Specified if the user is admin"}),"\n",(0,i.jsx)(n.li,{children:"Patterns to apply restriction on user"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Edit user",src:s(4678).Z+"",width:"2876",height:"1218"})}),"\n",(0,i.jsx)(n.h3,{id:"download-and-upload-1",children:"Download and Upload"}),"\n",(0,i.jsx)(n.p,{children:"If you're admin you have the right to download or upload."}),"\n",(0,i.jsx)("img",{src:a.Z,width:"50%"}),"\n",(0,i.jsx)(n.h2,{id:"manage-api-keys",children:"Manage API keys"}),"\n",(0,i.jsx)(n.p,{children:"You can manage api keys if you're an admin."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Apikeys",src:s(7650).Z+"",width:"2510",height:"774"})}),"\n",(0,i.jsx)(n.p,{children:"Like the other screen you can see the existing api keys on a table:"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Apikeys",src:s(2298).Z+"",width:"2504",height:"776"})}),"\n",(0,i.jsx)(n.h3,{id:"edit-a-api-key",children:"Edit a api key"}),"\n",(0,i.jsx)(n.p,{children:"To create or edit a api key, you have to"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"A name"}),"\n",(0,i.jsx)(n.li,{children:"A client id"}),"\n",(0,i.jsx)(n.li,{children:"A client secret"}),"\n",(0,i.jsx)(n.li,{children:"Patterns to apply restriction on api key"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Edit an api key",src:s(5014).Z+"",width:"2540",height:"830"})}),"\n",(0,i.jsx)(n.h3,{id:"download-and-upload-2",children:"Download and Upload"}),"\n",(0,i.jsx)(n.p,{children:"If you're admin you have the right to download or upload."}),"\n",(0,i.jsx)("img",{src:a.Z,width:"50%"})]})}function p(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},9217:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/download-upload-190ece8c34554fe2d94962988d681ca3.png"},7650:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/access-apikeys-9c249de93117411c749e5fba86a06124.png"},2298:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/all-1852b062887aeec28ff3838abd6a18a6.png"},5014:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/apikey-d0c8f02212ef3ccb219077716e62de56.png"},8594:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/search-5235b522061acbcca5160cab315c7227.png"},639:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/all-912290ff7736f75af16ef71a8600df67.png"},7070:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/hook-c87a9c865bf25da2f21816a8e7cd3dfe.png"},3790:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/list-4c4ddfe386e3c7954d9f88a988c4b4da.png"},1848:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/script-b5c8258551c722c2e1ce6d4ab212d428.png"},269:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/access-users-2774dd5ec17023397b75257aa834254a.png"},7516:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/all-03ae667f510b97add959ee96af434aa3.png"},4678:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/user-46aba09dd8c6feec9b0453da301f64f1.png"},1151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>d});var i=s(7294);const t={},a=i.createContext(t);function d(e){const n=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/22a808b3.e70843d0.js b/docs/assets/js/22a808b3.e70843d0.js new file mode 100644 index 000000000..af3bf234b --- /dev/null +++ b/docs/assets/js/22a808b3.e70843d0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkizanami_documentation=self.webpackChunkizanami_documentation||[]).push([[9097],{8299:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>r,contentTitle:()=>l,default:()=>p,frontMatter:()=>d,metadata:()=>c,toc:()=>o});var s=i(5893),t=i(1151),a=i(9217);const d={title:"UI usage"},l=void 0,c={id:"ui",title:"UI usage",description:"Global search",source:"@site/v1/08-ui.mdx",sourceDirName:".",slug:"/ui",permalink:"/izanami/v1/ui",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{title:"UI usage"},sidebar:"defaultSidebar",previous:{title:"All the settings",permalink:"/izanami/v1/settings/settings"},next:{title:"APIs usage",permalink:"/izanami/v1/api"}},r={},o=[{value:"Global search",id:"global-search",level:2},{value:"Features",id:"features",level:2},{value:"Configurations",id:"configurations",level:2},{value:"Experiments (A/B testing)",id:"experiments-ab-testing",level:2},{value:"Scripts",id:"scripts",level:2},{value:"Create or update a script",id:"create-or-update-a-script",level:3},{value:"Web hooks",id:"web-hooks",level:2},{value:"Manage web hooks",id:"manage-web-hooks",level:2},{value:"Download and Upload",id:"download-and-upload",level:3},{value:"Manage users",id:"manage-users",level:2},{value:"Edit a user",id:"edit-a-user",level:3},{value:"Download and Upload",id:"download-and-upload-1",level:3},{value:"Manage API keys",id:"manage-api-keys",level:2},{value:"Edit a api key",id:"edit-a-api-key",level:3},{value:"Download and Upload",id:"download-and-upload-2",level:3}];function h(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"global-search",children:"Global search"}),"\n",(0,s.jsx)(n.p,{children:'On the top of the screen you can quick search and access "features", "configurations", "experiments" or "global script".'}),"\n",(0,s.jsx)(n.p,{children:"The search can be refined by clicking the buttons:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Search",src:i(8594).Z+"",width:"2528",height:"812"})}),"\n",(0,s.jsx)(n.p,{children:"Clicking one item will bring you to the edit page of the selected item."}),"\n",(0,s.jsx)(n.h2,{id:"features",children:"Features"}),"\n",(0,s.jsxs)(n.p,{children:["Visit to the ",(0,s.jsx)(n.a,{href:"./features-flipping/ui",children:"features UI doc"})]}),"\n",(0,s.jsx)(n.h2,{id:"configurations",children:"Configurations"}),"\n",(0,s.jsxs)(n.p,{children:["Visit to the ",(0,s.jsx)(n.a,{href:"./configs/ui",children:"configuration UI doc"})]}),"\n",(0,s.jsx)(n.h2,{id:"experiments-ab-testing",children:"Experiments (A/B testing)"}),"\n",(0,s.jsxs)(n.p,{children:["Visit to the ",(0,s.jsx)(n.a,{href:"./experiments/ui",children:"experiments UI doc"})]}),"\n",(0,s.jsx)(n.h2,{id:"scripts",children:"Scripts"}),"\n",(0,s.jsxs)(n.p,{children:["You can write script once and reuse it between strategies. Just click to the ",(0,s.jsx)(n.code,{children:"Global Scripts"})," menu."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Scripts",src:i(3790).Z+"",width:"2520",height:"794"})}),"\n",(0,s.jsx)(n.h3,{id:"create-or-update-a-script",children:"Create or update a script"}),"\n",(0,s.jsxs)(n.p,{children:["Hit the ",(0,s.jsx)(n.code,{children:"Add item"})," or the pencil button to edit a script"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Scripts",src:i(1848).Z+"",width:"2524",height:"1348"})}),"\n",(0,s.jsx)(n.p,{children:"When writing a script, you have access to"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"context"}),": A json object send by the client"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"enabled"}),": A function to call, the feature is enabled"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"disabled"}),": A function to call, the feature is disabled"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"http"}),": An http client that can be used to request an API."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The http client expose the call method that take two args :"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"options"}),", an object with the following possible attributes","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"url"})," (required): The url to call."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"method"})," (default get): The http method betwwen ",(0,s.jsx)(n.code,{children:"get"}),", ",(0,s.jsx)(n.code,{children:"post"}),", ",(0,s.jsx)(n.code,{children:"put"}),", ",(0,s.jsx)(n.code,{children:"delete"}),", ",(0,s.jsx)(n.code,{children:"option"}),", ",(0,s.jsx)(n.code,{children:"patch"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"headers"})," : A object with headerName -> Value"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"body"})," : An optional json string"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"callback"}),": A bifunction with failure or success."]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:'function enabled(context, enabled, disabled, http) {\n http.call(\n {\n url: "http://localhost:9000/api/features/feature:with:script/check",\n method: "post",\n headers: {\n "Izanami-Client-Id": "xxxx",\n "Izanami-Client-Secret": "xxxx",\n "Content-Type": "application/json",\n },\n body: JSON.stringify({\n user: context.user,\n }),\n },\n function (error, success) {\n if (error) {\n return enabled();\n } else {\n var resp = JSON.parse(success);\n if (resp.active) {\n return enabled();\n } else {\n return disabled();\n }\n }\n }\n );\n}\n'})}),"\n",(0,s.jsx)(n.h2,{id:"web-hooks",children:"Web hooks"}),"\n",(0,s.jsx)(n.p,{children:"Like the other screen you can see the existing hooks on a table:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Hooks",src:i(639).Z+"",width:"2514",height:"776"})}),"\n",(0,s.jsx)(n.h2,{id:"manage-web-hooks",children:"Manage web hooks"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Hook",src:i(7070).Z+"",width:"2548",height:"896"})}),"\n",(0,s.jsx)(n.p,{children:"The registered hooks will be called when new events occur"}),"\n",(0,s.jsx)(n.h3,{id:"download-and-upload",children:"Download and Upload"}),"\n",(0,s.jsx)(n.p,{children:"If you're admin you have the right to download or upload."}),"\n",(0,s.jsx)("img",{src:a.Z,width:"50%"}),"\n",(0,s.jsx)(n.h2,{id:"manage-users",children:"Manage users"}),"\n",(0,s.jsx)(n.p,{children:"You can manage user if you're an admin."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Users",src:i(269).Z+"",width:"2524",height:"792"})}),"\n",(0,s.jsx)(n.p,{children:"Like the other screen you can see the existing users on a table:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Users",src:i(7516).Z+"",width:"2876",height:"794"})}),"\n",(0,s.jsx)(n.h3,{id:"edit-a-user",children:"Edit a user"}),"\n",(0,s.jsx)(n.p,{children:"To create or edit a user, you have to"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"an Id"}),"\n",(0,s.jsx)(n.li,{children:"A name"}),"\n",(0,s.jsx)(n.li,{children:"An email"}),"\n",(0,s.jsx)(n.li,{children:"A password"}),"\n",(0,s.jsx)(n.li,{children:"Specified if the user is admin"}),"\n",(0,s.jsx)(n.li,{children:"Patterns to apply restriction on user"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Edit user",src:i(4678).Z+"",width:"2876",height:"1218"})}),"\n",(0,s.jsx)(n.h3,{id:"download-and-upload-1",children:"Download and Upload"}),"\n",(0,s.jsx)(n.p,{children:"If you're admin you have the right to download or upload."}),"\n",(0,s.jsx)("img",{src:a.Z,width:"50%"}),"\n",(0,s.jsx)(n.h2,{id:"manage-api-keys",children:"Manage API keys"}),"\n",(0,s.jsx)(n.p,{children:"You can manage api keys if you're an admin."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Apikeys",src:i(7650).Z+"",width:"2510",height:"774"})}),"\n",(0,s.jsx)(n.p,{children:"Like the other screen you can see the existing api keys on a table:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Apikeys",src:i(2298).Z+"",width:"2504",height:"776"})}),"\n",(0,s.jsx)(n.h3,{id:"edit-a-api-key",children:"Edit a api key"}),"\n",(0,s.jsx)(n.p,{children:"To create or edit a api key, you have to"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"A name"}),"\n",(0,s.jsx)(n.li,{children:"A client id"}),"\n",(0,s.jsx)(n.li,{children:"A client secret"}),"\n",(0,s.jsx)(n.li,{children:"Patterns to apply restriction on api key"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Edit an api key",src:i(5014).Z+"",width:"2540",height:"830"})}),"\n",(0,s.jsx)(n.h3,{id:"download-and-upload-2",children:"Download and Upload"}),"\n",(0,s.jsx)(n.p,{children:"If you're admin you have the right to download or upload."}),"\n",(0,s.jsx)("img",{src:a.Z,width:"50%"})]})}function p(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},9217:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/download-upload-190ece8c34554fe2d94962988d681ca3.png"},7650:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/access-apikeys-9c249de93117411c749e5fba86a06124.png"},2298:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/all-1852b062887aeec28ff3838abd6a18a6.png"},5014:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/apikey-d0c8f02212ef3ccb219077716e62de56.png"},8594:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/search-5235b522061acbcca5160cab315c7227.png"},639:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/all-912290ff7736f75af16ef71a8600df67.png"},7070:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/hook-c87a9c865bf25da2f21816a8e7cd3dfe.png"},3790:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/list-4c4ddfe386e3c7954d9f88a988c4b4da.png"},1848:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/script-b5c8258551c722c2e1ce6d4ab212d428.png"},269:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/access-users-2774dd5ec17023397b75257aa834254a.png"},7516:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/all-03ae667f510b97add959ee96af434aa3.png"},4678:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/user-46aba09dd8c6feec9b0453da301f64f1.png"},1151:(e,n,i)=>{i.d(n,{Z:()=>l,a:()=>d});var s=i(7294);const t={},a=s.createContext(t);function d(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),s.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/39cf9c2b.90ebf94c.js b/docs/assets/js/39cf9c2b.90ebf94c.js deleted file mode 100644 index 10b556a06..000000000 --- a/docs/assets/js/39cf9c2b.90ebf94c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkizanami_documentation=self.webpackChunkizanami_documentation||[]).push([[8764],{5458:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>o,contentTitle:()=>l,default:()=>u,frontMatter:()=>i,metadata:()=>r,toc:()=>c});var s=n(5893),t=n(1151);const i={title:"Feature flags"},l=void 0,r={id:"concepts/index",title:"Feature flags",description:"A feature flag is a switch allowing to enable / disable application features.",source:"@site/docs/02-concepts/index.mdx",sourceDirName:"02-concepts",slug:"/concepts/",permalink:"/izanami/docs/concepts/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{title:"Feature flags"},sidebar:"tutorialSidebar",previous:{title:"Get started",permalink:"/izanami/docs/getstarted/"},next:{title:"Concepts",permalink:"/izanami/docs/usages/"}},o={},c=[{value:"Centralized VS local flags",id:"centralized-vs-local-flags",level:2},{value:"Flag types",id:"flag-types",level:2},{value:"Release flag",id:"release-flag",level:3},{value:"Ops flag",id:"ops-flag",level:3},{value:"Permission flag",id:"permission-flag",level:3},{value:"Experiment flag",id:"experiment-flag",level:3}];function d(e){const a={h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.p,{children:"A feature flag is a switch allowing to enable / disable application features."}),"\n",(0,s.jsxs)(a.p,{children:["Feature flags allows to ",(0,s.jsx)(a.strong,{children:"separate delivery from activation"}),"."]}),"\n",(0,s.jsx)(a.p,{children:"This means that you can deliver an application with disabled features, and activate it only when they are ready.\nThis also means that you can disable problematic features without having to do another delivery."}),"\n",(0,s.jsxs)(a.p,{children:["It's a nice tool for OPS and SRE engineers, but it's also very usefull for developers, since feature flags allow to leverage ",(0,s.jsx)(a.strong,{children:"trunk-based developement"}),", avoiding many merges and late integration issues."]}),"\n",(0,s.jsx)(a.h2,{id:"centralized-vs-local-flags",children:"Centralized VS local flags"}),"\n",(0,s.jsx)(a.p,{children:"Feature flag logic can be entirely stored in your application, for instance by storing flag state in some database."}),"\n",(0,s.jsx)(a.p,{children:"Centralized flag solution (such as Izanami) have some important benefits:"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:"Flags can be shared accross applications"}),"\n",(0,s.jsx)(a.li,{children:"All your flags are visible in one place"}),"\n",(0,s.jsx)(a.li,{children:"Feature flag allows to define custom activation conditions, that can be changed over time without having to deliver your application again"}),"\n",(0,s.jsx)(a.li,{children:"Managing access and rights only need to be done in one place"}),"\n"]}),"\n",(0,s.jsx)(a.p,{children:"However there are no silver bullets, and centralized feature flag solutions are no exceptions:"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsxs)(a.li,{children:["Requesting flags states adds some overhead to your application process (this can be mitigated using ",(0,s.jsx)("a",{href:"#",target:"_blank",children:"caching"})," and/or ",(0,s.jsx)("a",{href:"#",target:"_blank",children:"smart clients"}),")"]}),"\n",(0,s.jsxs)(a.li,{children:["If the centralized feature flag solution is down, your application can't access flag state anymore (you may define ",(0,s.jsx)("a",{href:"#",target:"_blank",children:"default activation strategies"})," for your features)"]}),"\n"]}),"\n",(0,s.jsx)(a.h2,{id:"flag-types",children:"Flag types"}),"\n",(0,s.jsx)(a.p,{children:"As we've seen in previous section, feature flags are very versatile. This section presents their main use cases."}),"\n",(0,s.jsxs)(a.p,{children:["Categories are inspired by ",(0,s.jsx)("a",{href:"https://martinfowler.com/articles/feature-toggles.html",children:"this great article"})," from Pete Hodgson."]}),"\n",(0,s.jsx)(a.h3,{id:"release-flag",children:"Release flag"}),"\n",(0,s.jsx)(a.p,{children:"Realeases feature flags are used to keep features disabled while they are not ready."}),"\n",(0,s.jsx)(a.p,{children:"Using this kind of flag is a good stepping stone toward trunk-based developement and CI/CD."}),"\n",(0,s.jsxs)(a.p,{children:["With Izanami, release flags can be achieved using ",(0,s.jsx)("a",{href:"#",target:"_blank",children:"basic"})," or ",(0,s.jsx)("a",{href:"#",target:"_blank",children:"release date features"}),"."]}),"\n",(0,s.jsx)(a.h3,{id:"ops-flag",children:"Ops flag"}),"\n",(0,s.jsx)(a.p,{children:"Ops flag are usually long living flags, that aims to be used when things go wrong."}),"\n",(0,s.jsx)(a.p,{children:"This could, for instance, be used to disable feature with high performance impact, or to put part of your information system into maintenance state."}),"\n",(0,s.jsx)(a.p,{children:"Another use for ops feature could be to cut some services during inactivity periods."}),"\n",(0,s.jsxs)(a.p,{children:["With Izanami, you could implement ops flags using ",(0,s.jsx)("a",{href:"#",target:"_blank",children:"basic"})," or ",(0,s.jsx)("a",{href:"#",target:"_blank",children:"time/date range features"}),"."]}),"\n",(0,s.jsx)(a.h3,{id:"permission-flag",children:"Permission flag"}),"\n",(0,s.jsx)(a.p,{children:"Permission features allows to unlock new feature earlier for some users."}),"\n",(0,s.jsx)(a.p,{children:"It's a good solution for beta features."}),"\n",(0,s.jsxs)(a.p,{children:["Izanami allows to implement permission flags with ",(0,s.jsx)("a",{href:"#",target:"_blank",children:"user list features"}),"."]}),"\n",(0,s.jsx)(a.h3,{id:"experiment-flag",children:"Experiment flag"}),"\n",(0,s.jsx)(a.p,{children:"Experiment flags allows to try some features on a given proportion of your users."}),"\n",(0,s.jsx)(a.p,{children:"This could be used to test a new idea on a very small portion of your users."}),"\n",(0,s.jsxs)(a.p,{children:["Izanami implement this using ",(0,s.jsx)("a",{href:"#",target:"_blank",children:"percentage feature"}),"."]})]})}function u(e={}){const{wrapper:a}={...(0,t.a)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,a,n)=>{n.d(a,{Z:()=>r,a:()=>l});var s=n(7294);const t={},i=s.createContext(t);function l(e){const a=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),s.createElement(i.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/39cf9c2b.ad10084f.js b/docs/assets/js/39cf9c2b.ad10084f.js new file mode 100644 index 000000000..d50dd01ab --- /dev/null +++ b/docs/assets/js/39cf9c2b.ad10084f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkizanami_documentation=self.webpackChunkizanami_documentation||[]).push([[8764],{5458:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>o,contentTitle:()=>l,default:()=>u,frontMatter:()=>i,metadata:()=>r,toc:()=>c});var s=n(5893),t=n(1151);const i={title:"Feature flags"},l=void 0,r={id:"concepts/index",title:"Feature flags",description:"A feature flag is a switch allowing to enable / disable application features.",source:"@site/docs/02-concepts/index.mdx",sourceDirName:"02-concepts",slug:"/concepts/",permalink:"/izanami/docs/concepts/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{title:"Feature flags"},sidebar:"tutorialSidebar",previous:{title:"Get started",permalink:"/izanami/docs/getstarted/"},next:{title:"Concepts",permalink:"/izanami/docs/usages/"}},o={},c=[{value:"Centralized VS local flags",id:"centralized-vs-local-flags",level:2},{value:"Flag types",id:"flag-types",level:2},{value:"Release flag",id:"release-flag",level:3},{value:"Ops flag",id:"ops-flag",level:3},{value:"Permission flag",id:"permission-flag",level:3},{value:"Experiment flag",id:"experiment-flag",level:3}];function d(e){const a={a:"a",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.p,{children:"A feature flag is a switch allowing to enable / disable application features."}),"\n",(0,s.jsxs)(a.p,{children:["Feature flags allows to ",(0,s.jsx)(a.strong,{children:"separate delivery from activation"}),"."]}),"\n",(0,s.jsx)(a.p,{children:"This means that you can deliver an application with disabled features, and activate it only when they are ready.\nThis also means that you can disable problematic features without having to do another delivery."}),"\n",(0,s.jsxs)(a.p,{children:["It's a nice tool for OPS and SRE engineers, but it's also very usefull for developers, since feature flags allow to leverage ",(0,s.jsx)(a.strong,{children:"trunk-based developement"}),", avoiding many merges and late integration issues."]}),"\n",(0,s.jsx)(a.h2,{id:"centralized-vs-local-flags",children:"Centralized VS local flags"}),"\n",(0,s.jsx)(a.p,{children:"Feature flag logic can be entirely stored in your application, for instance by storing flag state in some database."}),"\n",(0,s.jsx)(a.p,{children:"Centralized flag solution (such as Izanami) have some important benefits:"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:"Flags can be shared accross applications"}),"\n",(0,s.jsx)(a.li,{children:"All your flags are visible in one place"}),"\n",(0,s.jsx)(a.li,{children:"Feature flag allows to define custom activation conditions, that can be changed over time without having to deliver your application again"}),"\n",(0,s.jsx)(a.li,{children:"Managing access and rights only need to be done in one place"}),"\n"]}),"\n",(0,s.jsx)(a.p,{children:"However there are no silver bullets, and centralized feature flag solutions are no exceptions:"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsxs)(a.li,{children:["Requesting flags states adds some overhead to your application process (this can be mitigated using ",(0,s.jsx)(a.a,{href:"../clients",children:"one of our clients"}),", or by caching flag state)"]}),"\n",(0,s.jsx)(a.li,{children:"If the centralized feature flag solution is down, your application can't access flag state anymore (you may define a default activation strategy for such cases)"}),"\n"]}),"\n",(0,s.jsx)(a.h2,{id:"flag-types",children:"Flag types"}),"\n",(0,s.jsx)(a.p,{children:"As we've seen in previous section, feature flags are very versatile. This section presents their main use cases."}),"\n",(0,s.jsxs)(a.p,{children:["Categories are inspired by ",(0,s.jsx)("a",{href:"https://martinfowler.com/articles/feature-toggles.html",children:"this great article"})," from Pete Hodgson."]}),"\n",(0,s.jsx)(a.h3,{id:"release-flag",children:"Release flag"}),"\n",(0,s.jsx)(a.p,{children:"Realeases feature flags are used to keep features disabled while they are not ready."}),"\n",(0,s.jsx)(a.p,{children:"Using this kind of flag is a good stepping stone toward trunk-based developement and CI/CD."}),"\n",(0,s.jsx)(a.p,{children:"With Izanami, release flags can be achieved using basic flags (simple ON/OFF flags) or release date features."}),"\n",(0,s.jsx)(a.h3,{id:"ops-flag",children:"Ops flag"}),"\n",(0,s.jsx)(a.p,{children:"Ops flag are usually long living flags, that aims to be used when things go wrong."}),"\n",(0,s.jsx)(a.p,{children:"This could, for instance, be used to disable feature with high performance impact, or to put part of your information system into maintenance state."}),"\n",(0,s.jsx)(a.p,{children:"Another use for ops feature could be to cut some services during inactivity periods."}),"\n",(0,s.jsx)(a.p,{children:"With Izanami, you could implement ops flags using basic flags (simple ON/OFF flags) or time/date range features."}),"\n",(0,s.jsx)(a.h3,{id:"permission-flag",children:"Permission flag"}),"\n",(0,s.jsx)(a.p,{children:"Permission features allows to unlock new feature earlier for some users."}),"\n",(0,s.jsx)(a.p,{children:"It's a good solution for beta features."}),"\n",(0,s.jsx)(a.p,{children:"Izanami allows to implement permission flags with user list features."}),"\n",(0,s.jsx)(a.h3,{id:"experiment-flag",children:"Experiment flag"}),"\n",(0,s.jsx)(a.p,{children:"Experiment flags allows to try some features on a given proportion of your users."}),"\n",(0,s.jsx)(a.p,{children:"This could be used to test a new idea on a very small portion of your users."}),"\n",(0,s.jsx)(a.p,{children:"Izanami implement this using percentage feature."})]})}function u(e={}){const{wrapper:a}={...(0,t.a)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,a,n)=>{n.d(a,{Z:()=>r,a:()=>l});var s=n(7294);const t={},i=s.createContext(t);function l(e){const a=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),s.createElement(i.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/55940994.0a71a8cb.js b/docs/assets/js/55940994.0a71a8cb.js new file mode 100644 index 000000000..35e8fa68e --- /dev/null +++ b/docs/assets/js/55940994.0a71a8cb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkizanami_documentation=self.webpackChunkizanami_documentation||[]).push([[4310],{9092:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>z,contentTitle:()=>w,default:()=>C,frontMatter:()=>k,metadata:()=>I,toc:()=>R});var r=t(5893),s=t(1151),i=t(1361);const a=t.p+"assets/images/empty-landing-page-4ea49c614797a56aa526e5422f8115c2.png",c=t.p+"assets/images/tenant-form-92494646753667cfd76514c05794d20a.png",o=t.p+"assets/images/first-tenant-5c49ff016776d2a4b062157699558eee.png",l=t.p+"assets/images/project-form-994d9cdc982bb3802984c3e9bb75f8f3.png",d=t.p+"assets/images/first-project-d15ba464a978f51b37860c0a081dd786.png",u=t.p+"assets/images/feature-form-0d4b7a5f400e9365eaab62622cb79f1e.png",h=t.p+"assets/images/first-feature-4fd10507d98cf66488bf1770b824a4b2.png",p=t.p+"assets/images/test-menu-0b879393b08b5d33581bb9ec6938f4c8.png",g=t.p+"assets/images/test-form-b14f3686e666f26be7b88c46a0bea62e.png",f=t.p+"assets/images/feature-result-79ce8e1410a1576234c2a545a8d1486a.png",j=t.p+"assets/images/key-screen-ddf20c332c06192a04b5000f0d1d2923.png",m=t.p+"assets/images/key-form-fb692d8c4ea95751b243432907ce73e3.png",x=t.p+"assets/images/key-secret-494fde1ba15b5c0767963c89b6b9aaf6.png",y=t.p+"assets/images/url-screen-b6dad6e98f70f0c6a60f644bfa46e442.png";function b(e){const n={code:"code",pre:"pre",...(0,s.a)(),...e.components};return(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:' curl -H "izanami-client-id: " \\\n -H "izanami-client-secret: " \\\n \n'})})}function v(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(b,{...e})}):b(e)}const k={title:"Get started"},w="Get started",I={id:"getstarted/index",title:"Get started",description:"This guide will help you to:",source:"@site/docs/01-getstarted/index.mdx",sourceDirName:"01-getstarted",slug:"/getstarted/",permalink:"/izanami/docs/getstarted/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{title:"Get started"},sidebar:"tutorialSidebar",next:{title:"Feature flags",permalink:"/izanami/docs/concepts/"}},z={},R=[{value:"Instantiate Izanami locally",id:"instantiate-izanami-locally",level:2},{value:"Using docker",id:"using-docker",level:3},{value:"Using Java",id:"using-java",level:3},{value:"Your first feature",id:"your-first-feature",level:2},{value:"Creating tenant and project",id:"creating-tenant-and-project",level:3},{value:"Create your first feature",id:"create-your-first-feature",level:3},{value:"Test your feature locally",id:"test-your-feature-locally",level:3},{value:"Querying your feature",id:"querying-your-feature",level:2},{value:"Creating an API key",id:"creating-an-api-key",level:3},{value:"Retrieving request URL",id:"retrieving-request-url",level:3},{value:"Requesting using curl",id:"requesting-using-curl",level:3}];function T(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"get-started",children:"Get started"}),"\n",(0,r.jsx)(n.p,{children:"This guide will help you to:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Get your first Izanami instance up and running"}),"\n",(0,r.jsx)(n.li,{children:"Creating your first feature"}),"\n",(0,r.jsx)(n.li,{children:"Requesting features through HTTP"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["To cover more advanced topics, either read about ",(0,r.jsx)(n.a,{href:"../concepts",children:"core concepts"})," or ",(0,r.jsx)(n.a,{href:"../guides/",children:"our guides"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"instantiate-izanami-locally",children:"Instantiate Izanami locally"}),"\n",(0,r.jsx)(n.p,{children:"There are several ways to start Izanami."}),"\n",(0,r.jsx)(n.h3,{id:"using-docker",children:"Using docker"}),"\n",(0,r.jsxs)(n.p,{children:["One solution si to run a postgres DB separately (change ",(0,r.jsx)(n.code,{children:"IZANAMI_PG_URI"})," to match your database setting)."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sh",children:"docker run --env IZANAMI_PG_URI=postgresql://postgres:postgres@host.docker.internal:5432/postgres -p 9000:9000 izanami\n"})}),"\n",(0,r.jsx)(n.p,{children:"Alternatively, you can run following docker-compose file"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yml",children:"# Use postgres/example user/password credentials\nversion: '3.1'\n\nservices:\n db:\n image: postgres\n restart: always\n environment:\n POSTGRES_USER: postgres\n POSTGRES_PASSWORD: postgres\n ports:\n - 5432:5432\n izanami:\n image: maif/izanami:2.0.0\n environment:\n IZANAMI_PG_URI: postgresql://postgres:postgres@host.docker.internal:5432/postgres\n ports:\n - 9000:9000\n"})}),"\n",(0,r.jsx)(n.h3,{id:"using-java",children:"Using Java"}),"\n",(0,r.jsxs)(n.p,{children:["You'll need to run a postgres database to start Izanami. Replace ",(0,r.jsx)(n.code,{children:"app.pg.uri"})," with your database values."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sh",children:"java -jar \\\n -Dapp.pg.uri=postgresql://postgres:postgres@localhost:5432/postgres \\\n izanami.jar\n"})}),"\n",(0,r.jsx)(n.h2,{id:"your-first-feature",children:"Your first feature"}),"\n",(0,r.jsx)(n.h3,{id:"creating-tenant-and-project",children:"Creating tenant and project"}),"\n",(0,r.jsx)(n.p,{children:"Before creating a feature, you need to create a tenant and a project."}),"\n",(0,r.jsx)(n.p,{children:"These two organizations levels will help you to keep thing organized"}),"\n",(0,r.jsx)(n.p,{children:"When login in for the first time, Izanami will ask you to create a tenant."}),"\n",(0,r.jsx)("img",{src:a}),"\n",(0,r.jsx)(n.p,{children:"When clicking this button, Izanami will display tenant creation form, tenant name can contain:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"lowercase letters"}),"\n",(0,r.jsx)(n.li,{children:"numbers"}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"-"})," and ",(0,r.jsx)(n.code,{children:"_"})," characters"]}),"\n"]}),"\n",(0,r.jsx)("img",{src:c}),"\n",(0,r.jsx)(n.p,{children:"Once tenant is created, Izanami redirects you its page, and indicates that there is no project for this tenant yet."}),"\n",(0,r.jsx)("img",{src:o}),"\n",(0,r.jsxs)(n.p,{children:["On this screen there are two choices, we can either create a new project from scratch or import data, for this guide we will create a new project.\nIf you're interested in importing data, check the ",(0,r.jsx)(n.a,{href:"../guides/import-from-v1",children:"data importing guide"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"After clicking the creation button, a form is displayed. Project name can contain following symbols :"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"letters (uppercase or lowercase)"}),"\n",(0,r.jsx)(n.li,{children:"numbers"}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"-"})," and ",(0,r.jsx)(n.code,{children:"_"})," characters"]}),"\n"]}),"\n",(0,r.jsx)("img",{src:l}),"\n",(0,r.jsx)(n.p,{children:"After validating this form, Izanami once again redirects you, this time on the new project page."}),"\n",(0,r.jsx)("img",{src:d}),"\n",(0,r.jsx)(n.h3,{id:"create-your-first-feature",children:"Create your first feature"}),"\n",(0,r.jsx)(n.p,{children:'Now that we have a project, let\'s create our first feature. Just click on the "Create new feature" button.'}),"\n",(0,r.jsx)(n.p,{children:"In this form, feature name can contain following symbols:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"letters (uppercase or lowercase)"}),"\n",(0,r.jsx)(n.li,{children:"numbers"}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"-"}),", ",(0,r.jsx)(n.code,{children:"_"})," and ",(0,r.jsx)(n.code,{children:":"})," characters"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"For now, we'll keep feature as simple as possible: feature will be either active or inactive for everyone."}),"\n",(0,r.jsx)(n.p,{children:'Check "Enabled" checkbox if you want your feature to be active, let it unchecked otherwise.'}),"\n",(0,r.jsx)("img",{src:u}),"\n",(0,r.jsx)(n.p,{children:"After saving this new feature, our project doesn't look that empty anymore."}),"\n",(0,r.jsx)("img",{src:h}),"\n",(0,r.jsx)(n.h3,{id:"test-your-feature-locally",children:"Test your feature locally"}),"\n",(0,r.jsx)(n.p,{children:"Izanami allows to test feature from backoffice. Click on action icon at the end of your feature row."}),"\n",(0,r.jsx)("img",{src:p}),"\n",(0,r.jsx)(n.p,{children:'Now click on "Test Feature" item to display test form.'}),"\n",(0,r.jsx)("img",{src:g}),"\n",(0,r.jsx)(n.p,{children:"This form allows to specify several query parameters, but we don't need it right now, just click on the test button."}),"\n",(0,r.jsx)(n.p,{children:"A result textbox will appear indicating if feature is currently active or not."}),"\n",(0,r.jsx)("img",{src:f}),"\n",(0,r.jsx)(n.h2,{id:"querying-your-feature",children:"Querying your feature"}),"\n",(0,r.jsx)(n.p,{children:"To query feature state from external application, we'll need to create a client key."}),"\n",(0,r.jsx)(i.j,{children:"We recommand to create one key by client application"}),"\n",(0,r.jsx)(n.h3,{id:"creating-an-api-key",children:"Creating an API key"}),"\n",(0,r.jsx)(n.p,{children:'First let\'s go to the API key screen, click on "Keys" entry of left menu.'}),"\n",(0,r.jsx)("img",{src:j}),"\n",(0,r.jsx)(n.p,{children:'Click on "Create new key" to display key creation form. Key name can contain following symbols:'}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"letters (uppercase or lowercase)"}),"\n",(0,r.jsx)(n.li,{children:"numbers"}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"-"})," and ",(0,r.jsx)(n.code,{children:"_"})," characters"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:'You\'ll also need to select allowed projects in select. Alternatively, you can check "admin" checkbox.'}),"\n",(0,r.jsx)(i.j,{children:"Admin keys have right on all tenant projects"}),"\n",(0,r.jsx)("img",{src:m}),"\n",(0,r.jsx)(n.p,{children:"Once your key is created, a popup will display associated client id and secret."}),"\n",(0,r.jsx)("img",{src:x}),"\n",(0,r.jsx)(n.h3,{id:"retrieving-request-url",children:"Retrieving request URL"}),"\n",(0,r.jsx)(n.p,{children:'To retrieve feature call URL, you\'ll need to get back to your project.\nTo do this click on "Projects" item on left menu, and then click on your project.'}),"\n",(0,r.jsx)(n.p,{children:"Once you are back on your project screen, click on the link icon on your feature row."}),"\n",(0,r.jsx)("img",{src:y}),"\n",(0,r.jsx)(n.p,{children:'Click the "copy" button to copy feature URL.'}),"\n",(0,r.jsx)(i.j,{children:(0,r.jsx)(n.p,{children:"Izanami is using technical ID in URL. The reason it's not using feature name\nis to allow changing feature names without breaking client calls"})}),"\n",(0,r.jsx)(n.h3,{id:"requesting-using-curl",children:"Requesting using curl"}),"\n",(0,r.jsx)(n.p,{children:"You've got everything you need to query your feature from curl."}),"\n",(0,r.jsx)(v,{})]})}function C(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(T,{...e})}):T(e)}},1361:(e,n,t)=>{t.d(n,{j:()=>a});const r={description__trivia:"description__trivia_yesz"};var s=t(6678),i=t(5893);function a(e){let{children:n}=e;return(0,i.jsxs)("div",{className:r.description__trivia,children:[(0,i.jsx)("img",{src:s.Z}),(0,i.jsx)("div",{children:n})]})}},6678:(e,n,t)=>{t.d(n,{Z:()=>r});const r=t.p+"assets/images/izanami-fcff3cbcd789d673683f3365a3ddf9e4.png"},1151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>a});var r=t(7294);const s={},i=r.createContext(s);function a(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/55940994.fd9e946b.js b/docs/assets/js/55940994.fd9e946b.js deleted file mode 100644 index da5aa7ec1..000000000 --- a/docs/assets/js/55940994.fd9e946b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkizanami_documentation=self.webpackChunkizanami_documentation||[]).push([[4310],{9092:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>z,contentTitle:()=>w,default:()=>T,frontMatter:()=>k,metadata:()=>I,toc:()=>R});var r=t(5893),s=t(1151),a=t(1361);const i=t.p+"assets/images/empty-landing-page-4ea49c614797a56aa526e5422f8115c2.png",c=t.p+"assets/images/tenant-form-92494646753667cfd76514c05794d20a.png",o=t.p+"assets/images/first-tenant-5c49ff016776d2a4b062157699558eee.png",l=t.p+"assets/images/project-form-994d9cdc982bb3802984c3e9bb75f8f3.png",d=t.p+"assets/images/first-project-d15ba464a978f51b37860c0a081dd786.png",u=t.p+"assets/images/feature-form-0d4b7a5f400e9365eaab62622cb79f1e.png",h=t.p+"assets/images/first-feature-4fd10507d98cf66488bf1770b824a4b2.png",p=t.p+"assets/images/test-menu-0b879393b08b5d33581bb9ec6938f4c8.png",g=t.p+"assets/images/test-form-b14f3686e666f26be7b88c46a0bea62e.png",f=t.p+"assets/images/feature-result-79ce8e1410a1576234c2a545a8d1486a.png",j=t.p+"assets/images/key-screen-ddf20c332c06192a04b5000f0d1d2923.png",m=t.p+"assets/images/key-form-fb692d8c4ea95751b243432907ce73e3.png",x=t.p+"assets/images/key-secret-494fde1ba15b5c0767963c89b6b9aaf6.png",y=t.p+"assets/images/url-screen-b6dad6e98f70f0c6a60f644bfa46e442.png";function b(e){const n={code:"code",pre:"pre",...(0,s.a)(),...e.components};return(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:' curl -H "izanami-client-id: " \\\n -H "izanami-client-secret: " \\\n \n'})})}function v(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(b,{...e})}):b(e)}const k={title:"Get started"},w="Get started",I={id:"getstarted/index",title:"Get started",description:"This guide will help you to:",source:"@site/docs/01-getstarted/index.mdx",sourceDirName:"01-getstarted",slug:"/getstarted/",permalink:"/izanami/docs/getstarted/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{title:"Get started"},sidebar:"tutorialSidebar",next:{title:"Feature flags",permalink:"/izanami/docs/concepts/"}},z={},R=[{value:"Instantiate Izanami locally",id:"instantiate-izanami-locally",level:2},{value:"Using docker",id:"using-docker",level:3},{value:"Using Java",id:"using-java",level:3},{value:"Your first feature",id:"your-first-feature",level:2},{value:"Creating tenant and project",id:"creating-tenant-and-project",level:3},{value:"Create your first feature",id:"create-your-first-feature",level:3},{value:"Test your feature locally",id:"test-your-feature-locally",level:3},{value:"Querying your feature",id:"querying-your-feature",level:2},{value:"Creating an API key",id:"creating-an-api-key",level:3},{value:"Retrieving request URL",id:"retrieving-request-url",level:3},{value:"Requesting using curl",id:"requesting-using-curl",level:3}];function _(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"get-started",children:"Get started"}),"\n",(0,r.jsx)(n.p,{children:"This guide will help you to:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Get your first Izanami instance up and running"}),"\n",(0,r.jsx)(n.li,{children:"Creating your first feature"}),"\n",(0,r.jsx)(n.li,{children:"Requesting features through HTTP"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["To cover more advanced topics, either refer to ",(0,r.jsx)("a",{href:"#",target:"_blank",children:"documentation"})," or ",(0,r.jsx)("a",{href:"#",target:"_blank",children:"other guides"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"instantiate-izanami-locally",children:"Instantiate Izanami locally"}),"\n",(0,r.jsx)(n.p,{children:"There are several ways to start Izanami."}),"\n",(0,r.jsx)(n.h3,{id:"using-docker",children:"Using docker"}),"\n",(0,r.jsxs)(n.p,{children:["One solution si to run a postgres DB separately (change ",(0,r.jsx)(n.code,{children:"IZANAMI_PG_URI"})," to match your database setting)."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sh",children:"docker run --env IZANAMI_PG_URI=postgresql://postgres:postgres@host.docker.internal:5432/postgres -p 9000:9000 izanami\n"})}),"\n",(0,r.jsx)(n.p,{children:"Alternatively, you can run following docker-compose file"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yml",children:"# Use postgres/example user/password credentials\nversion: '3.1'\n\nservices:\n db:\n image: postgres\n restart: always\n environment:\n POSTGRES_USER: postgres\n POSTGRES_PASSWORD: postgres\n ports:\n - 5432:5432\n izanami:\n image: maif/izanami:2.0.0\n environment:\n IZANAMI_PG_URI: postgresql://postgres:postgres@host.docker.internal:5432/postgres\n ports:\n - 9000:9000\n"})}),"\n",(0,r.jsx)(n.h3,{id:"using-java",children:"Using Java"}),"\n",(0,r.jsxs)(n.p,{children:["You'll need to run a postgres database to start Izanami. Replace ",(0,r.jsx)(n.code,{children:"app.pg.uri"})," with your database values."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sh",children:"java -jar \\\n -Dapp.pg.uri=postgresql://postgres:postgres@localhost:5432/postgres \\\n izanami.jar\n"})}),"\n",(0,r.jsx)(n.h2,{id:"your-first-feature",children:"Your first feature"}),"\n",(0,r.jsx)(n.h3,{id:"creating-tenant-and-project",children:"Creating tenant and project"}),"\n",(0,r.jsx)(n.p,{children:"Before creating a feature, you need to create a tenant and a project."}),"\n",(0,r.jsx)(n.p,{children:"These two organizations levels will help you to keep thing organized"}),"\n",(0,r.jsx)(n.p,{children:"When login in for the first time, Izanami will ask you to create a tenant."}),"\n",(0,r.jsx)("img",{src:i}),"\n",(0,r.jsx)(n.p,{children:"When clicking this button, Izanami will display tenant creation form, tenant name can contain:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"lowercase letters"}),"\n",(0,r.jsx)(n.li,{children:"numbers"}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"-"})," and ",(0,r.jsx)(n.code,{children:"_"})," characters"]}),"\n"]}),"\n",(0,r.jsx)("img",{src:c}),"\n",(0,r.jsx)(n.p,{children:"Once tenant is created, Izanami redirects you its page, and indicates that there is no project for this tenant yet."}),"\n",(0,r.jsx)("img",{src:o}),"\n",(0,r.jsxs)(n.p,{children:["On this screen there are two choices, we can either create a new project from scratch or import data, for this guide we will create a new project.\nIf you're interested in importing data, check the ",(0,r.jsx)("a",{href:"#",children:"data importing guide"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"After clicking the creation button, a form is displayed. Project name can contain following symbols :"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"letters (uppercase or lowercase)"}),"\n",(0,r.jsx)(n.li,{children:"numbers"}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"-"})," and ",(0,r.jsx)(n.code,{children:"_"})," characters"]}),"\n"]}),"\n",(0,r.jsx)("img",{src:l}),"\n",(0,r.jsx)(n.p,{children:"After validating this form, Izanami once again redirects you, this time on the new project page."}),"\n",(0,r.jsx)("img",{src:d}),"\n",(0,r.jsx)(n.h3,{id:"create-your-first-feature",children:"Create your first feature"}),"\n",(0,r.jsx)(n.p,{children:'Now that we have a project, let\'s create our first feature. Just click on the "Create new feature" button.'}),"\n",(0,r.jsx)(n.p,{children:"In this form, feature name can contain following symbols:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"letters (uppercase or lowercase)"}),"\n",(0,r.jsx)(n.li,{children:"numbers"}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"-"}),", ",(0,r.jsx)(n.code,{children:"_"})," and ",(0,r.jsx)(n.code,{children:":"})," characters"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"For now, we'll keep feature as simple as possible: feature will be either active or inactive for everyone."}),"\n",(0,r.jsx)(n.p,{children:'Check "Enabled" checkbox if you want your feature to be active, let it unchecked otherwise.'}),"\n",(0,r.jsx)("img",{src:u}),"\n",(0,r.jsx)(n.p,{children:"After saving this new feature, our project doesn't look that empty anymore."}),"\n",(0,r.jsx)("img",{src:h}),"\n",(0,r.jsx)(n.h3,{id:"test-your-feature-locally",children:"Test your feature locally"}),"\n",(0,r.jsx)(n.p,{children:"Izanami allows to test feature from backoffice. Click on action icon at the end of your feature row."}),"\n",(0,r.jsx)("img",{src:p}),"\n",(0,r.jsx)(n.p,{children:'Now click on "Test Feature" item to display test form.'}),"\n",(0,r.jsx)("img",{src:g}),"\n",(0,r.jsx)(n.p,{children:"This form allows to specify several query parameters, but we don't need it right now, just click on the test button."}),"\n",(0,r.jsx)(n.p,{children:"A result textbox will appear indicating if feature is currently active or not."}),"\n",(0,r.jsx)("img",{src:f}),"\n",(0,r.jsx)(n.h2,{id:"querying-your-feature",children:"Querying your feature"}),"\n",(0,r.jsx)(n.p,{children:"To query feature state from external application, we'll need to create a client key."}),"\n",(0,r.jsx)(a.j,{children:"We recommand to create one key by client application"}),"\n",(0,r.jsx)(n.h3,{id:"creating-an-api-key",children:"Creating an API key"}),"\n",(0,r.jsx)(n.p,{children:'First let\'s go to the API key screen, click on "Keys" entry of left menu.'}),"\n",(0,r.jsx)("img",{src:j}),"\n",(0,r.jsx)(n.p,{children:'Click on "Create new key" to display key creation form. Key name can contain following symbols:'}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"letters (uppercase or lowercase)"}),"\n",(0,r.jsx)(n.li,{children:"numbers"}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"-"})," and ",(0,r.jsx)(n.code,{children:"_"})," characters"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:'You\'ll also need to select allowed projects in select. Alternatively, you can check "admin" checkbox.'}),"\n",(0,r.jsx)(a.j,{children:"Admin keys have right on all tenant projects"}),"\n",(0,r.jsx)("img",{src:m}),"\n",(0,r.jsx)(n.p,{children:"Once your key is created, a popup will display associated client id and secret."}),"\n",(0,r.jsx)("img",{src:x}),"\n",(0,r.jsx)(n.h3,{id:"retrieving-request-url",children:"Retrieving request URL"}),"\n",(0,r.jsx)(n.p,{children:'To retrieve feature call URL, you\'ll need to get back to your project.\nTo do this click on "Projects" item on left menu, and then click on your project.'}),"\n",(0,r.jsx)(n.p,{children:"Once you are back on your project screen, click on the link icon on your feature row."}),"\n",(0,r.jsx)("img",{src:y}),"\n",(0,r.jsx)(n.p,{children:'Click the "copy" button to copy feature URL.'}),"\n",(0,r.jsx)(a.j,{children:(0,r.jsx)(n.p,{children:"Izanami is using technical ID in URL. The reason it's not using feature name\nis to allow changing feature names without breaking client calls"})}),"\n",(0,r.jsx)(n.h3,{id:"requesting-using-curl",children:"Requesting using curl"}),"\n",(0,r.jsx)(n.p,{children:"You've got everything you need to query your feature from curl."}),"\n",(0,r.jsx)(v,{})]})}function T(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(_,{...e})}):_(e)}},1361:(e,n,t)=>{t.d(n,{j:()=>i});const r={description__trivia:"description__trivia_yesz"};var s=t(6678),a=t(5893);function i(e){let{children:n}=e;return(0,a.jsxs)("div",{className:r.description__trivia,children:[(0,a.jsx)("img",{src:s.Z}),(0,a.jsx)("div",{children:n})]})}},6678:(e,n,t)=>{t.d(n,{Z:()=>r});const r=t.p+"assets/images/izanami-fcff3cbcd789d673683f3365a3ddf9e4.png"},1151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>i});var r=t(7294);const s={},a=r.createContext(s);function i(e){const n=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/5a1e6866.328172b9.js b/docs/assets/js/5a1e6866.328172b9.js deleted file mode 100644 index 054547031..000000000 --- a/docs/assets/js/5a1e6866.328172b9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkizanami_documentation=self.webpackChunkizanami_documentation||[]).push([[5284],{2548:(i,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>l,default:()=>g,frontMatter:()=>s,metadata:()=>d,toc:()=>u});var o=n(5893),t=n(1151);const r=n.p+"assets/images/configuration-screen-dae58e30e19bad9f6852c66c11687e2b.png",a=n.p+"assets/images/invitation-method-60e6cf734db35d0d2e6ddcc7c3526d60.png",s={title:"Configuring mailer"},l=void 0,d={id:"guides/mailer-configuration",title:"Configuring mailer",description:"Izanami can send email, for example, for user invitations or password reset.",source:"@site/docs/04-guides/10-mailer-configuration.mdx",sourceDirName:"04-guides",slug:"/guides/mailer-configuration",permalink:"/izanami/docs/guides/mailer-configuration",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:10,frontMatter:{title:"Configuring mailer"},sidebar:"tutorialSidebar",previous:{title:"Creating API key",permalink:"/izanami/docs/guides/key-configuration"},next:{title:"Configuring Izanami",permalink:"/izanami/docs/guides/configuration"}},c={},u=[{value:"Configuring mail provider",id:"configuring-mail-provider",level:2},{value:"Configuring invitation mode",id:"configuring-invitation-mode",level:2}];function m(i){const e={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...i.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(e.p,{children:"Izanami can send email, for example, for user invitations or password reset."}),"\n",(0,o.jsx)(e.p,{children:"It supports 4 mail providers :"}),"\n",(0,o.jsxs)(e.ul,{children:["\n",(0,o.jsx)(e.li,{children:"Console: this is the default when no mail provider is configured, mails will be displayed in application logs (except for invitations, see below)"}),"\n",(0,o.jsxs)(e.li,{children:["MailJet : ",(0,o.jsx)(e.a,{href:"https://www.mailjet.com/",children:"MailJet"})," external provider"]}),"\n",(0,o.jsxs)(e.li,{children:["MailGun : ",(0,o.jsx)(e.a,{href:"https://www.mailgun.com/",children:"MailGun"})," external provider"]}),"\n",(0,o.jsx)(e.li,{children:"SMTP : allow to manually configure another SMTP server"}),"\n"]}),"\n",(0,o.jsxs)(e.p,{children:["For invitations, Izanami let you choose between sending them by mail or displaying invitation link in the UI. See ",(0,o.jsx)("a",{href:"#",children:"invitation guide"}),"."]}),"\n",(0,o.jsx)(e.h2,{id:"configuring-mail-provider",children:"Configuring mail provider"}),"\n",(0,o.jsx)(e.p,{children:'To configure mail provider, you need to be Izanami admin. Just go to the "Global Settings" page and set up the mail provider of your choice.'}),"\n",(0,o.jsx)(e.p,{children:"You must also configure origin email, which indicates origin sender email to use."}),"\n",(0,o.jsx)("img",{src:r}),"\n",(0,o.jsx)(e.h2,{id:"configuring-invitation-mode",children:"Configuring invitation mode"}),"\n",(0,o.jsx)(e.p,{children:"Default invitation mode is to display an invitation link to the user performing the invitation."}),"\n",(0,o.jsx)(e.p,{children:"This allows Izanami to work correctly even when no mailer is configured."}),"\n",(0,o.jsx)(e.p,{children:"It is possible to change this behavior to make Izanami send these invitation emails."}),"\n",(0,o.jsx)("img",{src:a})]})}function g(i={}){const{wrapper:e}={...(0,t.a)(),...i.components};return e?(0,o.jsx)(e,{...i,children:(0,o.jsx)(m,{...i})}):m(i)}},1151:(i,e,n)=>{n.d(e,{Z:()=>s,a:()=>a});var o=n(7294);const t={},r=o.createContext(t);function a(i){const e=o.useContext(r);return o.useMemo((function(){return"function"==typeof i?i(e):{...e,...i}}),[e,i])}function s(i){let e;return e=i.disableParentContext?"function"==typeof i.components?i.components(t):i.components||t:a(i.components),o.createElement(r.Provider,{value:e},i.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/5a1e6866.e012a180.js b/docs/assets/js/5a1e6866.e012a180.js new file mode 100644 index 000000000..e6458f7c1 --- /dev/null +++ b/docs/assets/js/5a1e6866.e012a180.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkizanami_documentation=self.webpackChunkizanami_documentation||[]).push([[5284],{2548:(i,n,e)=>{e.r(n),e.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>g,frontMatter:()=>s,metadata:()=>d,toc:()=>u});var o=e(5893),t=e(1151);const r=e.p+"assets/images/configuration-screen-dae58e30e19bad9f6852c66c11687e2b.png",a=e.p+"assets/images/invitation-method-60e6cf734db35d0d2e6ddcc7c3526d60.png",s={title:"Configuring mailer"},l=void 0,d={id:"guides/mailer-configuration",title:"Configuring mailer",description:"Izanami can send email, for example, for user invitations or password reset.",source:"@site/docs/04-guides/10-mailer-configuration.mdx",sourceDirName:"04-guides",slug:"/guides/mailer-configuration",permalink:"/izanami/docs/guides/mailer-configuration",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:10,frontMatter:{title:"Configuring mailer"},sidebar:"tutorialSidebar",previous:{title:"Creating API key",permalink:"/izanami/docs/guides/key-configuration"},next:{title:"Configuring Izanami",permalink:"/izanami/docs/guides/configuration"}},c={},u=[{value:"Configuring mail provider",id:"configuring-mail-provider",level:2},{value:"Configuring invitation mode",id:"configuring-invitation-mode",level:2}];function m(i){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...i.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.p,{children:"Izanami can send email, for example, for user invitations or password reset."}),"\n",(0,o.jsx)(n.p,{children:"It supports 4 mail providers :"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Console: this is the default when no mail provider is configured, mails will be displayed in application logs (except for invitations, see below)"}),"\n",(0,o.jsxs)(n.li,{children:["MailJet : ",(0,o.jsx)(n.a,{href:"https://www.mailjet.com/",children:"MailJet"})," external provider"]}),"\n",(0,o.jsxs)(n.li,{children:["MailGun : ",(0,o.jsx)(n.a,{href:"https://www.mailgun.com/",children:"MailGun"})," external provider"]}),"\n",(0,o.jsx)(n.li,{children:"SMTP : allow to manually configure another SMTP server"}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["For invitations, Izanami let you choose between sending them by mail or displaying invitation link in the UI. See ",(0,o.jsx)(n.a,{href:"./user-invitation",children:"invitation guide"}),"."]}),"\n",(0,o.jsx)(n.h2,{id:"configuring-mail-provider",children:"Configuring mail provider"}),"\n",(0,o.jsx)(n.p,{children:'To configure mail provider, you need to be Izanami admin. Just go to the "Global Settings" page and set up the mail provider of your choice.'}),"\n",(0,o.jsx)(n.p,{children:"You must also configure origin email, which indicates origin sender email to use."}),"\n",(0,o.jsx)("img",{src:r}),"\n",(0,o.jsx)(n.h2,{id:"configuring-invitation-mode",children:"Configuring invitation mode"}),"\n",(0,o.jsx)(n.p,{children:"Default invitation mode is to display an invitation link to the user performing the invitation."}),"\n",(0,o.jsx)(n.p,{children:"This allows Izanami to work correctly even when no mailer is configured."}),"\n",(0,o.jsx)(n.p,{children:"It is possible to change this behavior to make Izanami send these invitation emails."}),"\n",(0,o.jsx)("img",{src:a})]})}function g(i={}){const{wrapper:n}={...(0,t.a)(),...i.components};return n?(0,o.jsx)(n,{...i,children:(0,o.jsx)(m,{...i})}):m(i)}},1151:(i,n,e)=>{e.d(n,{Z:()=>s,a:()=>a});var o=e(7294);const t={},r=o.createContext(t);function a(i){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof i?i(n):{...n,...i}}),[n,i])}function s(i){let n;return n=i.disableParentContext?"function"==typeof i.components?i.components(t):i.components||t:a(i.components),o.createElement(r.Provider,{value:n},i.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/8c817def.65944e91.js b/docs/assets/js/8c817def.357cc9b9.js similarity index 64% rename from docs/assets/js/8c817def.65944e91.js rename to docs/assets/js/8c817def.357cc9b9.js index 33acb7617..6b874c80b 100644 --- a/docs/assets/js/8c817def.65944e91.js +++ b/docs/assets/js/8c817def.357cc9b9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkizanami_documentation=self.webpackChunkizanami_documentation||[]).push([[235],{8947:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>h,contentTitle:()=>d,default:()=>g,frontMatter:()=>c,metadata:()=>l,toc:()=>p});var s=i(5893),a=i(1151),r=i(4982),t=i(6898),o=i(4665);const c={title:"APIs usage"},d=void 0,l={id:"api",title:"APIs usage",description:"Identification",source:"@site/v1/09-api.mdx",sourceDirName:".",slug:"/api",permalink:"/izanami/v1/api",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:9,frontMatter:{title:"APIs usage"},sidebar:"defaultSidebar",previous:{title:"UI usage",permalink:"/izanami/v1/ui"},next:{title:"Shared Configs",permalink:"/izanami/v1/configs/"}},h={},p=[{value:"Identification",id:"identification",level:2},{value:"Error response",id:"error-response",level:2},{value:"Shared config API",id:"shared-config-api",level:2},{value:"Feature flipping API",id:"feature-flipping-api",level:2},{value:"Experiments (A/B testing) API",id:"experiments-ab-testing-api",level:2},{value:"Webhooks API",id:"webhooks-api",level:2},{value:"Users API",id:"users-api",level:2},{value:"Api keys API",id:"api-keys-api",level:2},{value:"Where can I find an OpenApi ?",id:"where-can-i-find-an-openapi-",level:2}];function u(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"identification",children:"Identification"}),"\n",(0,s.jsx)(n.p,{children:"All the APIs needs to be be identified. Identification could be done with a cookie (from the UI) or using headers (random services)."}),"\n",(0,s.jsx)(n.p,{children:"To use header identification, you first need to generate client id and client secret using the UI :"}),"\n",(0,s.jsx)("img",{src:r.Z,width:"50%"}),"\n",(0,s.jsx)(n.p,{children:"And then click add key"}),"\n",(0,s.jsx)("img",{src:t.Z,width:"80%"}),"\n",(0,s.jsx)(n.p,{children:"You can change the client id and client secret if you need it. Hit the create button to finish the creation"}),"\n",(0,s.jsx)("img",{src:o.Z,width:"80%"}),"\n",(0,s.jsxs)(n.p,{children:["You can add restriction on keys using a pattern.\nFor example, you set patterns to ",(0,s.jsx)(n.code,{children:"mykeys:*"})," so the client using this credentials will only see data where the key starts with ",(0,s.jsx)(n.code,{children:"mykeys:"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["When it's done you can use the client id and secret using the headers ",(0,s.jsx)(n.code,{children:"Izanami-Client-Id"})," and ",(0,s.jsx)(n.code,{children:"Izanami-Client-Secret"})," :"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'\ncurl -X GET \\\n \'http://localhost:9000/api/configs/my:config\' \\\n -H \'Content-Type: application/json\' \\\n -H \'Izanami-Client-Id: client\' \\\n -H \'Izanami-Client-Secret: client1234\' --include\n\n# And the result is\n# HTTP/1.1 200 OK\n# Date: Tue, 12 Dec 2017 16:06:46 GMT\n# Content-Type: application/json\n# Content-Length: 76\n#\n# {"id":"my:config","value":"{\\n \\"message\\": \\"Hello World!\\"\\n}"}\n\n'})}),"\n",(0,s.jsxs)(n.p,{children:["Header names can be change, see the ",(0,s.jsx)(n.a,{href:"settings",children:"settings"})," page."]}),"\n",(0,s.jsx)(n.h2,{id:"error-response",children:"Error response"}),"\n",(0,s.jsx)(n.p,{children:"The format of the errors is consistent across all Izanami APIs."}),"\n",(0,s.jsx)(n.p,{children:"The error format has the following structure :"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "errors": [\n {\n "message": "pattern.invalid",\n "args": ["ragnar.lodbrok.gmail.com"]\n }\n ],\n "fieldErrors": {\n "obj.email": [\n {\n "message": "pattern.invalid",\n "args": ["ragnar.lodbrok.gmail.com"]\n }\n ]\n }\n}\n'})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"errors"})," is an array of object error. Each error has","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["a ",(0,s.jsx)(n.code,{children:"message"})," : a key corresponding to a type of error"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"args"})," : an array of additional information that can be used to build the appropriate error message"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"fieldErrors"})," represent validation errors on an object. The resulting structure is an object where","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"keys represent the path of the field of invalid object"}),"\n",(0,s.jsx)(n.li,{children:"value is an array of message and args as explained above"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"shared-config-api",children:"Shared config API"}),"\n",(0,s.jsxs)(n.p,{children:["Go to the ",(0,s.jsx)(n.a,{href:"http://google.com",children:"configs API doc"})]}),"\n",(0,s.jsx)(n.h2,{id:"feature-flipping-api",children:"Feature flipping API"}),"\n",(0,s.jsxs)(n.p,{children:["Go to the ",(0,s.jsx)(n.a,{href:"http://google.com",children:"features API doc"})]}),"\n",(0,s.jsx)(n.h2,{id:"experiments-ab-testing-api",children:"Experiments (A/B testing) API"}),"\n",(0,s.jsxs)(n.p,{children:["Go to the ",(0,s.jsx)(n.a,{href:"http://google.com",children:"experiments API doc"})]}),"\n",(0,s.jsx)(n.h2,{id:"webhooks-api",children:"Webhooks API"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"TODO"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"users-api",children:"Users API"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"TODO"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"api-keys-api",children:"Api keys API"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"TODO"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"where-can-i-find-an-openapi-",children:"Where can I find an OpenApi ?"}),"\n",(0,s.jsxs)(n.p,{children:["Go see the ",(0,s.jsx)(n.a,{href:"pathname://v1/v1swagger-ui.html",children:"open api"})]}),"\n",(0,s.jsxs)(n.p,{children:["Once you have an instance running (see ",(0,s.jsx)(n.a,{href:"./",children:"Quickstart"}),"), you can find the swagger doc at ",(0,s.jsx)(n.code,{children:"http://localhost:9000/docs/swagger-ui/index.html?url=/assets/swagger.json"}),"."]})]})}function g(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},4982:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/3-apikey-cb34c7b078d1f8c9dd2d30a6a76f24bb.png"},6898:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/4-addkey-09dbfb3c4c6af89dcabcac829185c879.png"},4665:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/5-createkey-df12aea48e9a20aae06bc7ed688c96e6.png"},1151:(e,n,i)=>{i.d(n,{Z:()=>o,a:()=>t});var s=i(7294);const a={},r=s.createContext(a);function t(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:t(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkizanami_documentation=self.webpackChunkizanami_documentation||[]).push([[235],{8947:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>h,contentTitle:()=>d,default:()=>f,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var s=i(5893),a=i(1151),r=i(4982),t=i(6898),c=i(4665);const o={title:"APIs usage"},d=void 0,l={id:"api",title:"APIs usage",description:"Identification",source:"@site/v1/09-api.mdx",sourceDirName:".",slug:"/api",permalink:"/izanami/v1/api",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:9,frontMatter:{title:"APIs usage"},sidebar:"defaultSidebar",previous:{title:"UI usage",permalink:"/izanami/v1/ui"},next:{title:"Shared Configs",permalink:"/izanami/v1/configs/"}},h={},p=[{value:"Identification",id:"identification",level:2},{value:"Error response",id:"error-response",level:2},{value:"Shared config API",id:"shared-config-api",level:2},{value:"Feature flipping API",id:"feature-flipping-api",level:2},{value:"Experiments (A/B testing) API",id:"experiments-ab-testing-api",level:2},{value:"Webhooks API",id:"webhooks-api",level:2},{value:"Users API",id:"users-api",level:2},{value:"Api keys API",id:"api-keys-api",level:2},{value:"Where can I find an OpenApi ?",id:"where-can-i-find-an-openapi-",level:2}];function u(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"identification",children:"Identification"}),"\n",(0,s.jsx)(n.p,{children:"All the APIs needs to be be identified. Identification could be done with a cookie (from the UI) or using headers (random services)."}),"\n",(0,s.jsx)(n.p,{children:"To use header identification, you first need to generate client id and client secret using the UI :"}),"\n",(0,s.jsx)("img",{src:r.Z,width:"50%"}),"\n",(0,s.jsx)(n.p,{children:"And then click add key"}),"\n",(0,s.jsx)("img",{src:t.Z,width:"80%"}),"\n",(0,s.jsx)(n.p,{children:"You can change the client id and client secret if you need it. Hit the create button to finish the creation"}),"\n",(0,s.jsx)("img",{src:c.Z,width:"80%"}),"\n",(0,s.jsxs)(n.p,{children:["You can add restriction on keys using a pattern.\nFor example, you set patterns to ",(0,s.jsx)(n.code,{children:"mykeys:*"})," so the client using this credentials will only see data where the key starts with ",(0,s.jsx)(n.code,{children:"mykeys:"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["When it's done you can use the client id and secret using the headers ",(0,s.jsx)(n.code,{children:"Izanami-Client-Id"})," and ",(0,s.jsx)(n.code,{children:"Izanami-Client-Secret"})," :"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'\ncurl -X GET \\\n \'http://localhost:9000/api/configs/my:config\' \\\n -H \'Content-Type: application/json\' \\\n -H \'Izanami-Client-Id: client\' \\\n -H \'Izanami-Client-Secret: client1234\' --include\n\n# And the result is\n# HTTP/1.1 200 OK\n# Date: Tue, 12 Dec 2017 16:06:46 GMT\n# Content-Type: application/json\n# Content-Length: 76\n#\n# {"id":"my:config","value":"{\\n \\"message\\": \\"Hello World!\\"\\n}"}\n\n'})}),"\n",(0,s.jsxs)(n.p,{children:["Header names can be change, see the ",(0,s.jsx)(n.a,{href:"settings",children:"settings"})," page."]}),"\n",(0,s.jsx)(n.h2,{id:"error-response",children:"Error response"}),"\n",(0,s.jsx)(n.p,{children:"The format of the errors is consistent across all Izanami APIs."}),"\n",(0,s.jsx)(n.p,{children:"The error format has the following structure :"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "errors": [\n {\n "message": "pattern.invalid",\n "args": ["ragnar.lodbrok.gmail.com"]\n }\n ],\n "fieldErrors": {\n "obj.email": [\n {\n "message": "pattern.invalid",\n "args": ["ragnar.lodbrok.gmail.com"]\n }\n ]\n }\n}\n'})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"errors"})," is an array of object error. Each error has","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["a ",(0,s.jsx)(n.code,{children:"message"})," : a key corresponding to a type of error"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"args"})," : an array of additional information that can be used to build the appropriate error message"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"fieldErrors"})," represent validation errors on an object. The resulting structure is an object where","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"keys represent the path of the field of invalid object"}),"\n",(0,s.jsx)(n.li,{children:"value is an array of message and args as explained above"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"shared-config-api",children:"Shared config API"}),"\n",(0,s.jsxs)(n.p,{children:["Go to the ",(0,s.jsx)(n.a,{href:"./configs/api",children:"configs API doc"})]}),"\n",(0,s.jsx)(n.h2,{id:"feature-flipping-api",children:"Feature flipping API"}),"\n",(0,s.jsxs)(n.p,{children:["Go to the ",(0,s.jsx)(n.a,{href:"./features-flipping/api",children:"features API doc"})]}),"\n",(0,s.jsx)(n.h2,{id:"experiments-ab-testing-api",children:"Experiments (A/B testing) API"}),"\n",(0,s.jsxs)(n.p,{children:["Go to the ",(0,s.jsx)(n.a,{href:"./experiments/api",children:"experiments API doc"})]}),"\n",(0,s.jsx)(n.h2,{id:"webhooks-api",children:"Webhooks API"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"TODO"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"users-api",children:"Users API"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"TODO"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"api-keys-api",children:"Api keys API"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"TODO"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"where-can-i-find-an-openapi-",children:"Where can I find an OpenApi ?"}),"\n",(0,s.jsxs)(n.p,{children:["Go see the ",(0,s.jsx)(n.a,{href:"pathname://v1/v1swagger-ui.html",children:"open api"})]}),"\n",(0,s.jsxs)(n.p,{children:["Once you have an instance running (see ",(0,s.jsx)(n.a,{href:"./",children:"Quickstart"}),"), you can find the swagger doc at ",(0,s.jsx)(n.code,{children:"http://localhost:9000/docs/swagger-ui/index.html?url=/assets/swagger.json"}),"."]})]})}function f(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},4982:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/3-apikey-cb34c7b078d1f8c9dd2d30a6a76f24bb.png"},6898:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/4-addkey-09dbfb3c4c6af89dcabcac829185c879.png"},4665:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/5-createkey-df12aea48e9a20aae06bc7ed688c96e6.png"},1151:(e,n,i)=>{i.d(n,{Z:()=>c,a:()=>t});var s=i(7294);const a={},r=s.createContext(a);function t(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:t(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/d86837dc.2174014f.js b/docs/assets/js/d86837dc.1ff98e1d.js similarity index 82% rename from docs/assets/js/d86837dc.2174014f.js rename to docs/assets/js/d86837dc.1ff98e1d.js index d22000ae6..a7c02af9e 100644 --- a/docs/assets/js/d86837dc.2174014f.js +++ b/docs/assets/js/d86837dc.1ff98e1d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkizanami_documentation=self.webpackChunkizanami_documentation||[]).push([[6636],{6566:(e,t,c)=>{c.r(t),c.d(t,{assets:()=>Z,contentTitle:()=>O,default:()=>b,frontMatter:()=>k,metadata:()=>N,toc:()=>V});var i,a,l,n,r,M,o,s,d,w,x,p,m,D,A,f,T,h,u,y,X,U,E=c(5893),H=c(1151),j=c(7294);function F(){return F=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...E}=e;return j.createElement("svg",F({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1679.667 1063.529",width:3359.334,height:2127.057,"aria-labelledby":c},E),t?j.createElement("title",{id:c},t):null,"eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1dWXejSLJ+r1+h4/swLy0ml8it37xVed/38Vx1MDAxY1x1MDAxZi1YpiwhWULe5vR/v5GSLVx1MDAxMFxiLJWRjbuaXHUwMDA3L4BEQkZ88cWSwf++lUpcdTAwMGLBU8dd+LO04D7WKk2v3q08LPxh99+73Z7X9vFcdTAwMTBcdTAwMWL832v3u7XBmTdB0On9+e9/h59wau3W8FNu0225ftDD8/6D/5dK/1x1MDAxYvyMXFyn69aCit9ouoNcdTAwMGZcZlx1MDAwZYWX4pLG9+60/cFlKVx1MDAxMEqo4IqPzvB6K3i9wK3j4etKs+eGR+yuhYeng+Ncclx1MDAxZdxu6cbh4u5xp6I27o7Dy157zeZh8NRcdTAwMWNcZqvXxltcdI/1gm771j316sGNvXZsf9qnuu1+48Z3e72xz7Q7lZpcdTAwMTc82X2EjPZcdTAwMGWfwZ+lcM8j/qcoONJwYZhcdTAwMDYjgYc3O/y8XHUwMDAwRyvKjTZMgZaxcS23m+2uXHUwMDFk1/9Ro2iNhSOrVmq3XHJcdTAwMWOeX1x1MDAwZs+5XHUwMDFlbOE5XHUwMDBmL3fLmXE0k/jAXHJoXHUwMDAzUo/OuHG9xk0wXHUwMDE4XGInjpBcdTAwMDK4XHUwMDExUimhWThcdTAwMTJ3MFx1MDAxZlRcdTAwMDDjXHUwMDAwJrxcdTAwMDF7+c56fSBcdTAwMWH/XHInoVtpuev2XHUwMDEzfr/ZjD5Jv/7yJF9FKFx1MDAxNFwi/rLnr/D+7PmrceGLXG5gRC6qXqV9cd582rleal01XHUwMDBl9lx1MDAxN2/OKkej5zAmrZVut/2wMDry11x1MDAxZlnfe0Cvmlx1MDAxYttcdTAwMTcnS1d9uFx1MDAwM3ZPWP1+O4fvXHJW+lx1MDAxYndNfvFcXD3qNGvH3Vx1MDAxNiO8kcP39qvl6lkgT+TNxZZa7D9cdTAwMWZfnbh3033vy1/hPPY79cpQXHUwMDEzqaJEXHUwMDBiQziqayhcdTAwMTZNz7+NT3KzXbtccpX3W2TAXHTUXGLcx2BcdTAwMTJg0IhcdTAwMGXEXHUwMDAwQ1x1MDAxMEY5XHUwMDExjE6NXHUwMDE3W77eXHUwMDAxc3va8sR93+s3fix9N/Qz8cK8XHRcdTAwMTdcZlx1MDAxY5DAmIVcbqq0isGFJFx1MDAwZUc1lIyBYoqL9+BF0K34vU6li1x1MDAxYZbEXGZGhGPAXHUwMDE4I1x1MDAxMTNcdTAwMThcdTAwMGUoiVx1MDAxOdGrv2BcdTAwMDTnhFx1MDAxYilkXHUwMDBlIDF2IIFcdTAwMDaT5ZQgdnG0KITqXHUwMDE55DRcdTAwMWNV21x1MDAwZlx1MDAwZb1nOytMj+39Xml5zaexSVx1MDAxZFxiMD7F9eeKj0dLh25cdTAwMTfldWHs+GLTa1ihXmi61+PSXHUwMDFleGhqR4eDdic8WsPrVTzf7SafT7vrNTy/0jx649p4z+7aXGLaXHUwMDFkJjJVMduAR2Y+po+MXHUwMDEwISgxNJSDt1x1MDAxNPLqkJw/rtON2/3vXHUwMDA31ZvnVrBcdTAwMDdcdTAwMWLVYlx1MDAxYnCqXGZ3gFx1MDAxM6pcdTAwMDTKXHUwMDE1XHUwMDEwXHUwMDFlPo/hXHUwMDE3XHUwMDAwdVxmQfNqgFOudGxg+VhwoYljOGGCXCJRUFx1MDAwNsJbiVhwII6SVHJcdTAwMDOEcVx1MDAxNlx1MDAxZMlQO1GljSGGQThfXHUwMDFma8I/3bhcdTAwMThIJaNCU61cdFdqalk+XHUwMDEyXHUwMDE31db1dX3jeYfudZu7RraeNlxubVxcqCbU0VLJNFFcdTAwMTY8N1HONi6cOZpKiZZcdTAwMDJQmIHIpDwnrVx1MDAwYiNcdTAwMWGl387U72NdlptcdTAwMWVcdTAwMGWqVOl0mmgxXHUwMDAyK8ZcdTAwMWZqYbKun6eVicx2XFwzuVZaoqWZXjNcdTAwMTeXxJq/f3/a36SP3YvemvvDiFbBrVxmwrZjjFx1MDAxMkYyKo2M8T5cbpCfkXGNW3MnXHUwMDE4XHUwMDE5JpmDhkZcboquoiVySaVUmjpcdTAwMDRQYzmXWlx1MDAwMYR4+spcdTAwMDDRd0TWXGJQRDeRXHUwMDFkPt5cdTAwMWYx1qtsrJz/eOz//FE98ELWNCatM7ldX839vL7g6v52r+mTp+rO4vLhdr3SUTl871x1MDAwNa8qoy8uxFx1MDAwZk/27jfc4+3jPsvhe7+ou6x0RFx1MDAwYublLkdgMVx1MDAwZZxGMMa05NPH1/aOuO+tlZd7xyv77llr1WNXS71iU1x1MDAxYSRcdTAwMTCOosxwibijRVx1MDAwMjiF/Fx1MDAxOEqD5Fx0wZOjIdNKolx1MDAwN69DaFxm0TNcdTAwMWP7K1xcglRgiMxcdTAwMDMuv1xupXlxWi/9Ibf4XHUwMDE0jzl58dnIzFx1MDAxMFx1MDAwZSboo4L0eDdD34uhkZ2eyGRcdTAwMWKsXCLqI/qYylx1MDAxMYwobqNGQpuQ11xypFx1MDAwMclccqpcdNJ+KrVcdTAwMTg7nKe7jJzRXHUwMDExnIHils1cYj4p4s2QUaGjLDVDNqM46mxcXDlBUUNAy1x1MDAxY9yNJJVhb1OZTONcIqmgUeGdVmV7QaVcdTAwMWIseX7d81x1MDAxYuNcdTAwMDN7yfRcZm5k4fD0+PTKO5f7hK7A2enKwbG3RCOmXHUwMDExlbzWt6MkXHUwMDBl4Vx1MDAwMEpyKVxy1+jQ4fBcIqc1Klx1MDAxZKtcdTAwMTWO1qBcdTAwMTRFkCZSUpW8edevvz2obF5cdTAwMWZcdTAwMTlUmThcdTAwMTJcdTAwMDRw9HdBcsYoS45cdFx1MDAwNVx1MDAxMZCXU25cdTAwMTi6ooBkNjGoZqVcdTAwMTcst1stL8CHv9f2/CD+kFx1MDAwN09z0YLBjVtJSFx1MDAwMN5U9FhcdTAwMWM1OvZcdTAwMWLHSWv4VylUrME/o7//+8fEs8vpMm+3pLSHX/gt+nt2XHUwMDAyklx1MDAxMVx1MDAxZlRcXDFkIaEj8Vx1MDAxNuBli10xXHUwMDAxT1xuXHUwMDA30D0lkmojhVxiYWRIQKR0lFx1MDAxNlx1MDAxNkYkPlxuXHUwMDFlXHUwMDFiVz54x5R2pI2naLTkXGJcdTAwMTFcdTAwMTM8N5HgXHUwMDFlXFyhOVx1MDAwMj135pHFwN/hkWUy8Fx1MDAxY3lcclx1MDAxOdubwWtcdTAwMGXcu77bXHUwMDBiSohcdIFbum53S9duJeh3XXrpP3jBTanfc7uly4Ul1/+J3+JfLnws9XnP+HJiR5RmRGDBXHUwMDE4olx1MDAxNEzPjrLd7lwiglx1MDAwNZWcOGhwXHUwMDA019pQplRcZiyY0Fx1MDAwZdosyrihXHUwMDFjXHUwMDE50pySXHSS4FXQUEvJ0EmcXHUwMDE051x1MDAxMdSRRCGYaWrQg1x1MDAwNJUgR4wwjncg55NMKDg7mpqIXHUwMDEw9E1ccrckUnNpXHUwMDE4zmqCh1x1MDAxOHzSXHUwMDAyWTNn+LRtocivcaPs0phxblx1MDAwNIiOxPrDyNpAq9BVXHUwMDFkXHKKXHRcdTAwMDeJmqLI2tCI43nJyNuXXCJHqVwib7eksOfEjVx1MDAxONfxva9op9FcdTAwMDPiksjp0e672l2R7LzbXCLXXHUwMDE1NN3BdlBbc1x1MDAwYoZ20mGEoJdLNVx1MDAxN1xuJFx0qeFcdTAwMDD9UJyQhaI0IS+UJuKUXHLBXHUwMDBmsVFcbi5cYtJxVFx1MDAwNFx1MDAwNbFx5lRcdTAwMGJFlaNwkJQhPSU84lx1MDAxOWRxJaNcdTAwMTnTgkWyg1x1MDAxZlx1MDAxYaZcdTAwMTmimtBcdTAwMTDJI8ybzqxcdTAwMWRcdTAwMWTtlZB3NEtBu9R1g67n3ruvlOHSr9RcdTAwMDLvfpBcdTAwMTBcdTAwMWFcdTAwMTCKfq9U8ev4Z1x1MDAxN1x1MDAwN914+lhmk9NQ81wiOVx1MDAxY9KTWVx1MDAwNM2+Rlx1MDAwMZ8+JpudXHUwMDA0KIbex1hcdTAwMGUqlkM5Q1x1MDAxNo5QYL3NcUXn1lx1MDAxObX0XHUwMDAx4Vx1MDAxNlx1MDAwNJ1cdTAwMTPJXHUwMDAx41hcdTAwMWQ3ilGliJ5Ecrhjo7VaoOekJCGhco+SWVx1MDAwMu1cdTAwMWaSibkks3LgOLNcdTAwMTRMzMpxZlwiXHUwMDE0RoJccvZcdTAwMDHiN3BcIidcdTAwMTJcbkmZnVxmhs4qXHUwMDE3MnHz+UaAkGZcdTAwMGJOXGZcdTAwMTicQFu4qnRySEjOgCmkZ0ppXHKgvjTFSZX3wcG4pOdEcEClXHUwMDA2f6iRSHFstdLUSLe5d8j0Lj9d6948uC75efvdL5eLhnRcdTAwMGUlzFhYQ4piyWSEplxmOY5kXHUwMDBl6idcYnzOYKiJldigVDpcdTAwMDK5t7C5flwi6Zxcbr5cdTAwMTWqm+acXHUwMDFhtDfKyEmZ/ER5jTA4aNSVuVfXjITvXHUwMDAzU97vSNG/ashELP6MQNNr2KbkIZNcdTAwMTlGbZpeL4hcdTAwMTFcdTAwMWW31PabT4M4z+XCauC5vu9eLlxmqM/lwn5cdTAwMWYnw4Z4Ln0v+Fev5L1+Znj6Z4WoPufOcuJ9kmbEtrjmSHZmcPeyazRcblx1MDAwMobj0IdQ41xi9GqthTGoXHUwMDExcdqnqKNcdTAwMTFcdTAwMTmZ4Vx1MDAxYTFcdFhsYDml/lx1MDAxMH852nTEX9CCRDy2kPfZPFx0k8JIglx1MDAxNIHy5FJcdTAwMTdcdTAwMTgsleH8d+R9syTZgEmJXHUwMDE0WaMp45TIcLXCiGRRpPpcdTAwMWPnXFxTW1xyY13YbOI3fiNfiH+lyp3dXHUwMDEyXHUwMDEyl1x1MDAxM/+iwsT3hvyLKq5A0ukhp79zVOs/u92D3dPVx9p27X6jfVx1MDAwMoWGXHUwMDFjpLvaXHUwMDE2NFx1MDAxYvQ00deMOFx1MDAxZa+Qg2xcdTAwMGKZXHUwMDE2XHUwMDEyNiHHU/x5Zt+ocJBcdTAwMGKOsm96UrVBkm6hs2RcdTAwMDRhn1x1MDAxNFL6XGbi8n1oxq1199tBaWiYP5ZhvDGE2ahAmlpynq6WeEzb8vvpXHUwMDAzQPv+8/GiXz1flYu3y7ubj72th0O/4Gppq+7ASPT+uKD4x7hagpRcdTAwMGVcdTAwMDOujEKdQaNWoKQ4JVxiJqjC5lO9oHdcdTAwMTTSXHUwMDE2zluZNu08XCLyxcyKT1x1MDAxOF4+YEEpie9ccsHCXHUwMDEyKyZniKH09NNV467j813db3mbN7fl6o+1QoOF1VBcdTAwMDdNoVx1MDAxMUygfFJcdTAwMWGr4OXAXHUwMDFkMFx1MDAwNlx1MDAxZlx1MDAxM+dCMTInt4FcdTAwMTmH2vJd4DhcbuTZXHUwMDEzyneTaFx1MDAwMUJcdTAwMThtXHUwMDE3XHUwMDA2/j42/GVBUK1Su3F7l/7nJHzeXHUwMDFjxGyq6TabXqc3cWFcdTAwMTKwXGaGzSQjOlpp8GZ5m8/OV/o7j42f1XZ568Ttq5Wrm2JrJ96fw5RkXHUwMDFj0Cra/HhMO4VN9Vx1MDAxOMlBI63h78vZpi1M4tzRxFx1MDAxMFxunDJNgMFcdTAwMDTlpDjLdt2ULW+UxHrwXHTTrpjN51xiXGJnNKqtI1x1MDAxM7pQ7j9XW3u9i5ODq5X6411vt9xo8ldcdTAwMTP7Wc7/r+n6L4u9zFhWQvBcdTAwMTFcdTAwMGKup2ewvYtVdru1Wf65Jv2+b54ry5vksPhib1x1MDAwYrSYpraGVcbatqCnj2Kv0c031HZWeZ9jOV+5t8XZKPtyspH6XHUwMDEyYlx1MDAwZiRaOftOsbe2YaLXprLit5RqNYvM3640l3+eM//s9KBtXHUwMDFhyuuTNfZcdTAwMDVkXHUwMDFlhWjQw1x1MDAwM5FGx+pzcFx1MDAxYVx1MDAxY2VcdTAwMDPZRNg6xjmVMlx1MDAwZpOyXGIxWoJiwkSs60jmgTlI1KgghNlCIZ5cXIaqLcxzXHUwMDFjxteV+V+mdbE4bzxcIvoxsdaxY/nW8qVLiN2Sslx1MDAxMX7ht+jvmeEhYlx1MDAwM+JcdTAwMGJcdTAwMWRcZvolMy20PK0/XHUwMDFmlrdcdTAwMTbLbvW+2mtcdTAwMWPog93156JcdTAwMTXzxdFcdTAwMDG0o4wmaFx1MDAxNLWUIFx1MDAxMoltNJjIhTVOXHKih55P9Vx1MDAxZZJNu8ZTXHUwMDEyIyXilV3tMlx1MDAwMVx1MDAxZcDCmNDKJr+5jIRywjZFaNTBpPht/8DDXHUwMDE3hodcZlx0sVtCNmZEh9Tsb1YpXGbyQ5v/MdM7itlcdTAwMDHAXCLiXHUwMDAzI+hcdDKqUf9tOtCQ2MJPXHUwMDA0ZIeSwap4JM18PuRcdTAwMDFRyNGMcYaEUVx1MDAxYTJcdFx1MDAxY5jtccFRNjiKibFcdTAwMTKSQFx1MDAwN40oZlx1MDAwYscmgsPfO/mbnWsojdXXMWKbRlxuYtfWM5TwyFnD3K90XHUwMDE0R7NItSREXHUwMDE4yua96pM4doEjtZXnXHUwMDAwaKVcZqOJMaG7pNFG2bhcdTAwMWTOPuPJ1Vx1MDAxNl8p6VxcTlx1MDAxNXi7JUV9RrDLXGJcdTAwMTBcYpq6zl3ZXHUwMDA1XHUwMDE2nKjpV32qs8elm+OtMl85QU0+aVx1MDAxZDbvNlxuXHUwMDFmtKZcdTAwMGVQI1GEtDKJtq5onlx1MDAxZMRcdTAwMTCi8VGg6/5OX2nOcTHBhFx1MDAwNDSYb8XF1lx1MDAxZZ9cdTAwMWVa2/TpR+Pizl8/31x1MDAxNz9Pd28/jlxyjT4zIWG29mO7+kCfV+v1n1WyfH37LM6XNnNLmCHGkfCxzS/qJjJcdTAwMTZcdTAwMGVI0FqjXzNDs+RFtX3WPK/Ub7dcdTAwMGav2NO5Ou5v1ouvVUxRSoQm6OHRuFZpglqlhF0qx9+ZNZ6zTlxyiJBcdTAwMDQyuYLsS+hUr3N2tlHt1c7unr6fN66WruXD5k5+OsUj5WLzXG7pgUhXKCZsx0zNpm9eSo+D9eX92t4hr2t5tL61qddP94qvUFx1MDAwMtWBXGbaujFcdTAwMWXLrVxuYFx1MDAwZVhcdTAwMGJlW75cdEXm5bTnXHUwMDEx0lx1MDAwM2BcdTAwMTJlJqVfQWE0KjOMLaJB1X989tfts0J60f6FcXhQgoK2IfGp4eFcdTAwMWVcdTAwMGU65edK8HOn1V/vPm+5naVcYl5cdTAwMTZcdTAwMTNcdTAwMWWMXZBL0XlcdTAwMDC0qCH/XHUwMDFigYNmYFfrXG5A/JjPOr18XCJ6QFxmXCI5ndyL4Fx1MDAxZmz4wtjwWfG89KX70rY14kpPj1xm2d5JIZFcdTAwMDGdXHKH2LZGgGzc9rCIYVx1MDAwM1x1MDAwM/tGXHUwMDExxmxccqegdE5t3DRzXGZeXHUwMDFiiT8zgJeaXHUwMDAwXHKcOFxmsUlcZpZ6KimTwX5GkM9HP1uEcN5HXHUwMDA18dOCatkhl1JcdTAwMThUY45cdTAwMDC0u9wuXHUwMDBltPW8OrmQloIj0FdcdTAwMTLaaE5tNVxccnHv11xuqqWKnd1cdTAwMTJcdTAwMDI3I+Jk+P8s3V3RXHUwMDAy0GdibHr3X/WX4W51p7fd77VOelx1MDAxN6Zz3m6QYoNcdTAwMGVyLodZXHUwMDE4XHUwMDA3/GG7SMdAR1xy3o2CckbQXGZES7TzXGZcdTAwMDBI7qCfZGPITEst2YTW9II4wlx1MDAxMHtcdTAwMTFg9o1KkUjES/lcdTAwMDFlKERpmFx1MDAxM+qP2O+vb57Bqv9cZsuP+5X2UlntnX957/+PrO+tXHUwMDFkeWursLNepjvbT2fkuCpP+0/5RVx1MDAxNVAhQ1x1MDAxZJpTVIHxVLeBXHUwMDEzXHUwMDE0W85g+kxcdTAwMWY/7NXKpydufbdfX12/Odk8qGxcdTAwMTW74yFViI9SXHUwMDAxNbajoWRcdTAwMTO0XHUwMDE0RV8gXHUwMDFih7F3euSppFx1MDAxNM2SXHUwMDE51CFQylx1MDAxNXA5YZmndLitz7bRXHUwMDBmaku3XHUwMDEy7T1cdTAwMThBblx1MDAwM0aQt6qEPllN81x1MDAxNPjfxW1IXHUwMDE3XHUwMDEwu5VcdTAwMTOyMaNcdTAwMTFPhVx1MDAwNpNeXHUwMDA1wJFF4XE1PTZUgs5W2fXccn3vx8X+SndXbWycXHUwMDE2XHUwMDFmXHUwMDFi7PtlbKtrwFx1MDAxOYhVXHRZcFC29ZlBr05H+1x1MDAxZuaMXHUwMDBlg6tLZoRccuJMQlx1MDAwN+Vojlx1MDAwN1x1MDAxOHBcdTAwMTRcdTAwMGZgJOE3aFx0eFx1MDAwNpNvZcX+XHUwMDAxh69cYlx1MDAwZSnyYbeEZMyIXHLpIYXUlLntu4KEks+wziuTnlx1MDAxNVx1MDAxM1x1MDAxYVxiQoOQg7dSXHUwMDAwjddcdTAwMGZcbk1cdTAwMTGxXHUwMDAx0CDjQ+dzqi5cdTAwMDbhWDdcdTAwMTaBWICy4Y0kMKA3SzRcdTAwMWUjtpCJo3QkeINcdTAwMDJNOCF5NFx1MDAwM8xf5YXgs6TV0lQ+tStYZlK5XHUwMDE06Vx1MDAwZUFcdTAwMWSkhspIpbitj1Dhwr1S2PrUOlCC21pcdTAwMWP7QHXi3qeLZWR6utExoeuOXp1GI2Xzy5yYxJDQ+Vx1MDAwM8pcZlx1MDAwZUpcbsVx8r92V/hUebdbUtLzQjqVunpI2Eox25liaqTLdlx1MDAxOFx1MDAwYol0mlx1MDAxMcdcdTAwMTBcdTAwMTDcvm1cdTAwMTmVMlx1MDAwNnWSKIcqu59w+1x1MDAwZdf5JFYoXHUwMDE4XHUwMDA3tKL4WzFcIuWEOFx1MDAwNmNcdTAwMGVwRtTgnXr2VUFxpFx1MDAxM6hcdTAwMDGomnyyg/T3RrqpUYXYVsm2pTc1OPHSkFx0IVJlXHUwMDAzVzDofYvupjBcXPxcdTAwMWHUXT/Vz3a3tlx1MDAxZs+P79Zqj33/zt15YClQZydu0Fx1MDAwZZBqYt/Zllx1MDAxOFx1MDAxNOo/JYRcdTAwMWJ0grgygiYn5CtBXaq82y0h6TNcIl1qh2ea/rbqQXlpNKv6XHUwMDE20nX9i1x1MDAxZlfQqp1CXHJcdTAwMGVcdTAwMWau9jtccuWaYiNcdTAwMWT6SGhDmF1YKyk+3VgsSFx1MDAwMipcdTAwMDc+cpBG2TWjKjawnFx1MDAxYX1cYu5og1x1MDAxYtfGvniLT+i/k2x3SG2zdVubmUNcdTAwMDP7r7J4/1x1MDAwMPWwNNZcdTAwMGV5uHD+0r/utlvD9fSDPnq1dqvTXHUwMDBmxnsn40AqzeZcdTAwMDev9M93xPl07GAkNTdMkUWhbzNL19NsSC+k1lx1MDAxYlxyXHUwMDBlXHUwMDE4ZmOntsdzrKhM2nwg+tXow9l3Qs3Jk0NcdTAwMGXpSMhW+mTTLUNcdTAwMTRwaj63u898UyCf1tLrk9t5va+VV6orXHUwMDEzafqSKMlWXHUwMDA2pKQzlIhlv8i0kLouOUVtpjZTXCJcdTAwMDBvOabsSlxuXHUwMDA3uVx1MDAxNlx1MDAxMEBXnig2XHUwMDFmXHUwMDBiL5RyJoRqZPI9XHK2u75WhX1lX1FcdTAwMWF3XG5cdTAwMWLbJKDsqzZEZFHByDfQXHUwMDBl2JeYXG4lme2e+Fbbznc3kSe2cyz6INJQylDeVHI5mcFRU25D2lx1MDAwMuVcdTAwMDHp5pd2V8pjMm03XHUwMDE5+cy7nJKMV/IpO5vAZ1iJSvd/nqycNt017nlPq6cnV1x1MDAwZnxxq2CQJVx1MDAxZPQ9rFCgPFx1MDAwZlxuN8YhjILMhDBEOEPnXHJh6GZbb5tcdTAwMTBJXHRHlZtYVpLwUcTgdVx0NGVp1t/SRzlCQl9cdTAwMWL293pA4Sp13K7XrntcdTAwMDMmX+rgVcNu4EG7dOu6nUn+QanfsS+DsbfysYxkjsPPq095emsnu/KKwiyMJvtcdTAwMTXqxYCH+NtpZCaj0Vx1MDAxY52bucOBkFx1MDAxM/hcZjBHkHCLrl5cdTAwMWF1riCMa1x1MDAxOc1cdTAwMTT+Plx1MDAwNGdcdTAwMDYyXHUwMDAxynJcdTAwMTeCM6hcdTAwMTVcdTAwMTNkwmv3qHLIXHUwMDFidFwi93dcdTAwMTJrTYhAp4FqSsY6hL+Oib/Jur5cdTAwMTLFXHUwMDExcozfJKU7je98e/nKhUqnc2j7so6e/8K95z4spevZt5dnZYHHXHUwMDFkXGL5X9/++n+qgWDNIn0=",i||(i=j.createElement("defs",null,j.createElement("style",null,'@font-face{font-family:"Virgil";src:url(https://excalidraw.com/Virgil.woff2)}@font-face{font-family:"Cascadia";src:url(https://excalidraw.com/Cascadia.woff2)}@font-face{font-family:"Assistant";src:url(https://excalidraw.com/Assistant-Regular.woff2)}'))),a||(a=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M42 22.963c88.15-.55 177.3.38 265.83 0 18.42.36 31.9 12.44 32 32 6.32 346.76 6.44 690.13 0 966.57.43 22.73-8.99 35.53-32 32-78.41 5.2-158.99 5.27-265.83 0-19.61-3.06-32.82-11.96-32-32-4.82-256.2-4.08-511.12 0-966.57-.4-22.62 8.92-29.51 32-32",strokeWidth:0,fill:"#fff"}),j.createElement("path",{d:"M42 22.963c100.55-1.64 198.45 1.09 265.83 0m-265.83 0c81.78.89 163.41 2.35 265.83 0m0 0c20.8.6 32.31 12.46 32 32m-32-32c23.14.11 32.39 11.93 32 32m0 0c-.71 329.24-1.5 656.84 0 966.57m0-966.57c2.06 358.08 2.55 716.02 0 966.57m0 0c1.27 19.67-12.63 30.35-32 32m32-32c-.33 21.72-10.46 31.86-32 32m0 0c-71.88.75-142.94 1.71-265.83 0m265.83 0c-65.96.01-133.25.12-265.83 0m0 0c-21.29.5-30.06-9.71-32-32m32 32c-19.69-.41-32.62-9.69-32-32m0 0c-.04-290-.44-578.56 0-966.57m0 966.57c1.24-295.45 1.07-590.74 0-966.57m0 0c.43-21.17 10.47-33.93 32-32m-32 32c1.22-19.66 11.31-32.03 32-32",stroke:"#1971c2",fill:"none"}))),j.createElement("text",{y:24.528,fontFamily:"Virgil, Segoe UI Emoji",fontSize:28,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(19.77 28.415)",strokeOpacity:.9,fillOpacity:.9},"Izanami Server"),l||(l=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M1120.737 10c127.8-1.81 255.75-2.84 516.93 0 19.84-2.11 29.39 9.1 32 32 3.92 390.15 5.38 780.96 0 976.76-.09 18.65-7.64 33.15-32 32-173.89 3.58-349.53 3.09-516.93 0-18.52.88-28.59-11.03-32-32 6.81-297.36 4.91-593.83 0-976.76 2.28-20.2 9.69-35.09 32-32",strokeWidth:0,fill:"#fff"}),j.createElement("path",{d:"M1120.737 10c156.47.67 311.14-.16 516.93 0m-516.93 0c178.36 1.46 356.64 1.9 516.93 0m0 0c20.22 1.57 31.81 10.68 32 32m-32-32c20.23-2.04 31.21 9.11 32 32m0 0c3.49 365.3 3.1 729.74 0 976.76m0-976.76c1.56 269.3 1.39 538.99 0 976.76m0 0c.57 21.95-10.41 30.56-32 32m32-32c2.25 22.95-12.74 32.69-32 32m0 0c-117.71 1.18-234.88.62-516.93 0m516.93 0c-105.24 2.06-209.95 1.87-516.93 0m0 0c-20.88-2-33.49-9.51-32-32m32 32c-19.63-1.41-29.73-8.4-32-32m0 0c3.3-224.73 3.81-449.01 0-976.76m0 976.76c-1.93-280.13-1.76-560.02 0-976.76m0 0c-1.35-22.47 9.51-32.67 32-32m-32 32c1.66-21.58 10.09-32.31 32-32",stroke:"#1971c2",fill:"none"}))),j.createElement("text",{y:24.528,fontFamily:"Virgil, Segoe UI Emoji",fontSize:28,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(1097.174 22)",strokeOpacity:.9,fillOpacity:.9},"Client application"),n||(n=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M967.304 113c77.63 5.47 158.15-.15 198.58 0 20.16 1.61 33.68 7.55 32 32-3.83 235.79-3.08 473.04 0 717.04.03 19.61-13.86 30.77-32 32-43.79 2.1-91.81.33-198.58 0-24.43-.86-30.46-13.22-32-32 3.57-195.32 5.26-391.29 0-717.04-2.6-17.82 13.2-35.25 32-32",strokeWidth:0,fill:"#e9ecef"}),j.createElement("path",{d:"M967.304 113c64 1.11 124.08-.78 198.58 0m-198.58 0c77.12-1.53 156.06-2.26 198.58 0m0 0c21.01 1.61 30.37 8.91 32 32m-32-32c23.28-.74 31.01 10.29 32 32m0 0c.99 216.49.95 433.95 0 717.04m0-717.04c.43 252.94.04 505.58 0 717.04m0 0c-.39 22.1-12.48 32.87-32 32m32-32c.35 19.98-11.06 34.19-32 32m0 0c-55.85-.4-114.46-2.98-198.58 0m198.58 0c-68.77-.13-137.36.34-198.58 0m0 0c-19.62-.76-33.27-10.68-32-32m32 32c-21.7 1.6-33.01-8.86-32-32m0 0c-1.77-271.94-1.18-542.15 0-717.04m0 717.04c-2.19-258.16-1.65-516.7 0-717.04m0 0c.82-19.34 9.58-30.55 32-32m-32 32c.41-19.92 9.85-33.59 32-32",stroke:"#1971c2",fill:"none"}))),j.createElement("g",{strokeOpacity:.9,fillOpacity:.9},j.createElement("text",{y:24.528,fontFamily:"Virgil, Segoe UI Emoji",fontSize:28,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(945.02 125)"},"Izanami"),j.createElement("text",{y:59.528,fontFamily:"Virgil, Segoe UI Emoji",fontSize:28,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(945.02 125)"},"Client")),r||(r=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M1352.107 184.757c-22.88 4.04-113.68 20.79-136.69 25m138.51-26c-22.93 4.18-115.41 23.6-138.87 27.6",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M1236.507 198.517c-5.98 5.46-12.1 6.93-21.45 12.84m21.45-12.84c-7.6 4.76-14.55 9.01-21.45 12.84M1239.747 215.307c-7.04.59-14.09-2.81-24.69-3.95m24.69 3.95c-8.76-.75-16.77-2.03-24.69-3.95",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),j.createElement("g",{strokeOpacity:.9,fillOpacity:.9},j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(1360.712 134.877)"},"Request state for feature1"),j.createElement("text",{y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(1360.712 134.877)"},'with user "Benjamin"')),M||(M=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M925.849 226.963c-93.71 8.53-468.31 42.83-561.87 51.22m560.49-52.22c-93.39 8.69-464.76 44.91-558.26 53.59",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M388.789 268.813c-7.69 2.23-16.17 6.82-22.58 10.74m22.58-10.74c-3.98 1.85-9.56 4.25-22.58 10.74M390.409 285.833c-8.27-3.67-17.31-4.98-24.2-6.28m24.2 6.28c-4.39-1.6-10.31-2.65-24.2-6.28",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),j.createElement("g",{strokeOpacity:.9,fillOpacity:.9},j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"rotate(-4.761 2789.436 -5651.962)"},"HTTP call to retrieve feature"),j.createElement("text",{y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"rotate(-4.761 2789.436 -5651.962)"},"activation status and strategy")),o||(o=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M364.87 293.594c91.51 8.57 457.13 42.96 548.73 51.62m-546.83-52.35c91.96 8.6 457.88 44.36 549.04 53.29M891.6 352.384c6.36-2.88 8.86-2.76 24.21-6.23m-24.21 6.23c5.49-.86 11.21-3.42 24.21-6.23",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M893.26 335.364c6.11.91 8.24 4.83 22.55 10.79m-22.55-10.79c5.12 3.14 10.44 4.58 22.55 10.79",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),j.createElement("g",{strokeOpacity:.9,fillOpacity:.9},j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"rotate(5.901 -2703.232 4635.408)"},"feature1 is a user list feature"),j.createElement("text",{y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"rotate(5.901 -2703.232 4635.408)"},'active only for "Etienne" and "Quentin"'),j.createElement("text",{y:67.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"rotate(5.901 -2703.232 4635.408)"},'it\'s inactive for "Benjamin"')),s||(s=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M1212.96 339.557c26.83 1.01 134.97 6.23 161.88 7.04m-163.27-8.3c26.56.64 134.58 5.61 162.12 6.74",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M1349.85 352.557c8.43-3.54 20.1-7.17 23.84-7.52m-23.84 7.52c4.24-2.1 9.79-3 23.84-7.52M1350.6 335.477c8.22 3.02 19.61 5.96 23.09 9.56m-23.09-9.56c4.01 1.41 9.41 4.02 23.09 9.56",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(1394.174 341.692)",strokeOpacity:.9,fillOpacity:.9},"Feature is not active"),j.createElement("g",{strokeOpacity:.9,fillOpacity:.9},j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(1352.256 434.336)"},"Request state for feature1"),j.createElement("text",{y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(1352.256 434.336)"},'with user "Etienne"')),j.createElement("g",{strokeOpacity:.9,fillOpacity:.9},j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(961.966 311.59)"},"Client caches"),j.createElement("text",{y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(961.966 311.59)"},"strategy")),d||(d=j.createElement("g",{strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"},j.createElement("path",{d:"M1130.103 318.401c3.37.24 7.54 1.25 9.86 2.16 2.33.9 4.02 2.16 4.09 3.27.07 1.11-1.39 2.44-3.67 3.41-2.27.97-6.52 2.16-9.97 2.39-3.44.24-7.61-.36-10.71-.98-3.1-.61-6.51-1.63-7.89-2.73-1.39-1.1-1.55-2.67-.45-3.86 1.1-1.18 3.87-2.63 7.06-3.25 3.18-.61 9.87-.41 12.03-.43 2.16-.03.92.15.9.28m-4.39-.08c3.43.1 7.72.81 10.57 1.48 2.85.67 5.67 1.38 6.55 2.55.88 1.17.37 3.34-1.27 4.45-1.63 1.11-5.17 1.85-8.55 2.21-3.38.36-8.32.3-11.75-.03-3.42-.33-6.72-.97-8.81-1.93-2.08-.96-3.98-2.62-3.7-3.84.29-1.22 2.54-2.63 5.42-3.48 2.88-.86 9.99-1.5 11.86-1.66 1.88-.16-.6.61-.64.71",strokeWidth:0,fill:"#e9ecef"}),j.createElement("path",{d:"M1125.123 318.051c3.31-.22 8.11.15 11.11.88 3 .74 5.64 2.36 6.88 3.53 1.25 1.17 1.81 2.49.61 3.5-1.21 1.01-4.53 2.04-7.84 2.54-3.31.5-8.5.66-12.04.46-3.55-.19-7.1-.81-9.24-1.62-2.13-.81-3.59-2.1-3.58-3.24.01-1.14 1.26-2.57 3.62-3.63 2.36-1.05 8.66-2.43 10.53-2.7 1.88-.27.71.92.73 1.08m3.44-.6c3.41-.14 7.44.12 9.83.99 2.39.86 4.15 2.9 4.51 4.22.35 1.32-.49 2.81-2.38 3.7-1.88.89-5.55 1.29-8.94 1.61-3.39.32-7.97.81-11.41.31-3.44-.51-7.64-2.34-9.23-3.34-1.6-1-1.42-1.63-.33-2.66 1.09-1.03 3.94-2.72 6.87-3.53 2.93-.81 9.05-1.18 10.71-1.32 1.67-.15-.55.33-.71.46",stroke:"#1971c2",fill:"none"}))),w||(w=j.createElement("g",{strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"},j.createElement("path",{d:"M1124.214 361.12c3.26-.17 7.95.36 11.11 1.07 3.16.71 6.59 2.05 7.87 3.19 1.29 1.14 1.09 2.51-.17 3.65-1.26 1.14-4.26 2.67-7.39 3.19-3.14.53-7.97.17-11.43-.05-3.46-.22-7.12-.41-9.33-1.26-2.22-.86-3.94-2.62-3.96-3.9-.02-1.28 1.58-2.82 3.84-3.81 2.26-.98 7.92-1.74 9.71-2.11 1.79-.36.88-.18 1.03-.1m1.51-.33c3.41-.08 8.18 1.42 11.13 2.23 2.95.82 5.95 1.47 6.56 2.67.62 1.19-.96 3.38-2.87 4.53-1.91 1.15-5.26 1.96-8.6 2.39-3.34.42-8.07.69-11.43.15-3.36-.54-6.97-2.18-8.74-3.4-1.78-1.21-2.44-2.7-1.91-3.9.53-1.2 2.43-2.7 5.09-3.28 2.65-.58 8.93-.01 10.86-.19 1.92-.18.57-.98.71-.89",strokeWidth:0,fill:"#e9ecef"}),j.createElement("path",{d:"M1128.644 360.95c3.35-.02 7.5.65 10.15 1.49 2.65.84 5.35 2.3 5.74 3.55.38 1.26-1.33 2.9-3.44 3.97-2.11 1.07-5.78 2.19-9.21 2.46-3.43.26-8.05-.32-11.37-.85-3.33-.52-6.93-1.29-8.57-2.31-1.64-1.02-2.13-2.71-1.27-3.81.87-1.1 3.32-2.16 6.48-2.78 3.15-.62 10.46-.75 12.44-.94 1.97-.19-.46-.14-.59-.18m2.78-.53c3.21.08 6.6 1.51 8.56 2.49 1.96.98 3.33 2.08 3.2 3.36-.13 1.28-1.51 3.49-3.99 4.32-2.47.83-7.34.54-10.86.66-3.51.12-7.38.49-10.23.05-2.85-.45-5.66-1.52-6.87-2.72-1.21-1.19-1.8-3.31-.4-4.45 1.41-1.14 5.4-1.81 8.83-2.36 3.43-.56 9.85-.87 11.75-.95 1.91-.08-.3.48-.33.46",stroke:"#1971c2",fill:"none"}))),x||(x=j.createElement("path",{d:"M1110.933 322.846c0 7.08-.35 35.06-.47 42.06m-.07-42.53c-.01 7.19-.03 35.94-.09 43.1M1143.624 322.917c.07 7.37.73 37.49.76 44.97m0-43.93c.01 7.18-.47 35.97-.38 43.12",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),p||(p=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M1346.285 467.08c-22.64 3.87-113.62 20.21-136.38 24.36m135.31-22.34c-22.79 3.53-113.44 17.03-136.15 20.55M1231.015 477.68c-8.79 4.25-12.74 7.76-21.95 11.97m21.95-11.97c-8.23 5.33-17.65 9.19-21.95 11.97",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M1233.575 494.59c-9.59-1.06-14.35-2.88-24.51-4.94m24.51 4.94c-9.12-1.42-19.56-4.3-24.51-4.94",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),m||(m=j.createElement("g",{strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"},j.createElement("path",{d:"M976.326 506.31c3.53.07 7.72.42 10.15 1.3 2.43.88 4.35 2.68 4.43 3.99.07 1.31-1.71 2.9-3.96 3.87-2.25.96-5.97 1.68-9.55 1.93-3.59.25-8.68.2-11.96-.43-3.28-.62-6.41-2.2-7.72-3.33-1.32-1.13-1.28-2.37-.18-3.47 1.11-1.1 3.8-2.47 6.83-3.12 3.02-.66 9.28-.61 11.31-.82 2.04-.21.88-.55.9-.45m-.47-.09c3.23.04 7.11.82 9.47 1.75 2.36.93 4.36 2.48 4.66 3.82.3 1.34-.62 3.25-2.87 4.21-2.26.97-7.06 1.42-10.66 1.57-3.61.16-7.82-.07-10.96-.62-3.13-.54-6.47-1.56-7.85-2.65-1.37-1.08-1.5-2.81-.4-3.86 1.11-1.05 3.93-1.89 7.02-2.43 3.1-.55 9.7-.59 11.53-.83 1.83-.25-.54-.49-.54-.62",strokeWidth:0,fill:"#e9ecef"}),j.createElement("path",{d:"M974.266 506.08c3.53.04 7.98.73 10.66 1.49 2.69.77 5 1.94 5.47 3.1.46 1.16-.73 2.82-2.68 3.85-1.96 1.02-5.59 1.85-9.04 2.31-3.45.47-8.32.92-11.69.47-3.36-.44-6.89-2.04-8.5-3.15-1.61-1.11-1.96-2.42-1.17-3.51.79-1.1 3.09-2.3 5.93-3.07 2.83-.77 9.19-1.35 11.11-1.57 1.92-.23.37.15.41.22m.59-.41c3.63.07 8.19 1.06 10.73 1.87 2.54.82 4.34 1.95 4.51 3.03.17 1.08-1.27 2.51-3.48 3.44-2.22.92-6.24 1.77-9.78 2.13-3.54.35-8.4.45-11.45-.02-3.06-.47-5.51-1.74-6.88-2.82-1.37-1.07-2.18-2.5-1.34-3.62.83-1.12 3.41-2.55 6.35-3.08 2.95-.52 9.37-.07 11.34-.1 1.96-.02.61-.06.46-.04",stroke:"#1971c2",fill:"none"}))),D||(D=j.createElement("g",{strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"},j.createElement("path",{d:"M973.048 548.78c3.41-.13 8.25.74 11.06 1.58 2.8.83 5.03 2.24 5.78 3.43.76 1.19.45 2.62-1.25 3.69-1.71 1.06-5.59 2.3-9 2.7-3.41.39-8.07.07-11.47-.31-3.39-.37-6.94-.99-8.88-1.95-1.95-.97-3.16-2.62-2.78-3.83.37-1.21 2.19-2.51 5.02-3.43 2.83-.92 9.91-1.85 11.96-2.07 2.06-.23.35.52.38.73m-1.54-.79c3.4-.08 8.37.57 11.41 1.45 3.05.89 6.13 2.65 6.85 3.86.72 1.2-.73 2.4-2.51 3.38-1.79.98-4.87 2.03-8.2 2.51-3.33.47-8.29.68-11.78.33-3.49-.34-7.22-1.47-9.16-2.41-1.95-.94-3.03-2.09-2.49-3.2.54-1.11 3.06-2.53 5.73-3.46 2.66-.93 8.43-1.7 10.27-2.14 1.85-.43.59-.71.78-.48",strokeWidth:0,fill:"#e9ecef"}),j.createElement("path",{d:"M970.998 549.2c3.36-.28 8.3-.12 11.34.47 3.04.59 5.78 1.94 6.89 3.09 1.11 1.14 1.1 2.57-.24 3.78s-4.61 2.9-7.79 3.48c-3.19.58-7.87.28-11.32-.01-3.45-.29-7.18-.85-9.39-1.71-2.21-.86-3.87-2.21-3.84-3.45.02-1.23 1.57-3.01 4-3.96 2.42-.95 8.69-1.43 10.55-1.75 1.86-.32.52-.15.61-.16m1.3.04c3.42-.17 7.96.06 10.72.67 2.76.6 5.14 1.84 5.82 2.96.68 1.12-.04 2.63-1.73 3.75s-5.31 2.45-8.43 2.96c-3.11.51-6.97.44-10.28.11-3.31-.34-7.52-1.15-9.6-2.12-2.08-.96-3.3-2.64-2.87-3.68.42-1.04 2.67-1.85 5.44-2.55 2.76-.7 9.49-1.35 11.15-1.65 1.65-.31-1-.07-1.22-.18",stroke:"#1971c2",fill:"none"}))),A||(A=j.createElement("path",{d:"M956.496 510.655c-.11 7.15-.23 35.21-.27 42.25m1.11-42.67c-.18 7.29-1.25 36.17-1.46 43.39M990.398 510.946c.12 7.38.26 37.04.25 44.38m-.84-44.84c.09 7.47.5 38.07.52 45.56",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),f||(f=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M1183.477 493.848c-30.42 5.06-152.46 24.68-182.93 29.38m181.54-29.93c-30.55 5.27-152.08 26.6-182.43 31.53",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M1021.387 512.458c-4.52 3.67-11.97 7.28-21.73 12.37m21.73-12.37c-4.48 2.47-8.32 4.81-21.73 12.37M1024.247 529.318c-5.32-1.03-13.56-2.14-24.59-4.49m24.59 4.49c-5.12-1.09-9.58-2.33-24.59-4.49",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),T||(T=j.createElement("g",{strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"},j.createElement("path",{d:"M1089.764 543.616c6.11 1.4 12.3 6.72 15.43 11.62 3.14 4.91 4.53 12.61 3.4 17.81-1.14 5.21-5.2 10.14-10.22 13.42-5.01 3.28-13.18 6.07-19.89 6.26-6.71.19-15.01-1.86-20.37-5.13-5.36-3.27-10.38-9.17-11.77-14.51-1.38-5.33-.04-12.81 3.47-17.5 3.51-4.68 10.33-8.98 17.58-10.61 7.25-1.63 21.16.23 25.91.83 4.74.61 2.92 2.46 2.59 2.8m-29.54-5.38c5.88-1.67 16.48.08 23.05 1.91 6.57 1.84 13.15 4.65 16.39 9.09 3.24 4.43 4.08 11.77 3.06 17.52-1.02 5.76-3.8 13.48-9.18 17-5.39 3.52-16.29 4.2-23.13 4.14-6.84-.06-12.85-1.26-17.91-4.5-5.07-3.25-11.22-9.48-12.49-14.97-1.27-5.49 1.2-13.25 4.86-17.99 3.66-4.74 14.13-8.71 17.11-10.45 2.98-1.73.53-.28.78.04",strokeWidth:0,fill:"#e9ecef"}),j.createElement("path",{d:"M1086.954 544.216c6.28 1.03 14.05 4.47 17.66 8.88 3.61 4.41 4.82 12.04 3.99 17.59-.84 5.56-4.45 11.89-9.01 15.76-4.56 3.86-11.79 7.27-18.38 7.44-6.59.17-15.7-3.18-21.17-6.41-5.46-3.23-9.94-7.98-11.64-12.98-1.69-4.99-1.42-12.17 1.47-17.01 2.89-4.85 9.1-9.85 15.88-12.06 6.78-2.21 20.45-1.39 24.82-1.18 4.36.21 1.81 1.95 1.35 2.42m-5.61-2.53c6.11 1.42 13.28 6.42 17.06 10.86 3.77 4.43 6.35 10.38 5.59 15.76-.77 5.38-5.55 12.89-10.19 16.53-4.65 3.65-11.27 5.14-17.7 5.35-6.42.2-15.07-.77-20.83-4.11-5.77-3.34-11.88-10.42-13.76-15.95-1.88-5.54-.81-12.45 2.48-17.25 3.29-4.8 10.87-9.62 17.27-11.56 6.41-1.94 17.87.05 21.18-.09 3.3-.15-1.31-1.41-1.36-.78",stroke:"#1971c2",fill:"none"}))),h||(h=j.createElement("path",{d:"M1078.29 542.6c2.13-1.03 10.12-5.43 12.23-6.5m-12.74 6.13c2.09-.92 10.11-4.51 12.28-5.4M1078.024 542.916c2.04 1.29 10.66 6.71 12.65 7.92m-13.35-8.37c1.99 1.1 10.82 6.14 13.11 7.48",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),u||(u=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M998.323 549.356c7.64 2.36 37.73 11.6 45.23 14.02m-45.76-13c7.59 2.45 37.78 11.14 45.29 13.5M1019.263 565.256c4.99-.54 10.45-1.23 23.82-1.38m-23.82 1.38c7.65-.42 15.59-1.19 23.82-1.38",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M1023.953 549.626c3.83 3.14 8.19 6.11 19.13 14.25m-19.13-14.25c6.11 4.58 12.56 8.82 19.13 14.25",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),y||(y=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M1117.34 575.53c24.92 3.67 123.3 18.17 148 21.96m-148.87-22.87c24.77 3.84 123.03 20.7 147.73 24.3M1239.65 603.64c6.93-2.08 12.65-3 24.55-4.72m-24.55 4.72c9.16-2.42 16.9-4.23 24.55-4.72",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M1242.36 586.76c6.23 2.42 11.24 5.96 21.84 12.16m-21.84-12.16c8.16 3.46 14.96 7.52 21.84 12.16",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),j.createElement("g",{strokeOpacity:.9,fillOpacity:.9},j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(943.389 608.108)"},"Read activation strategy"),j.createElement("text",{y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(943.389 608.108)"},"from cache and compute"),j.createElement("text",{y:67.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(943.389 608.108)"},"activation locally")),j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(1279.798 582.647)",strokeOpacity:.9,fillOpacity:.9},"Feature is active"),X||(X=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M925.858 732.938c-96.26 9.93-479.43 50.7-575.71 60.8m577.39-58.61c-96.43 10.08-481.75 50.2-577.92 60.13",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M372.098 784.338c-9.66 5.18-16.68 6-22.48 10.92m22.48-10.92c-7.06 3.16-13.43 5.32-22.48 10.92M373.868 801.348c-10.38-1.14-18.05-6.63-24.25-6.09m24.25 6.09c-7.39-1.6-14.26-4.22-24.25-6.09",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),j.createElement("g",{strokeOpacity:.9,fillOpacity:.9},j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"rotate(-5.937 7169.473 -3885.08)"},"The client will periodically pull feature"),j.createElement("text",{y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"rotate(-5.937 7169.473 -3885.08)"},"to keep activation strategy up to date")),U||(U=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M356.478 801.348c93.79 7.22 470 36.76 564.18 44.04m-562.18-42.04c94.04 6.9 470.56 32.96 564.27 40.11",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M898.698 850.298c7.48-4.59 19.43-5.69 24.05-6.84m-24.05 6.84c6.89-1.72 15.17-4.38 24.05-6.84",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M899.928 833.238c6.93 2.07 18.41 7.63 22.82 10.22m-22.82-10.22c6.48 3.36 14.39 5.78 22.82 10.22",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))))},k={title:"Requests"},O=void 0,N={id:"usages/request",title:"Requests",description:"Izanami offers two way of requesting feature activation status.",source:"@site/docs/03-usages/04-request.mdx",sourceDirName:"03-usages",slug:"/usages/request",permalink:"/izanami/docs/usages/request",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{title:"Requests"},sidebar:"tutorialSidebar",previous:{title:"Organisations",permalink:"/izanami/docs/usages/organisation"},next:{title:"Guides",permalink:"/izanami/docs/guides/"}},Z={},V=[{value:"Keys",id:"keys",level:2},{value:"HTTP(s) endpoints",id:"https-endpoints",level:2},{value:"Single feature endpoint",id:"single-feature-endpoint",level:3},{value:"Multiple feature endpoints",id:"multiple-feature-endpoints",level:3},{value:"Call feature with payload",id:"call-feature-with-payload",level:3},{value:"Specific clients",id:"specific-clients",level:2},{value:"Why use a specific client",id:"why-use-a-specific-client",level:3},{value:"Java client",id:"java-client",level:3}];function v(e){const t={code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,H.a)(),...e.components};return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(t.p,{children:"Izanami offers two way of requesting feature activation status."}),"\n",(0,E.jsxs)(t.ul,{children:["\n",(0,E.jsx)(t.li,{children:"HTTP endpoints: a universal way to call Izanami from any technology that has HTTP client"}),"\n",(0,E.jsx)(t.li,{children:"Specific clients: these clients wrap calls on HTTP endpoints, providing additional cache and local evaluation mechanisms to minimize latency"}),"\n"]}),"\n",(0,E.jsx)(t.p,{children:"Anyway, you'll need to generate a key first."}),"\n",(0,E.jsx)(t.h2,{id:"keys",children:"Keys"}),"\n",(0,E.jsx)(t.p,{children:"A key is required to call client endpoints. We recommand to use one key per client application. This way client calls are easier to identify."}),"\n",(0,E.jsx)(t.p,{children:"If key is an admin key, it can read activation status for any feature of the tenant."}),"\n",(0,E.jsx)(t.p,{children:"If key is not an admin key, you'll have to specify a list of allowed projects. Key will only be able to read activation status for these project features."}),"\n",(0,E.jsxs)(t.p,{children:["When creating a key, Izanami will generate a client id and a client secret for you, they should be passed as ",(0,E.jsx)(t.code,{children:"Izanami-Client-Id"})," and ",(0,E.jsx)(t.code,{children:"Izanami-Client-Secret"})," headers when calling Izanami."]}),"\n",(0,E.jsx)(t.h2,{id:"https-endpoints",children:"HTTP(s) endpoints"}),"\n",(0,E.jsx)(t.p,{children:"Izanami exposes two endpoints to fetch feature activation status. One allows to fetch a single feature while the other allows to fetch a list of features."}),"\n",(0,E.jsx)(t.p,{children:"Both endpoints require following headers:"}),"\n",(0,E.jsxs)(t.ul,{children:["\n",(0,E.jsxs)(t.li,{children:[(0,E.jsx)(t.code,{children:"Izanami-Client-Id"})," key cliend id"]}),"\n",(0,E.jsxs)(t.li,{children:[(0,E.jsx)(t.code,{children:"Izanami-Client-Secret"})," key client secret"]}),"\n"]}),"\n",(0,E.jsx)(t.p,{children:"They also accept following query parameters:"}),"\n",(0,E.jsxs)(t.ul,{children:["\n",(0,E.jsxs)(t.li,{children:[(0,E.jsx)(t.code,{children:"user"})," a ",(0,E.jsx)(t.code,{children:"string"})," indicating user (used by user based conditions and maybe script features)"]}),"\n",(0,E.jsxs)(t.li,{children:[(0,E.jsx)(t.code,{children:"context"})," a ",(0,E.jsx)(t.code,{children:"string"}),' indicating context, if your request target a subcontext, separate contexts with a "/". For instance ',(0,E.jsx)(t.code,{children:"context/subcontext/subsubcontext"})]}),"\n",(0,E.jsxs)(t.li,{children:[(0,E.jsx)(t.code,{children:"conditions"})," a ",(0,E.jsx)(t.code,{children:"boolean"})," indicating whether activation conditions should be returned as well. This is useful for caching conditions on the client and recomputing activation startegy locally."]}),"\n"]}),"\n",(0,E.jsx)(t.h3,{id:"single-feature-endpoint",children:"Single feature endpoint"}),"\n",(0,E.jsxs)(t.p,{children:["GET ",(0,E.jsx)(t.code,{children:"/api/v2/features/"}),": fetches activation status for feature ",(0,E.jsx)(t.code,{children:"id"}),", result has format:"]}),"\n",(0,E.jsx)(t.pre,{children:(0,E.jsx)(t.code,{className:"language-json",children:'{\n "active": true/false,\n "name": "",\n "project": ""\n}\n'})}),"\n",(0,E.jsxs)(t.p,{children:["where ",(0,E.jsx)(t.code,{children:"active"})," indicates whether feature is active."]}),"\n",(0,E.jsx)(t.h3,{id:"multiple-feature-endpoints",children:"Multiple feature endpoints"}),"\n",(0,E.jsxs)(t.p,{children:["GET ",(0,E.jsx)(t.code,{children:"/api/v2/features"})," fetches activation features specified by query parameters."]}),"\n",(0,E.jsx)(t.p,{children:"Additionally to previously specified query parameters, this endpoints accept specifics query parameters that indicate features to query"}),"\n",(0,E.jsxs)(t.ul,{children:["\n",(0,E.jsxs)(t.li,{children:[(0,E.jsx)(t.code,{children:"features"}),": feature ids to query, comma-separated (for instance ",(0,E.jsx)(t.code,{children:"021aaef4-5f82-4567-bc71-5006cb21db2f,021aaef4-5f82-4567-bc71-5006cb21db2e"}),")"]}),"\n",(0,E.jsxs)(t.li,{children:[(0,E.jsx)(t.code,{children:"projects"}),": project ids to query, comma-separated. Every feature of every projects will be queried."]}),"\n"]}),"\n",(0,E.jsx)(t.pre,{children:(0,E.jsx)(t.code,{className:"language-json",children:'{\n "": {\n "active": false,\n "name": "",\n "project": ""\n },\n "": {\n "active": false,\n "name": "",\n "project": ""\n },\n "": {\n "active": false,\n "name": "",\n "project": ""\n }\n}\n'})}),"\n",(0,E.jsx)(t.h3,{id:"call-feature-with-payload",children:"Call feature with payload"}),"\n",(0,E.jsx)(t.p,{children:"For script features, it's possible to add a JSON payload that will be used by the script to decide wether feature should be active or not."}),"\n",(0,E.jsxs)(t.p,{children:["This is done by calling above endpoints with ",(0,E.jsx)(t.code,{children:"POST"})," method instead of ",(0,E.jsx)(t.code,{children:"GET"}),", request body will be passed to script."]}),"\n",(0,E.jsx)(t.h2,{id:"specific-clients",children:"Specific clients"}),"\n",(0,E.jsx)(t.p,{children:"Izanami provides one specific Java client, another one is currently under development for JavaScript."}),"\n",(0,E.jsxs)(t.p,{children:["Please ",(0,E.jsx)("a",{href:"#",target:"_blank",children:"open a Github discussion"})," if you need a client for another technology."]}),"\n",(0,E.jsx)(t.h3,{id:"why-use-a-specific-client",children:"Why use a specific client"}),"\n",(0,E.jsx)(t.p,{children:"Client uses HTTP endpoints described above, but it also take care of some usefull stuff for you."}),"\n",(0,E.jsxs)(t.p,{children:[(0,E.jsx)(t.strong,{children:"Cache"}),": clients are allowed to define a cache strategy. This strategy can be feature-specific or defined globally. It indicates how long a feature flag should be cached."]}),"\n",(0,E.jsxs)(t.p,{children:[(0,E.jsx)(t.strong,{children:"Local evaluation"}),": instead of retrieving and caching feature status (active or not), client will retrieve the feature activation strategy.\nThis way, the client can recompute the activation status locally when needed, without calling Izanami server again."]}),"\n",(0,E.jsx)(g,{width:"100%",height:"700"}),"\n",(0,E.jsx)(t.h3,{id:"java-client",children:"Java client"}),"\n",(0,E.jsx)("a",{href:"#",target:"_blank",children:(0,E.jsx)(t.p,{children:"Read Java client documentation"})})]})}function b(e={}){const{wrapper:t}={...(0,H.a)(),...e.components};return t?(0,E.jsx)(t,{...e,children:(0,E.jsx)(v,{...e})}):v(e)}},1151:(e,t,c)=>{c.d(t,{Z:()=>r,a:()=>n});var i=c(7294);const a={},l=i.createContext(a);function n(e){const t=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:n(e.components),i.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkizanami_documentation=self.webpackChunkizanami_documentation||[]).push([[6636],{6566:(e,t,c)=>{c.r(t),c.d(t,{assets:()=>Z,contentTitle:()=>O,default:()=>b,frontMatter:()=>k,metadata:()=>N,toc:()=>V});var i,a,l,n,r,M,o,s,d,w,x,p,m,D,A,f,T,h,u,y,X,U,E=c(5893),H=c(1151),j=c(7294);function F(){return F=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...E}=e;return j.createElement("svg",F({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1679.667 1063.529",width:3359.334,height:2127.057,"aria-labelledby":c},E),t?j.createElement("title",{id:c},t):null,"eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1dWXejSLJ+r1+h4/swLy0ml8it37xVed/38Vx1MDAxY1x1MDAxZi1YpiwhWULe5vR/v5GSLVx1MDAxMFxiLJWRjbuaXHUwMDA3L4BEQkZ88cWSwf++lUpcdTAwMGLBU8dd+LO04D7WKk2v3q08LPxh99+73Z7X9vFcdTAwMTBcdTAwMWL832v3u7XBmTdB0On9+e9/h59wau3W8FNu0225ftDD8/6D/5dK/1x1MDAxYvyMXFyn69aCit9ouoNcdTAwMGZcZlx1MDAwZYWX4pLG9+60/cFlKVx1MDAxMEqo4IqPzvB6K3i9wK3j4etKs+eGR+yuhYeng+Ncclx1MDAxZdxu6cbh4u5xp6I27o7Dy157zeZh8NRcdTAwMWNcZqvXxltcdI/1gm771j316sGNvXZsf9qnuu1+48Z3e72xz7Q7lZpcdTAwMTc82X2EjPZcdTAwMGWfwZ+lcM8j/qcoONJwYZhcdTAwMDYjgYc3O/y8XHUwMDAwRyvKjTZMgZaxcS23m+2uXHUwMDFk1/9Ro2iNhSOrVmq3XHJcdTAwMWOeX1x1MDAwZs+5XHUwMDFlbOE5XHUwMDBmL3fLmXE0k/jAXHJoXHUwMDAzUo/OuHG9xk0wXHUwMDE4XGInjpBcdTAwMDK4XHUwMDExUimhWThcdTAwMTJ3MFx1MDAxZlRcdTAwMDDjXHUwMDAwJrxcdTAwMDF7+c56fSBcdTAwMWH/XHInoVtpuev2XHUwMDEzfr/ZjD5Jv/7yJF9FKFx1MDAxNFwi/rLnr/D+7PmrceGLXG5gRC6qXqV9cd582rleal01XHUwMDBl9lx1MDAxN2/OKkej5zAmrZVut/2wMDry11x1MDAxZlnfe0Cvmlx1MDAxYttcdTAwMTcnS1d9uFx1MDAwM3ZPWP1+O4fvXHJW+lx1MDAxYndNfvFcXD3qNGvH3Vx1MDAxNiO8kcP39qvl6lkgT+TNxZZa7D9cdTAwMWZfnbh3033vy1/hPPY79cpQXHUwMDEzqaJEXHUwMDBiQziqayhcdTAwMTZNz7+NT3KzXbtccpX3W2TAXHTUXGLcx2BcdTAwMTJg0IhcdTAwMGXEXHUwMDAwQ1x1MDAxMEY5XHUwMDExjE6NXHUwMDE3W77eXHUwMDAxc3va8sR93+s3fix9N/Qz8cK8XHRcdTAwMTdcZlx1MDAxY5DAmIVcbqq0isGFJFx1MDAwZUc1lIyBYoqL9+BF0K34vU6li1x1MDAxYZbEXGZGhGPAXHUwMDE4I1x1MDAxMTNcdTAwMThcdTAwMGUoiVx1MDAxOdGrv2BcdTAwMDTnhFx1MDAxYilkXHUwMDBlIDF2IIFcdTAwMDaT5ZQgdnG0KITqXHUwMDE55DRcdTAwMWNV21x1MDAwZlx1MDAwZb1nOytMj+39Xml5zaexSVx1MDAxZFxiMD7F9eeKj0dLh25cdTAwMTfldWHs+GLTa1ihXmi61+PSXHUwMDFleGhqR4eDdic8WsPrVTzf7SafT7vrNTy/0jx649p4z+7aXGLaXHUwMDFkJjJVMduAR2Y+po+MXHUwMDEwISgxNJSDt1x1MDAxNPLqkJw/rtON2/3vXHUwMDA31ZvnVrBcdTAwMDdcdTAwMWLVYlx1MDAxYnCqXGZ3gFx1MDAxM6pcdTAwMDTKXHUwMDE1XHUwMDEwXHUwMDFlPo/hXHUwMDE3XHUwMDAwdVxmQfNqgFOudGxg+VhwoYljOGGCXCJRUFx1MDAwNsJbiVhwII6SVHJcdTAwMDOEcVx1MDAxNlx1MDAxZMlQO1GljSGGQThfXHUwMDFma8I/3bhcdTAwMThIJaNCU61cdFdqalk+XHUwMDEyXHUwMDE31db1dX3jeYfudZu7RraeNlxubVxcqCbU0VLJNFFcdTAwMTY8N1HONi6cOZpKiZZcdTAwMDJQmIHIpDwnrVx1MDAwYiNcdTAwMWGl387U72NdlptcdTAwMWVcdTAwMGWqVOl0mmgxXHUwMDAyK8ZcdTAwMWZqYbKun6eVicx2XFwzuVZaoqWZXjNcdTAwMTeXxJq/f3/a36SP3YvemvvDiFbBrVxmwrZjjFx1MDAxMkYyKo2M8T5cbpCfkXGNW3MnXHUwMDE4XHUwMDE5JpmDhkZcboquoiVySaVUmjpcdTAwMDRQYzmXWlx1MDAwMYR4+spcdTAwMDDRd0TWXGJQRDeRXHUwMDFkPt5cdTAwMWYx1qtsrJz/eOz//FE98ELWNCatM7ldX839vL7g6v52r+mTp+rO4vLhdr3SUTl871x1MDAwNa8qoy8uxFx1MDAwZk/27jfc4+3jPsvhe7+ou6x0RFx1MDAwYublLkdgMVx1MDAwZZxGMMa05NPH1/aOuO+tlZd7xyv77llr1WNXS71iU1x1MDAxYSRcdTAwMTCOosxwibijRVx1MDAwMjiF/Fx1MDAxOEqD5Fx0wZOjIdNKolx1MDAwN69DaFxm0TNcdTAwMWP7K1xcglRgiMxcdTAwMDMuv1xupXlxWi/9Ibf4XHUwMDE0jzl58dnIzFx1MDAxMFx1MDAwZSboo4L0eDdD34uhkZ2eyGRcdTAwMWKsXCLqI/qYylx1MDAxMYwobqNGQpuQ11xypFx1MDAwMclccqpcdNJ+KrVcdTAwMTg7nKe7jJzRXHUwMDExnIHils1cYj4p4s2QUaGjLDVDNqM46mxcXDlBUUNAy1x1MDAxY9yNJJVhb1OZTONcIqmgUeGdVmV7QaVcdTAwMWIseX7d81x1MDAxYuNcdTAwMDN7yfRcZm5k4fD0+PTKO5f7hK7A2enKwbG3RCOmXHUwMDExlbzWt6MkXHUwMDBl4Vx1MDAwMEpyKVxy1+jQ4fBcIqc1Klx1MDAxZKtcdTAwMTWO1qBcdTAwMTRFkCZSUpW8edevvz2obF5cdTAwMWZcdTAwMTlUmThcdTAwMTJcdTAwMDRw9HdBcsYoS45cdFx1MDAwNVx1MDAxMZCXU25cdTAwMTi6ooBkNjGoZqVcdTAwMTcst1stL8CHv9f2/CD+kFx1MDAwN09z0YLBjVtJSFx1MDAwMN5U9FhcdTAwMWM1OvZcdTAwMWLHSWv4VylUrME/o7//+8fEs8vpMm+3pLSHX/gt+nt2XHUwMDAyklx1MDAxMVx1MDAxZlRcXDFkIaEj8Vx1MDAxNuBli10xXHUwMDAxT1xuXHUwMDA30D0lkmojhVxiYWRIQKR0lFx1MDAxNlx1MDAxNkYkPlxuXHUwMDFlXHUwMDFiVz54x5R2pI2naLTkXGJcdTAwMTFcdTAwMTM8N5HgXHUwMDFlXFyhOVx1MDAwMj135pHFwN/hkWUy8Fx1MDAxY3lcclx1MDAxOdubwWtcdTAwMGXcu77bXHUwMDBiSohcdIFbum53S9duJeh3XXrpP3jBTanfc7uly4Ul1/+J3+JfLnws9XnP+HJiR5RmRGDBXHUwMDE4olx1MDAxNEzPjrLd7lwiglx1MDAwNZWcOGhwXHUwMDA019pQplRcZiyY0Fx1MDAwZdosyrihXHUwMDFjXHUwMDE50pySXHSS4FXQUEvJ0EmcXHUwMDE051x1MDAxMdSRRCGYaWrQg1x1MDAwNJUgR4wwjncg55NMKDg7mpqIXHUwMDEw9E1ccrckUnNpXHUwMDE4zmqCh1x1MDAxOHzSXHUwMDAyWTNn+LRtocivcaPs0phxblx1MDAwNIiOxPrDyNpAq9BVXHUwMDFkXHKKXHRcdTAwMDeJmqLI2tCI43nJyNuXXCJHqVwib7eksOfEjVx1MDAxONfxva9op9FcdTAwMDPiksjp0e672l2R7LzbXCLXXHUwMDE1NN3BdlBbc1x1MDAwYoZ20mGEoJdLNVx1MDAxN1xuJFx0qeFcdTAwMDD9UJyQhaI0IS+UJuKUXHLBXHUwMDBmsVFcbi5cYtJxVFx1MDAwNFx1MDAwNbFx5lRcdTAwMGJFlaNwkJQhPSU84lx1MDAxOWRxJaNcdTAwMTnTgkWyg1x1MDAxZlx1MDAxYaZcdTAwMTmimtBcdTAwMTDJI8ybzqxcdTAwMWRcdTAwMWTtlZB3NEtBu9R1g67n3ruvlOHSr9RcdTAwMDLvfpBcdTAwMTBcdTAwMWFcdTAwMTCKfq9U8ev4Z1x1MDAxN1x1MDAwN914+lhmk9NQ81wiOVx1MDAxY9KTWVx1MDAwNM2+Rlx1MDAwMZ8+JpudXHUwMDA0KIbex1hcdTAwMGUqlkM5Q1x1MDAxNo5QYL3NcUXn1lx1MDAxObX0XHUwMDAx4Vx1MDAxNlx1MDAwNJ1cdTAwMTPJXHUwMDAx41hcdTAwMWQ3ilGliJ5Ecrhjo7VaoOekJCGhco+SWVx1MDAwMu1cdTAwMWaSibkks3LgOLNcdTAwMTRMzMpxZlwiXHUwMDE0RoJccvZcdTAwMDHiN3BcIidcdTAwMTJcbkmZnVxmhs4qXHUwMDE3MnHz+UaAkGZcdTAwMGJOXGZcdTAwMTicQFu4qnRySEjOgCmkZ0ppXHKgvjTFSZX3wcG4pOdEcEClXHUwMDA2f6iRSHFstdLUSLe5d8j0Lj9d6948uC75efvdL5eLhnRcdTAwMGUlzFhYQ4piyWSEplxmOY5kXHUwMDBl6idcYnzOYKiJldigVDpcdTAwMDK5t7C5flwi6Zxcbr5cdTAwMTWqm+acXHUwMDFhtDfKyEmZ/ER5jTA4aNSVuVfXjITvXHUwMDAzU97vSNG/ashELP6MQNNr2KbkIZNcdTAwMTlGbZpeL4hcdTAwMTFcdTAwMWW31PabT4M4z+XCauC5vu9eLlxmqM/lwn5cdTAwMWYnw4Z4Ln0v+Fev5L1+Znj6Z4WoPufOcuJ9kmbEtrjmSHZmcPeyazRcblx1MDAwMobj0IdQ41xi9GqthTGoXHUwMDExcdqnqKNcdTAwMTFcdTAwMTmZ4Vx1MDAxYTFcdFhsYDml/lx1MDAxMH852nTEX9CCRDy2kPfZPFx0k8JIglx1MDAxNIHy5FJcdTAwMTdcdTAwMTgsleH8d+R9syTZgEmJXHUwMDE0WaMp45TIcLXCiGRRpPpcdTAwMWPnXFxTW1xyY13YbOI3fiNfiH+lyp3dXHUwMDEyXHUwMDEyl1x1MDAxM/+iwsT3hvyLKq5A0ukhp79zVOs/u92D3dPVx9p27X6jfVx1MDAwMoWGXHUwMDFjpLvaXHUwMDE2NFx1MDAxYvQ00deMOFx1MDAxZa+Qg2xcdTAwMGKZXHUwMDE2XHUwMDEyNiHHU/x5Zt+ocJBcdTAwMGKOsm96UrVBkm6hs2RcdTAwMDRhn1x1MDAxNFL6XGbi8n1oxq1199tBaWiYP5ZhvDGE2ahAmlpynq6WeEzb8vvpXHUwMDAzQPv+8/GiXz1flYu3y7ubj72th0O/4Gppq+7ASPT+uKD4x7hagpRcdTAwMGVcdTAwMDOujEKdQaNWoKQ4JVxiJqjC5lO9oHdcdTAwMTTSXHUwMDE2zluZNu08XCLyxcyKT1x1MDAxOF4+YEEpie9ccsHCXHUwMDEyKyZniKH09NNV467j813db3mbN7fl6o+1QoOF1VBcdTAwMDdNoVx1MDAxMUygfFJcdTAwMWGr4OXAXHUwMDFkMFx1MDAwNlx1MDAxZlx1MDAxM+dCMTInt4FcdTAwMTmH2vJd4DhcbuTZXHUwMDEzyneTaFx1MDAwMUJcdTAwMThtXHUwMDE3XHUwMDA2/j42/GVBUK1Su3F7l/7nJHzeXHUwMDFjxGyq6TabXqc3cWFcdTAwMTKwXGaGzSQjOlpp8GZ5m8/OV/o7j42f1XZ568Ttq5Wrm2JrJ96fw5RkXHUwMDFj0Cra/HhMO4VN9Vx1MDAxOMlBI63h78vZpi1M4tzRxFx1MDAxMFxunDJNgMFcdTAwMDTlpDjLdt2ULW+UxHrwXHTTrpjN51xiXGJnNKqtI1x1MDAxM7pQ7j9XW3u9i5ODq5X6411vt9xo8ldcdTAwMTP7Wc7/r+n6L4u9zFhWQvBcdTAwMTFcdTAwMGKup2ewvYtVdru1Wf65Jv2+b54ry5vksPhib1x1MDAwYrSYpraGVcbatqCnj2Kv0c031HZWeZ9jOV+5t8XZKPtyspH6XHUwMDEyYlx1MDAwZiRaOftOsbe2YaLXprLit5RqNYvM3640l3+eM//s9KBtXHUwMDFhyuuTNfZcdTAwMDVkXHUwMDFlhWjQw1x1MDAwM5FGx+pzcFx1MDAxYVx1MDAxY2VcdTAwMDPZRNg6xjmVMlx1MDAwZpOyXGIxWoJiwkSs60jmgTlI1KgghNlCIZ5cXIaqLcxzXHUwMDFjxteV+V+mdbE4bzxcIvoxsdaxY/nW8qVLiN2Sslx1MDAxMX7ht+jvmeEhYlx1MDAwM+JcdTAwMGJcdTAwMWRcZvolMy20PK0/XHUwMDFmlrdcdTAwMTbLbvW+2mtcdTAwMWPog93156JcdTAwMTXzxdFcdTAwMDG0o4wmaFx1MDAxNLWUIFx1MDAxMoltNJjIhTVOXHKih55P9Vx1MDAxZZJNu8ZTXHUwMDEyIyXilV3tMlx1MDAwMVx1MDAxZcDCmNDKJr+5jIRywjZFaNTBpPht/8DDXHUwMDE3hodcZlx0sVtCNmZEh9Tsb1YpXGbyQ5v/MdM7itlcdTAwMDHAXCLiXHUwMDAzI+hcdDKqUf9tOtCQ2MJPXHUwMDA0ZIeSwap4JM18PuRcdTAwMDFRyNGMcYaEUVx1MDAxYTJcdFx1MDAxY5jtccFRNjiKibFcdTAwMTKSQFx1MDAwN40oZlx1MDAwYscmgsPfO/mbnWsojdXXMWKbRlxuYtfWM5TwyFnD3K90XHUwMDE0R7NItSREXHUwMDE4yua96pM4doEjtZXnXHUwMDAwaKVcZqOJMaG7pNFG2bhcdTAwMWTOPuPJ1Vx1MDAxNl8p6VxcTlx1MDAxNXi7JUV9RrDLXGJcdTAwMTBcYpq6zl3ZXHUwMDA1XHUwMDE2nKjpV32qs8elm+OtMl85QU0+aVx1MDAxZDbvNlxuXHUwMDFmtKZcdTAwMGVQI1GEtDKJtq5onlx1MDAxZMRcdTAwMTCi8VGg6/5OX2nOcTHBhFx1MDAwNDSYb8XF1lx1MDAxZZ9cdTAwMWVa2/TpR+Pizl8/31x1MDAxNz9Pd28/jlxyjT4zIWG29mO7+kCfV+v1n1WyfH37LM6XNnNLmCHGkfCxzS/qJjJcdTAwMTZcdTAwMGVI0FqjXzNDs+RFtX3WPK/Ub7dcdTAwMGav2NO5Ou5v1ouvVUxRSoQm6OHRuFZpglqlhF0qx9+ZNZ6zTlxyiJBcdTAwMDQyuYLsS+hUr3N2tlHt1c7unr6fN66WruXD5k5+OsUj5WLzXG7pgUhXKCZsx0zNpm9eSo+D9eX92t4hr2t5tL61qddP94qvUFx1MDAwMtWBXGbaujFcdTAwMWXLrVxuYFx1MDAwZVhcdTAwMGJlW75cdEXm5bTnXHUwMDEx0lx1MDAwM2BcdTAwMTJlJqVfQWE0KjOMLaJB1X989tfts0J60f6FcXhQgoK2IfGp4eFcdTAwMWVcdTAwMGU65edK8HOn1V/vPm+5naVcYl5cdTAwMTZcdTAwMTNcdTAwMWWMXZBL0XlcdTAwMDC0qCH/XHUwMDFigYNmYFfrXG5A/JjPOr18XCJ6QFxmXCI5ndyL4Fx1MDAxZmz4wtjwWfG89KX70rY14kpPj1xm2d5JIZFcdTAwMDGdXHKH2LZGgGzc9rCIYVx1MDAwM1x1MDAwM/tGXHUwMDExxmxccqegdE5t3DRzXGZeXHUwMDFiiT8zgJeaXHUwMDAwXHKcOFxmsUlcZpZ6KimTwX5GkM9HP1uEcN5HXHUwMDA18dOCatkhl1JcdTAwMThUY45cdTAwMDC0u9wuXHUwMDBltPW8OrmQloIj0FdcdTAwMTLaaE5tNVxccnHv11xuqqWKnd1cdTAwMTJcdTAwMDI3I+Jk+P8s3V3RXHUwMDAy0GdibHr3X/WX4W51p7fd77VOelx1MDAxN6Zz3m6QYoNcdTAwMGVyLodZXHUwMDE4XHUwMDA3/GG7SMdAR1xy3o2CckbQXGZES7TzXGZcdTAwMDBI7qCfZGPITEst2YTW9II4wlx1MDAxMHtcdTAwMTFg9o1KkUjES/lcdTAwMDFlKERpmFx1MDAxM+qP2O+vb57Bqv9cZsuP+5X2UlntnX957/+PrO+tXHUwMDFkeWursLNepjvbT2fkuCpP+0/5RVx1MDAxNVAhQ1x1MDAxZJpTVIHxVLeBXHUwMDEzXHUwMDE0W85g+kxcdTAwMWY/7NXKpydufbdfX12/Odk8qGxcdTAwMTW74yFViI9SXHUwMDAxNbajoWRcdTAwMTO0XHUwMDE0RV8gXHUwMDFih7F3euSppFx1MDAxNM2SXHUwMDE51CFQylx1MDAxNXA5YZmndLitz7bRXHUwMDBmaku3XHUwMDEy7T1cdTAwMThBblx1MDAwM0aQt6qEPllN81x1MDAxNPjfxW1IXHUwMDE3XHUwMDEwu5VcdTAwMTOyMaNcdTAwMTFPhVx1MDAwNpNeXHUwMDA1wJFF4XE1PTZUgs5W2fXccn3vx8X+SndXbWycXHUwMDE2XHUwMDFmXHUwMDFi7PtlbKtrwFx1MDAxOYhVXHRZcFC29ZlBr05H+1x1MDAxZuaMXHUwMDBlg6tLZoRccuJMQlx1MDAwN+Vojlx1MDAwN1x1MDAxOHBcdTAwMTRcdTAwMGZgJOE3aFx0eFx1MDAwNpNvZcX+XHUwMDAxh69cYlx1MDAwZSnyYbeEZMyIXHLpIYXUlLntu4KEks+wziuTnlx1MDAxNVx1MDAxM1x1MDAxYVxiQoOQg7dSXHUwMDAwjddcdTAwMGZcbk1cdTAwMTGxXHUwMDAx0CDjQ+dzqi5cdTAwMDbhWDdcdTAwMTaBWICy4Y0kMKA3SzRcdTAwMWUjtpCJo3QkeINcdTAwMDJNOCF5NFx1MDAwM8xf5YXgs6TV0lQ+tStYZlK5XHUwMDE06Vx1MDAwZUFcdTAwMWSkhspIpbitj1Dhwr1S2PrUOlCC21pcdTAwMWP7QHXi3qeLZWR6utExoeuOXp1GI2Xzy5yYxJDQ+Vx1MDAwM8pcZlx1MDAwZUpcbsVx8r92V/hUebdbUtLzQjqVunpI2Eox25liaqTLdlx1MDAxOFx1MDAwYol0mlx1MDAxMcdcdTAwMTBcdTAwMTDcvm1cdTAwMTmVMlx1MDAwNnWSKIcqu59w+1x1MDAwZdf5JFYoXHUwMDE4XHUwMDA3tKL4WzFcIuWEOFx1MDAwNmNcdTAwMGVwRtTgnXr2VUFxpFx1MDAxM6hcdTAwMDGomnyyg/T3RrqpUYXYVsm2pTc1OPHSkFx0IVJlXHUwMDAzVzDofYvupjBcXPxcdTAwMWHUXT/Vz3a3tlx1MDAxZs+P79Zqj33/zt15YClQZydu0Fx1MDAwZZBqYt/Zllx1MDAxOFx1MDAxNOo/JYRcdTAwMWJ0grgygiYn5CtBXaq82y0h6TNcIl1qh2ea/rbqQXlpNKv6XHUwMDE20nX9i1x1MDAxZlfQqp1CXHJcdTAwMGVcdTAwMWau9jtccuWaYiNcdTAwMWT6SGhDmF1YKyk+3VgsSFx1MDAwMipcdTAwMDc+cpBG2TWjKjawnFx1MDAxYX1cYu5og1x1MDAxYtfGvniLT+i/k2x3SG2zdVubmUNcdTAwMDP7r7J4/1x1MDAwMPWwNNZcdTAwMGV5uHD+0r/utlvD9fSDPnq1dqvTXHUwMDBmxnsn40AqzeZcdTAwMDev9M93xPl07GAkNTdMkUWhbzNL19NsSC+k1lx1MDAxYlxyXHUwMDBlXHUwMDE4ZmOntsdzrKhM2nwg+tXow9l3Qs3Jk0NcdTAwMGXpSMhW+mTTLUNcdTAwMTRwaj63u898UyCf1tLrk9t5va+VV6orXHUwMDEzafqSKMlWXHUwMDA2pKQzlIhlv8i0kLouOUVtpjZTXCJcdTAwMDBvOabsSlxuXHUwMDA3uVx1MDAxNlx1MDAxMEBXnig2XHUwMDFmXHUwMDBiL5RyJoRqZPI9XHK2u75WhX1lX1FcdTAwMWF3XG5cdTAwMWLbJKDsqzZEZFHByDfQXHUwMDBl2JeYXG4lme2e+Fbbznc3kSe2cyz6INJQylDeVHI5mcFRU25D2lx1MDAwMuVcdTAwMDHp5pd2V8pjMm03XHUwMDE5+cy7nJKMV/IpO5vAZ1iJSvd/nqycNt017nlPq6cnV1x1MDAwZnxxq2CQJVx1MDAxZPQ9rFCgPFx1MDAwZlxuN8YhjILMhDBEOEPnXHJh6GZbb5tcdTAwMTBJXHRHlZtYVpLwUcTgdVx0NGVp1t/SRzlCQl9cdTAwMWL293pA4Sp13K7XrntcdTAwMDMmX+rgVcNu4EG7dOu6nUn+QanfsS+DsbfysYxkjsPPq095emsnu/KKwiyMJvtcdTAwMTXqxYCH+NtpZCaj0Vx1MDAxY52bucOBkFx1MDAxM/hcZjBHkHCLrl5cdTAwMWF1riCMa1x1MDAxOc1cdTAwMTT+Plx1MDAwNGdcdTAwMDYyXHUwMDAxynJcdTAwMTeCM6hcdTAwMTVcdTAwMTNkwmv3qHLIXHUwMDFidFwi93dcdTAwMTJrTYhAp4FqSsY6hL+Oib/Jur5cdTAwMTLFXHUwMDExcozfJKU7je98e/nKhUqnc2j7so6e/8K95z4spevZt5dnZYHHXHUwMDFkXGL5X9/++n+qgWDNIn0=",i||(i=j.createElement("defs",null,j.createElement("style",null,'@font-face{font-family:"Virgil";src:url(https://excalidraw.com/Virgil.woff2)}@font-face{font-family:"Cascadia";src:url(https://excalidraw.com/Cascadia.woff2)}@font-face{font-family:"Assistant";src:url(https://excalidraw.com/Assistant-Regular.woff2)}'))),a||(a=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M42 22.963c88.15-.55 177.3.38 265.83 0 18.42.36 31.9 12.44 32 32 6.32 346.76 6.44 690.13 0 966.57.43 22.73-8.99 35.53-32 32-78.41 5.2-158.99 5.27-265.83 0-19.61-3.06-32.82-11.96-32-32-4.82-256.2-4.08-511.12 0-966.57-.4-22.62 8.92-29.51 32-32",strokeWidth:0,fill:"#fff"}),j.createElement("path",{d:"M42 22.963c100.55-1.64 198.45 1.09 265.83 0m-265.83 0c81.78.89 163.41 2.35 265.83 0m0 0c20.8.6 32.31 12.46 32 32m-32-32c23.14.11 32.39 11.93 32 32m0 0c-.71 329.24-1.5 656.84 0 966.57m0-966.57c2.06 358.08 2.55 716.02 0 966.57m0 0c1.27 19.67-12.63 30.35-32 32m32-32c-.33 21.72-10.46 31.86-32 32m0 0c-71.88.75-142.94 1.71-265.83 0m265.83 0c-65.96.01-133.25.12-265.83 0m0 0c-21.29.5-30.06-9.71-32-32m32 32c-19.69-.41-32.62-9.69-32-32m0 0c-.04-290-.44-578.56 0-966.57m0 966.57c1.24-295.45 1.07-590.74 0-966.57m0 0c.43-21.17 10.47-33.93 32-32m-32 32c1.22-19.66 11.31-32.03 32-32",stroke:"#1971c2",fill:"none"}))),j.createElement("text",{y:24.528,fontFamily:"Virgil, Segoe UI Emoji",fontSize:28,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(19.77 28.415)",strokeOpacity:.9,fillOpacity:.9},"Izanami Server"),l||(l=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M1120.737 10c127.8-1.81 255.75-2.84 516.93 0 19.84-2.11 29.39 9.1 32 32 3.92 390.15 5.38 780.96 0 976.76-.09 18.65-7.64 33.15-32 32-173.89 3.58-349.53 3.09-516.93 0-18.52.88-28.59-11.03-32-32 6.81-297.36 4.91-593.83 0-976.76 2.28-20.2 9.69-35.09 32-32",strokeWidth:0,fill:"#fff"}),j.createElement("path",{d:"M1120.737 10c156.47.67 311.14-.16 516.93 0m-516.93 0c178.36 1.46 356.64 1.9 516.93 0m0 0c20.22 1.57 31.81 10.68 32 32m-32-32c20.23-2.04 31.21 9.11 32 32m0 0c3.49 365.3 3.1 729.74 0 976.76m0-976.76c1.56 269.3 1.39 538.99 0 976.76m0 0c.57 21.95-10.41 30.56-32 32m32-32c2.25 22.95-12.74 32.69-32 32m0 0c-117.71 1.18-234.88.62-516.93 0m516.93 0c-105.24 2.06-209.95 1.87-516.93 0m0 0c-20.88-2-33.49-9.51-32-32m32 32c-19.63-1.41-29.73-8.4-32-32m0 0c3.3-224.73 3.81-449.01 0-976.76m0 976.76c-1.93-280.13-1.76-560.02 0-976.76m0 0c-1.35-22.47 9.51-32.67 32-32m-32 32c1.66-21.58 10.09-32.31 32-32",stroke:"#1971c2",fill:"none"}))),j.createElement("text",{y:24.528,fontFamily:"Virgil, Segoe UI Emoji",fontSize:28,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(1097.174 22)",strokeOpacity:.9,fillOpacity:.9},"Client application"),n||(n=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M967.304 113c77.63 5.47 158.15-.15 198.58 0 20.16 1.61 33.68 7.55 32 32-3.83 235.79-3.08 473.04 0 717.04.03 19.61-13.86 30.77-32 32-43.79 2.1-91.81.33-198.58 0-24.43-.86-30.46-13.22-32-32 3.57-195.32 5.26-391.29 0-717.04-2.6-17.82 13.2-35.25 32-32",strokeWidth:0,fill:"#e9ecef"}),j.createElement("path",{d:"M967.304 113c64 1.11 124.08-.78 198.58 0m-198.58 0c77.12-1.53 156.06-2.26 198.58 0m0 0c21.01 1.61 30.37 8.91 32 32m-32-32c23.28-.74 31.01 10.29 32 32m0 0c.99 216.49.95 433.95 0 717.04m0-717.04c.43 252.94.04 505.58 0 717.04m0 0c-.39 22.1-12.48 32.87-32 32m32-32c.35 19.98-11.06 34.19-32 32m0 0c-55.85-.4-114.46-2.98-198.58 0m198.58 0c-68.77-.13-137.36.34-198.58 0m0 0c-19.62-.76-33.27-10.68-32-32m32 32c-21.7 1.6-33.01-8.86-32-32m0 0c-1.77-271.94-1.18-542.15 0-717.04m0 717.04c-2.19-258.16-1.65-516.7 0-717.04m0 0c.82-19.34 9.58-30.55 32-32m-32 32c.41-19.92 9.85-33.59 32-32",stroke:"#1971c2",fill:"none"}))),j.createElement("g",{strokeOpacity:.9,fillOpacity:.9},j.createElement("text",{y:24.528,fontFamily:"Virgil, Segoe UI Emoji",fontSize:28,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(945.02 125)"},"Izanami"),j.createElement("text",{y:59.528,fontFamily:"Virgil, Segoe UI Emoji",fontSize:28,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(945.02 125)"},"Client")),r||(r=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M1352.107 184.757c-22.88 4.04-113.68 20.79-136.69 25m138.51-26c-22.93 4.18-115.41 23.6-138.87 27.6",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M1236.507 198.517c-5.98 5.46-12.1 6.93-21.45 12.84m21.45-12.84c-7.6 4.76-14.55 9.01-21.45 12.84M1239.747 215.307c-7.04.59-14.09-2.81-24.69-3.95m24.69 3.95c-8.76-.75-16.77-2.03-24.69-3.95",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),j.createElement("g",{strokeOpacity:.9,fillOpacity:.9},j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(1360.712 134.877)"},"Request state for feature1"),j.createElement("text",{y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(1360.712 134.877)"},'with user "Benjamin"')),M||(M=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M925.849 226.963c-93.71 8.53-468.31 42.83-561.87 51.22m560.49-52.22c-93.39 8.69-464.76 44.91-558.26 53.59",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M388.789 268.813c-7.69 2.23-16.17 6.82-22.58 10.74m22.58-10.74c-3.98 1.85-9.56 4.25-22.58 10.74M390.409 285.833c-8.27-3.67-17.31-4.98-24.2-6.28m24.2 6.28c-4.39-1.6-10.31-2.65-24.2-6.28",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),j.createElement("g",{strokeOpacity:.9,fillOpacity:.9},j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"rotate(-4.761 2789.436 -5651.962)"},"HTTP call to retrieve feature"),j.createElement("text",{y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"rotate(-4.761 2789.436 -5651.962)"},"activation status and strategy")),o||(o=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M364.87 293.594c91.51 8.57 457.13 42.96 548.73 51.62m-546.83-52.35c91.96 8.6 457.88 44.36 549.04 53.29M891.6 352.384c6.36-2.88 8.86-2.76 24.21-6.23m-24.21 6.23c5.49-.86 11.21-3.42 24.21-6.23",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M893.26 335.364c6.11.91 8.24 4.83 22.55 10.79m-22.55-10.79c5.12 3.14 10.44 4.58 22.55 10.79",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),j.createElement("g",{strokeOpacity:.9,fillOpacity:.9},j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"rotate(5.901 -2703.232 4635.408)"},"feature1 is a user list feature"),j.createElement("text",{y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"rotate(5.901 -2703.232 4635.408)"},'active only for "Etienne" and "Quentin"'),j.createElement("text",{y:67.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"rotate(5.901 -2703.232 4635.408)"},'it\'s inactive for "Benjamin"')),s||(s=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M1212.96 339.557c26.83 1.01 134.97 6.23 161.88 7.04m-163.27-8.3c26.56.64 134.58 5.61 162.12 6.74",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M1349.85 352.557c8.43-3.54 20.1-7.17 23.84-7.52m-23.84 7.52c4.24-2.1 9.79-3 23.84-7.52M1350.6 335.477c8.22 3.02 19.61 5.96 23.09 9.56m-23.09-9.56c4.01 1.41 9.41 4.02 23.09 9.56",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(1394.174 341.692)",strokeOpacity:.9,fillOpacity:.9},"Feature is not active"),j.createElement("g",{strokeOpacity:.9,fillOpacity:.9},j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(1352.256 434.336)"},"Request state for feature1"),j.createElement("text",{y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(1352.256 434.336)"},'with user "Etienne"')),j.createElement("g",{strokeOpacity:.9,fillOpacity:.9},j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(961.966 311.59)"},"Client caches"),j.createElement("text",{y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(961.966 311.59)"},"strategy")),d||(d=j.createElement("g",{strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"},j.createElement("path",{d:"M1130.103 318.401c3.37.24 7.54 1.25 9.86 2.16 2.33.9 4.02 2.16 4.09 3.27.07 1.11-1.39 2.44-3.67 3.41-2.27.97-6.52 2.16-9.97 2.39-3.44.24-7.61-.36-10.71-.98-3.1-.61-6.51-1.63-7.89-2.73-1.39-1.1-1.55-2.67-.45-3.86 1.1-1.18 3.87-2.63 7.06-3.25 3.18-.61 9.87-.41 12.03-.43 2.16-.03.92.15.9.28m-4.39-.08c3.43.1 7.72.81 10.57 1.48 2.85.67 5.67 1.38 6.55 2.55.88 1.17.37 3.34-1.27 4.45-1.63 1.11-5.17 1.85-8.55 2.21-3.38.36-8.32.3-11.75-.03-3.42-.33-6.72-.97-8.81-1.93-2.08-.96-3.98-2.62-3.7-3.84.29-1.22 2.54-2.63 5.42-3.48 2.88-.86 9.99-1.5 11.86-1.66 1.88-.16-.6.61-.64.71",strokeWidth:0,fill:"#e9ecef"}),j.createElement("path",{d:"M1125.123 318.051c3.31-.22 8.11.15 11.11.88 3 .74 5.64 2.36 6.88 3.53 1.25 1.17 1.81 2.49.61 3.5-1.21 1.01-4.53 2.04-7.84 2.54-3.31.5-8.5.66-12.04.46-3.55-.19-7.1-.81-9.24-1.62-2.13-.81-3.59-2.1-3.58-3.24.01-1.14 1.26-2.57 3.62-3.63 2.36-1.05 8.66-2.43 10.53-2.7 1.88-.27.71.92.73 1.08m3.44-.6c3.41-.14 7.44.12 9.83.99 2.39.86 4.15 2.9 4.51 4.22.35 1.32-.49 2.81-2.38 3.7-1.88.89-5.55 1.29-8.94 1.61-3.39.32-7.97.81-11.41.31-3.44-.51-7.64-2.34-9.23-3.34-1.6-1-1.42-1.63-.33-2.66 1.09-1.03 3.94-2.72 6.87-3.53 2.93-.81 9.05-1.18 10.71-1.32 1.67-.15-.55.33-.71.46",stroke:"#1971c2",fill:"none"}))),w||(w=j.createElement("g",{strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"},j.createElement("path",{d:"M1124.214 361.12c3.26-.17 7.95.36 11.11 1.07 3.16.71 6.59 2.05 7.87 3.19 1.29 1.14 1.09 2.51-.17 3.65-1.26 1.14-4.26 2.67-7.39 3.19-3.14.53-7.97.17-11.43-.05-3.46-.22-7.12-.41-9.33-1.26-2.22-.86-3.94-2.62-3.96-3.9-.02-1.28 1.58-2.82 3.84-3.81 2.26-.98 7.92-1.74 9.71-2.11 1.79-.36.88-.18 1.03-.1m1.51-.33c3.41-.08 8.18 1.42 11.13 2.23 2.95.82 5.95 1.47 6.56 2.67.62 1.19-.96 3.38-2.87 4.53-1.91 1.15-5.26 1.96-8.6 2.39-3.34.42-8.07.69-11.43.15-3.36-.54-6.97-2.18-8.74-3.4-1.78-1.21-2.44-2.7-1.91-3.9.53-1.2 2.43-2.7 5.09-3.28 2.65-.58 8.93-.01 10.86-.19 1.92-.18.57-.98.71-.89",strokeWidth:0,fill:"#e9ecef"}),j.createElement("path",{d:"M1128.644 360.95c3.35-.02 7.5.65 10.15 1.49 2.65.84 5.35 2.3 5.74 3.55.38 1.26-1.33 2.9-3.44 3.97-2.11 1.07-5.78 2.19-9.21 2.46-3.43.26-8.05-.32-11.37-.85-3.33-.52-6.93-1.29-8.57-2.31-1.64-1.02-2.13-2.71-1.27-3.81.87-1.1 3.32-2.16 6.48-2.78 3.15-.62 10.46-.75 12.44-.94 1.97-.19-.46-.14-.59-.18m2.78-.53c3.21.08 6.6 1.51 8.56 2.49 1.96.98 3.33 2.08 3.2 3.36-.13 1.28-1.51 3.49-3.99 4.32-2.47.83-7.34.54-10.86.66-3.51.12-7.38.49-10.23.05-2.85-.45-5.66-1.52-6.87-2.72-1.21-1.19-1.8-3.31-.4-4.45 1.41-1.14 5.4-1.81 8.83-2.36 3.43-.56 9.85-.87 11.75-.95 1.91-.08-.3.48-.33.46",stroke:"#1971c2",fill:"none"}))),x||(x=j.createElement("path",{d:"M1110.933 322.846c0 7.08-.35 35.06-.47 42.06m-.07-42.53c-.01 7.19-.03 35.94-.09 43.1M1143.624 322.917c.07 7.37.73 37.49.76 44.97m0-43.93c.01 7.18-.47 35.97-.38 43.12",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),p||(p=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M1346.285 467.08c-22.64 3.87-113.62 20.21-136.38 24.36m135.31-22.34c-22.79 3.53-113.44 17.03-136.15 20.55M1231.015 477.68c-8.79 4.25-12.74 7.76-21.95 11.97m21.95-11.97c-8.23 5.33-17.65 9.19-21.95 11.97",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M1233.575 494.59c-9.59-1.06-14.35-2.88-24.51-4.94m24.51 4.94c-9.12-1.42-19.56-4.3-24.51-4.94",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),m||(m=j.createElement("g",{strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"},j.createElement("path",{d:"M976.326 506.31c3.53.07 7.72.42 10.15 1.3 2.43.88 4.35 2.68 4.43 3.99.07 1.31-1.71 2.9-3.96 3.87-2.25.96-5.97 1.68-9.55 1.93-3.59.25-8.68.2-11.96-.43-3.28-.62-6.41-2.2-7.72-3.33-1.32-1.13-1.28-2.37-.18-3.47 1.11-1.1 3.8-2.47 6.83-3.12 3.02-.66 9.28-.61 11.31-.82 2.04-.21.88-.55.9-.45m-.47-.09c3.23.04 7.11.82 9.47 1.75 2.36.93 4.36 2.48 4.66 3.82.3 1.34-.62 3.25-2.87 4.21-2.26.97-7.06 1.42-10.66 1.57-3.61.16-7.82-.07-10.96-.62-3.13-.54-6.47-1.56-7.85-2.65-1.37-1.08-1.5-2.81-.4-3.86 1.11-1.05 3.93-1.89 7.02-2.43 3.1-.55 9.7-.59 11.53-.83 1.83-.25-.54-.49-.54-.62",strokeWidth:0,fill:"#e9ecef"}),j.createElement("path",{d:"M974.266 506.08c3.53.04 7.98.73 10.66 1.49 2.69.77 5 1.94 5.47 3.1.46 1.16-.73 2.82-2.68 3.85-1.96 1.02-5.59 1.85-9.04 2.31-3.45.47-8.32.92-11.69.47-3.36-.44-6.89-2.04-8.5-3.15-1.61-1.11-1.96-2.42-1.17-3.51.79-1.1 3.09-2.3 5.93-3.07 2.83-.77 9.19-1.35 11.11-1.57 1.92-.23.37.15.41.22m.59-.41c3.63.07 8.19 1.06 10.73 1.87 2.54.82 4.34 1.95 4.51 3.03.17 1.08-1.27 2.51-3.48 3.44-2.22.92-6.24 1.77-9.78 2.13-3.54.35-8.4.45-11.45-.02-3.06-.47-5.51-1.74-6.88-2.82-1.37-1.07-2.18-2.5-1.34-3.62.83-1.12 3.41-2.55 6.35-3.08 2.95-.52 9.37-.07 11.34-.1 1.96-.02.61-.06.46-.04",stroke:"#1971c2",fill:"none"}))),D||(D=j.createElement("g",{strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"},j.createElement("path",{d:"M973.048 548.78c3.41-.13 8.25.74 11.06 1.58 2.8.83 5.03 2.24 5.78 3.43.76 1.19.45 2.62-1.25 3.69-1.71 1.06-5.59 2.3-9 2.7-3.41.39-8.07.07-11.47-.31-3.39-.37-6.94-.99-8.88-1.95-1.95-.97-3.16-2.62-2.78-3.83.37-1.21 2.19-2.51 5.02-3.43 2.83-.92 9.91-1.85 11.96-2.07 2.06-.23.35.52.38.73m-1.54-.79c3.4-.08 8.37.57 11.41 1.45 3.05.89 6.13 2.65 6.85 3.86.72 1.2-.73 2.4-2.51 3.38-1.79.98-4.87 2.03-8.2 2.51-3.33.47-8.29.68-11.78.33-3.49-.34-7.22-1.47-9.16-2.41-1.95-.94-3.03-2.09-2.49-3.2.54-1.11 3.06-2.53 5.73-3.46 2.66-.93 8.43-1.7 10.27-2.14 1.85-.43.59-.71.78-.48",strokeWidth:0,fill:"#e9ecef"}),j.createElement("path",{d:"M970.998 549.2c3.36-.28 8.3-.12 11.34.47 3.04.59 5.78 1.94 6.89 3.09 1.11 1.14 1.1 2.57-.24 3.78s-4.61 2.9-7.79 3.48c-3.19.58-7.87.28-11.32-.01-3.45-.29-7.18-.85-9.39-1.71-2.21-.86-3.87-2.21-3.84-3.45.02-1.23 1.57-3.01 4-3.96 2.42-.95 8.69-1.43 10.55-1.75 1.86-.32.52-.15.61-.16m1.3.04c3.42-.17 7.96.06 10.72.67 2.76.6 5.14 1.84 5.82 2.96.68 1.12-.04 2.63-1.73 3.75s-5.31 2.45-8.43 2.96c-3.11.51-6.97.44-10.28.11-3.31-.34-7.52-1.15-9.6-2.12-2.08-.96-3.3-2.64-2.87-3.68.42-1.04 2.67-1.85 5.44-2.55 2.76-.7 9.49-1.35 11.15-1.65 1.65-.31-1-.07-1.22-.18",stroke:"#1971c2",fill:"none"}))),A||(A=j.createElement("path",{d:"M956.496 510.655c-.11 7.15-.23 35.21-.27 42.25m1.11-42.67c-.18 7.29-1.25 36.17-1.46 43.39M990.398 510.946c.12 7.38.26 37.04.25 44.38m-.84-44.84c.09 7.47.5 38.07.52 45.56",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),f||(f=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M1183.477 493.848c-30.42 5.06-152.46 24.68-182.93 29.38m181.54-29.93c-30.55 5.27-152.08 26.6-182.43 31.53",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M1021.387 512.458c-4.52 3.67-11.97 7.28-21.73 12.37m21.73-12.37c-4.48 2.47-8.32 4.81-21.73 12.37M1024.247 529.318c-5.32-1.03-13.56-2.14-24.59-4.49m24.59 4.49c-5.12-1.09-9.58-2.33-24.59-4.49",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),T||(T=j.createElement("g",{strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"},j.createElement("path",{d:"M1089.764 543.616c6.11 1.4 12.3 6.72 15.43 11.62 3.14 4.91 4.53 12.61 3.4 17.81-1.14 5.21-5.2 10.14-10.22 13.42-5.01 3.28-13.18 6.07-19.89 6.26-6.71.19-15.01-1.86-20.37-5.13-5.36-3.27-10.38-9.17-11.77-14.51-1.38-5.33-.04-12.81 3.47-17.5 3.51-4.68 10.33-8.98 17.58-10.61 7.25-1.63 21.16.23 25.91.83 4.74.61 2.92 2.46 2.59 2.8m-29.54-5.38c5.88-1.67 16.48.08 23.05 1.91 6.57 1.84 13.15 4.65 16.39 9.09 3.24 4.43 4.08 11.77 3.06 17.52-1.02 5.76-3.8 13.48-9.18 17-5.39 3.52-16.29 4.2-23.13 4.14-6.84-.06-12.85-1.26-17.91-4.5-5.07-3.25-11.22-9.48-12.49-14.97-1.27-5.49 1.2-13.25 4.86-17.99 3.66-4.74 14.13-8.71 17.11-10.45 2.98-1.73.53-.28.78.04",strokeWidth:0,fill:"#e9ecef"}),j.createElement("path",{d:"M1086.954 544.216c6.28 1.03 14.05 4.47 17.66 8.88 3.61 4.41 4.82 12.04 3.99 17.59-.84 5.56-4.45 11.89-9.01 15.76-4.56 3.86-11.79 7.27-18.38 7.44-6.59.17-15.7-3.18-21.17-6.41-5.46-3.23-9.94-7.98-11.64-12.98-1.69-4.99-1.42-12.17 1.47-17.01 2.89-4.85 9.1-9.85 15.88-12.06 6.78-2.21 20.45-1.39 24.82-1.18 4.36.21 1.81 1.95 1.35 2.42m-5.61-2.53c6.11 1.42 13.28 6.42 17.06 10.86 3.77 4.43 6.35 10.38 5.59 15.76-.77 5.38-5.55 12.89-10.19 16.53-4.65 3.65-11.27 5.14-17.7 5.35-6.42.2-15.07-.77-20.83-4.11-5.77-3.34-11.88-10.42-13.76-15.95-1.88-5.54-.81-12.45 2.48-17.25 3.29-4.8 10.87-9.62 17.27-11.56 6.41-1.94 17.87.05 21.18-.09 3.3-.15-1.31-1.41-1.36-.78",stroke:"#1971c2",fill:"none"}))),h||(h=j.createElement("path",{d:"M1078.29 542.6c2.13-1.03 10.12-5.43 12.23-6.5m-12.74 6.13c2.09-.92 10.11-4.51 12.28-5.4M1078.024 542.916c2.04 1.29 10.66 6.71 12.65 7.92m-13.35-8.37c1.99 1.1 10.82 6.14 13.11 7.48",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9,strokeLinecap:"round"})),u||(u=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M998.323 549.356c7.64 2.36 37.73 11.6 45.23 14.02m-45.76-13c7.59 2.45 37.78 11.14 45.29 13.5M1019.263 565.256c4.99-.54 10.45-1.23 23.82-1.38m-23.82 1.38c7.65-.42 15.59-1.19 23.82-1.38",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M1023.953 549.626c3.83 3.14 8.19 6.11 19.13 14.25m-19.13-14.25c6.11 4.58 12.56 8.82 19.13 14.25",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),y||(y=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M1117.34 575.53c24.92 3.67 123.3 18.17 148 21.96m-148.87-22.87c24.77 3.84 123.03 20.7 147.73 24.3M1239.65 603.64c6.93-2.08 12.65-3 24.55-4.72m-24.55 4.72c9.16-2.42 16.9-4.23 24.55-4.72",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M1242.36 586.76c6.23 2.42 11.24 5.96 21.84 12.16m-21.84-12.16c8.16 3.46 14.96 7.52 21.84 12.16",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),j.createElement("g",{strokeOpacity:.9,fillOpacity:.9},j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(943.389 608.108)"},"Read activation strategy"),j.createElement("text",{y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(943.389 608.108)"},"from cache and compute"),j.createElement("text",{y:67.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(943.389 608.108)"},"activation locally")),j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"translate(1279.798 582.647)",strokeOpacity:.9,fillOpacity:.9},"Feature is active"),X||(X=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M925.858 732.938c-96.26 9.93-479.43 50.7-575.71 60.8m577.39-58.61c-96.43 10.08-481.75 50.2-577.92 60.13",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M372.098 784.338c-9.66 5.18-16.68 6-22.48 10.92m22.48-10.92c-7.06 3.16-13.43 5.32-22.48 10.92M373.868 801.348c-10.38-1.14-18.05-6.63-24.25-6.09m24.25 6.09c-7.39-1.6-14.26-4.22-24.25-6.09",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))),j.createElement("g",{strokeOpacity:.9,fillOpacity:.9},j.createElement("text",{y:17.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"rotate(-5.937 7169.473 -3885.08)"},"The client will periodically pull feature"),j.createElement("text",{y:42.52,fontFamily:"Virgil, Segoe UI Emoji",fontSize:20,fill:"#1971c2",style:{whiteSpace:"pre"},dominantBaseline:"alphabetic",transform:"rotate(-5.937 7169.473 -3885.08)"},"to keep activation strategy up to date")),U||(U=j.createElement("g",{strokeLinecap:"round"},j.createElement("path",{d:"M356.478 801.348c93.79 7.22 470 36.76 564.18 44.04m-562.18-42.04c94.04 6.9 470.56 32.96 564.27 40.11",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M898.698 850.298c7.48-4.59 19.43-5.69 24.05-6.84m-24.05 6.84c6.89-1.72 15.17-4.38 24.05-6.84",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}),j.createElement("path",{d:"M899.928 833.238c6.93 2.07 18.41 7.63 22.82 10.22m-22.82-10.22c6.48 3.36 14.39 5.78 22.82 10.22",stroke:"#1971c2",fill:"none",strokeOpacity:.9,fillOpacity:.9}))))},k={title:"Requests"},O=void 0,N={id:"usages/request",title:"Requests",description:"Izanami offers two way of requesting feature activation status.",source:"@site/docs/03-usages/04-request.mdx",sourceDirName:"03-usages",slug:"/usages/request",permalink:"/izanami/docs/usages/request",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{title:"Requests"},sidebar:"tutorialSidebar",previous:{title:"Organisations",permalink:"/izanami/docs/usages/organisation"},next:{title:"Guides",permalink:"/izanami/docs/guides/"}},Z={},V=[{value:"Keys",id:"keys",level:2},{value:"HTTP(s) endpoints",id:"https-endpoints",level:2},{value:"Single feature endpoint",id:"single-feature-endpoint",level:3},{value:"Multiple feature endpoints",id:"multiple-feature-endpoints",level:3},{value:"Call feature with payload",id:"call-feature-with-payload",level:3},{value:"Specific clients",id:"specific-clients",level:2},{value:"Why use a specific client",id:"why-use-a-specific-client",level:3},{value:"Java client",id:"java-client",level:3}];function v(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,H.a)(),...e.components};return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(t.p,{children:"Izanami offers two way of requesting feature activation status."}),"\n",(0,E.jsxs)(t.ul,{children:["\n",(0,E.jsx)(t.li,{children:"HTTP endpoints: a universal way to call Izanami from any technology that has HTTP client"}),"\n",(0,E.jsx)(t.li,{children:"Specific clients: these clients wrap calls on HTTP endpoints, providing additional cache and local evaluation mechanisms to minimize latency"}),"\n"]}),"\n",(0,E.jsx)(t.p,{children:"Anyway, you'll need to generate a key first."}),"\n",(0,E.jsx)(t.h2,{id:"keys",children:"Keys"}),"\n",(0,E.jsx)(t.p,{children:"A key is required to call client endpoints. We recommand to use one key per client application. This way client calls are easier to identify."}),"\n",(0,E.jsx)(t.p,{children:"If key is an admin key, it can read activation status for any feature of the tenant."}),"\n",(0,E.jsx)(t.p,{children:"If key is not an admin key, you'll have to specify a list of allowed projects. Key will only be able to read activation status for these project features."}),"\n",(0,E.jsxs)(t.p,{children:["When creating a key, Izanami will generate a client id and a client secret for you, they should be passed as ",(0,E.jsx)(t.code,{children:"Izanami-Client-Id"})," and ",(0,E.jsx)(t.code,{children:"Izanami-Client-Secret"})," headers when calling Izanami."]}),"\n",(0,E.jsx)(t.h2,{id:"https-endpoints",children:"HTTP(s) endpoints"}),"\n",(0,E.jsx)(t.p,{children:"Izanami exposes two endpoints to fetch feature activation status. One allows to fetch a single feature while the other allows to fetch a list of features."}),"\n",(0,E.jsx)(t.p,{children:"Both endpoints require following headers:"}),"\n",(0,E.jsxs)(t.ul,{children:["\n",(0,E.jsxs)(t.li,{children:[(0,E.jsx)(t.code,{children:"Izanami-Client-Id"})," key cliend id"]}),"\n",(0,E.jsxs)(t.li,{children:[(0,E.jsx)(t.code,{children:"Izanami-Client-Secret"})," key client secret"]}),"\n"]}),"\n",(0,E.jsx)(t.p,{children:"They also accept following query parameters:"}),"\n",(0,E.jsxs)(t.ul,{children:["\n",(0,E.jsxs)(t.li,{children:[(0,E.jsx)(t.code,{children:"user"})," a ",(0,E.jsx)(t.code,{children:"string"})," indicating user (used by user based conditions and maybe script features)"]}),"\n",(0,E.jsxs)(t.li,{children:[(0,E.jsx)(t.code,{children:"context"})," a ",(0,E.jsx)(t.code,{children:"string"}),' indicating context, if your request target a subcontext, separate contexts with a "/". For instance ',(0,E.jsx)(t.code,{children:"context/subcontext/subsubcontext"})]}),"\n",(0,E.jsxs)(t.li,{children:[(0,E.jsx)(t.code,{children:"conditions"})," a ",(0,E.jsx)(t.code,{children:"boolean"})," indicating whether activation conditions should be returned as well. This is useful for caching conditions on the client and recomputing activation startegy locally."]}),"\n"]}),"\n",(0,E.jsx)(t.h3,{id:"single-feature-endpoint",children:"Single feature endpoint"}),"\n",(0,E.jsxs)(t.p,{children:["GET ",(0,E.jsx)(t.code,{children:"/api/v2/features/"}),": fetches activation status for feature ",(0,E.jsx)(t.code,{children:"id"}),", result has format:"]}),"\n",(0,E.jsx)(t.pre,{children:(0,E.jsx)(t.code,{className:"language-json",children:'{\n "active": true/false,\n "name": "",\n "project": ""\n}\n'})}),"\n",(0,E.jsxs)(t.p,{children:["where ",(0,E.jsx)(t.code,{children:"active"})," indicates whether feature is active."]}),"\n",(0,E.jsx)(t.h3,{id:"multiple-feature-endpoints",children:"Multiple feature endpoints"}),"\n",(0,E.jsxs)(t.p,{children:["GET ",(0,E.jsx)(t.code,{children:"/api/v2/features"})," fetches activation features specified by query parameters."]}),"\n",(0,E.jsx)(t.p,{children:"Additionally to previously specified query parameters, this endpoints accept specifics query parameters that indicate features to query"}),"\n",(0,E.jsxs)(t.ul,{children:["\n",(0,E.jsxs)(t.li,{children:[(0,E.jsx)(t.code,{children:"features"}),": feature ids to query, comma-separated (for instance ",(0,E.jsx)(t.code,{children:"021aaef4-5f82-4567-bc71-5006cb21db2f,021aaef4-5f82-4567-bc71-5006cb21db2e"}),")"]}),"\n",(0,E.jsxs)(t.li,{children:[(0,E.jsx)(t.code,{children:"projects"}),": project ids to query, comma-separated. Every feature of every projects will be queried."]}),"\n"]}),"\n",(0,E.jsx)(t.pre,{children:(0,E.jsx)(t.code,{className:"language-json",children:'{\n "": {\n "active": false,\n "name": "",\n "project": ""\n },\n "": {\n "active": false,\n "name": "",\n "project": ""\n },\n "": {\n "active": false,\n "name": "",\n "project": ""\n }\n}\n'})}),"\n",(0,E.jsx)(t.h3,{id:"call-feature-with-payload",children:"Call feature with payload"}),"\n",(0,E.jsx)(t.p,{children:"For script features, it's possible to add a JSON payload that will be used by the script to decide wether feature should be active or not."}),"\n",(0,E.jsxs)(t.p,{children:["This is done by calling above endpoints with ",(0,E.jsx)(t.code,{children:"POST"})," method instead of ",(0,E.jsx)(t.code,{children:"GET"}),", request body will be passed to script."]}),"\n",(0,E.jsx)(t.h2,{id:"specific-clients",children:"Specific clients"}),"\n",(0,E.jsx)(t.p,{children:"Izanami provides one specific Java client, another one is currently under development for JavaScript."}),"\n",(0,E.jsxs)(t.p,{children:["Please ",(0,E.jsx)("a",{href:"https://github.com/MAIF/izanami/discussions",children:"open a Github discussion"})," if you need a client for another technology."]}),"\n",(0,E.jsx)(t.h3,{id:"why-use-a-specific-client",children:"Why use a specific client"}),"\n",(0,E.jsx)(t.p,{children:"Client uses HTTP endpoints described above, but it also take care of some usefull stuff for you."}),"\n",(0,E.jsxs)(t.p,{children:[(0,E.jsx)(t.strong,{children:"Cache"}),": clients are allowed to define a cache strategy. This strategy can be feature-specific or defined globally. It indicates how long a feature flag should be cached."]}),"\n",(0,E.jsxs)(t.p,{children:[(0,E.jsx)(t.strong,{children:"Local evaluation"}),": instead of retrieving and caching feature status (active or not), client will retrieve the feature activation strategy.\nThis way, the client can recompute the activation status locally when needed, without calling Izanami server again."]}),"\n",(0,E.jsx)(g,{width:"100%",height:"700"}),"\n",(0,E.jsx)(t.h3,{id:"java-client",children:"Java client"}),"\n",(0,E.jsx)(t.p,{children:(0,E.jsx)(t.a,{href:"../clients/java",children:"Read Java client documentation"})})]})}function b(e={}){const{wrapper:t}={...(0,H.a)(),...e.components};return t?(0,E.jsx)(t,{...e,children:(0,E.jsx)(v,{...e})}):v(e)}},1151:(e,t,c)=>{c.d(t,{Z:()=>r,a:()=>n});var i=c(7294);const a={},l=i.createContext(a);function n(e){const t=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:n(e.components),i.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/f53bace1.11c5dc4b.js b/docs/assets/js/f53bace1.11c5dc4b.js deleted file mode 100644 index b2006326a..000000000 --- a/docs/assets/js/f53bace1.11c5dc4b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkizanami_documentation=self.webpackChunkizanami_documentation||[]).push([[5960],{7682:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var i=t(5893),a=t(1151);const s={title:"Clients"},o=void 0,c={id:"clients/index",title:"Clients",description:"For now, Izanami only supports Java client.",source:"@site/docs/05-clients/index.mdx",sourceDirName:"05-clients",slug:"/clients/",permalink:"/izanami/docs/clients/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{title:"Clients"},sidebar:"tutorialSidebar",previous:{title:"Configuring Izanami",permalink:"/izanami/docs/guides/configuration"},next:{title:"Java client",permalink:"/izanami/docs/clients/java/"}},r={},l=[{value:"Why do I need a client ?",id:"why-do-i-need-a-client-",level:2}];function d(e){const n={a:"a",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["For now, Izanami only supports ",(0,i.jsx)(n.a,{href:"/izanami/docs/clients/java/",children:"Java client"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"We plan to add support for Javascript (node / in browser client)."}),"\n",(0,i.jsxs)(n.p,{children:["If you need another client, don't hesitate to ",(0,i.jsx)("a",{href:"TODO",children:"open an issue"})," or come discuss it ",(0,i.jsx)("a",{href:"TODO",children:"on discord"}),", we would be happy to help you with it."]}),"\n",(0,i.jsx)(n.h2,{id:"why-do-i-need-a-client-",children:"Why do I need a client ?"}),"\n",(0,i.jsx)(n.p,{children:"It's perfectly correct to call Izanami directly through HTTP. However, a specific client can take care of some boring stuff for you."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Cache"})," : caching feature state can be useful to avoid making too many requests."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Local evaluation"})," : instead of caching feature activation status at a given time, clients can cache feature activation strategy to recompute activation status locally."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Resilience"})," : client can offer several resilience mechanisms to increase your application resilience, such as fallback on previous state or default value."]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>o});var i=t(7294);const a={},s=i.createContext(a);function o(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/f53bace1.439fb65f.js b/docs/assets/js/f53bace1.439fb65f.js new file mode 100644 index 000000000..61cccd007 --- /dev/null +++ b/docs/assets/js/f53bace1.439fb65f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkizanami_documentation=self.webpackChunkizanami_documentation||[]).push([[5960],{7682:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var i=t(5893),a=t(1151);const s={title:"Clients"},o=void 0,c={id:"clients/index",title:"Clients",description:"For now, Izanami only supports Java client.",source:"@site/docs/05-clients/index.mdx",sourceDirName:"05-clients",slug:"/clients/",permalink:"/izanami/docs/clients/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{title:"Clients"},sidebar:"tutorialSidebar",previous:{title:"Configuring Izanami",permalink:"/izanami/docs/guides/configuration"},next:{title:"Java client",permalink:"/izanami/docs/clients/java/"}},r={},l=[{value:"Why do I need a client ?",id:"why-do-i-need-a-client-",level:2}];function d(e){const n={a:"a",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["For now, Izanami only supports ",(0,i.jsx)(n.a,{href:"/izanami/docs/clients/java/",children:"Java client"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"We plan to add support for Javascript (node / in browser client)."}),"\n",(0,i.jsxs)(n.p,{children:["If you need another client, don't hesitate to ",(0,i.jsx)("a",{href:"https://github.com/MAIF/izanami/issues",children:"open an issue"})," or come discuss it ",(0,i.jsx)("a",{href:"TODO",children:"on discord"}),", we would be happy to help you with it."]}),"\n",(0,i.jsx)(n.h2,{id:"why-do-i-need-a-client-",children:"Why do I need a client ?"}),"\n",(0,i.jsx)(n.p,{children:"It's perfectly correct to call Izanami directly through HTTP. However, a specific client can take care of some boring stuff for you."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Cache"})," : caching feature state can be useful to avoid making too many requests."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Local evaluation"})," : instead of caching feature activation status at a given time, clients can cache feature activation strategy to recompute activation status locally."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Resilience"})," : client can offer several resilience mechanisms to increase your application resilience, such as fallback on previous state or default value."]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>o});var i=t(7294);const a={},s=i.createContext(a);function o(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/main.8ae67f15.js b/docs/assets/js/main.aadbad2c.js similarity index 99% rename from docs/assets/js/main.8ae67f15.js rename to docs/assets/js/main.aadbad2c.js index c96fc18a4..4d4c010f7 100644 --- a/docs/assets/js/main.8ae67f15.js +++ b/docs/assets/js/main.aadbad2c.js @@ -1,2 +1,2 @@ -/*! For license information please see main.8ae67f15.js.LICENSE.txt */ -(self.webpackChunkizanami_documentation=self.webpackChunkizanami_documentation||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});n(7294);var r=n(8356),a=n.n(r),i=n(6887);const o={"0f98d465":[()=>n.e(8018).then(n.bind(n,7852)),"@site/v1/18-tutorials/index.mdx",7852],"12625af8":[()=>n.e(5180).then(n.bind(n,8878)),"@site/v1/13-keys.mdx",8878],"144ae2b5":[()=>n.e(3057).then(n.bind(n,9827)),"@site/v1/10-configs/01-ui.mdx",9827],"1457b77c":[()=>n.e(3242).then(n.t.bind(n,2776,19)),"/home/runner/work/izanami/izanami/manual/.docusaurus/@easyops-cn/docusaurus-search-local/default/plugin-route-context-module-100.json",2776],"1756af0d":[()=>Promise.all([n.e(532),n.e(3418)]).then(n.bind(n,4297)),"@site/docs/03-usages/01-features.mdx",4297],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,3857)),"@theme/DocItem",3857],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,2027)),"@theme/SearchPage",2027],"1ad66b9e":[()=>n.e(2399).then(n.t.bind(n,3769,19)),"/home/runner/work/izanami/izanami/manual/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"1ee94ba8":[()=>n.e(82).then(n.bind(n,8937)),"@site/docs/04-guides/11-configuration.mdx",8937],"22a808b3":[()=>n.e(9097).then(n.bind(n,8299)),"@site/v1/08-ui.mdx",8299],"2524d653":[()=>Promise.all([n.e(532),n.e(8841)]).then(n.bind(n,521)),"@site/docs/03-usages/03-organisation.mdx",521],"28294f75":[()=>Promise.all([n.e(532),n.e(3451)]).then(n.bind(n,9270)),"@site/docs/04-guides/01-env-contexts.mdx",9270],"28ea13a0":[()=>n.e(5305).then(n.bind(n,2882)),"@site/v1/17-clients/03-node.mdx",2882],"2c55d6de":[()=>n.e(8882).then(n.bind(n,1805)),"@site/v1/11-features-flipping/03-api.mdx",1805],"2e7f27e2":[()=>n.e(9545).then(n.bind(n,515)),"@site/docs/04-guides/index.mdx",515],"309e43de":[()=>n.e(1141).then(n.bind(n,9350)),"@site/v1/12-experiments/01-ui.mdx",9350],"3651c730":[()=>n.e(7596).then(n.bind(n,6064)),"@site/v1/11-features-flipping/index.mdx",6064],"37d37b99":[()=>n.e(6732).then(n.bind(n,3713)),"@site/v1/11-features-flipping/04-lock.mdx",3713],"382abdc7":[()=>Promise.all([n.e(532),n.e(9748)]).then(n.bind(n,1716)),"@site/docs/04-guides/08-user-invitation.mdx",1716],"38c1ccfe":[()=>n.e(7703).then(n.bind(n,9012)),"@site/v1/index.mdx",9012],"39cf9c2b":[()=>n.e(8764).then(n.bind(n,5458)),"@site/docs/02-concepts/index.mdx",5458],"3cfbbc0f":[()=>n.e(9523).then(n.bind(n,1781)),"@site/v1/17-clients/04-cli.mdx",1781],"3e4b204b":[()=>n.e(7109).then(n.bind(n,5106)),"@site/v1/10-configs/index.mdx",5106],"404820e5":[()=>n.e(4684).then(n.bind(n,1584)),"@site/v1/02-about.mdx",1584],"404d2a01":[()=>n.e(8298).then(n.bind(n,2927)),"@site/v1/18-tutorials/02-oauth2.mdx",2927],"44ca1fc6":[()=>Promise.all([n.e(532),n.e(7691)]).then(n.bind(n,2602)),"@site/v1/17-clients/01-jvm.mdx",2602],"45bf6ac8":[()=>Promise.all([n.e(532),n.e(562)]).then(n.bind(n,3473)),"@site/docs/04-guides/06-local-scripts.mdx",3473],"4cb46bbe":[()=>n.e(3086).then(n.t.bind(n,8649,19)),"/home/runner/work/izanami/izanami/manual/.docusaurus/docusaurus-plugin-content-docs/v1/plugin-route-context-module-100.json",8649],"52d2f9c5":[()=>Promise.all([n.e(532),n.e(5041)]).then(n.bind(n,1260)),"@site/docs/04-guides/05-import-from-v1.mdx",1260],"54014a70":[()=>n.e(8025).then(n.bind(n,1275)),"@site/v1/07-settings/database.mdx",1275],55940994:[()=>Promise.all([n.e(532),n.e(4310)]).then(n.bind(n,9092)),"@site/docs/01-getstarted/index.mdx",9092],"5a1e6866":[()=>n.e(5284).then(n.bind(n,2548)),"@site/docs/04-guides/10-mailer-configuration.mdx",2548],"5e95c892":[()=>n.e(9661).then(n.bind(n,1892)),"@theme/DocsRoot",1892],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"5ec15e41":[()=>Promise.all([n.e(532),n.e(5831)]).then(n.bind(n,9488)),"@site/docs/04-guides/07-remote-script.mdx",9488],"604919e7":[()=>n.e(6978).then(n.bind(n,7566)),"@site/v1/07-settings/settings.mdx",7566],"61d10066":[()=>n.e(594).then(n.bind(n,824)),"@site/v1/10-configs/03-springconfig.mdx",824],"62eca57d":[()=>n.e(8771).then(n.bind(n,9275)),"@site/v1/03-philosophy.mdx",9275],"692c4667":[()=>n.e(8735).then(n.bind(n,5883)),"@site/docs/04-guides/09-key-configuration.mdx",5883],"6a24d81d":[()=>n.e(4150).then(n.bind(n,3574)),"@site/v1/10-configs/02-api.mdx",3574],"6b55a23b":[()=>n.e(2888).then(n.bind(n,7501)),"@site/v1/11-features-flipping/02-scripts.mdx",7501],"7329b9d1":[()=>n.e(1868).then(n.t.bind(n,2051,19)),"~docs/v1/version-current-metadata-prop-751.json",2051],"7a055ef3":[()=>n.e(968).then(n.bind(n,4510)),"@site/v1/20-developers.mdx",4510],"7a3092a3":[()=>Promise.all([n.e(532),n.e(6826)]).then(n.bind(n,9845)),"@site/v1/17-clients/05-spring-starter.mdx",9845],"83cf5a0e":[()=>n.e(815).then(n.bind(n,9185)),"@site/v1/06-getizanami/01-binaries.mdx",9185],"858bfcaf":[()=>Promise.all([n.e(532),n.e(7461)]).then(n.bind(n,1246)),"@site/docs/05-clients/01-java/index.mdx",1246],"868bc92e":[()=>n.e(9077).then(n.bind(n,9736)),"@site/v1/04-features.mdx",9736],"8a163022":[()=>n.e(7869).then(n.bind(n,7151)),"@site/v1/07-settings/index.mdx",7151],"8c817def":[()=>n.e(235).then(n.bind(n,8947)),"@site/v1/09-api.mdx",8947],"915e538f":[()=>n.e(7229).then(n.bind(n,1216)),"@site/v1/17-clients/index.mdx",1216],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"95f95e10":[()=>Promise.all([n.e(532),n.e(2445)]).then(n.bind(n,1325)),"@site/docs/05-clients/01-java/02-error-handling.mdx",1325],"9af8677d":[()=>n.e(9639).then(n.bind(n,5563)),"@site/docs/04-guides/04-bulk-feature-modification.mdx",5563],a5a0f36f:[()=>n.e(5840).then(n.t.bind(n,5745,19)),"/home/runner/work/izanami/izanami/manual/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],a7bd4aaa:[()=>n.e(8518).then(n.bind(n,8564)),"@theme/DocVersionRoot",8564],a94703ab:[()=>Promise.all([n.e(532),n.e(4368)]).then(n.bind(n,2674)),"@theme/DocRoot",2674],b35c709e:[()=>Promise.all([n.e(532),n.e(2899)]).then(n.bind(n,2185)),"@site/docs/03-usages/02-contexts.mdx",2185],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(4195)]).then(n.bind(n,8282)),"@site/src/pages/index.js",8282],cbc90340:[()=>Promise.all([n.e(532),n.e(5093)]).then(n.bind(n,4529)),"@site/docs/04-guides/02-multi-conditions-feature.mdx",4529],cced1e3d:[()=>n.e(8038).then(n.bind(n,1854)),"@site/v1/05-architecture.mdx",1854],cdfb9db4:[()=>n.e(9076).then(n.bind(n,6342)),"@site/v1/17-clients/02-react.mdx",6342],cf997756:[()=>Promise.all([n.e(532),n.e(1863)]).then(n.bind(n,3723)),"@site/v1/18-tutorials/01-spring.mdx",3723],d5980866:[()=>n.e(2258).then(n.bind(n,1688)),"@site/v1/19-performances.mdx",1688],d86837dc:[()=>n.e(6636).then(n.bind(n,6566)),"@site/docs/03-usages/04-request.mdx",6566],d98f6b02:[()=>Promise.all([n.e(532),n.e(1046)]).then(n.bind(n,8402)),"@site/docs/05-clients/01-java/01-cache.mdx",8402],d9a19508:[()=>Promise.all([n.e(532),n.e(8748)]).then(n.bind(n,2835)),"@site/v1/06-getizanami/index.mdx",2835],dc8f53ac:[()=>n.e(7841).then(n.bind(n,6334)),"@site/v1/06-getizanami/02-docker.mdx",6334],dfda2e39:[()=>n.e(5669).then(n.bind(n,9166)),"@site/v1/14-events.mdx",9166],e157316e:[()=>n.e(9147).then(n.bind(n,2357)),"@site/v1/12-experiments/02-api.mdx",2357],e90300dd:[()=>n.e(3634).then(n.bind(n,6880)),"@site/v1/12-experiments/index.mdx",6880],ea391ed7:[()=>n.e(5903).then(n.bind(n,3807)),"@site/v1/16-authprovider.mdx",3807],efe36f9c:[()=>n.e(9021).then(n.bind(n,8237)),"@site/v1/11-features-flipping/01-ui.mdx",8237],f09d0f18:[()=>Promise.all([n.e(532),n.e(755)]).then(n.bind(n,6223)),"@site/docs/03-usages/index.mdx",6223],f3281aa5:[()=>n.e(8063).then(n.bind(n,7765)),"@site/v1/15-metrics.mdx",7765],f53bace1:[()=>n.e(5960).then(n.bind(n,7682)),"@site/docs/05-clients/index.mdx",7682],f5ac983d:[()=>n.e(959).then(n.bind(n,1894)),"@site/v1/06-getizanami/03-fromsources.mdx",1894],f7b0431a:[()=>n.e(6368).then(n.bind(n,325)),"@site/docs/04-guides/03-query-builder.mdx",325]};var s=n(5893);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(9670),c=n(226);function d(e,t){if("*"===e)return a()({loading:l,loader:()=>n.e(1772).then(n.bind(n,1772)),modules:["@theme/NotFound"],webpack:()=>[1772],render(e,t){const n=e.default;return(0,s.jsx)(c.z,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=i[`${e}-${t}`],d={},f=[],p=[],h=(0,u.Z)(r);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=o[n];r&&(d[t]=r[0],f.push(r[1]),p.push(r[2]))})),a().Map({loading:l,loader:d,modules:f,webpack:()=>p,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const i=r.default;if(!i)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof i&&"function"!=typeof i||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{i[e]=r[e]}));let o=a;const s=n.split(".");s.slice(0,-1).forEach((e=>{o=o[e]})),o[s[s.length-1]]=i}));const i=a.__comp;delete a.__comp;const o=a.__context;return delete a.__context,(0,s.jsx)(c.z,{value:o,children:(0,s.jsx)(i,{...a,...n})})}})}const f=[{path:"/izanami/search",component:d("/izanami/search","67a"),exact:!0},{path:"/izanami/docs",component:d("/izanami/docs","828"),routes:[{path:"/izanami/docs",component:d("/izanami/docs","be2"),routes:[{path:"/izanami/docs",component:d("/izanami/docs","833"),routes:[{path:"/izanami/docs/clients/",component:d("/izanami/docs/clients/","7b7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/clients/java/",component:d("/izanami/docs/clients/java/","37a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/clients/java/cache",component:d("/izanami/docs/clients/java/cache","625"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/clients/java/error-handling",component:d("/izanami/docs/clients/java/error-handling","d1a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/concepts/",component:d("/izanami/docs/concepts/","580"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/getstarted/",component:d("/izanami/docs/getstarted/","9f8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/guides/",component:d("/izanami/docs/guides/","7c0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/guides/bulk-feature-modification",component:d("/izanami/docs/guides/bulk-feature-modification","f37"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/guides/configuration",component:d("/izanami/docs/guides/configuration","91e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/guides/env-contexts",component:d("/izanami/docs/guides/env-contexts","3a6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/guides/import-from-v1",component:d("/izanami/docs/guides/import-from-v1","b45"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/guides/key-configuration",component:d("/izanami/docs/guides/key-configuration","e58"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/guides/local-scripts",component:d("/izanami/docs/guides/local-scripts","122"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/guides/mailer-configuration",component:d("/izanami/docs/guides/mailer-configuration","ae4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/guides/multi-conditions-feature",component:d("/izanami/docs/guides/multi-conditions-feature","39f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/guides/query-builder",component:d("/izanami/docs/guides/query-builder","b4b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/guides/remote-script",component:d("/izanami/docs/guides/remote-script","e46"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/guides/user-invitation",component:d("/izanami/docs/guides/user-invitation","eba"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/usages/",component:d("/izanami/docs/usages/","f2d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/usages/contexts",component:d("/izanami/docs/usages/contexts","7d8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/usages/features",component:d("/izanami/docs/usages/features","06a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/usages/organisation",component:d("/izanami/docs/usages/organisation","d57"),exact:!0,sidebar:"tutorialSidebar"},{path:"/izanami/docs/usages/request",component:d("/izanami/docs/usages/request","944"),exact:!0,sidebar:"tutorialSidebar"}]}]}]},{path:"/izanami/v1",component:d("/izanami/v1","433"),routes:[{path:"/izanami/v1",component:d("/izanami/v1","0b2"),routes:[{path:"/izanami/v1",component:d("/izanami/v1","995"),routes:[{path:"/izanami/v1/",component:d("/izanami/v1/","4b6"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/about",component:d("/izanami/v1/about","92c"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/api",component:d("/izanami/v1/api","4d6"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/architecture",component:d("/izanami/v1/architecture","13a"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/authprovider",component:d("/izanami/v1/authprovider","05e"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/clients/",component:d("/izanami/v1/clients/","b28"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/clients/cli",component:d("/izanami/v1/clients/cli","f96"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/clients/jvm",component:d("/izanami/v1/clients/jvm","4da"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/clients/node",component:d("/izanami/v1/clients/node","afe"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/clients/react",component:d("/izanami/v1/clients/react","58a"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/clients/spring-starter",component:d("/izanami/v1/clients/spring-starter","dfe"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/configs/",component:d("/izanami/v1/configs/","bf8"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/configs/api",component:d("/izanami/v1/configs/api","a47"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/configs/springconfig",component:d("/izanami/v1/configs/springconfig","1f0"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/configs/ui",component:d("/izanami/v1/configs/ui","18c"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/developers",component:d("/izanami/v1/developers","811"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/events",component:d("/izanami/v1/events","f8b"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/experiments/",component:d("/izanami/v1/experiments/","0cf"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/experiments/api",component:d("/izanami/v1/experiments/api","5e6"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/experiments/ui",component:d("/izanami/v1/experiments/ui","22b"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/features",component:d("/izanami/v1/features","c6a"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/features-flipping/",component:d("/izanami/v1/features-flipping/","ab5"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/features-flipping/api",component:d("/izanami/v1/features-flipping/api","e84"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/features-flipping/lock",component:d("/izanami/v1/features-flipping/lock","4e5"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/features-flipping/scripts",component:d("/izanami/v1/features-flipping/scripts","494"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/features-flipping/ui",component:d("/izanami/v1/features-flipping/ui","401"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/getizanami/",component:d("/izanami/v1/getizanami/","68e"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/getizanami/binaries",component:d("/izanami/v1/getizanami/binaries","206"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/getizanami/docker",component:d("/izanami/v1/getizanami/docker","775"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/getizanami/fromsources",component:d("/izanami/v1/getizanami/fromsources","1f1"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/keys",component:d("/izanami/v1/keys","eb4"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/metrics",component:d("/izanami/v1/metrics","415"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/performances",component:d("/izanami/v1/performances","22b"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/philosophy",component:d("/izanami/v1/philosophy","e21"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/settings/",component:d("/izanami/v1/settings/","3c2"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/settings/database",component:d("/izanami/v1/settings/database","f13"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/settings/settings",component:d("/izanami/v1/settings/settings","0b0"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/tutorials/",component:d("/izanami/v1/tutorials/","d91"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/tutorials/oauth2",component:d("/izanami/v1/tutorials/oauth2","4ba"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/tutorials/spring",component:d("/izanami/v1/tutorials/spring","94e"),exact:!0,sidebar:"defaultSidebar"},{path:"/izanami/v1/ui",component:d("/izanami/v1/ui","95e"),exact:!0,sidebar:"defaultSidebar"}]}]}]},{path:"/izanami/",component:d("/izanami/","a38"),exact:!0},{path:"*",component:d("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>i,t:()=>o});var r=n(7294),a=n(5893);const i=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),(0,a.jsx)(i.Provider,{value:n,children:t})}},7221:(e,t,n)=>{"use strict";var r=n(7294),a=n(745),i=n(3727),o=n(405),s=n(412);const l=[n(2497),n(3310),n(8320),n(2295)];var u=n(723),c=n(6550),d=n(8790),f=n(5893);function p(e){let{children:t}=e;return(0,f.jsx)(f.Fragment,{children:t})}var h=n(5742),m=n(2263),g=n(4996),y=n(6668),b=n(1944),v=n(4711),x=n(9727),w=n(3320),k=n(8780),S=n(197);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,m.Z)(),r=(0,v.l)(),a=n[e].htmlLang,i=e=>e.replace("-","_");return(0,f.jsxs)(h.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:i(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,f.jsx)("meta",{property:"og:locale:alternate",content:i(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,m.Z)(),{pathname:r}=(0,c.TH)();return e+(0,k.applyTrailingSlash)((0,g.Z)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:r;return(0,f.jsxs)(h.Z,{children:[(0,f.jsx)("meta",{property:"og:url",content:a}),(0,f.jsx)("link",{rel:"canonical",href:a})]})}function C(){const{i18n:{currentLocale:e}}=(0,m.Z)(),{metadata:t,image:n}=(0,y.L)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(h.Z,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:x.h})]}),n&&(0,f.jsx)(b.d,{image:n}),(0,f.jsx)(_,{}),(0,f.jsx)(E,{}),(0,f.jsx)(S.Z,{tag:w.HX,locale:e}),(0,f.jsx)(h.Z,{children:t.map(((e,t)=>(0,f.jsx)("meta",{...e},t)))})]})}const T=new Map;function N(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var A=n(8934),L=n(8940),P=n(469);function z(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const I=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,P.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,i=t.search===n.search;if(r&&a&&!i)return;const{hash:o}=t;if(o){const e=decodeURIComponent(o.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),z("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function R(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.Z.canUseDOM?z("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=z("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),R(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,f.jsx)(I,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(c.AW,{location:t,render:()=>e})})}}const j=O,F="__docusaurus-base-url-issue-banner-container",D="__docusaurus-base-url-issue-banner",M="__docusaurus-base-url-issue-banner-suggestion-container";function B(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${F}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Y=n(9670);const K=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!K.has(e))(e))return!1;K.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?G(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),R(e))},te=Object.freeze(ee),ne=Boolean(!0);if(s.Z.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(o.B6,{children:(0,f.jsx)(i.VK,{children:(0,f.jsx)(W,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},s=()=>{if(ne)r.startTransition((()=>{a.hydrateRoot(e,t,{onRecoverableError:n})}));else{const i=a.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{i.render(t)}))}};R(window.location.pathname).then(s)}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>f});var r=n(7294),a=n(6809);const i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/izanami/docs","versions":[{"name":"current","label":"2.x.x","isLast":true,"path":"/izanami/docs","mainDocId":"getstarted/index","docs":[{"id":"clients/index","path":"/izanami/docs/clients/","sidebar":"tutorialSidebar"},{"id":"clients/java/cache","path":"/izanami/docs/clients/java/cache","sidebar":"tutorialSidebar"},{"id":"clients/java/error-handling","path":"/izanami/docs/clients/java/error-handling","sidebar":"tutorialSidebar"},{"id":"clients/java/index","path":"/izanami/docs/clients/java/","sidebar":"tutorialSidebar"},{"id":"concepts/index","path":"/izanami/docs/concepts/","sidebar":"tutorialSidebar"},{"id":"getstarted/index","path":"/izanami/docs/getstarted/","sidebar":"tutorialSidebar"},{"id":"guides/bulk-feature-modification","path":"/izanami/docs/guides/bulk-feature-modification","sidebar":"tutorialSidebar"},{"id":"guides/configuration","path":"/izanami/docs/guides/configuration","sidebar":"tutorialSidebar"},{"id":"guides/env-contexts","path":"/izanami/docs/guides/env-contexts","sidebar":"tutorialSidebar"},{"id":"guides/import-from-v1","path":"/izanami/docs/guides/import-from-v1","sidebar":"tutorialSidebar"},{"id":"guides/index","path":"/izanami/docs/guides/","sidebar":"tutorialSidebar"},{"id":"guides/key-configuration","path":"/izanami/docs/guides/key-configuration","sidebar":"tutorialSidebar"},{"id":"guides/local-scripts","path":"/izanami/docs/guides/local-scripts","sidebar":"tutorialSidebar"},{"id":"guides/mailer-configuration","path":"/izanami/docs/guides/mailer-configuration","sidebar":"tutorialSidebar"},{"id":"guides/multi-conditions-feature","path":"/izanami/docs/guides/multi-conditions-feature","sidebar":"tutorialSidebar"},{"id":"guides/query-builder","path":"/izanami/docs/guides/query-builder","sidebar":"tutorialSidebar"},{"id":"guides/remote-script","path":"/izanami/docs/guides/remote-script","sidebar":"tutorialSidebar"},{"id":"guides/user-invitation","path":"/izanami/docs/guides/user-invitation","sidebar":"tutorialSidebar"},{"id":"usages/contexts","path":"/izanami/docs/usages/contexts","sidebar":"tutorialSidebar"},{"id":"usages/features","path":"/izanami/docs/usages/features","sidebar":"tutorialSidebar"},{"id":"usages/index","path":"/izanami/docs/usages/","sidebar":"tutorialSidebar"},{"id":"usages/organisation","path":"/izanami/docs/usages/organisation","sidebar":"tutorialSidebar"},{"id":"usages/request","path":"/izanami/docs/usages/request","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/izanami/docs/getstarted/","label":"Get started"}}}}],"breadcrumbs":true},"v1":{"path":"/izanami/v1","versions":[{"name":"current","label":"Next","isLast":true,"path":"/izanami/v1","mainDocId":"index","docs":[{"id":"about","path":"/izanami/v1/about","sidebar":"defaultSidebar"},{"id":"api","path":"/izanami/v1/api","sidebar":"defaultSidebar"},{"id":"architecture","path":"/izanami/v1/architecture","sidebar":"defaultSidebar"},{"id":"authprovider","path":"/izanami/v1/authprovider","sidebar":"defaultSidebar"},{"id":"clients/cli","path":"/izanami/v1/clients/cli","sidebar":"defaultSidebar"},{"id":"clients/index","path":"/izanami/v1/clients/","sidebar":"defaultSidebar"},{"id":"clients/jvm","path":"/izanami/v1/clients/jvm","sidebar":"defaultSidebar"},{"id":"clients/node","path":"/izanami/v1/clients/node","sidebar":"defaultSidebar"},{"id":"clients/react","path":"/izanami/v1/clients/react","sidebar":"defaultSidebar"},{"id":"clients/spring-starter","path":"/izanami/v1/clients/spring-starter","sidebar":"defaultSidebar"},{"id":"configs/api","path":"/izanami/v1/configs/api","sidebar":"defaultSidebar"},{"id":"configs/index","path":"/izanami/v1/configs/","sidebar":"defaultSidebar"},{"id":"configs/springconfig","path":"/izanami/v1/configs/springconfig","sidebar":"defaultSidebar"},{"id":"configs/ui","path":"/izanami/v1/configs/ui","sidebar":"defaultSidebar"},{"id":"developers","path":"/izanami/v1/developers","sidebar":"defaultSidebar"},{"id":"events","path":"/izanami/v1/events","sidebar":"defaultSidebar"},{"id":"experiments/api","path":"/izanami/v1/experiments/api","sidebar":"defaultSidebar"},{"id":"experiments/index","path":"/izanami/v1/experiments/","sidebar":"defaultSidebar"},{"id":"experiments/ui","path":"/izanami/v1/experiments/ui","sidebar":"defaultSidebar"},{"id":"features","path":"/izanami/v1/features","sidebar":"defaultSidebar"},{"id":"features-flipping/api","path":"/izanami/v1/features-flipping/api","sidebar":"defaultSidebar"},{"id":"features-flipping/index","path":"/izanami/v1/features-flipping/","sidebar":"defaultSidebar"},{"id":"features-flipping/lock","path":"/izanami/v1/features-flipping/lock","sidebar":"defaultSidebar"},{"id":"features-flipping/scripts","path":"/izanami/v1/features-flipping/scripts","sidebar":"defaultSidebar"},{"id":"features-flipping/ui","path":"/izanami/v1/features-flipping/ui","sidebar":"defaultSidebar"},{"id":"getizanami/binaries","path":"/izanami/v1/getizanami/binaries","sidebar":"defaultSidebar"},{"id":"getizanami/docker","path":"/izanami/v1/getizanami/docker","sidebar":"defaultSidebar"},{"id":"getizanami/fromsources","path":"/izanami/v1/getizanami/fromsources","sidebar":"defaultSidebar"},{"id":"getizanami/index","path":"/izanami/v1/getizanami/","sidebar":"defaultSidebar"},{"id":"index","path":"/izanami/v1/","sidebar":"defaultSidebar"},{"id":"keys","path":"/izanami/v1/keys","sidebar":"defaultSidebar"},{"id":"metrics","path":"/izanami/v1/metrics","sidebar":"defaultSidebar"},{"id":"performances","path":"/izanami/v1/performances","sidebar":"defaultSidebar"},{"id":"philosophy","path":"/izanami/v1/philosophy","sidebar":"defaultSidebar"},{"id":"settings/database","path":"/izanami/v1/settings/database","sidebar":"defaultSidebar"},{"id":"settings/index","path":"/izanami/v1/settings/","sidebar":"defaultSidebar"},{"id":"settings/settings","path":"/izanami/v1/settings/settings","sidebar":"defaultSidebar"},{"id":"tutorials/index","path":"/izanami/v1/tutorials/","sidebar":"defaultSidebar"},{"id":"tutorials/oauth2","path":"/izanami/v1/tutorials/oauth2","sidebar":"defaultSidebar"},{"id":"tutorials/spring","path":"/izanami/v1/tutorials/spring","sidebar":"defaultSidebar"},{"id":"ui","path":"/izanami/v1/ui","sidebar":"defaultSidebar"}],"draftIds":[],"sidebars":{"defaultSidebar":{"link":{"path":"/izanami/v1/","label":"index"}}}}],"breadcrumbs":true}}}'),o=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(7529);const l=JSON.parse('{"docusaurusVersion":"3.1.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.1.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.1.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.1.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.1.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.1.1"},"@easyops-cn/docusaurus-search-local":{"type":"package","name":"@easyops-cn/docusaurus-search-local","version":"0.37.4"}}}');var u=n(5893);const c={siteConfig:a.default,siteMetadata:l,globalData:i,i18n:o,codeTranslations:s},d=r.createContext(c);function f(e){let{children:t}=e;return(0,u.jsx)(d.Provider,{value:c,children:t})}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(412),i=n(5742),o=n(8780),s=n(8346),l=n(5893);function u(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,l.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,l.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,l.jsx)(c,{error:t})]})}function c(e){let{error:t}=e;const n=(0,o.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,l.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)(p,{fallback:()=>(0,l.jsx)(u,{error:t,tryAgain:n}),children:[(0,l.jsx)(i.Z,{children:(0,l.jsx)("title",{children:"Page Error"})}),(0,l.jsx)(s.Z,{children:(0,l.jsx)(u,{error:t,tryAgain:n})})]})}const f=e=>(0,l.jsx)(d,{...e});class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??f)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});n(7294);var r=n(405),a=n(5893);function i(e){return(0,a.jsx)(r.ql,{...e})}},3692:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(3727),i=n(8780),o=n(2263),s=n(3919),l=n(412),u=n(8138),c=n(4996),d=n(5893);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:h,isActive:m,"data-noBrokenLinkCheck":g,autoAddBaseUrl:y=!0,...b}=e;const{siteConfig:{trailingSlash:v,baseUrl:x}}=(0,o.Z)(),{withBaseUrl:w}=(0,c.C)(),k=(0,u.Z)(),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const E=f||p;const _=(0,s.Z)(E),C=E?.replace("pathname://","");let T=void 0!==C?(N=C,y&&(e=>e.startsWith("/"))(N)?w(N):N):void 0;var N;T&&_&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:v,baseUrl:x}));const A=(0,r.useRef)(!1),L=n?a.OL:a.rU,P=l.Z.canUseIntersectionObserver,z=(0,r.useRef)(),I=()=>{A.current||null==T||(window.docusaurus.preload(T),A.current=!0)};(0,r.useEffect)((()=>(!P&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{P&&z.current&&z.current.disconnect()})),[z,T,P,_]);const R=T?.startsWith("#")??!1,O=!b.target||"_self"===b.target,j=!T||!_||!O||R;return g||!R&&j||k.collectLink(T),b.id&&k.collectAnchor(b.id),j?(0,d.jsx)("a",{ref:S,href:T,...E&&!_&&{target:"_blank",rel:"noopener noreferrer"},...b}):(0,d.jsx)(L,{...b,onMouseEnter:I,onTouchStart:I,innerRef:e=>{S.current=e,P&&e&&_&&(z.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(z.current.unobserve(e),z.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),z.current.observe(e))},to:T,...n&&{isActive:m,activeClassName:h}})}const p=r.forwardRef(f)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u,I:()=>l});var r=n(7294),a=n(5893);function i(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return i(s({message:n,id:r}),t)}function u(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const o=s({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:i(o,r)})}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>o,Z:()=>s});var r=n(7294),a=n(2263),i=n(3919);function o(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:o=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,i.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return o?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=o();return n(e,t)}},8138:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);n(5893);const a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),i=()=>(0,r.useContext)(a);function o(){return i()}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(7294),a=n(8940);function i(){return(0,r.useContext)(a._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(7294),a=n(8934);function i(){return(0,r.useContext)(a._)}},469:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[i,o]=n;const s=a?`${a}.${i}`:i;r(o)?e(o,s):t[s]=o}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>i,z:()=>o});var r=n(7294),a=n(5893);const i=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(i),s=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return(0,a.jsx)(i.Provider,{value:s,children:t})}},143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>m,gA:()=>f,_r:()=>c,Jo:()=>g,zh:()=>d,yW:()=>h,gB:()=>p});var r=n(6550),a=n(2263),i=n(9935);function o(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=function(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},c=()=>o("docusaurus-plugin-content-docs")??u,d=e=>function(e,t,n){void 0===t&&(t=i.m),void 0===n&&(n={});const r=o(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),i=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!i&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return i}(t,n,e)}function p(e){return d(e).versions}function h(e){const t=d(e);return s(t)}function m(e){const t=d(e),{pathname:n}=(0,r.TH)();return l(t,n)}function g(e){const t=d(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=s(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const i={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(4965),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(6854),n(5691)(`./prism-${e}`)})),delete globalThis.Prism}(r.p1)},7955:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var r=n(6905),a=n(5999),i=n(6668),o=n(3692),s=n(8138);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var u=n(5893);function c(e){let{as:t,id:n,...c}=e;const d=(0,s.Z)(),{navbar:{hideOnScroll:f}}=(0,i.L)();if("h1"===t||!n)return(0,u.jsx)(t,{...c,id:void 0});d.collectAnchor(n);const p=(0,a.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof c.children?c.children:n});return(0,u.jsxs)(t,{...c,className:(0,r.Z)("anchor",f?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,c.className),id:n,children:[c.children,(0,u.jsx)(o.Z,{className:"hash-link",to:`#${n}`,"aria-label":p,title:p,children:"\u200b"})]})}},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});n(7294);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(5893);function i(e){let{width:t=13.5,height:n=13.5}=e;return(0,a.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},8346:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Ot});var r=n(7294),a=n(6905),i=n(4763),o=n(1944),s=n(6550),l=n(5999),u=n(5936),c=n(5893);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,u.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const h=(0,l.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function m(e){const t=e.children??h,{containerRef:n,onClick:r}=p();return(0,c.jsx)("div",{ref:n,role:"region","aria-label":h,children:(0,c.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(5281),y=n(9727);const b={skipToContent:"skipToContent_fXgn"};function v(){return(0,c.jsx)(m,{className:b.skipToContent})}var x=n(6668),w=n(9689);function k(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:i,...o}=e;return(0,c.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...o,children:(0,c.jsx)("g",{stroke:r,strokeWidth:a,children:(0,c.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function E(e){return(0,c.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.Z)("clean-btn close",S.closeButton,e.className),children:(0,c.jsx)(k,{width:14,height:14,strokeWidth:3.1})})}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,x.L)(),{content:n}=t;return(0,c.jsx)("div",{...e,className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function N(){const{announcementBar:e}=(0,x.L)(),{isActive:t,close:n}=(0,w.nT)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:i}=e;return(0,c.jsxs)("div",{className:T.announcementBar,style:{backgroundColor:r,color:a},role:"banner",children:[i&&(0,c.jsx)("div",{className:T.announcementBarPlaceholder}),(0,c.jsx)(C,{className:T.announcementBarContent}),i&&(0,c.jsx)(E,{onClick:n,className:T.announcementBarClose})]})}var A=n(3163),L=n(2466);var P=n(902),z=n(3102);const I=r.createContext(null);function R(e){let{children:t}=e;const n=function(){const e=(0,A.e)(),t=(0,z.HY)(),[n,a]=(0,r.useState)(!1),i=null!==t.component,o=(0,P.D9)(i);return(0,r.useEffect)((()=>{i&&!o&&a(!0)}),[i,o]),(0,r.useEffect)((()=>{i?e.shown||a(!0):a(!1)}),[e.shown,i]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,c.jsx)(I.Provider,{value:n,children:t})}function O(e){if(e.component){const t=e.component;return(0,c.jsx)(t,{...e.props})}}function j(){const e=(0,r.useContext)(I);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),i=(0,z.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:O(i)})),[a,i,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:i}=j();return(0,c.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,c.jsxs)("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i}),children:[(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var D=n(2949),M=n(2389);function B(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function $(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function H(e){let{className:t,buttonClassName:n,value:r,onChange:i}=e;const o=(0,M.Z)(),s=(0,l.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,l.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,c.jsx)("div",{className:(0,a.Z)(U.toggle,t),children:(0,c.jsxs)("button",{className:(0,a.Z)("clean-btn",U.toggleButton,!o&&U.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===r?"light":"dark"),disabled:!o,title:s,"aria-label":s,"aria-live":"polite",children:[(0,c.jsx)(B,{className:(0,a.Z)(U.toggleIcon,U.lightToggleIcon)}),(0,c.jsx)($,{className:(0,a.Z)(U.toggleIcon,U.darkToggleIcon)})]})})}const Z=r.memo(H),Q={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function V(e){let{className:t}=e;const n=(0,x.L)().navbar.style,r=(0,x.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:i}=(0,D.I)();return r?null:(0,c.jsx)(Z,{className:t,buttonClassName:"dark"===n?Q.darkNavbarColorModeToggle:void 0,value:a,onChange:i})}var W=n(1327);function q(){return(0,c.jsx)(W.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function G(){const e=(0,A.e)();return(0,c.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,c.jsx)(k,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,c.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,c.jsx)(q,{}),(0,c.jsx)(V,{className:"margin-right--md"}),(0,c.jsx)(G,{})]})}var K=n(3692),X=n(4996),J=n(3919);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:i,html:o,isDropdownLink:s,prependBaseUrlToHref:l,...u}=e;const d=(0,X.Z)(r),f=(0,X.Z)(t),p=(0,X.Z)(a,{forcePrependBaseUrl:!0}),h=i&&a&&!(0,J.Z)(a),m=o?{dangerouslySetInnerHTML:{__html:o}}:{children:(0,c.jsxs)(c.Fragment,{children:[i,h&&(0,c.jsx)(te.Z,{...s&&{width:12,height:12}})]})};return a?(0,c.jsx)(K.Z,{href:l?p:a,...u,...m}):(0,c.jsx)(K.Z,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(f)},...u,...m})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const i=(0,c.jsx)(ne,{className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,c.jsx)("li",{children:i}):i}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,c.jsx)("li",{className:"menu__list-item",children:(0,c.jsx)(ne,{className:(0,a.Z)("menu__link",t),...r})})}function ie(e){let{mobile:t=!1,position:n,...r}=e;const a=t?ae:re;return(0,c.jsx)(a,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var oe=n(6043),se=n(8596),le=n(2263);const ue={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ce(e,t){return e.some((e=>function(e,t){return!!(0,se.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:i,onClick:o,...s}=e;const l=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),(0,c.jsxs)("div",{ref:l,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u}),children:[(0,c.jsx)(ne,{"aria-haspopup":"true","aria-expanded":u,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",i),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))},children:s.children??s.label}),(0,c.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(We,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function fe(e){let{items:t,className:n,position:i,onClick:o,...l}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,le.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ce(t,u),{collapsed:f,toggleCollapsed:p,setCollapsed:h}=(0,oe.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&h(!d)}),[u,d,h]),(0,c.jsxs)("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f}),children:[(0,c.jsx)(ne,{role:"button",className:(0,a.Z)(ue.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),p()},children:l.children??l.label}),(0,c.jsx)(oe.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f,children:t.map(((e,t)=>(0,r.createElement)(We,{mobile:!0,isDropdownItem:!0,onClick:o,activeClassName:"menu__link--active",...e,key:t})))})]})}function pe(e){let{mobile:t=!1,...n}=e;const r=t?fe:de;return(0,c.jsx)(r,{...n})}var he=n(4711);function me(e){let{width:t=20,height:n=20,...r}=e;return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const ge="iconLanguage_nlXk";var ye=n(1029),be=n(6010),ve=n(373),xe=n(143),we=n(22),ke=n(8202),Se=n(3926),Ee=n(1073),_e=n(2539),Ce=n(726);const Te='',Ne='',Ae='',Le='',Pe='',ze='',Ie='',Re={searchBar:"searchBar_RVTs",dropdownMenu:"dropdownMenu_qbY6",searchBarLeft:"searchBarLeft_MXDe",suggestion:"suggestion_fB_2",cursor:"cursor_eG29",hitTree:"hitTree_kk6K",hitIcon:"hitIcon_a7Zy",hitPath:"hitPath_ieM4",noResultsIcon:"noResultsIcon_EBY5",hitFooter:"hitFooter_E9YW",hitWrapper:"hitWrapper_sAK8",hitTitle:"hitTitle_vyVt",hitAction:"hitAction_NqkB",hideAction:"hideAction_vcyE",noResults:"noResults_l6Q3",searchBarContainer:"searchBarContainer_NW3z",searchBarLoadingRing:"searchBarLoadingRing_YnHq",searchClearButton:"searchClearButton_qk4g",searchIndexLoading:"searchIndexLoading_EJ1f",searchHintContainer:"searchHintContainer_Pkmr",searchHint:"searchHint_iIMx",focused:"focused_OWtg",input:"input_FOTf",hint:"hint_URu1",suggestions:"suggestions_X8XU",dataset:"dataset_QiCy",empty:"empty_eITn"};function Oe(e){let{document:t,type:n,page:r,metadata:a,tokens:i,isInterOfTree:o,isLastOfTree:s}=e;const l=0===n,u=1===n,c=[];o?c.push(ze):s&&c.push(Ie);const d=c.map((e=>`${e}`)),f=`${l?Te:u?Ne:Ae}`,p=[`${(0,Ce.o)(t.t,(0,Ee.m)(a,"t"),i)}`];if(!o&&!s&&ye.H6){const e=r?(r.b??[]).concat(r.t).concat(t.s&&t.s!==r.t?t.s:[]):t.b;p.push(`${(0,Se.e)(e??[])}`)}else l||p.push(`${(0,_e.C)(r.t||(t.u.startsWith("/docs/api-reference/")?"API Reference":""),i)}`);const h=`${Le}`;return[...d,f,``,...p,"",h].join("")}function je(){return`${Pe}${(0,l.I)({id:"theme.SearchBar.noResultsText",message:"No results"})}`}var Fe=n(311);async function De(){const e=await Promise.all([n.e(8443),n.e(5525)]).then(n.t.bind(n,8443,23)),t=e.default;return t.noConflict?t.noConflict():e.noConflict&&e.noConflict(),t}const Me="_highlight";const Be=function(e){let{handleSearchBarToggle:t}=e;const n=(0,M.Z)(),{siteConfig:{baseUrl:a}}=(0,le.Z)(),i=(0,xe.gA)();let o=a;try{const{preferredVersion:e}=(0,ve.J)(i?.pluginId??ye.gQ);e&&!e.isLast&&(o=e.path+"/")}catch(j){if(ye.l9&&!(j instanceof P.i6))throw j}const u=(0,s.k6)(),d=(0,s.TH)(),f=(0,r.useRef)(null),p=(0,r.useRef)(new Map),h=(0,r.useRef)(!1),[m,g]=(0,r.useState)(!1),[y,b]=(0,r.useState)(!1),[v,x]=(0,r.useState)(""),w=(0,r.useRef)(null),k=(0,r.useRef)(""),[S,E]=(0,r.useState)("");(0,r.useEffect)((()=>{if(!Array.isArray(ye.Kc))return;let e="";if(d.pathname.startsWith(o)){const t=d.pathname.substring(o.length),n=ye.Kc.find((e=>t===e||t.startsWith(`${e}/`)));n&&(e=n)}k.current!==e&&(p.current.delete(e),k.current=e),E(e)}),[d.pathname,o]);const _=!!ye.hG&&Array.isArray(ye.Kc)&&""===S,C=(0,r.useCallback)((async()=>{if(_||p.current.get(S))return;p.current.set(S,"loading"),w.current?.autocomplete.destroy(),g(!0);const[{wrappedIndexes:e,zhDictionary:t},n]=await Promise.all([(0,we.w)(o,S),De()]);if(w.current=n(f.current,{hint:!1,autoselect:!0,openOnFocus:!0,cssClasses:{root:(0,be.Z)(Re.searchBar,{[Re.searchBarLeft]:"left"===ye.pu}),noPrefix:!0,dropdownMenu:Re.dropdownMenu,input:Re.input,hint:Re.hint,suggestions:Re.suggestions,suggestion:Re.suggestion,cursor:Re.cursor,dataset:Re.dataset,empty:Re.empty}},[{source:(0,ke.v)(e,t,ye.qo),templates:{suggestion:Oe,empty:je,footer:e=>{let{query:t,isEmpty:n}=e;if(n&&!S)return;const r=(e=>{let{query:t,isEmpty:n}=e;const r=document.createElement("a"),i=new URLSearchParams,s=(0,l.I)({id:"theme.SearchBar.seeAll",message:"See all results"}),c=(0,l.I)({id:"theme.SearchBar.seeAllOutsideContext",message:"See results outside {context}"},{context:S}),d=(0,l.I)({id:"theme.SearchBar.searchInContext",message:"See all results in {context}"},{context:S});let f;if(i.set("q",t),f=S&&n?c:S?d:s,Array.isArray(ye.Kc)&&!n&&i.set("ctx",S),o!==a){if(!o.startsWith(a))throw new Error(`Version url '${o}' does not start with base url '${a}', this is a bug of \`@easyops-cn/docusaurus-search-local\`, please report it.`);i.set("version",o.substring(a.length))}const p=`${a}search?${i.toString()}`;return r.href=p,r.textContent=f,r.addEventListener("click",(e=>{e.ctrlKey||e.metaKey||(e.preventDefault(),w.current?.autocomplete.close(),u.push(p))})),r})({query:t,isEmpty:n}),i=document.createElement("div");return i.className=Re.hitFooter,i.appendChild(r),i}}}]).on("autocomplete:selected",(function(e,t){let{document:{u:n,h:r},tokens:a}=t;f.current?.blur();let i=n;if(ye.vc&&a.length>0){const e=new URLSearchParams;for(const t of a)e.append(Me,t);i+=`?${e.toString()}`}r&&(i+=r),u.push(i)})).on("autocomplete:closed",(()=>{f.current?.blur()})),p.current.set(S,"done"),g(!1),h.current){const e=f.current;e.value&&w.current?.autocomplete.open(),e.focus()}}),[_,S,o,a,u]);(0,r.useEffect)((()=>{if(!ye.vc)return;const e=n?new URLSearchParams(d.search).getAll(Me):[];setTimeout((()=>{const t=document.querySelector("article");if(!t)return;const n=new ye.vc(t);n.unmark(),0!==e.length&&n.mark(e),x(e.join(" ")),w.current?.autocomplete.setVal(e.join(" "))}))}),[n,d.search,d.pathname]);const[T,N]=(0,r.useState)(!1),A=(0,r.useCallback)((()=>{h.current=!0,C(),N(!0),t?.(!0)}),[t,C]),L=(0,r.useCallback)((()=>{N(!1),t?.(!1)}),[t]),z=(0,r.useCallback)((()=>{C()}),[C]),I=(0,r.useCallback)((e=>{x(e.target.value),e.target.value&&b(!0)}),[]),R=!!n&&/mac/i.test(navigator.userAgentData?.platform??navigator.platform);(0,r.useEffect)((()=>{if(!ye.AY)return;const e=e=>{!(R?e.metaKey:e.ctrlKey)||"k"!==e.key&&"K"!==e.key||(e.preventDefault(),f.current?.focus(),A())};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[R,A]);const O=(0,r.useCallback)((()=>{const e=new URLSearchParams(d.search);e.delete(Me);const t=e.toString(),n=d.pathname+(""!=t?`?${t}`:"")+d.hash;n!=d.pathname+d.search+d.hash&&u.push(n),x(""),w.current?.autocomplete.setVal("")}),[d.pathname,d.search,d.hash,u]);return(0,c.jsxs)("div",{className:(0,be.Z)("navbar__search",Re.searchBarContainer,{[Re.searchIndexLoading]:m&&y,[Re.focused]:T}),hidden:_,children:[(0,c.jsx)("input",{placeholder:(0,l.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),"aria-label":"Search",className:"navbar__search-input",onMouseEnter:z,onFocus:A,onBlur:L,onChange:I,ref:f,value:v}),(0,c.jsx)(Fe.Z,{className:Re.searchBarLoadingRing}),ye.AY&&ye.t_&&(""!==v?(0,c.jsx)("button",{className:Re.searchClearButton,onClick:O,children:"\u2715"}):n&&(0,c.jsxs)("div",{className:Re.searchHintContainer,children:[(0,c.jsx)("kbd",{className:Re.searchHint,children:R?"\u2318":"ctrl"}),(0,c.jsx)("kbd",{className:Re.searchHint,children:"K"})]}))]})};function $e(e){return(0,c.jsx)(c.Fragment,{children:(0,c.jsx)(Be,{...e})})}const Ue={navbarSearchContainer:"navbarSearchContainer_Bca1"};function He(e){let{children:t,className:n}=e;return(0,c.jsx)("div",{className:(0,a.Z)(n,Ue.navbarSearchContainer),children:t})}var Ze=n(3438);const Qe=e=>e.docs.find((t=>t.id===e.mainDocId));const Ve={default:ie,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...i}=e;const{i18n:{currentLocale:o,locales:u,localeConfigs:d}}=(0,le.Z)(),f=(0,he.l)(),{search:p,hash:h}=(0,s.TH)(),m=[...n,...u.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${h}${a}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===o?t?"menu__link--active":"dropdown__link--active":""}})),...r],g=t?(0,l.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[o].label;return(0,c.jsx)(pe,{...i,mobile:t,label:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(me,{className:ge}),g]}),items:m})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,c.jsx)(He,{className:n,children:(0,c.jsx)($e,{})})},dropdown:pe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:i=!1}=e;const o=i?"li":"div";return(0,c.jsx)(o,{className:(0,a.Z)({navbar__item:!r&&!i,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:i}=(0,xe.Iw)(r),o=(0,Ze.vY)(t,r),s=i?.path===o?.path;return null===o||o.unlisted&&!s?null:(0,c.jsx)(ie,{exact:!0,...a,isActive:()=>s||!!i?.sidebar&&i.sidebar===o.sidebar,label:n??o.id,to:o.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:i}=(0,xe.Iw)(r),o=(0,Ze.oz)(t,r).link;if(!o)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,c.jsx)(ie,{exact:!0,...a,isActive:()=>i?.sidebar===t,label:n??o.label,to:o.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const i=(0,Ze.lO)(r)[0],o=t??i.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return(0,c.jsx)(ie,{...a,label:o,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:i,...o}=e;const{search:u,hash:d}=(0,s.TH)(),f=(0,xe.Iw)(n),p=(0,xe.gB)(n),{savePreferredVersionName:h}=(0,ve.J)(n),m=[...a,...p.map((e=>{const t=f.alternateDocVersions[e.name]??Qe(e);return{label:e.label,to:`${t.path}${u}${d}`,isActive:()=>e===f.activeVersion,onClick:()=>h(e.name)}})),...i],g=(0,Ze.lO)(n)[0],y=t&&m.length>1?(0,l.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,b=t&&m.length>1?void 0:Qe(g).path;return m.length<=1?(0,c.jsx)(ie,{...o,mobile:t,label:y,to:b,isActive:r?()=>!1:void 0}):(0,c.jsx)(pe,{...o,mobile:t,label:y,to:b,items:m,isActive:r?()=>!1:void 0})}};function We(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Ve[r];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,c.jsx)(a,{...n})}function qe(){const e=(0,A.e)(),t=(0,x.L)().navbar.items;return(0,c.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(We,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ge(e){return(0,c.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,c.jsx)(l.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Ye(){const e=0===(0,x.L)().navbar.items.length,t=j();return(0,c.jsxs)(c.Fragment,{children:[!e&&(0,c.jsx)(Ge,{onClick:()=>t.hide()}),t.content]})}function Ke(){const e=(0,A.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,c.jsx)(F,{header:(0,c.jsx)(Y,{}),primaryMenu:(0,c.jsx)(qe,{}),secondaryMenu:(0,c.jsx)(Ye,{})}):null}const Xe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Je(e){return(0,c.jsx)("div",{role:"presentation",...e,className:(0,a.Z)("navbar-sidebar__backdrop",e.className)})}function et(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:i}}=(0,x.L)(),o=(0,A.e)(),{navbarRef:s,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),i=(0,r.useRef)(0),o=(0,r.useCallback)((e=>{null!==e&&(i.current=e.getBoundingClientRect().height)}),[]);return(0,L.RF)(((t,r)=>{let{scrollY:o}=t;if(!e)return;if(o=s?n(!1):o+u{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:o,isNavbarVisible:t}}(n);return(0,c.jsxs)("nav",{ref:s,"aria-label":(0,l.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Xe.navbarHideable,!d&&Xe.navbarHidden],{"navbar--dark":"dark"===i,"navbar--primary":"primary"===i,"navbar-sidebar--show":o.shown}),children:[t,(0,c.jsx)(Je,{onClick:o.toggle}),(0,c.jsx)(Ke,{})]})}var tt=n(8780);const nt={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function rt(e){return(0,c.jsx)("button",{type:"button",...e,children:(0,c.jsx)(l.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function at(e){let{error:t}=e;const n=(0,tt.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{className:nt.errorBoundaryError,children:n})}class it extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const ot="right";function st(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,c.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,c.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function lt(){const{toggle:e,shown:t}=(0,A.e)();return(0,c.jsx)("button",{onClick:e,"aria-label":(0,l.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,c.jsx)(st,{})})}const ut={colorModeToggle:"colorModeToggle_DEke"};function ct(e){let{items:t}=e;return(0,c.jsx)(c.Fragment,{children:t.map(((e,t)=>(0,c.jsx)(it,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,c.jsx)(We,{...e})},t)))})}function dt(e){let{left:t,right:n}=e;return(0,c.jsxs)("div",{className:"navbar__inner",children:[(0,c.jsx)("div",{className:"navbar__items",children:t}),(0,c.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function ft(){const e=(0,A.e)(),t=(0,x.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??ot)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,c.jsx)(dt,{left:(0,c.jsxs)(c.Fragment,{children:[!e.disabled&&(0,c.jsx)(lt,{}),(0,c.jsx)(q,{}),(0,c.jsx)(ct,{items:n})]}),right:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(ct,{items:r}),(0,c.jsx)(V,{className:ut.colorModeToggle}),!a&&(0,c.jsx)(He,{children:(0,c.jsx)($e,{})})]})})}function pt(){return(0,c.jsx)(et,{children:(0,c.jsx)(ft,{})})}function ht(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:i,...o}=t,s=(0,X.Z)(n),l=(0,X.Z)(r,{forcePrependBaseUrl:!0});return(0,c.jsxs)(K.Z,{className:"footer__link-item",...r?{href:i?l:r}:{to:s},...o,children:[a,r&&!(0,J.Z)(r)&&(0,c.jsx)(te.Z,{})]})}function mt(e){let{item:t}=e;return t.html?(0,c.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)("li",{className:"footer__item",children:(0,c.jsx)(ht,{item:t})},t.href??t.to)}function gt(e){let{column:t}=e;return(0,c.jsxs)("div",{className:"col footer__col",children:[(0,c.jsx)("div",{className:"footer__title",children:t.title}),(0,c.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,c.jsx)(mt,{item:e},t)))})]})}function yt(e){let{columns:t}=e;return(0,c.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,c.jsx)(gt,{column:e},t)))})}function bt(){return(0,c.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function vt(e){let{item:t}=e;return t.html?(0,c.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)(ht,{item:t})}function xt(e){let{links:t}=e;return(0,c.jsx)("div",{className:"footer__links text--center",children:(0,c.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(vt,{item:e}),t.length!==n+1&&(0,c.jsx)(bt,{})]},n)))})})}function wt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,c.jsx)(yt,{columns:t}):(0,c.jsx)(xt,{links:t})}var kt=n(9965);const St={footerLogoLink:"footerLogoLink_BH7S"};function Et(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,c.jsx)(kt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function _t(e){let{logo:t}=e;return t.href?(0,c.jsx)(K.Z,{href:t.href,className:St.footerLogoLink,target:t.target,children:(0,c.jsx)(Et,{logo:t})}):(0,c.jsx)(Et,{logo:t})}function Ct(e){let{copyright:t}=e;return(0,c.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Tt(e){let{style:t,links:n,logo:r,copyright:i}=e;return(0,c.jsx)("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t}),children:(0,c.jsxs)("div",{className:"container container-fluid",children:[n,(r||i)&&(0,c.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,c.jsx)("div",{className:"margin-bottom--sm",children:r}),i]})]})})}function Nt(){const{footer:e}=(0,x.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,c.jsx)(Tt,{style:a,links:n&&n.length>0&&(0,c.jsx)(wt,{links:n}),logo:r&&(0,c.jsx)(_t,{logo:r}),copyright:t&&(0,c.jsx)(Ct,{copyright:t})})}const At=r.memo(Nt),Lt=(0,P.Qc)([D.S,w.pl,L.OC,ve.L5,o.VC,function(e){let{children:t}=e;return(0,c.jsx)(z.n2,{children:(0,c.jsx)(A.M,{children:(0,c.jsx)(R,{children:t})})})}]);function Pt(e){let{children:t}=e;return(0,c.jsx)(Lt,{children:t})}var zt=n(7955);function It(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)("main",{className:"container margin-vert--xl",children:(0,c.jsx)("div",{className:"row",children:(0,c.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,c.jsx)(zt.Z,{as:"h1",className:"hero__title",children:(0,c.jsx)(l.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,c.jsx)("div",{className:"margin-vert--lg",children:(0,c.jsx)(rt,{onClick:n,className:"button button--primary shadow--lw"})}),(0,c.jsx)("hr",{}),(0,c.jsx)("div",{className:"margin-vert--md",children:(0,c.jsx)(at,{error:t})})]})})})}const Rt={mainWrapper:"mainWrapper_z2l0"};function Ot(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,y.t)(),(0,c.jsxs)(Pt,{children:[(0,c.jsx)(o.d,{title:s,description:l}),(0,c.jsx)(v,{}),(0,c.jsx)(N,{}),(0,c.jsx)(pt,{}),(0,c.jsx)("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Rt.mainWrapper,r),children:(0,c.jsx)(i.Z,{fallback:e=>(0,c.jsx)(It,{...e}),children:t})}),!n&&(0,c.jsx)(At,{})]})}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var r=n(3692),a=n(4996),i=n(2263),o=n(6668),s=n(9965),l=n(5893);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const i={light:(0,a.Z)(t.src),dark:(0,a.Z)(t.srcDark||t.src)},o=(0,l.jsx)(s.Z,{className:t.className,sources:i,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:o}):o}function c(e){const{siteConfig:{title:t}}=(0,i.Z)(),{navbar:{title:n,logo:s}}=(0,o.L)(),{imageClassName:c,titleClassName:d,...f}=e,p=(0,a.Z)(s?.href||"/"),h=n?"":t,m=s?.alt??h;return(0,l.jsxs)(r.Z,{to:p,...f,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(u,{logo:s,alt:m,imageClassName:c}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});n(7294);var r=n(5742),a=n(5893);function i(e){let{locale:t,version:n,tag:i}=e;const o=t;return(0,a.jsxs)(r.Z,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),i&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:i}),o&&(0,a.jsx)("meta",{name:"docsearch:language",content:o}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),i&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:i})]})}},9965:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(7294),a=n(788),i=n(2389),o=n(2949);const s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(5893);function u(e){let{className:t,children:n}=e;const u=(0,i.Z)(),{colorMode:c}=(0,o.I)();return(0,l.jsx)(l.Fragment,{children:(u?"dark"===c?["dark"]:["light"]:["light","dark"]).map((e=>{const i=n({theme:e,className:(0,a.Z)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:i},e)}))})}function c(e){const{sources:t,className:n,alt:r,...a}=e;return(0,l.jsx)(u,{className:n,children:e=>{let{theme:n,className:i}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:i,...a})}})}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>u,z:()=>y});var r=n(7294),a=n(412),i=n(469),o=n(1442),s=n(5893);const l="ease-in-out";function u(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),i=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:i}}const c={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function f(e,t){const n=t?c:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function p(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const i=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=a?.duration??function(e){if((0,o.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${a?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!i.current)return f(e,n),void(i.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function h(e){if(!a.Z.canUseDOM)return e?c:d}function m(e){let{as:t="div",collapsed:n,children:a,animation:i,onCollapseTransitionEnd:o,className:l,disableSSRStyle:u}=e;const c=(0,r.useRef)(null);return p({collapsibleRef:c,collapsed:n,animation:i}),(0,s.jsx)(t,{ref:c,style:u?void 0:h(n),onTransitionEnd:e=>{"height"===e.propertyName&&(f(c.current,n),o?.(n))},className:l,children:a})}function g(e){let{collapsed:t,...n}=e;const[a,o]=(0,r.useState)(!t),[l,u]=(0,r.useState)(t);return(0,i.Z)((()=>{t||o(!0)}),[t]),(0,i.Z)((()=>{a&&u(t)}),[a,t]),a?(0,s.jsx)(m,{...n,collapsed:l}):null}function y(e){let{lazy:t,...n}=e;const r=t?g:m;return(0,s.jsx)(r,{...n})}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>h});var r=n(7294),a=n(2389),i=n(12),o=n(902),s=n(6668),l=n(5893);const u=(0,i.WA)("docusaurus.announcement.dismiss"),c=(0,i.WA)("docusaurus.announcement.id"),d=()=>"true"===u.get(),f=e=>u.set(String(e)),p=r.createContext(null);function h(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,a.Z)(),[n,i]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{i(d())}),[]);const o=(0,r.useCallback)((()=>{f(!0),i(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&f(!1),!r&&d()||i(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:o})),[e,n,o])}();return(0,l.jsx)(p.Provider,{value:n,children:t})}function m(){const e=(0,r.useContext)(p);if(!e)throw new o.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>y,S:()=>g});var r=n(7294),a=n(412),i=n(902),o=n(12),s=n(6668),l=n(5893);const u=r.createContext(void 0),c="theme",d=(0,o.WA)(c),f={light:"light",dark:"dark"},p=e=>e===f.dark?f.dark:f.light,h=e=>a.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),m=e=>{d.set(p(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[a,i]=(0,r.useState)(h(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const o=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(i(t),a&&m(t)):(i(n?window.matchMedia("(prefers-color-scheme: dark)").matches?f.dark:f.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=d.get();null!==t&&o(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,o]);const l=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||l.current?l.current=window.matchMedia("print").matches:o(null)};return e.addListener(r),()=>e.removeListener(r)}),[o,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:o,get isDarkTheme(){return a===f.dark},setLightTheme(){o(f.light)},setDarkTheme(){o(f.dark)}})),[a,o])}();return(0,l.jsx)(u.Provider,{value:n,children:t})}function y(){const e=(0,r.useContext)(u);if(null==e)throw new i.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>y});var r=n(7294),a=n(143),i=n(9935),o=n(6668),s=n(3438),l=n(902),u=n(12),c=n(5893);const d=e=>`docs-preferred-version-${e}`,f={save:(e,t,n)=>{(0,u.WA)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(d(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const h=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,o.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[i,s]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=f.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(f.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[i,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){f.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=m();return(0,c.jsx)(h.Provider,{value:n,children:t})}function y(e){let{children:t}=e;return s.cE?(0,c.jsx)(g,{children:t}):(0,c.jsx)(c.Fragment,{children:t})}function b(){const e=(0,r.useContext)(h);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=i.m);const t=(0,a.zh)(e),[n,o]=b(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{o.savePreferredVersion(e,t)}),[o,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>u,b:()=>l});var r=n(7294),a=n(902),i=n(5893);const o=Symbol("EmptyContext"),s=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return(0,i.jsx)(s.Provider,{value:o,children:t})}function u(){const e=(0,r.useContext)(s);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>s});var r=n(7294),a=n(902),i=n(5893);const o=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,i.jsx)(o.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocsVersionProvider");return e}},3163:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>p});var r=n(7294),a=n(3102),i=n(7524),o=n(1980),s=n(6668),l=n(902),u=n(5893);const c=r.createContext(void 0);function d(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,s.L)().navbar;return 0===t.length&&!e.component}(),t=(0,i.i)(),n=!e&&"mobile"===t,[l,u]=(0,r.useState)(!1);(0,o.Rb)((()=>{if(l)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:l})),[e,n,c,l])}function f(e){let{children:t}=e;const n=d();return(0,u.jsx)(c.Provider,{value:n,children:t})}function p(){const e=r.useContext(c);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>u,n2:()=>s});var r=n(7294),a=n(902),i=n(5893);const o=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,i.jsx)(o.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function u(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,s]=i,l=(0,a.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>i});var r=n(7294);const a="navigation-with-keyboard";function i(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>s});var r=n(7294),a=n(412);const i={desktop:"desktop",mobile:"mobile",ssr:"ssr"},o=996;function s(e){let{desktopBreakpoint:t=o}=void 0===e?{}:e;const[n,s]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){s(function(e){if(!a.Z.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?i.desktop:i.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},1442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},3438:(e,t,n)=>{"use strict";n.d(t,{LM:()=>p,SN:()=>E,_F:()=>g,cE:()=>f,f:()=>b,lO:()=>w,oz:()=>k,s1:()=>x,vY:()=>S});var r=n(7294),a=n(6550),i=n(8790),o=n(143),s=n(373),l=n(4477),u=n(1116),c=n(7392),d=n(8596);const f=!!o._r;function p(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=p(t);if(e)return e}}(e):void 0:e.href}const h=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),m=(e,t)=>e.some((e=>g(e,t)));function g(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||m(e.items,t))}function y(e,t){switch(e.type){case"category":return g(e,t)||e.items.some((e=>y(e,t)));case"link":return!e.unlisted||g(e,t);default:return!0}}function b(e,t){return(0,r.useMemo)((()=>e.filter((e=>y(e,t)))),[e,t])}function v(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const i of t)if("category"===i.type&&((0,d.Mg)(i.href,n)||e(i.items))||"link"===i.type&&(0,d.Mg)(i.href,n)){return r&&"category"!==i.type||a.unshift(i),!0}return!1}(t),a}function x(){const e=(0,u.V)(),{pathname:t}=(0,a.TH)(),n=(0,o.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?v({sidebarItems:e.items,pathname:t}):null}function w(e){const{activeVersion:t}=(0,o.Iw)(e),{preferredVersion:n}=(0,s.J)(e),a=(0,o.yW)(e);return(0,r.useMemo)((()=>(0,c.j)([t,n,a].filter(Boolean))),[t,n,a])}function k(e,t){const n=w(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function S(e,t){const n=w(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,c.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function E(e){let{route:t}=e;const n=(0,a.TH)(),r=(0,l.E)(),o=t.routes,s=o.find((e=>(0,a.LX)(n.pathname,e)));if(!s)return null;const u=s.sidebar,c=u?r.docsSidebars[u]:void 0;return{docElement:(0,i.H)(o),sidebarName:u,sidebarItems:c}}},1980:(e,t,n)=>{"use strict";n.d(t,{Rb:()=>o,_X:()=>s});var r=n(7294),a=n(6550),i=n(902);function o(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,r.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}},7392:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>d,VC:()=>h});var r=n(7294),a=n(788),i=n(5742),o=n(226);function s(){const e=r.useContext(o._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(4996),u=n(2263);var c=n(5893);function d(e){let{title:t,description:n,keywords:r,image:a,children:o}=e;const s=function(e){const{siteConfig:t}=(0,u.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,l.C)(),f=a?d(a,{absolute:!0}):void 0;return(0,c.jsxs)(i.Z,{children:[t&&(0,c.jsx)("title",{children:s}),t&&(0,c.jsx)("meta",{property:"og:title",content:s}),n&&(0,c.jsx)("meta",{name:"description",content:n}),n&&(0,c.jsx)("meta",{property:"og:description",content:n}),r&&(0,c.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),f&&(0,c.jsx)("meta",{property:"og:image",content:f}),f&&(0,c.jsx)("meta",{name:"twitter:image",content:f}),o]})}const f=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const o=r.useContext(f),s=(0,a.Z)(o,t);return(0,c.jsxs)(f.Provider,{value:s,children:[(0,c.jsx)(i.Z,{children:(0,c.jsx)("html",{className:s})}),n]})}function h(e){let{children:t}=e;const n=s(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return(0,c.jsx)(p,{className:(0,a.Z)(r,i),children:t})}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>s,Qc:()=>c,Ql:()=>u,i6:()=>l,zX:()=>o});var r=n(7294),a=n(469),i=n(5893);function o(e){const t=(0,r.useRef)(e);return(0,a.Z)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,a.Z)((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return(0,i.jsx)(i.Fragment,{children:e.reduceRight(((e,t)=>(0,i.jsx)(t,{children:e})),n)})}}},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>o,Ns:()=>s});var r=n(7294),a=n(723),i=n(2263);function o(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,i.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>m,OC:()=>c,RF:()=>p,o5:()=>h});var r=n(7294),a=n(412),i=n(2389),o=n(469),s=n(902),l=n(5893);const u=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,l.jsx)(u.Provider,{value:n,children:t})}function d(){const e=(0,r.useContext)(u);if(null==e)throw new s.i6("ScrollControllerProvider");return e}const f=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=d(),a=(0,r.useRef)(f()),i=(0,s.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=f();i(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[i,n,...t])}function h(){const e=d(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),a=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,o.Z)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:a}}function m(){const e=(0,r.useRef)(null),t=(0,i.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&at&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>a});n(2263);const r="default";function a(e,t){return`docs-${e}-${t}`}},12:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>c,WA:()=>u});var r=n(7294);const a="localStorage";function i(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const i=document.createEvent("StorageEvent");i.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(i)}function o(e){if(void 0===e&&(e=a),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function u(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=o(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function c(e,t){const n=(0,r.useRef)((()=>null===e?l:u(e,t))).current(),a=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,r.useSyncExternalStore)(a,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(2263),a=n(6550),i=n(8780);function o(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:o,currentLocale:s}}=(0,r.Z)(),{pathname:l}=(0,a.TH)(),u=(0,i.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),c=s===o?e:e.replace(`/${s}/`,"/"),d=u.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===o?`${c}`:`${c}${e}/`}(n)}${d}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>o});var r=n(7294),a=n(6550),i=n(902);function o(e){const t=(0,a.TH)(),n=(0,i.D9)(t),o=(0,i.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&o({location:t,previousLocation:n})}),[o,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),i="/"===a||a===r?a:(o=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(o):function(e){return e.endsWith("/")?e.slice(0,-1):e}(o));var o;return e.replace(a,i)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var i=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},311:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(6010);const a={loadingRing:"loadingRing_RJI3","loading-ring":"loading-ring_FB5o"};var i=n(5893);function o(e){let{className:t}=e;return(0,i.jsxs)("div",{className:(0,r.Z)(a.loadingRing,t),children:[(0,i.jsx)("div",{}),(0,i.jsx)("div",{}),(0,i.jsx)("div",{}),(0,i.jsx)("div",{})]})}},22:(e,t,n)=>{"use strict";n.d(t,{w:()=>s});var r=n(1336),a=n.n(r),i=n(1029);const o=new Map;function s(e,t){const n=`${e}${t}`;let r=o.get(n);return r||(r=async function(e,t){{const n=`${e}${i.J.replace("{dir}",t?`-${t.replace(/\//g,"-")}`:"")}`;if(new URL(n,location.origin).origin!==location.origin)throw new Error("Unexpected version url");const r=await(await fetch(n)).json(),o=r.map(((e,t)=>{let{documents:n,index:r}=e;return{type:t,documents:n,index:a().Index.load(r)}})),s=r.reduce(((e,t)=>{for(const n of t.index.invertedIndex)/\p{Unified_Ideograph}/u.test(n[0][0])&&e.add(n[0]);return e}),new Set);return{wrappedIndexes:o,zhDictionary:Array.from(s)}}return{wrappedIndexes:[],zhDictionary:[]}}(e,t),o.set(n,r)),r}},8202:(e,t,n)=>{"use strict";n.d(t,{v:()=>l});var r=n(1336),a=n.n(r);var i=n(1029);function o(e){return s(e).concat(s(e.filter((e=>{const t=e[e.length-1];return!t.trailing&&t.maybeTyping})),!0))}function s(e,t){return e.map((e=>({tokens:e.map((e=>e.value)),term:e.map((e=>({value:e.value,presence:a().Query.presence.REQUIRED,wildcard:(t?e.trailing||e.maybeTyping:e.trailing)?a().Query.wildcard.TRAILING:a().Query.wildcard.NONE})))})))}function l(e,t,n){return function(r,s){const l=function(e,t){if(1===t.length&&["ja","jp","th"].includes(t[0]))return a()[t[0]].tokenizer(e).map((e=>e.toString()));let n=/[^-\s]+/g;return t.includes("zh")&&(n=/\w+|\p{Unified_Ideograph}+/gu),e.toLowerCase().match(n)||[]}(r,i.dK);if(0===l.length)return void s([]);const u=function(e,t){const n=function(e,t){const n=[];return function e(r,a){if(0===r.length)return void n.push(a);const i=r[0];if(/\p{Unified_Ideograph}/u.test(i)){const n=function(e,t){const n=[];return function e(r,a){let i=0,o=!1;for(const s of t)if(r.substr(0,s.length)===s){const t={missed:a.missed,term:a.term.concat({value:s})};r.length>s.length?e(r.substr(s.length),t):n.push(t),o=!0}else for(let t=s.length-1;t>i;t-=1){const l=s.substr(0,t);if(r.substr(0,t)===l){i=t;const s={missed:a.missed,term:a.term.concat({value:l,trailing:!0})};r.length>t?e(r.substr(t),s):n.push(s),o=!0;break}}o||(r.length>0?e(r.substr(1),{missed:a.missed+1,term:a.term}):a.term.length>0&&n.push(a))}(e,{missed:0,term:[]}),n.sort(((e,t)=>{const n=e.missed>0?1:0,r=t.missed>0?1:0;return n!==r?n-r:e.term.length-t.term.length})).map((e=>e.term))}(i,t);for(const t of n){const n=a.concat(...t);e(r.slice(1),n)}}else{const t=a.concat({value:i});e(r.slice(1),t)}}(e,[]),n}(e,t);if(0===n.length)return[{tokens:e,term:e.map((e=>({value:e,presence:a().Query.presence.REQUIRED,wildcard:a().Query.wildcard.LEADING|a().Query.wildcard.TRAILING})))}];for(const a of n)a[a.length-1].maybeTyping=!0;const r=[];for(const o of i.dK)if("en"===o)i._k||r.unshift(a().stopWordFilter);else{const e=a()[o];e.stopWordFilter&&r.unshift(e.stopWordFilter)}let s;if(r.length>0){const e=e=>r.reduce(((e,t)=>e.filter((e=>t(e.value)))),e);s=[];const t=[];for(const r of n){const n=e(r);s.push(n),n.length0&&t.push(n)}n.push(...t)}else s=n.slice();const l=[];for(const a of s)if(a.length>2)for(let e=a.length-1;e>=0;e-=1)l.push(a.slice(0,e).concat(a.slice(e+1)));return o(n).concat(o(l))}(l,t),c=[];e:for(const{term:t,tokens:a}of u)for(const{documents:r,index:i,type:o}of e)if(c.push(...i.query((e=>{for(const n of t)e.term(n.value,{wildcard:n.wildcard,presence:n.presence})})).slice(0,n).filter((e=>!c.some((t=>t.document.i.toString()===e.ref)))).slice(0,n-c.length).map((t=>{const n=r.find((e=>e.i.toString()===t.ref));return{document:n,type:o,page:0!==o&&e[0].documents.find((e=>e.i===n.p)),metadata:t.matchData.metadata,tokens:a,score:t.score}}))),c.length>=n)break e;!function(e){e.forEach(((e,t)=>{e.index=t})),e.sort(((t,n)=>{let r=t.type>0&&t.page?e.findIndex((e=>e.document===t.page)):t.index,a=n.type>0&&n.page?e.findIndex((e=>e.document===n.page)):n.index;return-1===r&&(r=t.index),-1===a&&(a=n.index),r===a?0===t.type?-1:0===n.type?1:t.index-n.index:r-a}))}(c),function(e){e.forEach(((t,n)=>{n>0&&t.page&&e.some((e=>e.document===t.page))&&(n{"use strict";function r(e){return e.join(" \u203a ")}n.d(t,{e:()=>r})},1690:(e,t,n)=>{"use strict";function r(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}n.d(t,{X:()=>r})},1073:(e,t,n)=>{"use strict";function r(e,t){const n=[];for(const r of Object.values(e))r[t]&&n.push(...r[t].position);return n.sort(((e,t)=>e[0]-t[0]||t[1]-e[1]))}n.d(t,{m:()=>r})},2539:(e,t,n)=>{"use strict";n.d(t,{C:()=>a});var r=n(1690);function a(e,t,n){const i=[];for(const o of t){const n=e.toLowerCase().indexOf(o);if(n>=0){n>0&&i.push(a(e.substr(0,n),t)),i.push(`${(0,r.X)(e.substr(n,o.length))}`);const s=n+o.length;s${(0,r.X)(e)}`:(0,r.X)(e):i.join("")}},726:(e,t,n)=>{"use strict";n.d(t,{o:()=>l});var r=n(1690),a=n(2539);const i=/\w+|\p{Unified_Ideograph}/u;function o(e){const t=[];let n=0,r=e;for(;r.length>0;){const a=r.match(i);if(!a){t.push(r);break}a.index>0&&t.push(r.substring(0,a.index)),t.push(a[0]),n+=a.index+a[0].length,r=e.substring(n)}return t}var s=n(1029);function l(e,t,n,i){void 0===i&&(i=s.Hk);const{chunkIndex:l,chunks:u}=function(e,t,n){const i=[];let s=0,l=0,u=-1;for(;sl){const t=o(e.substring(l,c)).map((e=>({html:(0,r.X)(e),textLength:e.length})));for(const e of t)i.push(e)}-1===u&&(u=i.length),l=c+d,i.push({html:(0,a.C)(e.substring(c,l),n,!0),textLength:d})}}if(l({html:(0,r.X)(e),textLength:e.length})));for(const e of t)i.push(e)}return{chunkIndex:u,chunks:i}}(e,t,n),c=u.slice(0,l),d=u[l],f=[d.html],p=u.slice(l+1);let h=d.textLength,m=0,g=0,y=!1,b=!1;for(;h0){const e=c.pop();h+e.textLength<=i?(f.unshift(e.html),m+=e.textLength,h+=e.textLength):(y=!0,c.length=0)}else{if(!(p.length>0))break;{const e=p.shift();h+e.textLength<=i?(f.push(e.html),g+=e.textLength,h+=e.textLength):(b=!0,p.length=0)}}return(y||c.length>0)&&f.unshift("\u2026"),(b||p.length>0)&&f.push("\u2026"),f.join("")}},1029:(e,t,n)=>{"use strict";n.d(t,{vc:()=>o(),gQ:()=>g,H6:()=>f,hG:()=>v,l9:()=>y,dK:()=>s,_k:()=>l,pu:()=>m,AY:()=>p,t_:()=>h,Kc:()=>b,J:()=>u,Hk:()=>d,qo:()=>c,pQ:()=>x});var r=n(1336),a=n.n(r),i=n(813),o=n.n(i);n(892)(a()),n(1728).w(a()),n(4182)(a());const s=["en","zh"],l=!1,u="search-index{dir}.json?_=71b836f4",c=8,d=50,f=!0,p=!0,h=!0,m="right",g=void 0,y=!0,b=null,v=!1,x=!1},1728:(e,t,n)=>{"use strict";function r(e){const t=new RegExp("^[^"+e+"]+","u"),n=new RegExp("[^"+e+"]+$","u");return function(e){return e.update((function(e){return e.replace(t,"").replace(n,"")}))}}function a(e,t){e.trimmerSupport.generateTrimmer=r,e.zh=function(){this.pipeline.reset(),this.pipeline.add(e.zh.trimmer,e.zh.stopWordFilter),t&&(this.tokenizer=t)},t&&(e.zh.tokenizer=t),e.zh.wordCharacters="\\u3400-\\u4DBF\\u4E00-\\u9FFC\\uFA0E\\uFA0F\\uFA11\\uFA13\\uFA14\\uFA1F\\uFA21\\uFA23\\uFA24\\uFA27-\\uFA29\\u{20000}-\\u{2A6DD}\\u{2A700}-\\u{2B734}\\u{2B740}-\\u{2B81D}\\u{2B820}-\\u{2CEA1}\\u{2CEB0}-\\u{2EBE0}\\u{30000}-\\u{3134A}",e.zh.trimmer=e.trimmerSupport.generateTrimmer(e.zh.wordCharacters),e.Pipeline.registerFunction(e.zh.trimmer,"trimmer-zh"),e.zh.stopWordFilter=e.generateStopWordFilter("\u7684 \u4e00 \u4e0d \u5728 \u4eba \u6709 \u662f \u4e3a \u4ee5 \u4e8e \u4e0a \u4ed6 \u800c \u540e \u4e4b \u6765 \u53ca \u4e86 \u56e0 \u4e0b \u53ef \u5230 \u7531 \u8fd9 \u4e0e \u4e5f \u6b64 \u4f46 \u5e76 \u4e2a \u5176 \u5df2 \u65e0 \u5c0f \u6211 \u4eec \u8d77 \u6700 \u518d \u4eca \u53bb \u597d \u53ea \u53c8 \u6216 \u5f88 \u4ea6 \u67d0 \u628a \u90a3 \u4f60 \u4e43 \u5b83 \u5427 \u88ab \u6bd4 \u522b \u8d81 \u5f53 \u4ece \u5230 \u5f97 \u6253 \u51e1 \u513f \u5c14 \u8be5 \u5404 \u7ed9 \u8ddf \u548c \u4f55 \u8fd8 \u5373 \u51e0 \u65e2 \u770b \u636e \u8ddd \u9760 \u5566 \u4e86 \u53e6 \u4e48 \u6bcf \u4eec \u561b \u62ff \u54ea \u90a3 \u60a8 \u51ed \u4e14 \u5374 \u8ba9 \u4ecd \u5565 \u5982 \u82e5 \u4f7f \u8c01 \u867d \u968f \u540c \u6240 \u5979 \u54c7 \u55e1 \u5f80 \u54ea \u4e9b \u5411 \u6cbf \u54df \u7528 \u4e8e \u54b1 \u5219 \u600e \u66fe \u81f3 \u81f4 \u7740 \u8bf8 \u81ea".split(" ")),e.Pipeline.registerFunction(e.zh.stopWordFilter,"stopWordFilter-zh")}n.d(t,{w:()=>a})},6010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta});const a=function(){for(var e,t,n=0,a="";n{"use strict";n.d(t,{lX:()=>x,q_:()=>C,ob:()=>p,PP:()=>N,Ep:()=>f});var r=n(7462);function a(e){return"/"===e.charAt(0)}function i(e,t){for(var n=t,r=n+1,a=e.length;r=0;f--){var p=o[f];"."===p?i(o,f):".."===p?(i(o,f),d++):d&&(i(o,f),d--)}if(!u)for(;d--;d)o.unshift("..");!u||""===o[0]||o[0]&&a(o[0])||o.unshift("");var h=o.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};var s=n(8776);function l(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var i;"string"==typeof e?(i=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),i.state=t):(void 0===(i=(0,r.Z)({},e)).pathname&&(i.pathname=""),i.search?"?"!==i.search.charAt(0)&&(i.search="?"+i.search):i.search="",i.hash?"#"!==i.hash.charAt(0)&&(i.hash="#"+i.hash):i.hash="",void 0!==t&&void 0===i.state&&(i.state=t));try{i.pathname=decodeURI(i.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+i.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(i.key=n),a?i.pathname?"/"!==i.pathname.charAt(0)&&(i.pathname=o(i.pathname,a.pathname)):i.pathname=a.pathname:i.pathname||(i.pathname="/"),i}function h(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof r?r(i,a):a(!0):a(!1!==i)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=p(e,t,m(),x.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(x.entries[x.index]=a,d({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=x.index+e;return t>=0&&t{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?o:s[e.$$typeof]||a}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=o;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var a=p(n);a&&a!==h&&e(t,a,r)}var o=c(n);d&&(o=o.concat(d(n)));for(var s=l(t),m=l(n),g=0;g{"use strict";e.exports=function(e,t,n,r,a,i,o,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,i,o,s],c=0;(l=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},4182:function(e,t,n){var r,a;r=function(){return function(e){e.multiLanguage=function(){for(var t=Array.prototype.slice.call(arguments),n=t.join("-"),r="",a=[],i=[],o=0;o=n&&t[(a-=n)>>3]&1<<(7&a))return this.cursor++,!0}return!1},in_grouping_b:function(t,n,r){if(this.cursor>this.limit_backward){var a=e.charCodeAt(this.cursor-1);if(a<=r&&a>=n&&t[(a-=n)>>3]&1<<(7&a))return this.cursor--,!0}return!1},out_grouping:function(t,n,r){if(this.cursorr||a>3]&1<<(7&a)))return this.cursor++,!0}return!1},out_grouping_b:function(t,n,r){if(this.cursor>this.limit_backward){var a=e.charCodeAt(this.cursor-1);if(a>r||a>3]&1<<(7&a)))return this.cursor--,!0}return!1},eq_s:function(t,n){if(this.limit-this.cursor>1),d=0,f=s0||a==r||u)break;u=!0}}for(;;){if(s>=(p=t[r]).s_size){if(this.cursor=i+p.s_size,!p.method)return p.result;var m=p.method();if(this.cursor=i+p.s_size,m)return p.result}if((r=p.substring_i)<0)return 0}},find_among_b:function(t,n){for(var r=0,a=n,i=this.cursor,o=this.limit_backward,s=0,l=0,u=!1;;){for(var c=r+(a-r>>1),d=0,f=s=0;p--){if(i-f==o){d=-1;break}if(d=e.charCodeAt(i-1-f)-h.s[p])break;f++}if(d<0?(a=c,l=f):(r=c,s=f),a-r<=1){if(r>0||a==r||u)break;u=!0}}for(;;){var h;if(s>=(h=t[r]).s_size){if(this.cursor=i-h.s_size,!h.method)return h.result;var m=h.method();if(this.cursor=i-h.s_size,m)return h.result}if((r=h.substring_i)<0)return 0}},replace_s:function(t,n,r){var a=r.length-(n-t),i=e.substring(0,t),o=e.substring(n);return e=i+r+o,this.limit+=a,this.cursor>=n?this.cursor+=a:this.cursor>t&&(this.cursor=t),a},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>e.length)throw"faulty slice operation"},slice_from:function(e){this.slice_check(),this.replace_s(this.bra,this.ket,e)},slice_del:function(){this.slice_from("")},insert:function(e,t,n){var r=this.replace_s(e,t,n);e<=this.bra&&(this.bra+=r),e<=this.ket&&(this.ket+=r)},slice_to:function(){return this.slice_check(),e.substring(this.bra,this.ket)},eq_v_b:function(e){return this.eq_s_b(e.length,e)}}}},e.trimmerSupport={generateTrimmer:function(e){var t=new RegExp("^[^"+e+"]+"),n=new RegExp("[^"+e+"]+$");return function(e){return"function"==typeof e.update?e.update((function(e){return e.replace(t,"").replace(n,"")})):e.replace(t,"").replace(n,"")}}}}})?r.call(t,n,t,e):r)||(e.exports=a)},1336:(e,t,n)=>{var r,a;!function(){var i,o,s,l,u,c,d,f,p,h,m,g,y,b,v,x,w,k,S,E,_,C,T,N,A,L,P,z,I,R,O=function(e){var t=new O.Builder;return t.pipeline.add(O.trimmer,O.stopWordFilter,O.stemmer),t.searchPipeline.add(O.stemmer),e.call(t,t),t.build()};O.version="2.3.9",O.utils={},O.utils.warn=(i=this,function(e){i.console&&console.warn&&console.warn(e)}),O.utils.asString=function(e){return null==e?"":e.toString()},O.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r0){var l=O.utils.clone(t)||{};l.position=[o,s],l.index=a.length,a.push(new O.Token(n.slice(o,i),l))}o=i+1}}return a},O.tokenizer.separator=/[\s\-]+/,O.Pipeline=function(){this._stack=[]},O.Pipeline.registeredFunctions=Object.create(null),O.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&O.utils.warn("Overwriting existing registered function: "+t),e.label=t,O.Pipeline.registeredFunctions[e.label]=e},O.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||O.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},O.Pipeline.load=function(e){var t=new O.Pipeline;return e.forEach((function(e){var n=O.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},O.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){O.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},O.Pipeline.prototype.after=function(e,t){O.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},O.Pipeline.prototype.before=function(e,t){O.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},O.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},O.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(ie&&(n=a),i!=e);)r=n-t,a=t+Math.floor(r/2),i=this.elements[2*a];return i==e||i>e?2*a:is?u+=2:o==s&&(t+=n[l+1]*r[u+1],l+=2,u+=2);return t},O.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},O.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var i,o=a.str.charAt(0);o in a.node.edges?i=a.node.edges[o]:(i=new O.TokenSet,a.node.edges[o]=i),1==a.str.length&&(i.final=!0),r.push({node:i,editsRemaining:a.editsRemaining,str:a.str.slice(1)})}if(0!=a.editsRemaining){if("*"in a.node.edges)var s=a.node.edges["*"];else{s=new O.TokenSet;a.node.edges["*"]=s}if(0==a.str.length&&(s.final=!0),r.push({node:s,editsRemaining:a.editsRemaining-1,str:a.str}),a.str.length>1&&r.push({node:a.node,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)}),1==a.str.length&&(a.node.final=!0),a.str.length>=1){if("*"in a.node.edges)var l=a.node.edges["*"];else{l=new O.TokenSet;a.node.edges["*"]=l}1==a.str.length&&(l.final=!0),r.push({node:l,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)})}if(a.str.length>1){var u,c=a.str.charAt(0),d=a.str.charAt(1);d in a.node.edges?u=a.node.edges[d]:(u=new O.TokenSet,a.node.edges[d]=u),1==a.str.length&&(u.final=!0),r.push({node:u,editsRemaining:a.editsRemaining-1,str:c+a.str.slice(2)})}}}return n},O.TokenSet.fromString=function(e){for(var t=new O.TokenSet,n=t,r=0,a=e.length;r=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},O.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},O.Index.prototype.search=function(e){return this.query((function(t){new O.QueryParser(e,t).parse()}))},O.Index.prototype.query=function(e){for(var t=new O.Query(this.fields),n=Object.create(null),r=Object.create(null),a=Object.create(null),i=Object.create(null),o=Object.create(null),s=0;s1?1:e},O.Builder.prototype.k1=function(e){this._k1=e},O.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var a=0;a=this.length)return O.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},O.QueryLexer.prototype.width=function(){return this.pos-this.start},O.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},O.QueryLexer.prototype.backup=function(){this.pos-=1},O.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=O.QueryLexer.EOS&&this.backup()},O.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(O.QueryLexer.TERM)),e.ignore(),e.more())return O.QueryLexer.lexText},O.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(O.QueryLexer.EDIT_DISTANCE),O.QueryLexer.lexText},O.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(O.QueryLexer.BOOST),O.QueryLexer.lexText},O.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(O.QueryLexer.TERM)},O.QueryLexer.termSeparator=O.tokenizer.separator,O.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==O.QueryLexer.EOS)return O.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return O.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(O.QueryLexer.TERM),O.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(O.QueryLexer.TERM),O.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(O.QueryLexer.PRESENCE),O.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(O.QueryLexer.PRESENCE),O.QueryLexer.lexText;if(t.match(O.QueryLexer.termSeparator))return O.QueryLexer.lexTerm}else e.escapeCharacter()}},O.QueryParser=function(e,t){this.lexer=new O.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},O.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=O.QueryParser.parseClause;e;)e=e(this);return this.query},O.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},O.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},O.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},O.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case O.QueryLexer.PRESENCE:return O.QueryParser.parsePresence;case O.QueryLexer.FIELD:return O.QueryParser.parseField;case O.QueryLexer.TERM:return O.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new O.QueryParseError(n,t.start,t.end)}},O.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=O.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=O.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new O.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new O.QueryParseError(n,t.start,t.end)}switch(r.type){case O.QueryLexer.FIELD:return O.QueryParser.parseField;case O.QueryLexer.TERM:return O.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new O.QueryParseError(n,r.start,r.end)}}},O.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new O.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var a=e.peekLexeme();if(null==a){r="expecting term, found nothing";throw new O.QueryParseError(r,t.start,t.end)}if(a.type===O.QueryLexer.TERM)return O.QueryParser.parseTerm;r="expecting term, found '"+a.type+"'";throw new O.QueryParseError(r,a.start,a.end)}},O.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case O.QueryLexer.TERM:return e.nextClause(),O.QueryParser.parseTerm;case O.QueryLexer.FIELD:return e.nextClause(),O.QueryParser.parseField;case O.QueryLexer.EDIT_DISTANCE:return O.QueryParser.parseEditDistance;case O.QueryLexer.BOOST:return O.QueryParser.parseBoost;case O.QueryLexer.PRESENCE:return e.nextClause(),O.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new O.QueryParseError(r,n.start,n.end)}else e.nextClause()}},O.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new O.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case O.QueryLexer.TERM:return e.nextClause(),O.QueryParser.parseTerm;case O.QueryLexer.FIELD:return e.nextClause(),O.QueryParser.parseField;case O.QueryLexer.EDIT_DISTANCE:return O.QueryParser.parseEditDistance;case O.QueryLexer.BOOST:return O.QueryParser.parseBoost;case O.QueryLexer.PRESENCE:return e.nextClause(),O.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new O.QueryParseError(r,a.start,a.end)}else e.nextClause()}},O.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new O.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case O.QueryLexer.TERM:return e.nextClause(),O.QueryParser.parseTerm;case O.QueryLexer.FIELD:return e.nextClause(),O.QueryParser.parseField;case O.QueryLexer.EDIT_DISTANCE:return O.QueryParser.parseEditDistance;case O.QueryLexer.BOOST:return O.QueryParser.parseBoost;case O.QueryLexer.PRESENCE:return e.nextClause(),O.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new O.QueryParseError(r,a.start,a.end)}else e.nextClause()}},void 0===(a="function"==typeof(r=function(){return O})?r.call(t,n,t,e):r)||(e.exports=a)}()},813:function(e){e.exports=function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1])||arguments[1],a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=a,this.iframesTimeout=i}return n(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach((function(t){var n=e.filter((function(e){return e.contains(t)})).length>0;-1!==e.indexOf(t)||n||e.push(t)})),e}},{key:"getIframeContents",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var a=e.contentWindow;if(r=a.document,!a||!r)throw new Error("iframe inaccessible")}catch(i){n()}r&&t(r)}},{key:"isIframeBlank",value:function(e){var t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,a=!1,i=null,o=function o(){if(!a){a=!0,clearTimeout(i);try{r.isIframeBlank(e)||(e.removeEventListener("load",o),r.getIframeContents(e,t,n))}catch(s){n()}}};e.addEventListener("load",o),i=setTimeout(o,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(r){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,(function(){return!0}),(function(e){r++,n.waitForIframes(e.querySelector("html"),(function(){--r||t()}))}),(function(e){e||t()}))}},{key:"forEachIframe",value:function(t,n,r){var a=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},o=t.querySelectorAll("iframe"),s=o.length,l=0;o=Array.prototype.slice.call(o);var u=function(){--s<=0&&i(l)};s||u(),o.forEach((function(t){e.matches(t,a.exclude)?u():a.onIframeReady(t,(function(e){n(t)&&(l++,r(e)),u()}),u)}))}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:(null===t||e.nextNode())&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var a=!1,i=!1;return r.forEach((function(e,t){e.val===n&&(a=t,i=e.handled)})),this.compareNodeIframe(e,t,n)?(!1!==a||i?!1===a||i||(r[a].handled=!0):r.push({val:n,handled:!0}),!0):(!1===a&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var a=this;e.forEach((function(e){e.handled||a.getIframeContents(e.val,(function(e){a.createInstanceOnIframe(e).forEachNode(t,n,r)}))}))}},{key:"iterateThroughNodes",value:function(e,t,n,r,a){for(var i=this,o=this.createIterator(t,e,r),s=[],l=[],u=void 0,c=void 0,d=function(){var e=i.getIteratorNode(o);return c=e.prevNode,u=e.node};d();)this.iframes&&this.forEachIframe(t,(function(e){return i.checkIframeFilter(u,c,e,s)}),(function(t){i.createInstanceOnIframe(t).forEachNode(e,(function(e){return l.push(e)}),r)})),l.push(u);l.forEach((function(e){n(e)})),this.iframes&&this.handleOpenIframes(s,e,n,r),a()}},{key:"forEachNode",value:function(e,t,n){var r=this,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},i=this.getContexts(),o=i.length;o||a(),i.forEach((function(i){var s=function(){r.iterateThroughNodes(e,i,t,n,(function(){--o<=0&&a()}))};r.iframes?r.waitForIframes(i,s):s()}))}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var a=!1;return n.every((function(t){return!r.call(e,t)||(a=!0,!1)})),a}return!1}}]),e}(),i=function(){function i(e){t(this,i),this.ctx=e,this.ie=!1;var n=window.navigator.userAgent;(n.indexOf("MSIE")>-1||n.indexOf("Trident")>-1)&&(this.ie=!0)}return n(i,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===(void 0===r?"undefined":e(r))&&"function"==typeof r[n]&&r[n]("mark.js: "+t)}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e)}},{key:"createSynonymsRegExp",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var a in t)if(t.hasOwnProperty(a)){var i=t[a],o="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(a):this.escapeStr(a),s="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(i):this.escapeStr(i);""!==o&&""!==s&&(e=e.replace(new RegExp("("+this.escapeStr(o)+"|"+this.escapeStr(s)+")","gm"+n),r+"("+this.processSynomyms(o)+"|"+this.processSynomyms(s)+")"+r))}return e}},{key:"processSynomyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,(function(e){return"\\"===e.charAt(0)?"?":"\x01"}))).replace(/(?:\\)*\*/g,(function(e){return"\\"===e.charAt(0)?"*":"\x02"}))}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,(function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"}))}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("["+t.join("")+"]*"):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105","A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010d","C\xc7\u0106\u010c","d\u0111\u010f","D\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119","E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012b","I\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142","L\u0141","n\xf1\u0148\u0144","N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014d","O\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159","R\u0158","s\u0161\u015b\u0219\u015f","S\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163","T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016b","U\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xff","Y\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017a","Z\u017d\u017b\u0179"]:["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010dC\xc7\u0106\u010c","d\u0111\u010fD\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012bI\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142L\u0141","n\xf1\u0148\u0144N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014dO\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159R\u0158","s\u0161\u015b\u0219\u015fS\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016bU\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xffY\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017aZ\u017d\u017b\u0179"],r=[];return e.split("").forEach((function(a){n.every((function(n){if(-1!==n.indexOf(a)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("["+n+"]","gm"+t),"["+n+"]"),r.push(n)}return!0}))})),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\xa1\xbf",r=this.opt.accuracy,a="string"==typeof r?r:r.value,i="string"==typeof r?[]:r.limiters,o="";switch(i.forEach((function(e){o+="|"+t.escapeStr(e)})),a){case"partially":default:return"()("+e+")";case"complementary":return"()([^"+(o="\\s"+(o||this.escapeStr(n)))+"]*"+e+"[^"+o+"]*)";case"exactly":return"(^|\\s"+o+")("+e+")(?=$|\\s"+o+")"}}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach((function(e){t.opt.separateWordSearch?e.split(" ").forEach((function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)})):e.trim()&&-1===n.indexOf(e)&&n.push(e)})),{keywords:n.sort((function(e,t){return t.length-e.length})),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort((function(e,t){return e.start-t.start})).forEach((function(e){var a=t.callNoMatchOnInvalidRanges(e,r),i=a.start,o=a.end;a.valid&&(e.start=i,e.length=o-i,n.push(e),r=o)})),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n=void 0,r=void 0,a=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?a=!0:(this.log("Ignoring invalid or overlapping range: "+JSON.stringify(e)),this.opt.noMatch(e))):(this.log("Ignoring invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:a}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r=void 0,a=!0,i=n.length,o=t-i,s=parseInt(e.start,10)-o;return(r=(s=s>i?i:s)+parseInt(e.length,10))>i&&(r=i,this.log("End range automatically set to the max value of "+i)),s<0||r-s<0||s>i||r>i?(a=!1,this.log("Invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)):""===n.substring(s,r).replace(/\s+/g,"")&&(a=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:a}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,(function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})}),(function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),(function(){e({value:n,nodes:r})}))}},{key:"matchesExclude",value:function(e){return a.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",a=e.splitText(t),i=a.splitText(n-t),o=document.createElement(r);return o.setAttribute("data-markjs","true"),this.opt.className&&o.setAttribute("class",this.opt.className),o.textContent=a.textContent,a.parentNode.replaceChild(o,a),i}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,a){var i=this;e.nodes.every((function(o,s){var l=e.nodes[s+1];if(void 0===l||l.start>t){if(!r(o.node))return!1;var u=t-o.start,c=(n>o.end?o.end:n)-o.start,d=e.value.substr(0,o.start),f=e.value.substr(c+o.start);if(o.node=i.wrapRangeInTextNode(o.node,u,c),e.value=d+f,e.nodes.forEach((function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=c),e.nodes[n].end-=c)})),n-=c,a(o.node.previousSibling,o.start),!(n>o.end))return!1;t=o.end}return!0}))}},{key:"wrapMatches",value:function(e,t,n,r,a){var i=this,o=0===t?0:t+1;this.getTextNodes((function(t){t.nodes.forEach((function(t){t=t.node;for(var a=void 0;null!==(a=e.exec(t.textContent))&&""!==a[o];)if(n(a[o],t)){var s=a.index;if(0!==o)for(var l=1;l{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function a(e,t,n){return en?n:e}function i(e){return 100*(-1+e)}function o(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+i(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(e)+"%,0)"}:{"margin-left":i(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var i=n.render(!t),u=i.querySelector(r.barSelector),c=r.speed,d=r.easing;return i.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(u,o(e,c,d)),1===e?(l(i,{transition:"none",opacity:1}),i.offsetWidth,setTimeout((function(){l(i,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,o=t.querySelector(r.barSelector),s=e?"-100":i(n.status||0),u=document.querySelector(r.parent);return l(o,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,i=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+i)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function i(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&i(e,n,r);else i(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},4779:(e,t,n)=>{var r=n(5826);e.exports=p,e.exports.parse=i,e.exports.compile=function(e,t){return s(i(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function i(e,t){for(var n,r=[],i=0,o=0,s="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(s+=e.slice(o,p),o=p+d.length,f)s+=f[1];else{var h=e[o],m=n[2],g=n[3],y=n[4],b=n[5],v=n[6],x=n[7];s&&(r.push(s),s="");var w=null!=m&&null!=h&&h!==m,k="+"===v||"*"===v,S="?"===v||"*"===v,E=n[2]||c,_=y||b;r.push({name:g||i++,prefix:m||"",delimiter:E,optional:S,repeat:k,partial:w,asterisk:!!x,pattern:_?u(_):x?".*":"[^"+l(E)+"]+?"})}}return o{!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=r.variable[1].inside,o=0;o{!function(e){var t={pattern:/((?:^|[^\\$])(?:\\{2})*)\$(?:\w+|\{[^{}]*\})/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:null}}};e.languages.gradle=e.languages.extend("clike",{string:{pattern:/'''(?:[^\\]|\\[\s\S])*?'''|'(?:\\.|[^\\'\r\n])*'/,greedy:!0},keyword:/\b(?:apply|def|dependencies|else|if|implementation|import|plugin|plugins|project|repositories|repository|sourceSets|tasks|val)\b/,number:/\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?\d+)?)[glidf]?\b/i,operator:{pattern:/(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.\.(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),e.languages.insertBefore("gradle","string",{shebang:{pattern:/#!.+/,alias:"comment",greedy:!0},"interpolation-string":{pattern:/"""(?:[^\\]|\\[\s\S])*?"""|(["/])(?:\\.|(?!\1)[^\\\r\n])*\1|\$\/(?:[^/$]|\$(?:[/$]|(?![/$]))|\/(?!\$))*\/\$/,greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}}}),e.languages.insertBefore("gradle","punctuation",{"spock-block":/\b(?:and|cleanup|expect|given|setup|then|when|where):/}),e.languages.insertBefore("gradle","function",{annotation:{pattern:/(^|[^.])@\w+/,lookbehind:!0,alias:"punctuation"}}),t.inside.expression.inside=e.languages.gradle}(Prism)},2503:()=>{!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,r={pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[r,{pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z]\w*(?=\s+\w+\s*[;,=()]|\s*(?:\[[\s,]*\]\s*)?::\s*new\b)/.source),lookbehind:!0,inside:r.inside},{pattern:RegExp(/(\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\s+)/.source+n+/[A-Z]\w*\b/.source),lookbehind:!0,inside:r.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":r,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp(/(\bimport\s+)/.source+n+/(?:[A-Z]\w*|\*)(?=\s*;)/.source),lookbehind:!0,inside:{namespace:r.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp(/(\bimport\s+static\s+)/.source+n+/(?:\w+|\*)(?=\s*;)/.source),lookbehind:!0,alias:"static",inside:{namespace:r.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g,(function(){return t.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism)},4277:()=>{Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json},6854:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,i){if(n.language===r){var o=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof i&&!i(e))return e;for(var a,s=o.length;-1!==n.code.indexOf(a=t(r,s));)++s;return o[s]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,i=Object.keys(n.tokenStack);!function o(s){for(var l=0;l=i.length);l++){var u=s[l];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=i[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),h=f.indexOf(p);if(h>-1){++a;var m=f.substring(0,h),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),y=f.substring(h+p.length),b=[];m&&b.push.apply(b,o([m])),b.push(g),y&&b.push.apply(b,o([y])),"string"==typeof u?s.splice.apply(s,[l,1].concat(b)):u.content=b}}else u.content&&o(u.content)}return s}(n.tokens)}}}})}(Prism)},2040:()=>{Prism.languages.rego={comment:/#.*/,property:{pattern:/(^|[^\\.])(?:"(?:\\.|[^\\"\r\n])*"|`[^`]*`|\b[a-z_]\w*\b)(?=\s*:(?!=))/i,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:as|default|else|import|not|null|package|set(?=\s*\()|some|with)\b/,boolean:/\b(?:false|true)\b/,function:{pattern:/\b[a-z_]\w*\b(?:\s*\.\s*\b[a-z_]\w*\b)*(?=\s*\()/i,inside:{namespace:/\b\w+\b(?=\s*\.)/,punctuation:/\./}},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,operator:/[-+*/%|&]|[<>:=]=?|!=|\b_\b/,punctuation:/[,;.\[\]{}()]/}},2886:()=>{Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|derives|do|else|enum|extends|extension|final|finally|for|forSome|given|if|implicit|import|infix|inline|lazy|match|new|null|object|opaque|open|override|package|private|protected|return|sealed|self|super|this|throw|trait|transparent|try|type|using|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),Prism.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:Prism.languages.scala}}},string:/[\s\S]+/}}}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function,delete Prism.languages.scala.constant},3358:()=>{!function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),i=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function o(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+a+"|"+i+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:o(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:o(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:o(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:o(i),lookbehind:!0,greedy:!0},number:{pattern:o(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(Prism)},5691:(e,t,n)=>{var r={"./prism-bash":7874,"./prism-gradle":1565,"./prism-java":2503,"./prism-json":4277,"./prism-rego":2040,"./prism-scala":2886,"./prism-yaml":3358};function a(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=i,e.exports=a,a.id=5691},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function i(){}i.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,i,o){if(o!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n