ente/architecture/assets/key-derivation.svg

18 lines
76 KiB
XML
Raw Permalink Normal View History

Move to monorepo Move all of our code into a monorepo in preparation of open sourcing our server. First I describe the general plan, then later I've kept an exact log of the commands that I used. This was all done prior to this commit, but this commit (that introduces the various top level files) seems like a good way to summarize the entire process. Clone auth. Auth is our base repository. ```sh git clone https://github.com/ente-io/auth.git && cd auth ``` Move all of auth's files into `auth/`. ```sh mkdir auth git mv `find . -maxdepth 1 | grep -v -e '\.$' -e '\.\/.git$' -e '\.\/auth$'` auth git commit -m 'Move into auth/' ``` Add photos-web as a new remote, and fetch its main. ```sh git remote add photos-web https://github.com/ente-io/photos-web.git git fetch photos-web main ``` Switch to main of web-photos. ```sh git checkout -b photos-web-main photos-web/main ``` Move all of its files into `web` (note, the find now has an extra exclusion for `web`, but we keep all the old ones too): ```sh mkdir web git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\.\/auth$' -e '^\.\/web$'` web git commit -m 'Move into web/' ``` Switch back to main main, and merge the photos-web branch. The `--allow-unrelated-histories` flag is needed (since these two branches don't have any previous common ancestor). ```sh git checkout main git merge --allow-unrelated-histories photos-web-main ``` That's it. We then repeat this process for all the other repositories that we need to bring in. There is no magic involved here, so regular git commands will continue working. However, all the files get renamed, so to track the git history prior to this rename commit we'll need to pass the `--follow` flag. git log --follow -p -- auth/migration-guides/encrypted_export.md For some file names like README.md which exist in multiple repositories, this doesn't seem to work so good (I don't fully understand why). For example, `git log --follow -p -- auth/README.md lists the changes to all the READMEs, not just the auth README.md. ```sh git clone https://github.com/ente-io/auth.git ente cd ente mkdir auth git mv `find . -maxdepth 1 | grep -v -e '\.$' -e '\.\/.git$' -e '\.\/auth$'` auth git commit -m 'Move into auth/' git remote add photos-web https://github.com/ente-io/photos-web.git git fetch photos-web main git checkout -b photos-web-main photos-web/main mkdir web git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\.\/auth$' -e '^\.\/web$'` web git commit -m 'Move into web/' git checkout main git merge --allow-unrelated-histories photos-web-main git branch -D photos-web-main git remote remove photos-web git remote add photos-app https://github.com/ente-io/photos-app.git git fetch photos-app main git checkout -b photos-app-main photos-app/main mkdir mobile git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\.\/auth$' -e '^\.\/web$' -e '^\.\/mobile$'` mobile git commit -m 'Move into mobile/' git checkout main git merge --allow-unrelated-histories photos-app-main git branch -D photos-app-main git remote remove photos-app git remote add photos-desktop https://github.com/ente-io/photos-desktop.git git fetch photos-desktop main git checkout -b photos-desktop-main photos-desktop/main mkdir desktop git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\./.gitmodules$' -e '^\.\/desktop$'` desktop git mv .gitmodules desktop git commit -m 'Move into desktop/' git checkout main git merge --allow-unrelated-histories photos-desktop-main git branch -D photos-desktop-main git remote remove photos-desktop git remote add cli https://github.com/ente-io/cli.git git fetch cli main git checkout -b cli-main cli/main mkdir cli git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\.\/cli$'` cli git commit -m 'Move into cli/' git checkout main git merge --allow-unrelated-histories cli-main git branch -D cli-main git remote remove cli git remote add docs https://github.com/ente-io/docs.git git fetch docs main git checkout -b docs-main docs/main mkdir docs-1 git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\.\/docs-1$'` docs-1 git mv docs-1 docs git commit -m 'Move into docs/' git checkout main git merge --allow-unrelated-histories docs-main git branch -D docs-main git remote remove docs ```
2024-03-01 07:31:41 +00:00
<svg width="501" height="142" viewBox="0 0 501 142" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M501 112H437V142H501V112ZM474.413 130.74C474.259 130.853 474.069 130.94 473.843 131C473.623 131.053 473.389 131.08 473.143 131.08C472.503 131.08 472.006 130.917 471.653 130.59C471.306 130.263 471.133 129.783 471.133 129.15V126.94H470.303V125.74H471.133V124.43H472.693V125.74H474.033V126.94H472.693V129.13C472.693 129.357 472.749 129.533 472.863 129.66C472.983 129.78 473.149 129.84 473.363 129.84C473.609 129.84 473.819 129.773 473.993 129.64L474.413 130.74ZM462.96 128.75C462.98 128.49 462.99 128.35 462.99 128.33C462.99 127.77 462.867 127.28 462.62 126.86C462.38 126.433 462.047 126.107 461.62 125.88C461.193 125.653 460.717 125.54 460.19 125.54C459.65 125.54 459.16 125.66 458.72 125.9C458.287 126.133 457.943 126.463 457.69 126.89C457.443 127.31 457.32 127.783 457.32 128.31C457.32 128.843 457.447 129.32 457.7 129.74C457.953 130.16 458.313 130.49 458.78 130.73C459.247 130.963 459.783 131.08 460.39 131.08C461.363 131.08 462.103 130.79 462.61 130.21L461.78 129.31C461.593 129.49 461.39 129.623 461.17 129.71C460.957 129.79 460.71 129.83 460.43 129.83C460.023 129.83 459.683 129.733 459.41 129.54C459.137 129.347 458.963 129.083 458.89 128.75H462.96ZM459.31 127.02C459.55 126.82 459.847 126.72 460.2 126.72C460.547 126.72 460.84 126.823 461.08 127.03C461.32 127.23 461.467 127.5 461.52 127.84H458.87C458.923 127.493 459.07 127.22 459.31 127.02ZM468.909 126.14C468.502 125.74 467.965 125.54 467.299 125.54C466.932 125.54 466.595 125.603 466.289 125.73C465.982 125.85 465.725 126.023 465.519 126.25V125.62H464.029V131H465.589V128.34C465.589 127.86 465.705 127.5 465.939 127.26C466.172 127.013 466.485 126.89 466.879 126.89C467.232 126.89 467.502 126.997 467.689 127.21C467.875 127.417 467.969 127.733 467.969 128.16V131H469.529V127.92C469.529 127.133 469.322 126.54 468.909 126.14ZM480.362 128.75C480.382 128.49 480.392 128.35 480.392 128.33C480.392 127.77 480.269 127.28 480.022 126.86C479.782 126.433 479.449 126.107 479.022 125.88C478.596 125.653 478.119 125.54 477.592 125.54C477.052 125.54 476.562 125.66 476.122 125.9C475.689 126.133 475.346 126.463 475.092 126.89C474.846 127.31 474.722 127.783 474.722 128.31C474.722 128.843 474.849 129.32 475.102 129.74C475.356 130.16 475.716 130.49 476.182 130.73C476.649 130.963 477.186 131.08 477.792 131.08C478.766 131.08 479.506 130.79 480.012 130.21L479.182 129.31C478.996 129.49 478.792 129.623 478.572 129.71C478.359 129.79 478.112 129.83 477.832 129.83C477.426 129.83 477.086 129.733 476.812 129.54C476.539 129.347 476.366 129.083 476.292 128.75H480.362ZM476.712 127.02C476.952 126.82 477.249 126.72 477.602 126.72C477.949 126.72 478.242 126.823 478.482 127.03C478.722 127.23 478.869 127.5 478.922 127.84H476.272C476.326 127.493 476.472 127.22 476.712 127.02Z" fill="#757575"/>
<path d="M111.202 6.464C111.506 6.464 111.73 6.424 111.874 6.344C112.023 6.264 112.098 6.136 112.098 5.96C112.098 5.77867 112.026 5.63467 111.882 5.528C111.738 5.42133 111.5 5.30133 111.17 5.168C111.01 5.104 110.855 5.04 110.706 4.976C110.562 4.90667 110.436 4.82667 110.33 4.736C110.223 4.64533 110.138 4.536 110.074 4.408C110.01 4.28 109.978 4.12267 109.978 3.936C109.978 3.568 110.114 3.27733 110.386 3.064C110.658 2.84533 111.028 2.736 111.498 2.736C111.615 2.736 111.732 2.744 111.85 2.76C111.967 2.77067 112.076 2.78667 112.178 2.808C112.279 2.824 112.367 2.84267 112.442 2.864C112.522 2.88533 112.583 2.904 112.626 2.92L112.49 3.56C112.41 3.51733 112.284 3.47467 112.114 3.432C111.943 3.384 111.738 3.36 111.498 3.36C111.29 3.36 111.108 3.40267 110.954 3.488C110.799 3.568 110.722 3.696 110.722 3.872C110.722 3.96267 110.738 4.04267 110.77 4.112C110.807 4.18133 110.86 4.24533 110.93 4.304C111.004 4.35733 111.095 4.408 111.202 4.456C111.308 4.504 111.436 4.55467 111.586 4.608C111.783 4.68267 111.959 4.75733 112.114 4.832C112.268 4.90133 112.399 4.984 112.506 5.08C112.618 5.176 112.703 5.29333 112.762 5.432C112.82 5.56533 112.85 5.73067 112.85 5.928C112.85 6.312 112.706 6.60267 112.418 6.8C112.135 6.99733 111.73 7.096 111.202 7.096C110.834 7.096 110.546 7.064 110.338 7C110.13 6.94133 109.988 6.896 109.914 6.864L110.05 6.224C110.135 6.256 110.271 6.304 110.458 6.368C110.644 6.432 110.892 6.464 111.202 6.464ZM114.5 2.84H116.076V3.464H114.5V5.384C114.5 5.592 114.516 5.76533 114.548 5.904C114.58 6.03733 114.628 6.144 114.692 6.224C114.756 6.29867 114.836 6.352 114.932 6.384C115.028 6.416 115.14 6.432 115.268 6.432C115.492 6.432 115.671 6.408 115.804 6.36C115.943 6.30667 116.039 6.26933 116.092 6.248L116.236 6.864C116.161 6.90133 116.031 6.94667 115.844 7C115.657 7.05867 115.444 7.088 115.204 7.088C114.921 7.088 114.687 7.05333 114.5 6.984C114.319 6.90933 114.172 6.8 114.06 6.656C113.948 6.512 113.868 6.336 113.82 6.128C113.777 5.91467 113.756 5.66933 113.756 5.392V1.68L114.5 1.552V2.84ZM118.559 2.752C118.623 2.752 118.695 2.75733 118.775 2.768C118.86 2.77333 118.943 2.784 119.023 2.8C119.103 2.81067 119.175 2.824 119.239 2.84C119.308 2.85067 119.359 2.86133 119.391 2.872L119.263 3.52C119.204 3.49867 119.105 3.47467 118.967 3.448C118.833 3.416 118.66 3.4 118.447 3.4C118.308 3.4 118.169 3.416 118.031 3.448C117.897 3.47467 117.809 3.49333 117.767 3.504V7H117.023V3.016C117.199 2.952 117.417 2.89333 117.679 2.84C117.94 2.78133 118.233 2.752 118.559 2.752ZM123.781 4.92C123.781 5.25067 123.733 5.54933 123.637 5.816C123.541 6.08267 123.405 6.312 123.229 6.504C123.058 6.696 122.853 6.84533 122.613 6.952C122.373 7.05333 122.111 7.104 121.829 7.104C121.546 7.104 121.285 7.05333 121.045 6.952C120.805 6.84533 120.597 6.696 120.421 6.504C120.25 6.312 120.117 6.08267 120.021 5.816C119.925 5.54933 119.877 5.25067 119.877 4.92C119.877 4.59467 119.925 4.29867 120.021 4.032C120.117 3.76 120.25 3.528 120.421 3.336C120.597 3.144 120.805 2.99733 121.045 2.896C121.285 2.78933 121.546 2.736 121.829 2.736C122.111 2.736 122.373 2.78933 122.613 2.896C122.853 2.99733 123.058 3.144 123.229 3.336C123.405 3.528 123.541 3.76 123.637 4.032C123.733 4.29867 123.781 4.59467 123.781 4.92ZM123.005 4.92C123.005 4.45067 122.898 4.08 122.685 3.808C122.477 3.53067 122.191 3.392 121.829 3.392C121.466 3.392 121.178 3.53067 120.965 3.808C120.757 4.08 120.653 4.45067 120.653 4.92C120.653 5.38933 120.757 5.76267 120.965 6.04C121.178 6.312 121.466 6.448 121.829 6.448C122.191 6.448 122.477 6.312 122.685 6.04C122.898 5.76267 123.005 5.38933 123.005 4.92ZM124.828 2.96C124.998 2.91733 125.225 2.872 125.508 2.824C125.79 2.776 126.116 2.752 126.484 2.752C126.814 2.752 127.089 2.8 127.308 2.896C127.526 2.98667 127.7 3.11733 127.828 3.288C127.961 3.45333 128.054 3.65333 128.108 3.888C128.161 4.12267 128.188 4.38133 128.188 4.664V7H127.444V4.824C127.444 4.568 127.425 4.34933 127.388 4.168C127.356 3.98667 127.3 3.84 127.22 3.728C127.14 3.616 127.033 3.536 126.9 3.488C126.766 3.43467 126.601 3.408 126.404 3.408C126.324 3.408 126.241 3.41067 126.156 3.416C126.07 3.42133 125.988 3.42933 125
<path fill-rule="evenodd" clip-rule="evenodd" d="M68 51H67V49H56V62H61V63.617C61 64.141 61.121 64.675 61.502 65H56.5C56.102 65 55.721 64.842 55.439 64.561C55.158 64.279 55 63.898 55 63.5V48.5C55 48.102 55.158 47.721 55.439 47.439C55.721 47.158 56.102 47 56.5 47H66.5C66.898 47 67.279 47.158 67.561 47.439C67.842 47.721 68 48.102 68 48.5V51ZM70 53.25C70 52.56 69.44 52 68.75 52H63.25C62.56 52 62 52.56 62 53.25V63.75C62 64.44 62.56 65 63.25 65H68.75C69.44 65 70 64.44 70 63.75V53.25ZM54.593 65H48L50.599 62H54V63.804C54 64.383 54.337 64.894 54.593 65ZM66 64C65.447 64 65 63.552 65 63C65 62.448 65.447 62 66 62C66.552 62 66.999 62.448 66.999 63C66.999 63.552 66.552 64 66 64ZM69 61V54.976H63V61H69ZM67 46H65V43H48V58H54V60H46V41H67V46ZM66.5 53H65.5C65.224 53 65 53.224 65 53.5C65 53.776 65.224 54 65.5 54H66.5C66.775 54 67 53.776 67 53.5C67 53.224 66.775 53 66.5 53Z" fill="#757575"/>
<path d="M31.6667 32.6683C31.6667 39.11 26.4433 44.335 20 44.335C13.5567 44.335 8.33333 39.11 8.33333 32.6683C8.33333 26.2233 13.5567 21 20 21C26.4433 21 31.6667 26.2233 31.6667 32.6683V32.6683ZM29.0033 44.635C26.4933 46.53 23.38 47.6683 20 47.6683C16.6167 47.6683 13.5017 46.5267 10.9883 44.6317C4.20167 47.62 0 56.925 0 61H40C40 56.9617 35.6667 47.6567 29.0033 44.635V44.635Z" fill="#757575"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M236 8H172V38H236V8ZM217.022 22.432C217.102 22.2507 217.142 22.064 217.142 21.872C217.142 21.3813 216.996 21.0027 216.702 20.736C216.414 20.464 215.98 20.328 215.398 20.328C215.206 20.328 215.028 20.352 214.862 20.4C214.697 20.448 214.548 20.5067 214.414 20.576C214.281 20.6453 214.166 20.72 214.07 20.8C213.974 20.8747 213.902 20.9387 213.854 20.992L214.222 21.52C214.26 21.488 214.313 21.4427 214.382 21.384C214.452 21.32 214.537 21.2613 214.638 21.208C214.74 21.1493 214.854 21.0987 214.982 21.056C215.11 21.0133 215.252 20.992 215.406 20.992C215.534 20.992 215.654 21.0107 215.766 21.048C215.884 21.08 215.985 21.1333 216.07 21.208C216.156 21.2827 216.222 21.376 216.27 21.488C216.324 21.6 216.35 21.736 216.35 21.896C216.35 22.0453 216.321 22.1867 216.262 22.32C216.209 22.4533 216.134 22.584 216.038 22.712C215.948 22.8347 215.841 22.96 215.718 23.088C215.601 23.2107 215.476 23.336 215.342 23.464C215.182 23.624 215.02 23.7893 214.854 23.96C214.689 24.1307 214.54 24.312 214.406 24.504C214.273 24.696 214.164 24.9013 214.078 25.12C213.998 25.3333 213.958 25.5653 213.958 25.816V25.904C213.958 25.936 213.961 25.968 213.966 26H217.326V25.368H214.774C214.774 25.2773 214.809 25.1707 214.878 25.048C214.953 24.9253 215.044 24.7973 215.15 24.664C215.257 24.5307 215.369 24.4027 215.486 24.28L215.806 23.96C215.966 23.8 216.126 23.6373 216.286 23.472C216.446 23.3013 216.59 23.1307 216.718 22.96C216.846 22.784 216.948 22.608 217.022 22.432ZM195.214 25.296C195.294 25.5253 195.379 25.76 195.47 26H196.318C196.105 25.4133 195.905 24.872 195.718 24.376C195.531 23.8747 195.347 23.4 195.166 22.952C194.99 22.504 194.814 22.0773 194.638 21.672C194.462 21.2613 194.278 20.856 194.086 20.456H193.374C193.182 20.856 192.998 21.2613 192.822 21.672C192.646 22.0773 192.467 22.504 192.286 22.952C192.11 23.4 191.929 23.8747 191.742 24.376C191.555 24.872 191.355 25.4133 191.142 26H191.95L192.454 24.584H194.966C195.051 24.824 195.134 25.0613 195.214 25.296ZM194.23 22.6C194.401 23.032 194.571 23.48 194.742 23.944H192.678C192.843 23.48 193.009 23.032 193.174 22.6C193.345 22.1627 193.523 21.744 193.71 21.344C193.891 21.744 194.065 22.1627 194.23 22.6ZM198.775 21.768C198.695 21.7573 198.623 21.752 198.559 21.752C198.233 21.752 197.94 21.7813 197.679 21.84C197.417 21.8933 197.199 21.952 197.023 22.016V26H197.767V22.504C197.809 22.4933 197.897 22.4747 198.031 22.448C198.169 22.416 198.308 22.4 198.447 22.4C198.66 22.4 198.833 22.416 198.967 22.448C199.105 22.4747 199.204 22.4987 199.263 22.52L199.391 21.872C199.359 21.8613 199.308 21.8507 199.239 21.84C199.175 21.824 199.103 21.8107 199.023 21.8C198.943 21.784 198.86 21.7733 198.775 21.768ZM202.717 25.584C202.653 25.6267 202.527 25.6827 202.341 25.752C202.159 25.816 201.946 25.848 201.701 25.848C201.45 25.848 201.213 25.808 200.989 25.728C200.77 25.648 200.578 25.5253 200.413 25.36C200.247 25.1893 200.117 24.9787 200.021 24.728C199.925 24.4773 199.877 24.1787 199.877 23.832C199.877 23.528 199.922 23.2507 200.013 23C200.103 22.744 200.234 22.5253 200.405 22.344C200.581 22.1573 200.794 22.0133 201.045 21.912C201.295 21.8053 201.578 21.752 201.893 21.752C202.239 21.752 202.541 21.7787 202.797 21.832C203.058 21.88 203.277 21.9253 203.453 21.968V25.68C203.453 26.32 203.287 26.784 202.957 27.072C202.626 27.36 202.125 27.504 201.453 27.504C201.191 27.504 200.943 27.4827 200.709 27.44C200.479 27.3973 200.279 27.3467 200.109 27.288L200.245 26.64C200.394 26.6987 200.575 26.7493 200.789 26.792C201.007 26.84 201.234 26.864 201.469 26.864C201.911 26.864 202.229 26.776 202.421 26.6C202.618 26.424 202.717 26.144 202.717 25.76V25.584ZM202.709 22.496C202.634 22.4747 202.533 22.456 202.405 22.44C202.282 22.4187 202.114 22.408 201.901 22.408C201.501 22.408 201.191 22.5387 200.973 22.8C200.759 23.0613 200.653 23.408 200.653 23.84C200.653 24.08 200.682 24.2853 200.741 24.456C200.805 24.6267 200.887 24.768 200.989 24.88C201.095 24.992 201.215 25.0747 201.349 25.128C201.487 25.1813 201.629 25.208 201.773 25.208C201.97 25.208 202.151 25.1813 202.317 25.128C202.482 25.0693 202.613 25.0027 202.
<path fill-rule="evenodd" clip-rule="evenodd" d="M370 61H306V91H370V61ZM336.67 78.784C336.862 78.9707 337.187 79.0693 337.646 79.08L337.75 78.456C337.632 78.44 337.534 78.4213 337.454 78.4C337.374 78.3733 337.31 78.336 337.262 78.288C337.214 78.24 337.179 78.176 337.158 78.096C337.136 78.016 337.126 77.9147 337.126 77.792V72.792L336.382 72.92V77.912C336.382 78.3067 336.478 78.5973 336.67 78.784ZM330.512 77.616C330.512 78.1707 330.107 78.448 329.296 78.448C328.934 78.448 328.627 78.4053 328.376 78.32C328.126 78.2347 327.939 78.1573 327.816 78.088L327.584 78.728C327.643 78.76 327.723 78.8 327.824 78.848C327.931 78.8907 328.056 78.9333 328.2 78.976C328.344 79.0133 328.507 79.0453 328.688 79.072C328.875 79.104 329.078 79.12 329.296 79.12C329.942 79.12 330.44 78.9893 330.792 78.728C331.15 78.4667 331.328 78.0933 331.328 77.608C331.328 77.3467 331.288 77.1253 331.208 76.944C331.128 76.7573 331.014 76.5973 330.864 76.464C330.72 76.3307 330.547 76.216 330.344 76.12C330.147 76.024 329.928 75.928 329.688 75.832C329.518 75.768 329.36 75.704 329.216 75.64C329.078 75.576 328.955 75.5067 328.848 75.432C328.742 75.352 328.659 75.2613 328.6 75.16C328.542 75.0587 328.512 74.9333 328.512 74.784C328.512 74.6507 328.539 74.536 328.592 74.44C328.651 74.3387 328.728 74.256 328.824 74.192C328.92 74.128 329.032 74.08 329.16 74.048C329.288 74.016 329.427 74 329.576 74C329.87 74 330.126 74.0347 330.344 74.104C330.568 74.168 330.736 74.2347 330.848 74.304L331.096 73.672C330.968 73.5867 330.766 73.5093 330.488 73.44C330.216 73.3653 329.912 73.328 329.576 73.328C328.995 73.328 328.539 73.464 328.208 73.736C327.878 74.008 327.712 74.3867 327.712 74.872C327.712 75.1067 327.75 75.3067 327.824 75.472C327.904 75.6373 328.011 75.7813 328.144 75.904C328.278 76.0213 328.435 76.1253 328.616 76.216C328.798 76.3013 328.99 76.3787 329.192 76.448C329.368 76.512 329.534 76.576 329.688 76.64C329.848 76.704 329.99 76.7813 330.112 76.872C330.235 76.9573 330.331 77.0613 330.4 77.184C330.475 77.3013 330.512 77.4453 330.512 77.616ZM326.001 78.472C326.113 78.664 326.209 78.84 326.289 79H327.161C326.916 78.5253 326.633 78.0427 326.313 77.552C325.993 77.0613 325.652 76.5573 325.289 76.04L327.033 73.456H326.145L324.793 75.52L323.425 73.456H322.529L324.305 76.072C323.948 76.584 323.609 77.0827 323.289 77.568C322.975 78.0533 322.697 78.5307 322.457 79H323.313C323.393 78.84 323.489 78.664 323.601 78.472C323.719 78.2747 323.841 78.072 323.969 77.864C324.103 77.6507 324.241 77.44 324.385 77.232C324.529 77.0187 324.668 76.8187 324.801 76.632C324.935 76.8187 325.073 77.0187 325.217 77.232C325.361 77.44 325.5 77.6507 325.633 77.864C325.767 78.072 325.889 78.2747 326.001 78.472ZM333.626 78.464C333.802 78.464 333.957 78.4613 334.09 78.456C334.229 78.4453 334.343 78.4293 334.434 78.408V77.168C334.381 77.1413 334.293 77.12 334.17 77.104C334.053 77.0827 333.909 77.072 333.738 77.072C333.626 77.072 333.506 77.08 333.378 77.096C333.255 77.112 333.141 77.1467 333.034 77.2C332.933 77.248 332.847 77.3173 332.778 77.408C332.709 77.4933 332.674 77.608 332.674 77.752C332.674 78.0187 332.759 78.2053 332.93 78.312C333.101 78.4133 333.333 78.464 333.626 78.464ZM333.562 74.736C333.861 74.736 334.111 74.776 334.314 74.856C334.522 74.9307 334.687 75.04 334.81 75.184C334.938 75.3227 335.029 75.4907 335.082 75.688C335.135 75.88 335.162 76.0933 335.162 76.328V78.928C335.098 78.9387 335.007 78.9547 334.89 78.976C334.778 78.992 334.65 79.008 334.506 79.024C334.362 79.04 334.205 79.0533 334.034 79.064C333.869 79.08 333.703 79.088 333.538 79.088C333.303 79.088 333.087 79.064 332.89 79.016C332.693 78.968 332.522 78.8933 332.378 78.792C332.234 78.6853 332.122 78.5467 332.042 78.376C331.962 78.2053 331.922 78 331.922 77.76C331.922 77.5307 331.967 77.3333 332.058 77.168C332.154 77.0027 332.282 76.8693 332.442 76.768C332.602 76.6667 332.789 76.592 333.002 76.544C333.215 76.496 333.439 76.472 333.674 76.472C333.749 76.472 333.826 76.4773 333.906 76.488C333.986 76.4933 334.061 76.504 334.13 76.52C334.205 76.5307 334.269 76.5413 334.322 76.552C334.375 76.5627 334.413 76.5707 334.434 76.576V76.368C334.434 76.2453
<path d="M172 23.0325L167.031 20.0916L166.969 25.8647L172 23.0325ZM76.9946 22.5L167.494 23.4835L167.505 22.4836L77.0054 21.5L76.9946 22.5Z" fill="#757575"/>
<path d="M105.82 65.96C105.99 65.9173 106.214 65.872 106.492 65.824C106.774 65.776 107.1 65.752 107.468 65.752C107.734 65.752 107.958 65.7893 108.14 65.864C108.321 65.9333 108.473 66.0373 108.596 66.176C108.633 66.1493 108.692 66.112 108.772 66.064C108.852 66.016 108.95 65.9707 109.068 65.928C109.185 65.88 109.316 65.84 109.46 65.808C109.604 65.7707 109.758 65.752 109.924 65.752C110.244 65.752 110.505 65.8 110.708 65.896C110.91 65.9867 111.068 66.1173 111.18 66.288C111.297 66.4587 111.374 66.6613 111.412 66.896C111.454 67.1307 111.476 67.3867 111.476 67.664V70H110.732V67.824C110.732 67.5787 110.718 67.368 110.692 67.192C110.67 67.016 110.625 66.8693 110.556 66.752C110.492 66.6347 110.401 66.5493 110.284 66.496C110.172 66.4373 110.025 66.408 109.844 66.408C109.593 66.408 109.385 66.4427 109.22 66.512C109.06 66.576 108.95 66.6347 108.892 66.688C108.934 66.8267 108.966 66.9787 108.988 67.144C109.009 67.3093 109.02 67.4827 109.02 67.664V70H108.276V67.824C108.276 67.5787 108.262 67.368 108.236 67.192C108.209 67.016 108.161 66.8693 108.092 66.752C108.028 66.6347 107.937 66.5493 107.82 66.496C107.708 66.4373 107.564 66.408 107.388 66.408C107.313 66.408 107.233 66.4107 107.148 66.416C107.062 66.4213 106.98 66.4293 106.9 66.44C106.825 66.4453 106.756 66.4533 106.692 66.464C106.628 66.4747 106.585 66.4827 106.564 66.488V70H105.82V65.96ZM114.118 69.464C114.294 69.464 114.449 69.4613 114.582 69.456C114.721 69.4453 114.836 69.4293 114.926 69.408V68.168C114.873 68.1413 114.785 68.12 114.662 68.104C114.545 68.0827 114.401 68.072 114.23 68.072C114.118 68.072 113.998 68.08 113.87 68.096C113.748 68.112 113.633 68.1467 113.526 68.2C113.425 68.248 113.34 68.3173 113.27 68.408C113.201 68.4933 113.166 68.608 113.166 68.752C113.166 69.0187 113.252 69.2053 113.422 69.312C113.593 69.4133 113.825 69.464 114.118 69.464ZM114.054 65.736C114.353 65.736 114.604 65.776 114.806 65.856C115.014 65.9307 115.18 66.04 115.302 66.184C115.43 66.3227 115.521 66.4907 115.574 66.688C115.628 66.88 115.654 67.0933 115.654 67.328V69.928C115.59 69.9387 115.5 69.9547 115.382 69.976C115.27 69.992 115.142 70.008 114.998 70.024C114.854 70.04 114.697 70.0533 114.526 70.064C114.361 70.08 114.196 70.088 114.03 70.088C113.796 70.088 113.58 70.064 113.382 70.016C113.185 69.968 113.014 69.8933 112.87 69.792C112.726 69.6853 112.614 69.5467 112.534 69.376C112.454 69.2053 112.414 69 112.414 68.76C112.414 68.5307 112.46 68.3333 112.55 68.168C112.646 68.0027 112.774 67.8693 112.934 67.768C113.094 67.6667 113.281 67.592 113.494 67.544C113.708 67.496 113.932 67.472 114.166 67.472C114.241 67.472 114.318 67.4773 114.398 67.488C114.478 67.4933 114.553 67.504 114.622 67.52C114.697 67.5307 114.761 67.5413 114.814 67.552C114.868 67.5627 114.905 67.5707 114.926 67.576V67.368C114.926 67.2453 114.913 67.1253 114.886 67.008C114.86 66.8853 114.812 66.7787 114.742 66.688C114.673 66.592 114.577 66.5173 114.454 66.464C114.337 66.4053 114.182 66.376 113.99 66.376C113.745 66.376 113.529 66.3947 113.342 66.432C113.161 66.464 113.025 66.4987 112.934 66.536L112.846 65.92C112.942 65.8773 113.102 65.8373 113.326 65.8C113.55 65.7573 113.793 65.736 114.054 65.736ZM117.858 69.464C118.162 69.464 118.386 69.424 118.53 69.344C118.679 69.264 118.754 69.136 118.754 68.96C118.754 68.7787 118.682 68.6347 118.538 68.528C118.394 68.4213 118.157 68.3013 117.826 68.168C117.666 68.104 117.511 68.04 117.362 67.976C117.218 67.9067 117.093 67.8267 116.986 67.736C116.879 67.6453 116.794 67.536 116.73 67.408C116.666 67.28 116.634 67.1227 116.634 66.936C116.634 66.568 116.77 66.2773 117.042 66.064C117.314 65.8453 117.685 65.736 118.154 65.736C118.271 65.736 118.389 65.744 118.506 65.76C118.623 65.7707 118.733 65.7867 118.834 65.808C118.935 65.824 119.023 65.8427 119.098 65.864C119.178 65.8853 119.239 65.904 119.282 65.92L119.146 66.56C119.066 66.5173 118.941 66.4747 118.77 66.432C118.599 66.384 118.394 66.36 118.154 66.36C117.946 66.36 117.765 66.4027 117.61 66.488C117.455 66.568 117.378 66.696 117.378 66.872C117.378 66.9627 117.394 67.0427 117.426 67.112C117.463 67.1813 117.517 67.2453 117.586 67.304C117.661 67.3573 117.75
<path d="M257.593 14.712C257.753 14.8347 257.921 14.9867 258.097 15.168C258.279 15.3493 258.455 15.5467 258.625 15.76C258.801 15.968 258.967 16.1813 259.121 16.4C259.276 16.6133 259.407 16.8133 259.513 17H258.641C258.529 16.8133 258.399 16.624 258.249 16.432C258.105 16.2347 257.953 16.048 257.793 15.872C257.633 15.6907 257.471 15.5253 257.305 15.376C257.14 15.2267 256.983 15.1013 256.833 15V17H256.089V10.92L256.833 10.792V14.584C256.961 14.456 257.103 14.3147 257.257 14.16C257.412 14.0053 257.564 13.848 257.713 13.688C257.863 13.528 258.004 13.376 258.137 13.232C258.271 13.0827 258.385 12.952 258.481 12.84H259.353C259.231 12.9733 259.097 13.12 258.953 13.28C258.809 13.44 258.66 13.6027 258.505 13.768C258.351 13.928 258.193 14.0907 258.033 14.256C257.879 14.416 257.732 14.568 257.593 14.712ZM259.826 14.928C259.826 14.56 259.879 14.24 259.986 13.968C260.093 13.6907 260.234 13.4613 260.41 13.28C260.586 13.0987 260.789 12.9627 261.018 12.872C261.247 12.7813 261.482 12.736 261.722 12.736C262.282 12.736 262.711 12.912 263.01 13.264C263.309 13.6107 263.458 14.1413 263.458 14.856C263.458 14.888 263.458 14.9307 263.458 14.984C263.458 15.032 263.455 15.0773 263.45 15.12H260.602C260.634 15.552 260.759 15.88 260.978 16.104C261.197 16.328 261.538 16.44 262.002 16.44C262.263 16.44 262.482 16.4187 262.658 16.376C262.839 16.328 262.975 16.2827 263.066 16.24L263.17 16.864C263.079 16.912 262.919 16.9627 262.69 17.016C262.466 17.0693 262.21 17.096 261.922 17.096C261.559 17.096 261.245 17.0427 260.978 16.936C260.717 16.824 260.501 16.672 260.33 16.48C260.159 16.288 260.031 16.0613 259.946 15.8C259.866 15.5333 259.826 15.2427 259.826 14.928ZM262.682 14.52C262.687 14.184 262.602 13.9093 262.426 13.696C262.255 13.4773 262.018 13.368 261.714 13.368C261.543 13.368 261.391 13.4027 261.258 13.472C261.13 13.536 261.021 13.6213 260.93 13.728C260.839 13.8347 260.767 13.9573 260.714 14.096C260.666 14.2347 260.634 14.376 260.618 14.52H262.682ZM264.039 17.776C264.097 17.8027 264.172 17.8267 264.263 17.848C264.359 17.8747 264.452 17.888 264.543 17.888C264.836 17.888 265.065 17.8213 265.231 17.688C265.396 17.56 265.545 17.3493 265.679 17.056C265.343 16.416 265.028 15.7387 264.735 15.024C264.447 14.304 264.207 13.576 264.015 12.84H264.815C264.873 13.08 264.943 13.3387 265.023 13.616C265.108 13.8933 265.201 14.1787 265.303 14.472C265.404 14.7653 265.513 15.0587 265.631 15.352C265.748 15.6453 265.871 15.928 265.999 16.2C266.201 15.64 266.377 15.0853 266.527 14.536C266.676 13.9867 266.817 13.4213 266.951 12.84H267.719C267.527 13.624 267.313 14.3787 267.079 15.104C266.844 15.824 266.591 16.4987 266.319 17.128C266.212 17.368 266.1 17.5733 265.983 17.744C265.871 17.92 265.745 18.064 265.607 18.176C265.468 18.288 265.311 18.3707 265.135 18.424C264.964 18.4773 264.769 18.504 264.551 18.504C264.492 18.504 264.431 18.4987 264.367 18.488C264.303 18.4827 264.239 18.472 264.175 18.456C264.116 18.4453 264.06 18.432 264.007 18.416C263.959 18.4 263.924 18.3867 263.903 18.376L264.039 17.776ZM268.551 17V11.456H271.935V12.12H269.327V13.768H271.647V14.416H269.327V16.336H272.135V17H268.551ZM273.074 12.96C273.244 12.9173 273.471 12.872 273.754 12.824C274.036 12.776 274.362 12.752 274.73 12.752C275.06 12.752 275.335 12.8 275.554 12.896C275.772 12.9867 275.946 13.1173 276.074 13.288C276.207 13.4533 276.3 13.6533 276.354 13.888C276.407 14.1227 276.434 14.3813 276.434 14.664V17H275.69V14.824C275.69 14.568 275.671 14.3493 275.634 14.168C275.602 13.9867 275.546 13.84 275.466 13.728C275.386 13.616 275.279 13.536 275.146 13.488C275.012 13.4347 274.847 13.408 274.65 13.408C274.57 13.408 274.487 13.4107 274.402 13.416C274.316 13.4213 274.234 13.4293 274.154 13.44C274.079 13.4453 274.01 13.4533 273.946 13.464C273.887 13.4747 273.844 13.4827 273.818 13.488V17H273.074V12.96ZM279.475 17.096C279.139 17.096 278.843 17.0427 278.587 16.936C278.337 16.8293 278.123 16.68 277.947 16.488C277.777 16.296 277.649 16.0693 277.563 15.808C277.478 15.5413 277.435 15.248 277.435 14.928C277.435 14.608 277.481 14.3147 277.571 14.048C277.667 13.7813 277.801 13.552 277.971 13.36C278.142 13.1627 278.35 13.0107
<path d="M382.525 68.928C382.525 68.56 382.579 68.24 382.685 67.968C382.792 67.6907 382.933 67.4613 383.109 67.28C383.285 67.0987 383.488 66.9627 383.717 66.872C383.947 66.7813 384.181 66.736 384.421 66.736C384.981 66.736 385.411 66.912 385.709 67.264C386.008 67.6107 386.157 68.1413 386.157 68.856C386.157 68.888 386.157 68.9307 386.157 68.984C386.157 69.032 386.155 69.0773 386.149 69.12H383.301C383.333 69.552 383.459 69.88 383.677 70.104C383.896 70.328 384.237 70.44 384.701 70.44C384.963 70.44 385.181 70.4187 385.357 70.376C385.539 70.328 385.675 70.2827 385.765 70.24L385.869 70.864C385.779 70.912 385.619 70.9627 385.389 71.016C385.165 71.0693 384.909 71.096 384.621 71.096C384.259 71.096 383.944 71.0427 383.677 70.936C383.416 70.824 383.2 70.672 383.029 70.48C382.859 70.288 382.731 70.0613 382.645 69.8C382.565 69.5333 382.525 69.2427 382.525 68.928ZM385.381 68.52C385.387 68.184 385.301 67.9093 385.125 67.696C384.955 67.4773 384.717 67.368 384.413 67.368C384.243 67.368 384.091 67.4027 383.957 67.472C383.829 67.536 383.72 67.6213 383.629 67.728C383.539 67.8347 383.467 67.9573 383.413 68.096C383.365 68.2347 383.333 68.376 383.317 68.52H385.381ZM387.226 66.96C387.397 66.9173 387.623 66.872 387.906 66.824C388.189 66.776 388.514 66.752 388.882 66.752C389.213 66.752 389.487 66.8 389.706 66.896C389.925 66.9867 390.098 67.1173 390.226 67.288C390.359 67.4533 390.453 67.6533 390.506 67.888C390.559 68.1227 390.586 68.3813 390.586 68.664V71H389.842V68.824C389.842 68.568 389.823 68.3493 389.786 68.168C389.754 67.9867 389.698 67.84 389.618 67.728C389.538 67.616 389.431 67.536 389.298 67.488C389.165 67.4347 388.999 67.408 388.802 67.408C388.722 67.408 388.639 67.4107 388.554 67.416C388.469 67.4213 388.386 67.4293 388.306 67.44C388.231 67.4453 388.162 67.4533 388.098 67.464C388.039 67.4747 387.997 67.4827 387.97 67.488V71H387.226V66.96ZM393.628 71.096C393.292 71.096 392.996 71.0427 392.74 70.936C392.489 70.8293 392.276 70.68 392.1 70.488C391.929 70.296 391.801 70.0693 391.716 69.808C391.63 69.5413 391.588 69.248 391.588 68.928C391.588 68.608 391.633 68.3147 391.724 68.048C391.82 67.7813 391.953 67.552 392.124 67.36C392.294 67.1627 392.502 67.0107 392.748 66.904C392.998 66.792 393.276 66.736 393.58 66.736C393.766 66.736 393.953 66.752 394.14 66.784C394.326 66.816 394.505 66.8667 394.676 66.936L394.508 67.568C394.396 67.5147 394.265 67.472 394.116 67.44C393.972 67.408 393.817 67.392 393.652 67.392C393.236 67.392 392.916 67.5227 392.692 67.784C392.473 68.0453 392.364 68.4267 392.364 68.928C392.364 69.152 392.388 69.3573 392.436 69.544C392.489 69.7307 392.569 69.8907 392.676 70.024C392.788 70.1573 392.929 70.2613 393.1 70.336C393.27 70.4053 393.478 70.44 393.724 70.44C393.921 70.44 394.1 70.4213 394.26 70.384C394.42 70.3467 394.545 70.3067 394.636 70.264L394.74 70.888C394.697 70.9147 394.636 70.9413 394.556 70.968C394.476 70.9893 394.385 71.008 394.284 71.024C394.182 71.0453 394.073 71.0613 393.956 71.072C393.844 71.088 393.734 71.096 393.628 71.096ZM397.074 66.752C397.138 66.752 397.21 66.7573 397.29 66.768C397.376 66.7733 397.458 66.784 397.538 66.8C397.618 66.8107 397.69 66.824 397.754 66.84C397.824 66.8507 397.874 66.8613 397.906 66.872L397.778 67.52C397.72 67.4987 397.621 67.4747 397.482 67.448C397.349 67.416 397.176 67.4 396.962 67.4C396.824 67.4 396.685 67.416 396.546 67.448C396.413 67.4747 396.325 67.4933 396.282 67.504V71H395.538V67.016C395.714 66.952 395.933 66.8933 396.194 66.84C396.456 66.7813 396.749 66.752 397.074 66.752ZM398.308 71.776C398.367 71.8027 398.442 71.8267 398.532 71.848C398.628 71.8747 398.722 71.888 398.812 71.888C399.106 71.888 399.335 71.8213 399.5 71.688C399.666 71.56 399.815 71.3493 399.948 71.056C399.612 70.416 399.298 69.7387 399.004 69.024C398.716 68.304 398.476 67.576 398.284 66.84H399.084C399.143 67.08 399.212 67.3387 399.292 67.616C399.378 67.8933 399.471 68.1787 399.572 68.472C399.674 68.7653 399.783 69.0587 399.9 69.352C400.018 69.6453 400.14 69.928 400.268 70.2C400.471 69.64 400.647 69.0853 400.796 68.536C400.946 67.9867 401.087 67.4213 401.22 66.84H401.988C401.796 67.624 401.583 68.3787 401.348 69.1
<path d="M306 76L301 73.1132V78.8868L306 76ZM77 76.5H301.5V75.5H77V76.5Z" fill="#757575"/>
<line x1="236" y1="22.5" x2="338" y2="22.5" stroke="#757575"/>
<path d="M338 61L340.887 56L335.113 56L338 61ZM337.5 22L337.5 56.5L338.5 56.5L338.5 22L337.5 22Z" fill="#757575"/>
<line x1="370" y1="76.5" x2="469" y2="76.5" stroke="#757575"/>
<path d="M469 112L471.887 107L466.113 107L469 112ZM468.5 76L468.5 107.5L469.5 107.5L469.5 76L468.5 76Z" fill="#757575"/>
</svg>