1#![no_std]
16#![cfg_attr(docsrs, feature(doc_cfg))]
17#![doc(
18 html_logo_url = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0xOTEuMjQ3IDMuNjI2Yy0xMC4wMi42MS0xMC4wODUuNzEtMTIuODM5IDE5LjQ3Ni0xLjU0MSAxMC40OTYtMi4xMTYgMTEuNTY2LTYuNzMyIDEyLjUyMy0xMi43MjIgMi42MzctMjAuODYzIDQuODQ5LTI5Ljk4NyA4LjE0OC0xMS40NTIgNC4xNC0xOS45NzIgOC4yMDktMzAuNTcgMTQuNTk5LTcuMjEzIDQuMzQ5LTUuODM4IDQuNzk3LTE4LjkwOC02LjE1OC05LjA4NC03LjYxMy0xMC4wMDctOC4wNzctMTMuOTE2LTYuOTkyLTQuMzI1IDEuMjAxLTIyLjY3NSAxOC40NTktMjUuMDAzIDIzLjUxNS0xLjcyNSAzLjc0NC0xLjQxNyA0LjQyOCA3LjE0MSAxNS44NjMgOC4yNDMgMTEuMDE1IDguMTAxIDEwLjYyMyA1LjIzOSAxNC40MS0xNC4zNjYgMTkuMDA3LTI1LjM2NiA0My42MDMtMzAuMDY2IDY3LjIyNS0xLjYwOCA4LjA4NC42MjUgNi45MjYtMjEuMTA4IDEwLjk0N0MzLjgxMiAxNzkuMTU4IDMuODE2IDE3OS4xNTIgMy44MzMgMTk4Yy4wMiAyMC40NzEtMi4wODUgMTguNDgzIDIzLjk2NyAyMi42NDQgNi40OCAxLjAzNSA2LjQ0My45OTIgNy44MjUgOS4xMiAzLjk5MyAyMy40NyAxNC4xNTQgNDguMTAyIDI3LjQ4MyA2Ni42MjIgNC4wOTUgNS42OSA0LjczNyA3LjE3NCAzLjg1MyA4LjkwNS0uODI0IDEuNjEzLTUuNjU1IDguNjY2LTkuODQ0IDE0LjM3My01LjExOSA2Ljk3NC01Ljc2NiA5LjU5Mi0zLjI2NSAxMy4yMiAxLjc2NiAyLjU2MyAxMy4wODggMTMuNzc2IDE3LjM4NCAxNy4yMTcgOS4xNzEgNy4zNDYgOS41MDEgNy4yOTcgMjIuNTY0LTMuMzQyIDExLjc0NC05LjU2NCAxMC4zMTEtOS4xOTggMTcuOTg4LTQuNTkyIDE3LjA3NCAxMC4yNDQgMzUuNjM3IDE3LjI5MiA1Ny41NTQgMjEuODUyIDcuMDI1IDEuNDYxIDcuMDIxIDEuNDUzIDkuNjU5IDE2LjAzMSAyLjMyMyAxMi44MzQgMy4wMjQgMTQuNDM3IDYuNzk5IDE1LjU0MiAyLjIzNS42NTQgMTkuODQ3Ljk5OCAyNC44NzQuNDg1IDcuODA1LS43OTYgNy44NTgtLjg3MiAxMC43My0xNS40NDIgMi45NzgtMTUuMTEgMi45NjMtMTUuMDg3IDEwLjcxNi0xNi42MTIgMTkuMzA0LTMuNzk5IDM4LjE0Ny0xMC44MzMgNTYuODc1LTIxLjIyOSAzLjk1OC0yLjE5NyA3LjUwMS0zLjk5NCA3Ljg3NS0zLjk5NCAxLjAwMiAwIDQuNjQ5IDIuNzE0IDEyLjA5MSA5IDEyLjEzOCAxMC4yNTMgMTMuNTQ2IDEwLjAyMSAyOC42MDItNC43MjMgMTIuNDgzLTEyLjIyNSAxMy4wMDgtMTQuMTc5IDYuMjUyLTIzLjI3Ny0xMS44NDItMTUuOTQ3LTExLjYzMy0xNS40NjQtOC41OTQtMTkuODcgMTcuNDAzLTI1LjIzMyAyNS42NjUtNDQuOTcxIDMwLjU1Ni03Mi45OTMuOTcxLTUuNTYyLjQzOC01LjMxNSAxNy4yMjMtNy45ODMgOS43OTctMS41NTcgMTEuMzIyLTIuMDcgMTIuNDA4LTQuMTcgMi4xMzItNC4xMjMgMi4zNy0yOC4xMTMuMzI5LTMzLjIyMy0uOTg1LTIuNDY2LTIuMTU3LTIuOTg4LTEwLjE5NC00LjUzOS0yMS4wNTctNC4wNjUtMTguNTk2LTIuNTY5LTIwLjc1MS0xMi42MjItNC43MjMtMjIuMDI3LTEzLjc0MS00Mi41NTMtMjYuODg4LTYxLjItNi4wMDctOC41MTktNi4wODEtNy42MDkgMS4zODQtMTcuMDU3IDguNzMzLTExLjA1NCA5LjYzMy0xMi43MjIgOC43MTItMTYuMTQyLTEuMzI5LTQuOTM4LTIwLjgyLTIzLjQ4OC0yNi4wNjctMjQuODA5LTMuNjM4LS45MTYtNC40NjgtLjQyOC0xNS40NzggOS4xMTMtOS44ODIgOC41NjItOS4yMDkgOC4zNTMtMTUuMDE1IDQuNjY2LTE1Ljg0MS0xMC4wNi0zNy4wMTgtMTguMzIzLTU4Ljc0OS0yMi45MjUtOC43NDUtMS44NTEtNy42NTYuMTg5LTEyLjA0OC0yMi41NjEtMS40MTItNy4zMTUtMi40ODYtOC44LTYuODQ4LTkuNDYzLTMuNzE3LS41NjUtMTYuMTc2LS43ODQtMjIuNTQ4LS4zOTZNMjA5LjQgNTUuMjExYzk2LjExNCA2LjM4MSAxNTkuNjMxIDk5LjY0MiAxMjkuNjY3IDE5MC4zODktMzMuOTU0IDEwMi44MzMtMTY0LjY3NyAxMzMuNDUtMjQxLjY5MiA1Ni42MDctNDIuMzM1LTQyLjI0MS01NC41MDMtOTkuMTQyLTMzLjIzNi0xNTUuNDI5IDIxLjIzLTU2LjE4NiA4My44MjctOTUuNjQ2IDE0NS4yNjEtOTEuNTY3bS0yMi42IDEwLjU4N2MtMjQuNzI2IDIuMjkzLTQ1LjMzMSAxMC44MTEtNTUuMjgxIDIyLjg1MWwtMS42MTMgMS45NTEgNzAuMTQ3LjIgNzAuMjkxLjEyM2MuODk2LS40OC03LjE5Ny03LjgyMy0xMi41NDQtMTEuMzc5LTE2LjQ0Ny0xMC45NC00My45MTctMTYuMjU4LTcxLTEzLjc0Nm05NS42MzEgMjguNTY4YzMuNzk0IDExLjc5NiA0LjA5MyAyNi41NzYuNzU4IDM3LjM3NC0xLjA1NCAzLjQxNS0xLjczNSAzLjI2MiA2LjIwOCAxLjM5bDYuNzk4LTEuNjAyIDEuMTM0IDEuMzM2YzMuMiAzLjc3IDExLjA3MSAxNy40OTMgMTEuMDcxIDE5LjMwMiAwIC43NTItNC40NSA0Ljg0OC0xNC42IDEzLjQ0MWwtMTEuMDcyIDkuNTEzYy0xLjY1MyAxLjU1OS0yLjQ4OSAxLjUwNC0yLjkwMS0uMTg4LS41MjgtMi4xNzItNS4zODEtMTEuNTYyLTcuOTk0LTE1LjQ2Ny0zLjEzNS00LjY4NS0zLjA0OS0zLjUwMi0uNjU2LTkuMDY1IDUuMzMxLTEyLjM5IDcuNTg0LTMxLjg2NiA1LjMyMy00NmwtLjczNi00LjYtOS41MTUuMDY2Yy0xMC40NTYuMDcyLTEwLjI5Mi4wNDQtOS4xMTEgMS41NDYgMy45MjMgNC45ODggNS41NjMgMjAuMDYzIDMuMzQxIDMwLjcwNC0zLjczNCAxNy44NzEtMTIuOTcxIDMxLjUyMS0zMi4xMzYgNDcuNDg4LTEzLjUxMiAxMS4yNTYtMTUuOSAxNC41NTYtMTUuOTMzIDIyLjAxMi0uMDMxIDcuMDM1IDIuMzEgMTAuNTM2IDEzLjE5IDE5LjcyOSAxNS4zMSAxMi45MzQgMjMuMTA4IDIxLjk0NCAyOC44NjEgMzMuMzQyIDcuNjU2IDE1LjE3MSA5LjIwOSAzMy45NTEgMy43MzMgNDUuMTY5LS43NjcgMS41Ny0xLjM5NCAyLjk2NS0xLjM5NCAzLjFzNC4xNDQuMjQ0IDkuMjEuMjQ0aDkuMjFsLjM1NS0uOTM1YzEuMjQxLTMuMjYzIDIuMjMyLTE4LjAyNCAxLjY1Mi0yNC42MDUtLjk5NC0xMS4yOTQtMi45NS0xOC44NjMtNy4zOTEtMjguNjA4bC0xLjQxLTMuMDk1IDIuNDQ3LTMuNjM0YzIuODczLTQuMjY2IDYuNTA3LTExLjQ0NyA4LjM2Mi0xNi41MjMuNzIzLTEuOTggMS40NDYtMy43NTYgMS42MDYtMy45NDZzMi4xNTEgMS4zNDggNC40MjUgMy40MTdhNDQ2LjkyIDQ0Ni45MiAwIDAgMCA4LjUzNCA3LjUyN2M3LjA5MyA2LjA2OCAxMi42MzUgMTEuMjczIDEzLjY3MiAxMi44MzlsLjk2NSAxLjQ1OC0yLjU0NiA1LjM1M2MtMi43NzMgNS44MjYtNi41NTcgMTIuMzEtOC4yMDIgMTQuMDUyLTEuMzMzIDEuNDEyLTEuNTI5IDEuNDAxLTkuMDc3LS40OTctNy4zODYtMS44NTctNi44MjgtMS45NTYtNS44IDEuMDMxIDMuMzUzIDkuNzQ0IDMuNjk5IDI3LjExOC43NTkgMzguMDk0LTEuMzA1IDQuODc1LS45OTQgNC43MTUgOS4xNjUtNC43IDYyLjk5NC01OC4zNzggNTkuMzAzLTE1NS41NDUtNy44NzctMjA3LjM1OS0zLjc4LTIuOTE1LTMuNzgyLTIuOTE0LTIuNDI4IDEuMjk3TTExNS40IDkzLjA0NGMtMy4xNDUgMi4zNTUtOC4xNDggNi45LTEzLjYgMTIuMzU2LTU1LjgxMSA1NS44NS01MC41IDE1MC44MDIgMTEuMTIzIDE5OC44MzEgNC41MTYgMy41MiA0LjYwMyAzLjUyMSAzLjUzNS4wNjQtMy4yODQtMTAuNjM1LTMuMjA1LTI1LjYyNS4xOTQtMzYuMzgyIDEuMjQtMy45MjYgMS45MDYtMy43MTctNS43NDMtMS43OTktNy4zOTcgMS44NTUtNi44MjIgMS45NTgtOS40OTUtMS43MDctMS43MzYtMi4zOC03LjA1Mi0xMi4wMDItOC4yMS0xNC44NjItMS40OTItMy42ODItMi42MzctMi4zMyAxNi4zMy0xOS4yODZsNi4zNjQtNS43MjVjMy4yMTctMi45MTEgNC4xMDItMy4yODIgNC4xMDItMS43MjEgMCAyLjI1MSA0LjU1MSAxMS41NTMgOC45ODUgMTguMzYzbDIuNjI1IDQuMDMzLTEuOTk2IDQuMDk1Yy02LjczNSAxMy44MTktOS40OCAzNC45NDYtNi41MTEgNTAuMDk2bC43MDYgMy42IDkuMTg3LjEwOGMxMS4wMy4xMjkgMTAuNTMxLjI1OCA4LjgyOC0yLjI3My01LjExNy03LjYwMy01LjU5OS0yMi42NzgtMS4xNTItMzYuMDMgNS4xNjctMTUuNTE1IDE1LjM2NC0yOC45MjggMzMuNDEtNDMuOTUxIDkuMDE3LTcuNTA2IDExLjM2Ny0xMC41MzYgMTIuNjA4LTE2LjI1NCAxLjcyNi03Ljk1Ni0uOTY4LTEyLjg5NC0xMS44Mi0yMS42NjUtMjQuOTk1LTIwLjIwMi0zNS4xNzctMzUuOTcyLTM2Ljk1NS01Ny4yMzYtLjg2NC0xMC4zMzguMjY2LTE3LjUyNCAzLjY1OC0yMy4yNi45MTItMS41NDMgMS4xNDItMi4yNDQuODAyLTIuNDU0LS43MjQtLjQ0OC0xOC4xMy4wNDYtMTguNDM0LjUyMi0uNTU2Ljg3My0xLjUyOSA4Ljc4OC0xLjc4MSAxNC40OTMtLjU5NCAxMy4zOTIgMi4wMjEgMjcuNDcgNy4wMjIgMzcuODEzLjg3OCAxLjgxNCAxLjQ4MiAzLjQ5OSAxLjM0NCAzLjc0M3MtMS4xOSAxLjg4NC0yLjMzNiAzLjY0NGMtMi44OTUgNC40NDUtNi4xNSAxMC45OS03LjkyNyAxNS45MzMtLjI5OC44MzEtLjk2Ny4zODUtNS42OTEtMy43ODgtMS4zMzUtMS4xOC00LjU2OC0zLjk0NS03LjE4Ni02LjE0NS0xMC43NzItOS4wNTUtMTQuOTg2LTEzLjEwMy0xNC45ODYtMTQuMzk0IDAtMi4xODkgNy4zNjktMTUuMTMyIDEwLjUzNi0xOC41MDYgMS41MjYtMS42MjUgMi4xNjktMS42MzQgOC42NjEtLjEyNCA1Ljg1NyAxLjM2MiA1LjQwMiAxLjUwNyA0LjYzMS0xLjQ3LTMuMjMzLTEyLjQ3NS0yLjg4OC0yNS41MDYuOTgzLTM3LjEzOSAxLjE1My0zLjQ2NC45NzgtMy42MTEtMS44MTEtMS41MjNtMzguMzI5IDcuNzg0Yy00LjkxOSAyLjQzNS04LjkxOCAxMC4xNzEtNi41NSAxMi42NzJsLjg1Mi45aDUxLjc3NSA1MS43NzZsLjY4Mi0xLjA0MmMxLjY2LTIuNTMzLTEuMjcxLTguNTc1LTUuNjA1LTExLjU1NGwtMi4zMzQtMS42MDQtMzkuMzYyLS4xMDZjLTIxLjY1LS4wNTgtMzkuMzYzLS4wMzQtMzkuMzYzLjA1NXMuMjY5LjY3NS41OTggMS4zMDVjMS43NDYgMy4zNS0uNTA3IDYuOTQ2LTQuMzUzIDYuOTQ2LTMuNDg2IDAtNS44MTYtMy41NDctNC41MTEtNi44NjhsLjYwMi0xLjUzMmgtMS4yNjhjLS42OTcgMC0yLjAyLjM3My0yLjkzOS44MjhtNDIuMDcxIDI1LjQyM2MtMTYuMzExIDIuMzgyLTMxLjQwOSA3LjYyOC00MS4xIDE0LjI4MS00LjA3MyAyLjc5Ni0zLjg4NyAyLjI3Mi0yLjAzNCA1LjczMSA0Ljc1OSA4Ljg4MSAxMi4yMzMgMTcuMDc3IDI0LjkzIDI3LjMzNyAxMC41MzEgOC41MDkgMTIuNzgxIDEwLjk4MiAxNS44NTIgMTcuNDE5IDMuMjM5IDYuNzkgMy4xNTIgNS44MiAzLjE1MiAzNS4xODF2MjZsLS45MzEgMS44OTFjLS41MTMgMS4wNC0xLjgwMyAyLjY3NS0yLjg2OCAzLjYzMi0xLjc3OCAxLjU5OC0zLjEyNiAyLjI4Ny0xMC40MDEgNS4zMTItMTkuNzcyIDguMjIyLTMxLjk5MSAxNi4xMzYtMzUuMjIzIDIyLjgxMy0yLjQ4MSA1LjEyNS4zNzIgMTMuMTc4IDUuNzk1IDE2LjM1NmwxLjcyMSAxLjAwOSA0NS4xNTQtLjEwNkwyNDUgMzAzbDEuODM3LTEuMDhjNC43MzktMi43ODYgNy4yNDMtOS42MTEgNS4zOTItMTQuNjk1LTIuMzE4LTYuMzY2LTEyLjEwOS0xMy4yMzUtMzEuMjI5LTIxLjkxLTEzLjc5Ni02LjI1OS0xNS4yODYtNy4yMTEtMTcuMzE2LTExLjA2TDIwMi42IDI1Mi4ydi0yNS44YzAtMzYuNTEuMjY2LTM3LjI1OSAxOC42NTgtNTIuNjAxIDE3LjIzOS0xNC4zNzkgMzAuMzQyLTMwLjQ2NSAzMC4zNDItMzcuMjQ4IDAtMi4xOTYtMTMuOTgxLTcuMDYyLTI2LjQtOS4xODktNS45NzktMS4wMjMtMjUuMDYtMS43NDUtMjkuNC0xLjExMW0uNCAzLjE3MmMtLjIyLjA4OS0xLjk5OC42Mi0zLjk1MSAxLjE4Mi04LjUyOCAyLjQ1Mi0yMy41MSAxMC4wOTMtMjQuNDE1IDEyLjQ1MS0uMTM5LjM2MS44ODQgMi4xNiAyLjU2NCA0LjUxNCA0LjI2NiA1Ljk3NiA0Ljk2OCA4LjcxNiAyLjYyNiAxMC4yNTEtMS4zMDQuODU0LTIuNTM2LjQ0My00LjkyMS0xLjY0My0xLjc4MS0xLjU1OC02LjEwMy02Ljg3OS02LjEwMy03LjUxMyAwLS4xMzEtLjcyLTEuMzUyLTEuNi0yLjcxNC0yLjAxOS0zLjEyMy0yLjEwNy0yLjc3IDEuMy01LjE5MiA1LjMyNS0zLjc4NyAxMi4wODctNi41NTggMjIuMzcyLTkuMTcgNi4wODgtMS41NDYgMTQuMTkzLTIuOTkzIDEyLjEyOC0yLjE2Nm0tNS4yMjcgMTYuMjM4YzEuODE5LjgyOCAxLjY1IDMuNTYtLjI1NyA0LjE2Ni0yLjE2NS42ODctMy43MDUtMi42ODktMS44MjctNC4wMDQgMS4wNi0uNzQzLjg0Ny0uNzI2IDIuMDg0LS4xNjJtLTkuMDUzIDE1LjIxOWMuNjY0LjY2NC42MDMgMi45Mi0uMDk2IDMuNS0uOTQxLjc4MS0yLjczMS4zNDEtMy4zODgtLjgzNC0xLjE0Ni0yLjA1MSAxLjgyNS00LjMyNSAzLjQ4NC0yLjY2Nm03OS44OCAxNC40MmM3LjQwNiAxNi4xNzUgNy4xOTMgMzUuNTY3LS41NzMgNTIuMTM5LTEuODQxIDMuOTI4LTEuNjk1IDMuOTI5LTUuMjI3LS4wNTMtMy4wMTctMy40MDMtMTEuNzAxLTExLjUyLTE4LjYtMTcuMzg2LTUuOTE5LTUuMDMzLTguNi03LjYxNC04LjYtOC4yNzggMC0uMjggMS45MjktMi4wODcgNC4yODctNC4wMTUgMTAuMjc1LTguNDA2IDIwLjY4MS0xOC4zNTYgMjQuNDgtMjMuNDA3IDIuMjM0LTIuOTcyIDIuNDM2LTIuOTI0IDQuMjMzIDFtLTExOC43LjRjNC4yOTkgNS4wOTEgMTIuNDA3IDEyLjg2OSAxOS45IDE5LjA4OSAzLjc0IDMuMTA0IDcuMDYxIDYuMDE4IDcuMzggNi40NzUuNjg2Ljk4MiAxLjU0OC4xMjEtMTEuMzkyIDExLjM5LTguMDMzIDYuOTk3LTEzLjA1MiAxMS44MjQtMTYuNTE0IDE1Ljg4LTEuNjIyIDEuOTAxLTEuNzg4IDEuNzg3LTQuMDU0LTIuNzg3LTcuMzc0LTE0Ljg4MS03LjQ1Mi0zNC4xMDYtLjIwMS00OS42NDcgMi4wNy00LjQzNyAxLjUxMi00LjM5MSA0Ljg4MS0uNG0tMjQuNDQxIDYuMDA4Yy0yLjIxMyA4LjgxOS0yLjU5OSAyMy4wMDQtLjg4OCAzMi42OTIuMjkxIDEuNjUuNDg3IDMuMDUuNDM1IDMuMTExLS4zMDMuMzU2LTMzLjQzNi00LjgzOC0zNS4yNDEtNS41MjQtMi4xOTgtLjgzNi0yLjc5Ni0yMi43NzItLjY3Ni0yNC44MjYuMjk2LS4yODggMi43NjctLjc2NSAxOC4zMTEtMy41MzUgMTguMTQ2LTMuMjM0IDE4LjM5Ni0zLjI2IDE4LjA1OS0xLjkxOG0xNjYuNTAxLS41MTZjMS4xMzguMjE2IDYuMDY4IDEuMDMxIDEwLjk1NSAxLjgxMSA4LjUyMyAxLjM2MSAxNy42OTQgMy4wNTQgMjAuNzE1IDMuODI1IDMuODQ2Ljk4MiAzLjc0MSAyNC42OTMtLjExMiAyNS4zNTYtMTIuNjU4IDIuMTc5LTM0LjM4OCA1LjQyMi0zNC42NzMgNS4xNzQtLjA4NS0uMDczLjE1My0xLjk3OS41MjktNC4yMzMgMS43NDItMTAuNDU4IDEuMzktMjMuOTU2LS44MjYtMzEuNjI1LS4yMzktLjgyNy4zNzktLjg4MyAzLjQxMi0uMzA4TTIwNCAyNjRjMCAuMjItLjQxOS40LS45My40LTIuMTEzIDAtOS42MzYgMi42MjQtMTQuOTU2IDUuMjE2LTEzLjc2MSA2LjcwNy0yMS40ODUgMTMuNjcxLTI2LjI2MyAyMy42ODEtMi41MDQgNS4yNDctNi40MDYgNS45MDMtOC42NzQgMS40NTgtNC4wMzgtNy45MTUgOS4yNDQtMjAuMDcgMzAuMDIzLTI3LjQ3NyAzLjQ4Mi0xLjI0MSAxMi4yMDctMi45NjQgMTYuNTg5LTMuMjc1bDQuMTExLS4zNDRjLjA1NS0uMDMyLjEuMTIxLjEuMzQxbS0xMi40IDIyLjRjMS43MzMgMS43MzMuMzUyIDUuMi0yLjA3MiA1LjItMS4xNTcgMC0yLjcyOC0xLjc4OS0yLjcyOC0zLjEwNiAwLTIuNDg0IDMuMDcxLTMuODIzIDQuOC0yLjA5NG0tMTcuODI5IDMuNDI5YzEuODA5IDEuODA4LS42OCA0LjU5Ny0yLjk5NyAzLjM1Ny0uODg3LS40NzUtMS4wNzYtMi43MjQtLjI5NC0zLjUwNi42OC0uNjggMi41NDgtLjU5NSAzLjI5MS4xNDlNMTMyLjggMzE0Ljg1YzI0LjE1IDIyLjY0IDg0LjY4OSAyNy40MzIgMTIwLjQyMSA5LjUzNCA1LjQ0NS0yLjcyOCAxNC45MTEtOS41ODggMTUuOTc2LTExLjU3OWwuNDMxLS44MDUtNjkuOTE0LjAxOS02OS45MTQuMDE5IDMgMi44MTIiIGZpbGw9IiMxNzMyNDEiLz48cGF0aCBkPSJNMTkwLjggNTUuMjE5Yy01NC45OTYgMy41NzktMTA3Ljk0MiA0MS44NTMtMTI2LjY1NyA5MS41NTlMNjIuMTcxIDE1MmMtMTQuOTUgMzkuNDg1LTkuMDIgODkuOTQyIDE0Ljc2MyAxMjUuNiA2NS43OTcgOTguNjQ4IDIxMC42NDQgODcuMTg5IDI1Ny44OC0yMC40IDE5LjMwMi00My45NjMgMTQuNjQ3LTk1LjY2Ni0xMi4zNzEtMTM3LjRDMjk1LjE0OCA3Ny42MzggMjQyLjU4IDUxLjg0OSAxOTAuOCA1NS4yMTltMTkuNzc3IDEwLjQwMmMyMy4yODggMS43NDMgNDAuNzM1IDcuODc3IDUzLjc1MiAxOC44OTYgMy4wMTMgMi41NTEgNi40MjIgNi4xNjcgNi4wMjggNi4zOTMtLjA4Ny4wNS0zMS43MTcgMC03MC4yOS0uMTFsLTcwLjEzMy0uMiAxLjk4OC0yLjI3MmMxNC4yMTctMTYuMjQ3IDQ1LjI1Ni0yNS4yMDcgNzguNjU1LTIyLjcwN203Ni41MTQgMjkuMjQ4YzYwLjI0MyA0Ny45ODEgNjcuNjg5IDEzNi40NDEgMTYuMzg0IDE5NC42NDMtOC4xNTEgOS4yNDctMjEuMzYyIDIwLjk1OS0yMC41MTUgMTguMTg4IDMuNTkxLTExLjc0OSAzLjUxNi0zMC4wMTQtLjE2Ni00MC43MTktMS4wMDktMi45MzItMS41MzYtMi44NDIgNS43NTItLjk4MiA3LjY4NiAxLjk2MSA3Ljg1MiAxLjk2NCA5LjM5OC4yMDQgMy42MTctNC4xMiAxMC44My0xOC41NTcgMTAuMDI0LTIwLjA2NC0uNjk5LTEuMzA1LTUuNjY4LTYuMDI2LTEyLjc2OC0xMi4xMjlsLTkuOTM0LTguNzQ0Yy0yLjI3NC0yLjA2Ny00LjI3LTMuNjAyLTQuNDM2LTMuNDEycy0uNzEzIDEuNTE2LTEuMjE3IDIuOTQ2Yy0yLjEzMiA2LjA0Ny02LjQ1IDE0LjQ2Ni05Ljg0MiAxOS4xODctMS4zNzMgMS45MTItMS4zOTYgMi4wMDQtLjc5NSAzLjE2OCA1LjU4MyAxMC43OTYgOS4xMjEgMjcuMzU4IDguNDI1IDM5LjQ0NS0uMzE5IDUuNTQ2LTEuMzUzIDE0LjQyMS0xLjgyNCAxNS42NTlsLS4zNTcuOTQxaC05LjIxYy01LjA2NiAwLTkuMjEtLjExLTkuMjEtLjI0NHMuNjI3LTEuNTMgMS4zOTQtMy4xYzUuNTEtMTEuMjg4IDMuODgyLTMwLjQ2NC0zLjg2OS00NS41NjEtNS42OTMtMTEuMDktMTMuMjU0LTE5Ljc1NS0yOC45MjUtMzMuMTQ3LTEwLjg5NC05LjMxMS0xMy4wMTEtMTIuNTA0LTEyLjk5NS0xOS42MDYuMDE2LTcuMjM0IDIuMTQ4LTEwLjI4IDE0LjM2Ny0yMC41MjggMTguMjYzLTE1LjMxNyAyNy4xOTEtMjYuOTk3IDMxLjk2MS00MS44MTQgNC4yODItMTMuMyAzLjM3Ni0zMi4zNTQtMS44MDktMzguMDg0LS45NC0xLjAzOS0xLjE5NC0xLjAwNyA5LjI2Ny0xLjE2OGw5LjU5MS0uMTQ4LjY3OSA0LjZjMi4yNzcgMTUuNDIzLS4xODggMzQuOTE4LTYuMDMgNDcuNjkxLTEuNTU5IDMuNDA5LTEuNjM0IDIuOTQxIDEuMTE2IDcuMDMgMi45NSA0LjM4NyA1LjcwNiA5LjQ2OCA3LjQ1OSAxMy43NSAxLjY4MyA0LjExNCAxLjYxNCA0LjA5NiA0Ljg5MSAxLjIzNmwxMC45MDMtOS4zYzExLjI2Ni05LjUzNiAxMy43LTExLjkzMiAxMy4zODktMTMuMTgyLS44MDMtMy4yMzMtOS4wMDktMTcuMjg0LTExLjMwMS0xOS4zNDgtLjc3Ny0uNzAxLTEuMDExLS42NzQtNy40NTYuODQ1LTcuNjg4IDEuODEyLTcuMjI5IDEuOTc0LTYuMDM3LTIuMTQzIDMuMjMxLTExLjE1NCAyLjc3OC0yNS43NTMtMS4xNTctMzcuMjc5LTEuMjU5LTMuNjg4LTEuMjM3LTMuNjgyIDQuODUzIDEuMTY5TTExOCA5MS45M2MwIC4xODEtLjQ1NSAxLjY2Ni0xLjAxMiAzLjMtMi4xMjIgNi4yMzItMi43MTYgMTAuMzI0LTIuNzUzIDE4Ljk3LS4wMzUgOC4xMTQuMTgyIDEwLjExIDEuODI2IDE2Ljc0Ni45NTMgMy44NDcgMS40NyAzLjU5LTQuNDYxIDIuMjItNi4xMTEtMS40MTItNy4yOTUtMS40NDktOC40NC0uMjY2LTIuODM2IDIuOTMyLTEwLjc2IDE2Ljg0MS0xMC43NiAxOC44ODkgMCAxLjQwNiAyLjczNiA0LjAxMyAxNi42IDE1LjgxOGw2Ljk3IDUuOTY5YzIuMDczIDEuNzg0IDMuODkgMy4xMDUgNC4wMzggMi45MzRzLjY4Ni0xLjM5IDEuMTk3LTIuNzFjMS40ODMtMy44MjggNC43MzQtMTAuMTU5IDYuNzk3LTEzLjIzNSAzLjA4Ny00LjYwNSAzLjAxNC00LjAwMi45OTktOC4yNTUtNi41NTMtMTMuODM0LTkuMDk2LTM5LjIyNC01LjE2OS01MS42MS4yMDMtLjY0IDEuMDE4LS43IDkuNTc0LS43aDkuMzUzbC0xLjk0NCAzLjljLTIuOTU2IDUuOTMxLTMuODU0IDEzLjIwOC0yLjg0IDIzLjAyNCAyLjIyMSAyMS41MjQgMTMuMDE1IDM3LjI5NSA0MC4xMTMgNTguNjExIDcuMTg3IDUuNjU0IDEwLjEwNyAxMi4xMjcgOC42MDIgMTkuMDY1LTEuMjM3IDUuNzAxLTMuMzIzIDguNDEyLTEyLjI1OCAxNS45My0xOS4wMTkgMTYuMDA0LTI4LjM3IDI4LjI2OS0zMy43NTMgNDQuMjctNC41OTUgMTMuNjU4LTMuOTIxIDI5LjUgMS41NiAzNi42ODcgMS4zNTEgMS43NzEgMS40OTIgMS43NDctOS4yNDMgMS42MjFsLTkuMTg3LS4xMDgtLjc0Ni0zLjZjLTMuMDkxLTE0LjkxMi4yNDYtMzguMjkgNy4zOTktNTEuODM2bDEuMTgxLTIuMjM1LTMuNDc4LTUuNTI4Yy00LjMxLTYuODQ4LTguMTY1LTE0Ljk2Ni04LjE2NS0xNy4xOTEgMC0xLjMyOC0uOTkyLS44OTEtMy45MDIgMS43MjFsLTcuMjU3IDYuNTI0LTEwLjIgOS4xNjFjLTQuNDQ2IDMuOTg2LTYuMDczIDUuNjkxLTYuMTY0IDYuNDU4LS4zNjUgMy4xMTMgOS45NTcgMjEuMDkzIDEyLjEyMyAyMS4xMTQuNDQuMDA0IDMuNDk5LS42OTcgNi43OTgtMS41NTkgNy4wNjYtMS44NDUgNi40OTMtMi4wNDQgNS4yNzUgMS44MzQtMy40NDEgMTAuOTU4LTMuNTMgMjYuMjUzLS4yMTIgMzYuNDYzIDEuMTE1IDMuNDI4IDEuMDQ0IDMuNDE4LTQuMTIzLS41OC0yMC4yODgtMTUuNjk1LTM1LjkyOS0zOC45NzQtNDMuNzA1LTY1LjA0Ny0xNS43MTktNTIuNzA2IDMuNzc4LTExMy42MjcgNDYuNTU2LTE0NS40NjkgMi4xOTEtMS42MzEgMi44MTEtMS45MTggMi44MTEtMS4zbTM5LjM4IDkuNDU3Yy0xLjkxMyA0LjU3OCAzLjE3IDkuMDMgNy4yNTUgNi4zNTQgMS45OTYtMS4zMDggMi44MzctNC43IDEuNTc4LTYuMzY1LS4zMjMtLjQyNy0uNTkzLS45MTEtLjYtMS4wNzZzMTcuNDgtLjMgMzguODYxLS4zaDM4Ljg3M2wxLjgxNi44NzljNC45ODkgMi40MTUgOS4xMzIgMTAuMTUxIDYuODg4IDEyLjg1OS0uNTg0LjcwNC0xMDMuMjQ0IDEuMDU1LTEwNC4yOTEuMzU2LTQuMTgtMi43OTEgMi45NzItMTQuMDkyIDguOTItMTQuMDk0aDEuMjc5bC0uNTc5IDEuMzg3TTIyNSAxMjcuMzQ2YzEwLjc3NiAxLjg5MSAxOC43MTMgNC4yOTUgMjQuMSA3LjI5OSAyLjg0MiAxLjU4NSAyLjg0IDEuNTgxIDEuNTM2IDQuNzg2LTQuMjkzIDEwLjU1MS0xMi44MjIgMjAuNTM4LTI5LjEyMSAzNC4wOTYtMTguNzg3IDE1LjYyOC0xOS4xOTkgMTYuNzk1LTE5LjAyOSA1My44NzNsLjExNCAyNC44IDEuMDg0IDIuMDU1YzIuMDA4IDMuODA3IDQuNTQzIDUuMzczIDE5LjY5MyAxMi4xNjUgMTQuNDU0IDYuNDggMjUuNzM1IDE0LjI2OCAyOC4zMSAxOS41NDQgMi42MjIgNS4zNzMuMzMxIDEyLjkxLTQuODUgMTUuOTU2TDI0NSAzMDNsLTQ1LjE1My4xMDctNDUuMTU0LjEwNi0xLjcyMS0xLjAwOWMtNC4xMzItMi40MjEtNy4zODEtOC44NDctNi42OTgtMTMuMjQ4Ljk0OC02LjExMyA3Ljk2OS0xMi4yODUgMjIuMTI2LTE5LjQ1MSA3LjAyNS0zLjU1NiA4LjAyLTQuMDEgMTUuMi02LjkyOSA4LjA1NC0zLjI3NSAxMC42MTktNS4xMjcgMTIuMzMxLTguOS45MTQtMi4wMTYgMS4wMjQtNTEuNTEzLjEyMy01NS40NzYtMS43ODgtNy44NjYtNi4xODEtMTQuNjItMTMuMTk0LTIwLjI4Ni0xNy41ODEtMTQuMjA0LTI0LjUxMy0yMS40MjUtMjkuODE3LTMxLjA2My0yLjI3Mi00LjEyOC0yLjM3OC0zLjUzMiAxLjA1Ny01LjkyMiAxNy41MjEtMTIuMTk0IDQ2LjgyNi0xNy44MDggNzAuOS0xMy41ODNtLTM0LjIgMi42NjJjLTEyLjExMyAyLjMyMy0yMi44MDMgNi4yNzMtMjkuMSAxMC43NTEtMy40NTEgMi40NTQtMy4zNzUgMS45MjMtLjg2MyA2LjA3NSA2LjMxNCAxMC40MzMgMTIuMzU4IDE0LjQ2NiAxMy4zOTUgOC45MzcuMzM0LTEuNzgyLTEuMDI0LTQuNTkyLTQuMzY5LTkuMDM1LTEuNTA1LTItMi4xOTMtMy4yNTItMi4wMjctMy42ODYuOTQ2LTIuNDY1IDE2LjgzMy0xMC40MDcgMjUuNjY2LTEyLjgzMiA0LjEzMy0xLjEzNCAyLjY5Ni0xLjI0Ni0yLjcwMi0uMjFtLTEuOTEyIDE1LjgxNmMtMS4xOS44MzMtMS4xOSAyLjcxOS4wMDEgMy41NTMgMS4xNzUuODIzIDEuNzQ4Ljc4NiAyLjcxMS0uMTc3IDEuOTQ5LTEuOTQ5LS40NjMtNC45NTItMi43MTItMy4zNzZtLTEwLjM1NSAxNS42MjJjLTEuMzAzIDEuOTg5IDEuNDYxIDQuNDUzIDMuMjkxIDIuOTM0LjY5OS0uNTguNzYtMi44MzYuMDk2LTMuNS0uODY1LS44NjUtMi42NDQtLjU2OC0zLjM4Ny41NjZNMjU3LjM3IDE3NC41Yy00Ljk2MiA2LjIwMy0xMy42NTcgMTQuNTI1LTIzLjM3MSAyMi4zNjgtNi43NjQgNS40NjEtNi45ODEgNC4xNjYgMi4wMDEgMTEuOTA5IDguNzg2IDcuNTc1IDE2Ljk2NiAxNS4xODYgMjAgMTguNjA4IDMuMjkgMy43MTEgMy40MDkgMy43NTcgNC40MzcgMS43NDMgOC41NjYtMTYuNzkxIDkuMDc5LTM3LjI4MiAxLjM0OC01My44MjYtMi4wNjYtNC40MjEtMS41ODktNC4zMzQtNC40MTUtLjgwMm0tMTE5LjE0MiAxLjZjLTcuMjUzIDE1LjYyOC03LjIzOCAzNC4zODkuMDQxIDQ5LjM3MyAyLjM0OSA0LjgzNyAyLjU1OSA0Ljk5IDQuMjA0IDMuMDYxIDQuMTUtNC44NjcgMTQuNzEyLTE0LjY5MSAyNC4wMDgtMjIuMzM0IDUuNTc2LTQuNTg0IDUuODU4LTMuNjU5LTMuNDgxLTExLjQxMS03LjQwOS02LjE1MS0xNC45NjYtMTMuNC0xOS42ODktMTguODg5LTMuNjMtNC4yMTgtMy4wMjEtNC4yNDItNS4wODMuMm0tMjYuNjI4IDUuNTcxbC0xMi40IDIuMTk4LTEyLjIgMi4yYy0yLjQyLjQyOC00LjU1LjkyNi00LjczMyAxLjEwOC0xLjY2MyAxLjY0NC0xLjc1MSAyMS42OTgtLjEwOCAyNC4zNTcuMzkuNjMxIDE0LjgwMSAzLjI1NSAyNC40NDEgNC40NTFhMjM5IDIzOSAwIDAgMSA3LjUxMiAxLjA4NWM0LjUyOC43NCA0LjQzNi43NzYgMy45MjQtMS41MTctMS44NDYtOC4yNjYtMS41MzMtMjUuMTIyLjYyOC0zMy44NTMuMjc5LTEuMTI5LS41MjMtMS4xMzItNy4wNjQtLjAyOW0xNzAuMTQ3LjA1OWMyLjExMSA4LjQxMyAyLjU0MSAyMC40OTQgMS4wNiAyOS43ODQtLjUwMSAzLjE0My0uODM1IDUuNzkxLS43NDIgNS44ODUuMTczLjE3MiA1LjY1OC0uNTkxIDE3LjUzNS0yLjQ0IDEyLjg3Mi0yLjAwNSAxOC4xMzYtMi45MzUgMTguNDY0LTMuMjYzIDEuMjcyLTEuMjcyIDEuODIxLTE2LjA2OC44LTIxLjU5LS41MjYtMi44NDctLjU1OC0yLjktMS45OTktMy4yODUtMy43NDktLjk5OS0zMi43MDMtNi4wMjEtMzQuNzE4LTYuMDIxLS40NjMgMC0uNTcxLjI1LS40LjkzbS04Mi42MDkgODIuMzExYy0yNC4xNzcgMS44NjItNTEuMjEgMTkuODE0LTQ2LjA4OSAzMC42MDYgMi4yOTMgNC44MzMgNi4zNCAzLjkxMyA5LjIwMy0yLjA5MiA1LjgxOS0xMi4yMDUgMjUuNDgyLTI1Ljk2MSA0MC4wNTktMjguMDI1IDEuNDk1LS4yMTEgMi45OTEtMS4wMjIgMS42MTMtLjg3NC0uMjg4LjAzMS0yLjQ0Mi4yMDQtNC43ODYuMzg1bS0xMS41MjIgMjIuNDM0Yy0xLjExMSAxLjE5My0xLjA0MSAyLjkzNi4xNjYgNC4xNDMgMS44MSAxLjgxIDQuNjE4LjU2NiA0LjYxOC0yLjA0NyAwLTIuNjY2LTMuMDItMy45ODktNC43ODQtMi4wOTZtLTE3LjEzNiAzLjIwNWMtLjkwNC45MDQtLjU4OCAzLjA4OC41MiAzLjU5MyAyLjA2NC45NCA0LjA5Mi0xLjIzMiAzLjAyLTMuMjM2LS41MDctLjk0Ny0yLjcyNi0xLjE3MS0zLjU0LS4zNTdtOTguNzE3IDIzLjEyNWMtMS4xODkgMi4yMjItMTEuMzc3IDkuNDA0LTE3LjI0NCAxMi4xNTYtMzYuNzY1IDE3LjI0Ni05NS4zMDYgMTIuMTkyLTExOS4zNTMtMTAuMzA0bC0yLjgtMi42MTkgNjkuOTE0LS4wMTkgNjkuOTE0LS4wMTktLjQzMS44MDUiIGZpbGw9IiNmOWY5ZmEiLz48L3N2Zz4=",
19 html_favicon_url = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0xOTEuMjQ3IDMuNjI2Yy0xMC4wMi42MS0xMC4wODUuNzEtMTIuODM5IDE5LjQ3Ni0xLjU0MSAxMC40OTYtMi4xMTYgMTEuNTY2LTYuNzMyIDEyLjUyMy0xMi43MjIgMi42MzctMjAuODYzIDQuODQ5LTI5Ljk4NyA4LjE0OC0xMS40NTIgNC4xNC0xOS45NzIgOC4yMDktMzAuNTcgMTQuNTk5LTcuMjEzIDQuMzQ5LTUuODM4IDQuNzk3LTE4LjkwOC02LjE1OC05LjA4NC03LjYxMy0xMC4wMDctOC4wNzctMTMuOTE2LTYuOTkyLTQuMzI1IDEuMjAxLTIyLjY3NSAxOC40NTktMjUuMDAzIDIzLjUxNS0xLjcyNSAzLjc0NC0xLjQxNyA0LjQyOCA3LjE0MSAxNS44NjMgOC4yNDMgMTEuMDE1IDguMTAxIDEwLjYyMyA1LjIzOSAxNC40MS0xNC4zNjYgMTkuMDA3LTI1LjM2NiA0My42MDMtMzAuMDY2IDY3LjIyNS0xLjYwOCA4LjA4NC42MjUgNi45MjYtMjEuMTA4IDEwLjk0N0MzLjgxMiAxNzkuMTU4IDMuODE2IDE3OS4xNTIgMy44MzMgMTk4Yy4wMiAyMC40NzEtMi4wODUgMTguNDgzIDIzLjk2NyAyMi42NDQgNi40OCAxLjAzNSA2LjQ0My45OTIgNy44MjUgOS4xMiAzLjk5MyAyMy40NyAxNC4xNTQgNDguMTAyIDI3LjQ4MyA2Ni42MjIgNC4wOTUgNS42OSA0LjczNyA3LjE3NCAzLjg1MyA4LjkwNS0uODI0IDEuNjEzLTUuNjU1IDguNjY2LTkuODQ0IDE0LjM3My01LjExOSA2Ljk3NC01Ljc2NiA5LjU5Mi0zLjI2NSAxMy4yMiAxLjc2NiAyLjU2MyAxMy4wODggMTMuNzc2IDE3LjM4NCAxNy4yMTcgOS4xNzEgNy4zNDYgOS41MDEgNy4yOTcgMjIuNTY0LTMuMzQyIDExLjc0NC05LjU2NCAxMC4zMTEtOS4xOTggMTcuOTg4LTQuNTkyIDE3LjA3NCAxMC4yNDQgMzUuNjM3IDE3LjI5MiA1Ny41NTQgMjEuODUyIDcuMDI1IDEuNDYxIDcuMDIxIDEuNDUzIDkuNjU5IDE2LjAzMSAyLjMyMyAxMi44MzQgMy4wMjQgMTQuNDM3IDYuNzk5IDE1LjU0MiAyLjIzNS42NTQgMTkuODQ3Ljk5OCAyNC44NzQuNDg1IDcuODA1LS43OTYgNy44NTgtLjg3MiAxMC43My0xNS40NDIgMi45NzgtMTUuMTEgMi45NjMtMTUuMDg3IDEwLjcxNi0xNi42MTIgMTkuMzA0LTMuNzk5IDM4LjE0Ny0xMC44MzMgNTYuODc1LTIxLjIyOSAzLjk1OC0yLjE5NyA3LjUwMS0zLjk5NCA3Ljg3NS0zLjk5NCAxLjAwMiAwIDQuNjQ5IDIuNzE0IDEyLjA5MSA5IDEyLjEzOCAxMC4yNTMgMTMuNTQ2IDEwLjAyMSAyOC42MDItNC43MjMgMTIuNDgzLTEyLjIyNSAxMy4wMDgtMTQuMTc5IDYuMjUyLTIzLjI3Ny0xMS44NDItMTUuOTQ3LTExLjYzMy0xNS40NjQtOC41OTQtMTkuODcgMTcuNDAzLTI1LjIzMyAyNS42NjUtNDQuOTcxIDMwLjU1Ni03Mi45OTMuOTcxLTUuNTYyLjQzOC01LjMxNSAxNy4yMjMtNy45ODMgOS43OTctMS41NTcgMTEuMzIyLTIuMDcgMTIuNDA4LTQuMTcgMi4xMzItNC4xMjMgMi4zNy0yOC4xMTMuMzI5LTMzLjIyMy0uOTg1LTIuNDY2LTIuMTU3LTIuOTg4LTEwLjE5NC00LjUzOS0yMS4wNTctNC4wNjUtMTguNTk2LTIuNTY5LTIwLjc1MS0xMi42MjItNC43MjMtMjIuMDI3LTEzLjc0MS00Mi41NTMtMjYuODg4LTYxLjItNi4wMDctOC41MTktNi4wODEtNy42MDkgMS4zODQtMTcuMDU3IDguNzMzLTExLjA1NCA5LjYzMy0xMi43MjIgOC43MTItMTYuMTQyLTEuMzI5LTQuOTM4LTIwLjgyLTIzLjQ4OC0yNi4wNjctMjQuODA5LTMuNjM4LS45MTYtNC40NjgtLjQyOC0xNS40NzggOS4xMTMtOS44ODIgOC41NjItOS4yMDkgOC4zNTMtMTUuMDE1IDQuNjY2LTE1Ljg0MS0xMC4wNi0zNy4wMTgtMTguMzIzLTU4Ljc0OS0yMi45MjUtOC43NDUtMS44NTEtNy42NTYuMTg5LTEyLjA0OC0yMi41NjEtMS40MTItNy4zMTUtMi40ODYtOC44LTYuODQ4LTkuNDYzLTMuNzE3LS41NjUtMTYuMTc2LS43ODQtMjIuNTQ4LS4zOTZNMjA5LjQgNTUuMjExYzk2LjExNCA2LjM4MSAxNTkuNjMxIDk5LjY0MiAxMjkuNjY3IDE5MC4zODktMzMuOTU0IDEwMi44MzMtMTY0LjY3NyAxMzMuNDUtMjQxLjY5MiA1Ni42MDctNDIuMzM1LTQyLjI0MS01NC41MDMtOTkuMTQyLTMzLjIzNi0xNTUuNDI5IDIxLjIzLTU2LjE4NiA4My44MjctOTUuNjQ2IDE0NS4yNjEtOTEuNTY3bS0yMi42IDEwLjU4N2MtMjQuNzI2IDIuMjkzLTQ1LjMzMSAxMC44MTEtNTUuMjgxIDIyLjg1MWwtMS42MTMgMS45NTEgNzAuMTQ3LjIgNzAuMjkxLjEyM2MuODk2LS40OC03LjE5Ny03LjgyMy0xMi41NDQtMTEuMzc5LTE2LjQ0Ny0xMC45NC00My45MTctMTYuMjU4LTcxLTEzLjc0Nm05NS42MzEgMjguNTY4YzMuNzk0IDExLjc5NiA0LjA5MyAyNi41NzYuNzU4IDM3LjM3NC0xLjA1NCAzLjQxNS0xLjczNSAzLjI2MiA2LjIwOCAxLjM5bDYuNzk4LTEuNjAyIDEuMTM0IDEuMzM2YzMuMiAzLjc3IDExLjA3MSAxNy40OTMgMTEuMDcxIDE5LjMwMiAwIC43NTItNC40NSA0Ljg0OC0xNC42IDEzLjQ0MWwtMTEuMDcyIDkuNTEzYy0xLjY1MyAxLjU1OS0yLjQ4OSAxLjUwNC0yLjkwMS0uMTg4LS41MjgtMi4xNzItNS4zODEtMTEuNTYyLTcuOTk0LTE1LjQ2Ny0zLjEzNS00LjY4NS0zLjA0OS0zLjUwMi0uNjU2LTkuMDY1IDUuMzMxLTEyLjM5IDcuNTg0LTMxLjg2NiA1LjMyMy00NmwtLjczNi00LjYtOS41MTUuMDY2Yy0xMC40NTYuMDcyLTEwLjI5Mi4wNDQtOS4xMTEgMS41NDYgMy45MjMgNC45ODggNS41NjMgMjAuMDYzIDMuMzQxIDMwLjcwNC0zLjczNCAxNy44NzEtMTIuOTcxIDMxLjUyMS0zMi4xMzYgNDcuNDg4LTEzLjUxMiAxMS4yNTYtMTUuOSAxNC41NTYtMTUuOTMzIDIyLjAxMi0uMDMxIDcuMDM1IDIuMzEgMTAuNTM2IDEzLjE5IDE5LjcyOSAxNS4zMSAxMi45MzQgMjMuMTA4IDIxLjk0NCAyOC44NjEgMzMuMzQyIDcuNjU2IDE1LjE3MSA5LjIwOSAzMy45NTEgMy43MzMgNDUuMTY5LS43NjcgMS41Ny0xLjM5NCAyLjk2NS0xLjM5NCAzLjFzNC4xNDQuMjQ0IDkuMjEuMjQ0aDkuMjFsLjM1NS0uOTM1YzEuMjQxLTMuMjYzIDIuMjMyLTE4LjAyNCAxLjY1Mi0yNC42MDUtLjk5NC0xMS4yOTQtMi45NS0xOC44NjMtNy4zOTEtMjguNjA4bC0xLjQxLTMuMDk1IDIuNDQ3LTMuNjM0YzIuODczLTQuMjY2IDYuNTA3LTExLjQ0NyA4LjM2Mi0xNi41MjMuNzIzLTEuOTggMS40NDYtMy43NTYgMS42MDYtMy45NDZzMi4xNTEgMS4zNDggNC40MjUgMy40MTdhNDQ2LjkyIDQ0Ni45MiAwIDAgMCA4LjUzNCA3LjUyN2M3LjA5MyA2LjA2OCAxMi42MzUgMTEuMjczIDEzLjY3MiAxMi44MzlsLjk2NSAxLjQ1OC0yLjU0NiA1LjM1M2MtMi43NzMgNS44MjYtNi41NTcgMTIuMzEtOC4yMDIgMTQuMDUyLTEuMzMzIDEuNDEyLTEuNTI5IDEuNDAxLTkuMDc3LS40OTctNy4zODYtMS44NTctNi44MjgtMS45NTYtNS44IDEuMDMxIDMuMzUzIDkuNzQ0IDMuNjk5IDI3LjExOC43NTkgMzguMDk0LTEuMzA1IDQuODc1LS45OTQgNC43MTUgOS4xNjUtNC43IDYyLjk5NC01OC4zNzggNTkuMzAzLTE1NS41NDUtNy44NzctMjA3LjM1OS0zLjc4LTIuOTE1LTMuNzgyLTIuOTE0LTIuNDI4IDEuMjk3TTExNS40IDkzLjA0NGMtMy4xNDUgMi4zNTUtOC4xNDggNi45LTEzLjYgMTIuMzU2LTU1LjgxMSA1NS44NS01MC41IDE1MC44MDIgMTEuMTIzIDE5OC44MzEgNC41MTYgMy41MiA0LjYwMyAzLjUyMSAzLjUzNS4wNjQtMy4yODQtMTAuNjM1LTMuMjA1LTI1LjYyNS4xOTQtMzYuMzgyIDEuMjQtMy45MjYgMS45MDYtMy43MTctNS43NDMtMS43OTktNy4zOTcgMS44NTUtNi44MjIgMS45NTgtOS40OTUtMS43MDctMS43MzYtMi4zOC03LjA1Mi0xMi4wMDItOC4yMS0xNC44NjItMS40OTItMy42ODItMi42MzctMi4zMyAxNi4zMy0xOS4yODZsNi4zNjQtNS43MjVjMy4yMTctMi45MTEgNC4xMDItMy4yODIgNC4xMDItMS43MjEgMCAyLjI1MSA0LjU1MSAxMS41NTMgOC45ODUgMTguMzYzbDIuNjI1IDQuMDMzLTEuOTk2IDQuMDk1Yy02LjczNSAxMy44MTktOS40OCAzNC45NDYtNi41MTEgNTAuMDk2bC43MDYgMy42IDkuMTg3LjEwOGMxMS4wMy4xMjkgMTAuNTMxLjI1OCA4LjgyOC0yLjI3My01LjExNy03LjYwMy01LjU5OS0yMi42NzgtMS4xNTItMzYuMDMgNS4xNjctMTUuNTE1IDE1LjM2NC0yOC45MjggMzMuNDEtNDMuOTUxIDkuMDE3LTcuNTA2IDExLjM2Ny0xMC41MzYgMTIuNjA4LTE2LjI1NCAxLjcyNi03Ljk1Ni0uOTY4LTEyLjg5NC0xMS44Mi0yMS42NjUtMjQuOTk1LTIwLjIwMi0zNS4xNzctMzUuOTcyLTM2Ljk1NS01Ny4yMzYtLjg2NC0xMC4zMzguMjY2LTE3LjUyNCAzLjY1OC0yMy4yNi45MTItMS41NDMgMS4xNDItMi4yNDQuODAyLTIuNDU0LS43MjQtLjQ0OC0xOC4xMy4wNDYtMTguNDM0LjUyMi0uNTU2Ljg3My0xLjUyOSA4Ljc4OC0xLjc4MSAxNC40OTMtLjU5NCAxMy4zOTIgMi4wMjEgMjcuNDcgNy4wMjIgMzcuODEzLjg3OCAxLjgxNCAxLjQ4MiAzLjQ5OSAxLjM0NCAzLjc0M3MtMS4xOSAxLjg4NC0yLjMzNiAzLjY0NGMtMi44OTUgNC40NDUtNi4xNSAxMC45OS03LjkyNyAxNS45MzMtLjI5OC44MzEtLjk2Ny4zODUtNS42OTEtMy43ODgtMS4zMzUtMS4xOC00LjU2OC0zLjk0NS03LjE4Ni02LjE0NS0xMC43NzItOS4wNTUtMTQuOTg2LTEzLjEwMy0xNC45ODYtMTQuMzk0IDAtMi4xODkgNy4zNjktMTUuMTMyIDEwLjUzNi0xOC41MDYgMS41MjYtMS42MjUgMi4xNjktMS42MzQgOC42NjEtLjEyNCA1Ljg1NyAxLjM2MiA1LjQwMiAxLjUwNyA0LjYzMS0xLjQ3LTMuMjMzLTEyLjQ3NS0yLjg4OC0yNS41MDYuOTgzLTM3LjEzOSAxLjE1My0zLjQ2NC45NzgtMy42MTEtMS44MTEtMS41MjNtMzguMzI5IDcuNzg0Yy00LjkxOSAyLjQzNS04LjkxOCAxMC4xNzEtNi41NSAxMi42NzJsLjg1Mi45aDUxLjc3NSA1MS43NzZsLjY4Mi0xLjA0MmMxLjY2LTIuNTMzLTEuMjcxLTguNTc1LTUuNjA1LTExLjU1NGwtMi4zMzQtMS42MDQtMzkuMzYyLS4xMDZjLTIxLjY1LS4wNTgtMzkuMzYzLS4wMzQtMzkuMzYzLjA1NXMuMjY5LjY3NS41OTggMS4zMDVjMS43NDYgMy4zNS0uNTA3IDYuOTQ2LTQuMzUzIDYuOTQ2LTMuNDg2IDAtNS44MTYtMy41NDctNC41MTEtNi44NjhsLjYwMi0xLjUzMmgtMS4yNjhjLS42OTcgMC0yLjAyLjM3My0yLjkzOS44MjhtNDIuMDcxIDI1LjQyM2MtMTYuMzExIDIuMzgyLTMxLjQwOSA3LjYyOC00MS4xIDE0LjI4MS00LjA3MyAyLjc5Ni0zLjg4NyAyLjI3Mi0yLjAzNCA1LjczMSA0Ljc1OSA4Ljg4MSAxMi4yMzMgMTcuMDc3IDI0LjkzIDI3LjMzNyAxMC41MzEgOC41MDkgMTIuNzgxIDEwLjk4MiAxNS44NTIgMTcuNDE5IDMuMjM5IDYuNzkgMy4xNTIgNS44MiAzLjE1MiAzNS4xODF2MjZsLS45MzEgMS44OTFjLS41MTMgMS4wNC0xLjgwMyAyLjY3NS0yLjg2OCAzLjYzMi0xLjc3OCAxLjU5OC0zLjEyNiAyLjI4Ny0xMC40MDEgNS4zMTItMTkuNzcyIDguMjIyLTMxLjk5MSAxNi4xMzYtMzUuMjIzIDIyLjgxMy0yLjQ4MSA1LjEyNS4zNzIgMTMuMTc4IDUuNzk1IDE2LjM1NmwxLjcyMSAxLjAwOSA0NS4xNTQtLjEwNkwyNDUgMzAzbDEuODM3LTEuMDhjNC43MzktMi43ODYgNy4yNDMtOS42MTEgNS4zOTItMTQuNjk1LTIuMzE4LTYuMzY2LTEyLjEwOS0xMy4yMzUtMzEuMjI5LTIxLjkxLTEzLjc5Ni02LjI1OS0xNS4yODYtNy4yMTEtMTcuMzE2LTExLjA2TDIwMi42IDI1Mi4ydi0yNS44YzAtMzYuNTEuMjY2LTM3LjI1OSAxOC42NTgtNTIuNjAxIDE3LjIzOS0xNC4zNzkgMzAuMzQyLTMwLjQ2NSAzMC4zNDItMzcuMjQ4IDAtMi4xOTYtMTMuOTgxLTcuMDYyLTI2LjQtOS4xODktNS45NzktMS4wMjMtMjUuMDYtMS43NDUtMjkuNC0xLjExMW0uNCAzLjE3MmMtLjIyLjA4OS0xLjk5OC42Mi0zLjk1MSAxLjE4Mi04LjUyOCAyLjQ1Mi0yMy41MSAxMC4wOTMtMjQuNDE1IDEyLjQ1MS0uMTM5LjM2MS44ODQgMi4xNiAyLjU2NCA0LjUxNCA0LjI2NiA1Ljk3NiA0Ljk2OCA4LjcxNiAyLjYyNiAxMC4yNTEtMS4zMDQuODU0LTIuNTM2LjQ0My00LjkyMS0xLjY0My0xLjc4MS0xLjU1OC02LjEwMy02Ljg3OS02LjEwMy03LjUxMyAwLS4xMzEtLjcyLTEuMzUyLTEuNi0yLjcxNC0yLjAxOS0zLjEyMy0yLjEwNy0yLjc3IDEuMy01LjE5MiA1LjMyNS0zLjc4NyAxMi4wODctNi41NTggMjIuMzcyLTkuMTcgNi4wODgtMS41NDYgMTQuMTkzLTIuOTkzIDEyLjEyOC0yLjE2Nm0tNS4yMjcgMTYuMjM4YzEuODE5LjgyOCAxLjY1IDMuNTYtLjI1NyA0LjE2Ni0yLjE2NS42ODctMy43MDUtMi42ODktMS44MjctNC4wMDQgMS4wNi0uNzQzLjg0Ny0uNzI2IDIuMDg0LS4xNjJtLTkuMDUzIDE1LjIxOWMuNjY0LjY2NC42MDMgMi45Mi0uMDk2IDMuNS0uOTQxLjc4MS0yLjczMS4zNDEtMy4zODgtLjgzNC0xLjE0Ni0yLjA1MSAxLjgyNS00LjMyNSAzLjQ4NC0yLjY2Nm03OS44OCAxNC40MmM3LjQwNiAxNi4xNzUgNy4xOTMgMzUuNTY3LS41NzMgNTIuMTM5LTEuODQxIDMuOTI4LTEuNjk1IDMuOTI5LTUuMjI3LS4wNTMtMy4wMTctMy40MDMtMTEuNzAxLTExLjUyLTE4LjYtMTcuMzg2LTUuOTE5LTUuMDMzLTguNi03LjYxNC04LjYtOC4yNzggMC0uMjggMS45MjktMi4wODcgNC4yODctNC4wMTUgMTAuMjc1LTguNDA2IDIwLjY4MS0xOC4zNTYgMjQuNDgtMjMuNDA3IDIuMjM0LTIuOTcyIDIuNDM2LTIuOTI0IDQuMjMzIDFtLTExOC43LjRjNC4yOTkgNS4wOTEgMTIuNDA3IDEyLjg2OSAxOS45IDE5LjA4OSAzLjc0IDMuMTA0IDcuMDYxIDYuMDE4IDcuMzggNi40NzUuNjg2Ljk4MiAxLjU0OC4xMjEtMTEuMzkyIDExLjM5LTguMDMzIDYuOTk3LTEzLjA1MiAxMS44MjQtMTYuNTE0IDE1Ljg4LTEuNjIyIDEuOTAxLTEuNzg4IDEuNzg3LTQuMDU0LTIuNzg3LTcuMzc0LTE0Ljg4MS03LjQ1Mi0zNC4xMDYtLjIwMS00OS42NDcgMi4wNy00LjQzNyAxLjUxMi00LjM5MSA0Ljg4MS0uNG0tMjQuNDQxIDYuMDA4Yy0yLjIxMyA4LjgxOS0yLjU5OSAyMy4wMDQtLjg4OCAzMi42OTIuMjkxIDEuNjUuNDg3IDMuMDUuNDM1IDMuMTExLS4zMDMuMzU2LTMzLjQzNi00LjgzOC0zNS4yNDEtNS41MjQtMi4xOTgtLjgzNi0yLjc5Ni0yMi43NzItLjY3Ni0yNC44MjYuMjk2LS4yODggMi43NjctLjc2NSAxOC4zMTEtMy41MzUgMTguMTQ2LTMuMjM0IDE4LjM5Ni0zLjI2IDE4LjA1OS0xLjkxOG0xNjYuNTAxLS41MTZjMS4xMzguMjE2IDYuMDY4IDEuMDMxIDEwLjk1NSAxLjgxMSA4LjUyMyAxLjM2MSAxNy42OTQgMy4wNTQgMjAuNzE1IDMuODI1IDMuODQ2Ljk4MiAzLjc0MSAyNC42OTMtLjExMiAyNS4zNTYtMTIuNjU4IDIuMTc5LTM0LjM4OCA1LjQyMi0zNC42NzMgNS4xNzQtLjA4NS0uMDczLjE1My0xLjk3OS41MjktNC4yMzMgMS43NDItMTAuNDU4IDEuMzktMjMuOTU2LS44MjYtMzEuNjI1LS4yMzktLjgyNy4zNzktLjg4MyAzLjQxMi0uMzA4TTIwNCAyNjRjMCAuMjItLjQxOS40LS45My40LTIuMTEzIDAtOS42MzYgMi42MjQtMTQuOTU2IDUuMjE2LTEzLjc2MSA2LjcwNy0yMS40ODUgMTMuNjcxLTI2LjI2MyAyMy42ODEtMi41MDQgNS4yNDctNi40MDYgNS45MDMtOC42NzQgMS40NTgtNC4wMzgtNy45MTUgOS4yNDQtMjAuMDcgMzAuMDIzLTI3LjQ3NyAzLjQ4Mi0xLjI0MSAxMi4yMDctMi45NjQgMTYuNTg5LTMuMjc1bDQuMTExLS4zNDRjLjA1NS0uMDMyLjEuMTIxLjEuMzQxbS0xMi40IDIyLjRjMS43MzMgMS43MzMuMzUyIDUuMi0yLjA3MiA1LjItMS4xNTcgMC0yLjcyOC0xLjc4OS0yLjcyOC0zLjEwNiAwLTIuNDg0IDMuMDcxLTMuODIzIDQuOC0yLjA5NG0tMTcuODI5IDMuNDI5YzEuODA5IDEuODA4LS42OCA0LjU5Ny0yLjk5NyAzLjM1Ny0uODg3LS40NzUtMS4wNzYtMi43MjQtLjI5NC0zLjUwNi42OC0uNjggMi41NDgtLjU5NSAzLjI5MS4xNDlNMTMyLjggMzE0Ljg1YzI0LjE1IDIyLjY0IDg0LjY4OSAyNy40MzIgMTIwLjQyMSA5LjUzNCA1LjQ0NS0yLjcyOCAxNC45MTEtOS41ODggMTUuOTc2LTExLjU3OWwuNDMxLS44MDUtNjkuOTE0LjAxOS02OS45MTQuMDE5IDMgMi44MTIiIGZpbGw9IiMxNzMyNDEiLz48cGF0aCBkPSJNMTkwLjggNTUuMjE5Yy01NC45OTYgMy41NzktMTA3Ljk0MiA0MS44NTMtMTI2LjY1NyA5MS41NTlMNjIuMTcxIDE1MmMtMTQuOTUgMzkuNDg1LTkuMDIgODkuOTQyIDE0Ljc2MyAxMjUuNiA2NS43OTcgOTguNjQ4IDIxMC42NDQgODcuMTg5IDI1Ny44OC0yMC40IDE5LjMwMi00My45NjMgMTQuNjQ3LTk1LjY2Ni0xMi4zNzEtMTM3LjRDMjk1LjE0OCA3Ny42MzggMjQyLjU4IDUxLjg0OSAxOTAuOCA1NS4yMTltMTkuNzc3IDEwLjQwMmMyMy4yODggMS43NDMgNDAuNzM1IDcuODc3IDUzLjc1MiAxOC44OTYgMy4wMTMgMi41NTEgNi40MjIgNi4xNjcgNi4wMjggNi4zOTMtLjA4Ny4wNS0zMS43MTcgMC03MC4yOS0uMTFsLTcwLjEzMy0uMiAxLjk4OC0yLjI3MmMxNC4yMTctMTYuMjQ3IDQ1LjI1Ni0yNS4yMDcgNzguNjU1LTIyLjcwN203Ni41MTQgMjkuMjQ4YzYwLjI0MyA0Ny45ODEgNjcuNjg5IDEzNi40NDEgMTYuMzg0IDE5NC42NDMtOC4xNTEgOS4yNDctMjEuMzYyIDIwLjk1OS0yMC41MTUgMTguMTg4IDMuNTkxLTExLjc0OSAzLjUxNi0zMC4wMTQtLjE2Ni00MC43MTktMS4wMDktMi45MzItMS41MzYtMi44NDIgNS43NTItLjk4MiA3LjY4NiAxLjk2MSA3Ljg1MiAxLjk2NCA5LjM5OC4yMDQgMy42MTctNC4xMiAxMC44My0xOC41NTcgMTAuMDI0LTIwLjA2NC0uNjk5LTEuMzA1LTUuNjY4LTYuMDI2LTEyLjc2OC0xMi4xMjlsLTkuOTM0LTguNzQ0Yy0yLjI3NC0yLjA2Ny00LjI3LTMuNjAyLTQuNDM2LTMuNDEycy0uNzEzIDEuNTE2LTEuMjE3IDIuOTQ2Yy0yLjEzMiA2LjA0Ny02LjQ1IDE0LjQ2Ni05Ljg0MiAxOS4xODctMS4zNzMgMS45MTItMS4zOTYgMi4wMDQtLjc5NSAzLjE2OCA1LjU4MyAxMC43OTYgOS4xMjEgMjcuMzU4IDguNDI1IDM5LjQ0NS0uMzE5IDUuNTQ2LTEuMzUzIDE0LjQyMS0xLjgyNCAxNS42NTlsLS4zNTcuOTQxaC05LjIxYy01LjA2NiAwLTkuMjEtLjExLTkuMjEtLjI0NHMuNjI3LTEuNTMgMS4zOTQtMy4xYzUuNTEtMTEuMjg4IDMuODgyLTMwLjQ2NC0zLjg2OS00NS41NjEtNS42OTMtMTEuMDktMTMuMjU0LTE5Ljc1NS0yOC45MjUtMzMuMTQ3LTEwLjg5NC05LjMxMS0xMy4wMTEtMTIuNTA0LTEyLjk5NS0xOS42MDYuMDE2LTcuMjM0IDIuMTQ4LTEwLjI4IDE0LjM2Ny0yMC41MjggMTguMjYzLTE1LjMxNyAyNy4xOTEtMjYuOTk3IDMxLjk2MS00MS44MTQgNC4yODItMTMuMyAzLjM3Ni0zMi4zNTQtMS44MDktMzguMDg0LS45NC0xLjAzOS0xLjE5NC0xLjAwNyA5LjI2Ny0xLjE2OGw5LjU5MS0uMTQ4LjY3OSA0LjZjMi4yNzcgMTUuNDIzLS4xODggMzQuOTE4LTYuMDMgNDcuNjkxLTEuNTU5IDMuNDA5LTEuNjM0IDIuOTQxIDEuMTE2IDcuMDMgMi45NSA0LjM4NyA1LjcwNiA5LjQ2OCA3LjQ1OSAxMy43NSAxLjY4MyA0LjExNCAxLjYxNCA0LjA5NiA0Ljg5MSAxLjIzNmwxMC45MDMtOS4zYzExLjI2Ni05LjUzNiAxMy43LTExLjkzMiAxMy4zODktMTMuMTgyLS44MDMtMy4yMzMtOS4wMDktMTcuMjg0LTExLjMwMS0xOS4zNDgtLjc3Ny0uNzAxLTEuMDExLS42NzQtNy40NTYuODQ1LTcuNjg4IDEuODEyLTcuMjI5IDEuOTc0LTYuMDM3LTIuMTQzIDMuMjMxLTExLjE1NCAyLjc3OC0yNS43NTMtMS4xNTctMzcuMjc5LTEuMjU5LTMuNjg4LTEuMjM3LTMuNjgyIDQuODUzIDEuMTY5TTExOCA5MS45M2MwIC4xODEtLjQ1NSAxLjY2Ni0xLjAxMiAzLjMtMi4xMjIgNi4yMzItMi43MTYgMTAuMzI0LTIuNzUzIDE4Ljk3LS4wMzUgOC4xMTQuMTgyIDEwLjExIDEuODI2IDE2Ljc0Ni45NTMgMy44NDcgMS40NyAzLjU5LTQuNDYxIDIuMjItNi4xMTEtMS40MTItNy4yOTUtMS40NDktOC40NC0uMjY2LTIuODM2IDIuOTMyLTEwLjc2IDE2Ljg0MS0xMC43NiAxOC44ODkgMCAxLjQwNiAyLjczNiA0LjAxMyAxNi42IDE1LjgxOGw2Ljk3IDUuOTY5YzIuMDczIDEuNzg0IDMuODkgMy4xMDUgNC4wMzggMi45MzRzLjY4Ni0xLjM5IDEuMTk3LTIuNzFjMS40ODMtMy44MjggNC43MzQtMTAuMTU5IDYuNzk3LTEzLjIzNSAzLjA4Ny00LjYwNSAzLjAxNC00LjAwMi45OTktOC4yNTUtNi41NTMtMTMuODM0LTkuMDk2LTM5LjIyNC01LjE2OS01MS42MS4yMDMtLjY0IDEuMDE4LS43IDkuNTc0LS43aDkuMzUzbC0xLjk0NCAzLjljLTIuOTU2IDUuOTMxLTMuODU0IDEzLjIwOC0yLjg0IDIzLjAyNCAyLjIyMSAyMS41MjQgMTMuMDE1IDM3LjI5NSA0MC4xMTMgNTguNjExIDcuMTg3IDUuNjU0IDEwLjEwNyAxMi4xMjcgOC42MDIgMTkuMDY1LTEuMjM3IDUuNzAxLTMuMzIzIDguNDEyLTEyLjI1OCAxNS45My0xOS4wMTkgMTYuMDA0LTI4LjM3IDI4LjI2OS0zMy43NTMgNDQuMjctNC41OTUgMTMuNjU4LTMuOTIxIDI5LjUgMS41NiAzNi42ODcgMS4zNTEgMS43NzEgMS40OTIgMS43NDctOS4yNDMgMS42MjFsLTkuMTg3LS4xMDgtLjc0Ni0zLjZjLTMuMDkxLTE0LjkxMi4yNDYtMzguMjkgNy4zOTktNTEuODM2bDEuMTgxLTIuMjM1LTMuNDc4LTUuNTI4Yy00LjMxLTYuODQ4LTguMTY1LTE0Ljk2Ni04LjE2NS0xNy4xOTEgMC0xLjMyOC0uOTkyLS44OTEtMy45MDIgMS43MjFsLTcuMjU3IDYuNTI0LTEwLjIgOS4xNjFjLTQuNDQ2IDMuOTg2LTYuMDczIDUuNjkxLTYuMTY0IDYuNDU4LS4zNjUgMy4xMTMgOS45NTcgMjEuMDkzIDEyLjEyMyAyMS4xMTQuNDQuMDA0IDMuNDk5LS42OTcgNi43OTgtMS41NTkgNy4wNjYtMS44NDUgNi40OTMtMi4wNDQgNS4yNzUgMS44MzQtMy40NDEgMTAuOTU4LTMuNTMgMjYuMjUzLS4yMTIgMzYuNDYzIDEuMTE1IDMuNDI4IDEuMDQ0IDMuNDE4LTQuMTIzLS41OC0yMC4yODgtMTUuNjk1LTM1LjkyOS0zOC45NzQtNDMuNzA1LTY1LjA0Ny0xNS43MTktNTIuNzA2IDMuNzc4LTExMy42MjcgNDYuNTU2LTE0NS40NjkgMi4xOTEtMS42MzEgMi44MTEtMS45MTggMi44MTEtMS4zbTM5LjM4IDkuNDU3Yy0xLjkxMyA0LjU3OCAzLjE3IDkuMDMgNy4yNTUgNi4zNTQgMS45OTYtMS4zMDggMi44MzctNC43IDEuNTc4LTYuMzY1LS4zMjMtLjQyNy0uNTkzLS45MTEtLjYtMS4wNzZzMTcuNDgtLjMgMzguODYxLS4zaDM4Ljg3M2wxLjgxNi44NzljNC45ODkgMi40MTUgOS4xMzIgMTAuMTUxIDYuODg4IDEyLjg1OS0uNTg0LjcwNC0xMDMuMjQ0IDEuMDU1LTEwNC4yOTEuMzU2LTQuMTgtMi43OTEgMi45NzItMTQuMDkyIDguOTItMTQuMDk0aDEuMjc5bC0uNTc5IDEuMzg3TTIyNSAxMjcuMzQ2YzEwLjc3NiAxLjg5MSAxOC43MTMgNC4yOTUgMjQuMSA3LjI5OSAyLjg0MiAxLjU4NSAyLjg0IDEuNTgxIDEuNTM2IDQuNzg2LTQuMjkzIDEwLjU1MS0xMi44MjIgMjAuNTM4LTI5LjEyMSAzNC4wOTYtMTguNzg3IDE1LjYyOC0xOS4xOTkgMTYuNzk1LTE5LjAyOSA1My44NzNsLjExNCAyNC44IDEuMDg0IDIuMDU1YzIuMDA4IDMuODA3IDQuNTQzIDUuMzczIDE5LjY5MyAxMi4xNjUgMTQuNDU0IDYuNDggMjUuNzM1IDE0LjI2OCAyOC4zMSAxOS41NDQgMi42MjIgNS4zNzMuMzMxIDEyLjkxLTQuODUgMTUuOTU2TDI0NSAzMDNsLTQ1LjE1My4xMDctNDUuMTU0LjEwNi0xLjcyMS0xLjAwOWMtNC4xMzItMi40MjEtNy4zODEtOC44NDctNi42OTgtMTMuMjQ4Ljk0OC02LjExMyA3Ljk2OS0xMi4yODUgMjIuMTI2LTE5LjQ1MSA3LjAyNS0zLjU1NiA4LjAyLTQuMDEgMTUuMi02LjkyOSA4LjA1NC0zLjI3NSAxMC42MTktNS4xMjcgMTIuMzMxLTguOS45MTQtMi4wMTYgMS4wMjQtNTEuNTEzLjEyMy01NS40NzYtMS43ODgtNy44NjYtNi4xODEtMTQuNjItMTMuMTk0LTIwLjI4Ni0xNy41ODEtMTQuMjA0LTI0LjUxMy0yMS40MjUtMjkuODE3LTMxLjA2My0yLjI3Mi00LjEyOC0yLjM3OC0zLjUzMiAxLjA1Ny01LjkyMiAxNy41MjEtMTIuMTk0IDQ2LjgyNi0xNy44MDggNzAuOS0xMy41ODNtLTM0LjIgMi42NjJjLTEyLjExMyAyLjMyMy0yMi44MDMgNi4yNzMtMjkuMSAxMC43NTEtMy40NTEgMi40NTQtMy4zNzUgMS45MjMtLjg2MyA2LjA3NSA2LjMxNCAxMC40MzMgMTIuMzU4IDE0LjQ2NiAxMy4zOTUgOC45MzcuMzM0LTEuNzgyLTEuMDI0LTQuNTkyLTQuMzY5LTkuMDM1LTEuNTA1LTItMi4xOTMtMy4yNTItMi4wMjctMy42ODYuOTQ2LTIuNDY1IDE2LjgzMy0xMC40MDcgMjUuNjY2LTEyLjgzMiA0LjEzMy0xLjEzNCAyLjY5Ni0xLjI0Ni0yLjcwMi0uMjFtLTEuOTEyIDE1LjgxNmMtMS4xOS44MzMtMS4xOSAyLjcxOS4wMDEgMy41NTMgMS4xNzUuODIzIDEuNzQ4Ljc4NiAyLjcxMS0uMTc3IDEuOTQ5LTEuOTQ5LS40NjMtNC45NTItMi43MTItMy4zNzZtLTEwLjM1NSAxNS42MjJjLTEuMzAzIDEuOTg5IDEuNDYxIDQuNDUzIDMuMjkxIDIuOTM0LjY5OS0uNTguNzYtMi44MzYuMDk2LTMuNS0uODY1LS44NjUtMi42NDQtLjU2OC0zLjM4Ny41NjZNMjU3LjM3IDE3NC41Yy00Ljk2MiA2LjIwMy0xMy42NTcgMTQuNTI1LTIzLjM3MSAyMi4zNjgtNi43NjQgNS40NjEtNi45ODEgNC4xNjYgMi4wMDEgMTEuOTA5IDguNzg2IDcuNTc1IDE2Ljk2NiAxNS4xODYgMjAgMTguNjA4IDMuMjkgMy43MTEgMy40MDkgMy43NTcgNC40MzcgMS43NDMgOC41NjYtMTYuNzkxIDkuMDc5LTM3LjI4MiAxLjM0OC01My44MjYtMi4wNjYtNC40MjEtMS41ODktNC4zMzQtNC40MTUtLjgwMm0tMTE5LjE0MiAxLjZjLTcuMjUzIDE1LjYyOC03LjIzOCAzNC4zODkuMDQxIDQ5LjM3MyAyLjM0OSA0LjgzNyAyLjU1OSA0Ljk5IDQuMjA0IDMuMDYxIDQuMTUtNC44NjcgMTQuNzEyLTE0LjY5MSAyNC4wMDgtMjIuMzM0IDUuNTc2LTQuNTg0IDUuODU4LTMuNjU5LTMuNDgxLTExLjQxMS03LjQwOS02LjE1MS0xNC45NjYtMTMuNC0xOS42ODktMTguODg5LTMuNjMtNC4yMTgtMy4wMjEtNC4yNDItNS4wODMuMm0tMjYuNjI4IDUuNTcxbC0xMi40IDIuMTk4LTEyLjIgMi4yYy0yLjQyLjQyOC00LjU1LjkyNi00LjczMyAxLjEwOC0xLjY2MyAxLjY0NC0xLjc1MSAyMS42OTgtLjEwOCAyNC4zNTcuMzkuNjMxIDE0LjgwMSAzLjI1NSAyNC40NDEgNC40NTFhMjM5IDIzOSAwIDAgMSA3LjUxMiAxLjA4NWM0LjUyOC43NCA0LjQzNi43NzYgMy45MjQtMS41MTctMS44NDYtOC4yNjYtMS41MzMtMjUuMTIyLjYyOC0zMy44NTMuMjc5LTEuMTI5LS41MjMtMS4xMzItNy4wNjQtLjAyOW0xNzAuMTQ3LjA1OWMyLjExMSA4LjQxMyAyLjU0MSAyMC40OTQgMS4wNiAyOS43ODQtLjUwMSAzLjE0My0uODM1IDUuNzkxLS43NDIgNS44ODUuMTczLjE3MiA1LjY1OC0uNTkxIDE3LjUzNS0yLjQ0IDEyLjg3Mi0yLjAwNSAxOC4xMzYtMi45MzUgMTguNDY0LTMuMjYzIDEuMjcyLTEuMjcyIDEuODIxLTE2LjA2OC44LTIxLjU5LS41MjYtMi44NDctLjU1OC0yLjktMS45OTktMy4yODUtMy43NDktLjk5OS0zMi43MDMtNi4wMjEtMzQuNzE4LTYuMDIxLS40NjMgMC0uNTcxLjI1LS40LjkzbS04Mi42MDkgODIuMzExYy0yNC4xNzcgMS44NjItNTEuMjEgMTkuODE0LTQ2LjA4OSAzMC42MDYgMi4yOTMgNC44MzMgNi4zNCAzLjkxMyA5LjIwMy0yLjA5MiA1LjgxOS0xMi4yMDUgMjUuNDgyLTI1Ljk2MSA0MC4wNTktMjguMDI1IDEuNDk1LS4yMTEgMi45OTEtMS4wMjIgMS42MTMtLjg3NC0uMjg4LjAzMS0yLjQ0Mi4yMDQtNC43ODYuMzg1bS0xMS41MjIgMjIuNDM0Yy0xLjExMSAxLjE5My0xLjA0MSAyLjkzNi4xNjYgNC4xNDMgMS44MSAxLjgxIDQuNjE4LjU2NiA0LjYxOC0yLjA0NyAwLTIuNjY2LTMuMDItMy45ODktNC43ODQtMi4wOTZtLTE3LjEzNiAzLjIwNWMtLjkwNC45MDQtLjU4OCAzLjA4OC41MiAzLjU5MyAyLjA2NC45NCA0LjA5Mi0xLjIzMiAzLjAyLTMuMjM2LS41MDctLjk0Ny0yLjcyNi0xLjE3MS0zLjU0LS4zNTdtOTguNzE3IDIzLjEyNWMtMS4xODkgMi4yMjItMTEuMzc3IDkuNDA0LTE3LjI0NCAxMi4xNTYtMzYuNzY1IDE3LjI0Ni05NS4zMDYgMTIuMTkyLTExOS4zNTMtMTAuMzA0bC0yLjgtMi42MTkgNjkuOTE0LS4wMTkgNjkuOTE0LS4wMTktLjQzMS44MDUiIGZpbGw9IiNmOWY5ZmEiLz48L3N2Zz4="
20)]
21#![cfg_attr(not(feature = "std"), no_std)]
22#![warn(missing_docs)]
23
24#[cfg(feature = "std")]
25extern crate std;
26
27#[cfg(feature = "alloc")]
28extern crate alloc;
29
30#[allow(unused_extern_crates)]
32extern crate self as odem_rs_sync;
33
34pub mod chain;
35pub mod channel;
36pub mod control;
37pub mod error;
38pub mod facility;
39pub mod fork;
40
41#[doc(inline)]
42pub use odem_rs_meta::Publisher;
43
44#[doc(inline)]
45pub use odem_rs_meta::until;
46
47pub trait Publisher {
52 type Link: Subscriber;
54
55 unsafe fn subscribe(&self, link: core::pin::Pin<&Self::Link>);
63
64 unsafe fn unsubscribe(&self, link: core::pin::Pin<&Self::Link>);
72}
73
74pub trait Subscriber {
76 fn notify(&self);
78}
79
80pub struct Tuple<N>(pub N);
88
89impl<N: ?Sized + Publisher> Publisher for &N {
92 type Link = N::Link;
93
94 unsafe fn subscribe(&self, link: core::pin::Pin<&Self::Link>) {
95 unsafe {
96 (**self).subscribe(link);
97 }
98 }
99
100 unsafe fn unsubscribe(&self, link: core::pin::Pin<&Self::Link>) {
101 unsafe {
102 (**self).unsubscribe(link);
103 }
104 }
105}
106
107impl<N: ?Sized + Publisher> Publisher for core::pin::Pin<&N> {
108 type Link = N::Link;
109
110 unsafe fn subscribe(&self, link: core::pin::Pin<&Self::Link>) {
111 unsafe {
112 (**self).subscribe(link);
113 }
114 }
115
116 unsafe fn unsubscribe(&self, link: core::pin::Pin<&Self::Link>) {
117 unsafe {
118 (**self).unsubscribe(link);
119 }
120 }
121}
122
123impl<N: ?Sized + Subscriber> Subscriber for &N {
124 fn notify(&self) {
125 (**self).notify()
126 }
127}
128
129impl<N: ?Sized + Subscriber> Subscriber for core::pin::Pin<&N> {
130 fn notify(&self) {
131 (**self).notify();
132 }
133}
134
135macro_rules! impl_tuple {
138 (@head $($A:ident -> $ID:tt)*) => {
139 impl<$($A: Publisher),*> Publisher for ($($A,)*) {
140 type Link = Tuple<($($A::Link,)*)>;
141
142 unsafe fn subscribe(&self, _link: core::pin::Pin<&Self::Link>) {
143 $(unsafe { self.$ID.subscribe(_link.map_unchecked(|inner| &inner.0.$ID)) })*
144 }
145
146 unsafe fn unsubscribe(&self, _link: core::pin::Pin<&Self::Link>) {
147 $(unsafe { self.$ID.unsubscribe(_link.map_unchecked(|inner| &inner.0.$ID)) })*
148 }
149 }
150
151 impl<$($A: Subscriber),*> Subscriber for Tuple<($($A,)*)> {
152 fn notify(&self) {
153 $(self.0.$ID.notify();)*
154 }
155 }
156
157 impl<W: Clone $(, $A: From<W>)*> From<W> for Tuple<($($A,)*)> {
158 fn from(_waker: W) -> Self {
159 Tuple(($($A::from(_waker.clone()),)*))
160 }
161 }
162 };
163
164 (@tail $($H:ident -> $HID:tt)* . $M:ident -> $MID:tt $($T:ident -> $TID:tt)*) => {
165 impl_tuple!(@head $($H -> $HID)*);
166 impl_tuple!(@tail $($H -> $HID)* $M -> $MID . $($T -> $TID)*);
167 };
168
169 (@tail $($H:ident -> $HID:tt)* .) => {
170 impl_tuple!(@head $($H -> $HID)*);
171 };
172
173 ($($T:ident -> $ID:tt),* $(,)?) => {
174 impl_tuple!(@tail . $($T -> $ID)*);
175 };
176}
177
178macro_rules! impl_deref {
179 ($($($T:ident)::*),*) => {$(
180 impl<N: ?Sized + Publisher> Publisher for $($T)::*<N> {
181 type Link = N::Link;
182
183 unsafe fn subscribe(&self, link: core::pin::Pin<&Self::Link>) {
184 unsafe { (**self).subscribe(link); }
185 }
186
187 unsafe fn unsubscribe(&self, link: core::pin::Pin<&Self::Link>) {
188 unsafe { (**self).unsubscribe(link); }
189 }
190 }
191
192 impl<N: ?Sized + Subscriber> Subscriber for $($T)::*<N> {
193 fn notify(&self) {
194 (**self).notify();
195 }
196 }
197 )*};
198}
199
200impl_tuple!(A->0, B->1, C->2, D->3, E->4, F->5, G->6, H->7, I->8, J->9, K->10, L->11);
202
203impl_deref!(intrusive_collections::UnsafeRef);
205
206#[cfg(feature = "alloc")]
207impl_deref!(alloc::boxed::Box, alloc::rc::Rc, alloc::sync::Arc);