Mercurial > hg > Papers > 2024 > matac-master
changeset 72:b2a541a2c178
create slide & poster
author | matac42 <matac@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Feb 2024 17:12:55 +0900 |
parents | 8e84b98cc6c8 |
children | c4b013299ff6 |
files | Paper/master_paper.pdf marp-slide/Makefile marp-slide/README.md marp-slide/cr.css marp-slide/figs/cd.svg marp-slide/figs/cgdg.svg marp-slide/figs/context.svg marp-slide/figs/copy_alloc.drawio marp-slide/figs/copying-gc.svg marp-slide/figs/data-access.svg marp-slide/figs/disk-memory.svg marp-slide/figs/inode.svg marp-slide/figs/ls.svg marp-slide/figs/meta_cg_dg.svg marp-slide/figs/mkdir.svg marp-slide/figs/nondestructive_tree_modification.png marp-slide/figs/test.drawio marp-slide/figs/test.svg marp-slide/figs/transaction.svg marp-slide/logo.svg marp-slide/slide.html marp-slide/slide.md mindmaps/gears_fs_db.mm poster/matac-poster.graffle |
diffstat | 24 files changed, 2049 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/Makefile Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,3 @@ +build: + marp template.md --theme cr.css + open template.html \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/README.md Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,15 @@ +## 使用方法 + +基本的には`Marp for VSCode` Extensionを使用する + +Extensionをインストール後、次のVSCodeの設定を書き込む。 +テーマのパスは環境によって違うかもしれないので確認する。 +おそらく、VSCodeで開いているディレクトリからの相対パスを入れれば良い。 +```json + "markdown.marp.exportType": "html", + "markdown.marp.themes": ["template/cr.css"] +``` + +## CLIでの使用方法 + +Makefileを作成してある \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/cr.css Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,30 @@ +/* @theme cr */ + +@import 'default'; + +section { + background-image: url('./logo.svg'); + background-repeat: no-repeat; + background-position: right 2rem bottom 0.6rem; + background-size: 12%; +} + +h1 { + color: #828db2; + font-size: 2.1rem; +} + +h2 { + background-color: #828db2; + color: #fff; + padding: 0.3rem; + font-size: 2.1rem; +} + +p { + font-size: 1.3rem; +} + +ul, ol { + font-size: 1.2rem; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/cd.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Do not edit this file with editors other than diagrams.net --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="833px" height="383px" viewBox="-0.5 -0.5 833 383" content="<mxfile host="app.diagrams.net" modified="2022-02-02T06:30:32.936Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" etag="XAATmcEUyCgARJJNp3-O" version="16.5.2" type="device" pages="4"><diagram id="AAaulOYO_kfhROZJ8ttr" name="Page-1">7Vpbb+I6EP41PBbFSQjwWGi350hUW52utNtHlxjirRMjxxTYX3/GiU2uQLbLJYsqIRFPxsb+5hvPeEzHGYfrB4EXwSP3CevYlr/uOHcd20au7cGXkmxSSd8bpoK5oL5WygTP9BfRQktLl9QncUFRcs4kXRSFUx5FZCoLMiwEXxXVZpwVf3WB56QieJ5iVpV+p74MUunA7mfyfwidB+aXkVlfiI2yXkkcYJ+vciLnvuOMBecyfQrXY8IUeAaXtN+XHW+3ExMkkk06zH6+/PuNT1dSPt4+PDk3XydfJzdIm+cds6VesZ6t3BgIBF9GPlGjWB1ntAqoJM8LPFVvV2B0kAUyZNBC8DijjI054wLaEY9AaVSdqJ77OxGSrHMiPfEHwkMixQZUzFtLg6hZ5OnmKjMJMrIgb46BFmJNg/l26AwpeNBg/Q5wh3GDUYCl5DBmOF6k1J3RtcL5KIh5RcQGVcTcGsDcU+Fltx0vu4gXqqHYeQFzqgD5sDXpJhcy4HMeYXafSUdFV810JpwvNHg/iZQbvc/ipeRFaMmayh+55xc1VLenW3drPXLS2JhGBOtVnW6sroVsI0m7el7fCLLeSavQ/YkICrgRoYU7LRrzpZiSPbhp2CQWcyL34asNp0DdSxBBGJb0vRgPjm5up+X+YVst848GgYtE/q1KAbJQlAOp6CpbDmuyGwKjQ+TV/pL5yEveRWr95ePcthtyGzWkds52vRrbGVljD9C/8MQprGxLHWdYpI7jlTiRrlv3ymcwpYFctzQQKg2UAlMZKOHXdtkfp1z/uJSrpQ5qttWWaGodoOnHKWdy7kOUcz4pdwrKDSqUoxGcsZRFBCEV+sFmLouci6Xgb6SUkdck6ZjReQTNKTBEReGRCg0UzkG3+kVIfZ/tCj5FZh8h3DiDIu5uNdrU5fvOqaLNsMYOPizl2u1QPnhd2g7G/VqbJ5U3jEufu1DbD6pu2xJL1PajqjtoG2JNDi/XloujppmR2bJakhp5/SOlRn37sqkRco/Lur8jHbeass7+ZN1JWNersO6NwIC3IAO5x1Te9yrgaa6etJp6a64BrjFLLB23tou9WJo4rG4FLS+eWoUNpGsNnPPWTdGg6c7iNdxZzlM4RdUjspq/beXd8mod7+C12FndzuzNLb9NLBcXLn+baHDaTeIrjh52KXrUnWfOS+NqZpm3w54YnxTnrthUTr93MNAPz2qqak1+hw3iFQ0ZTnHmkTSpgAJmGlDmT/CGL9V0Y4mnb6Y1Crigv0AfZ5bDQuoUwLEKGs+qpx5TkBh0ngzYqCR6xOuC4gTH0syGM4YXMX1N5qc6hhCSaTTiUvJQK+Wp4pMZXiacPMHeWFfAQnXVhe0F+vFtXI3wXyhTNfBvm8XO2uvvehgjM7nPv2JwLRrNJ4nanZtJ/tMYKBGH7jOWnDcD6EhghNFCHUUSTHoj+ABKY5UU9mCuY2ijrA0fpS7kmEcwfUwTKxKgxoooeoA/Syzx65a4VXvvd5LDLDCnqoZGP51fVwvukOqGNI4pjz5NfgKT1yVBZzW5U00eu93up61PYOvhxW1draJUDH2+2p098C58+DYZ5+F/LWlbt6SsV75n3+aDf3rPjnqlgT5c1oNm9h/bVD37p7Jz/z8=</diagram><diagram id="s08jDtw-m_Aoh3yq8LbV" name="Page-2">7Vpbc9o8EP01zLQPydgyNvAYLmk70y+TKZ02eeoILIwS23KEHEx//SfZku+AW+5p8hJ0LOty9uyuVtAyBl70icJg/h+xkdsCmh21jGELAL0NLP5PIKsE6eggARyKbdkpA8b4N5KgJtEQ22hR6MgIcRkOiuCU+D6asgIGKSXLYrcZcYuzBtBBFWA8hW4V/YltNk/QLuhk+GeEnbmaWbd6yRMPqs5yJ4s5tMkyBxmjljGghLDkkxcNkCvIU7z86Oq/tf6D9jyMNH84+/V12PGvksFu/+SVdAsU+WzPQ3eTsV+hG0rCWsBy+Sz9GeGTCbu4hMZPrJdQbLXfAsZspvG/PKQt2EpSrkAxwNUiFsQN76B3gijumr1kOeJ/EDI154TuNJIahpOQrD6Bn9EqedGHHrriKPQCDsfPko0D7cMMu0g8/7intUhGRR8HQboYYsrlTeiqtIAvd9zl7kJvgqiUWTolYCgSXebMczmg848LRskzGkib+MRHYknYdUsQdLHj86aLZvFiEGWY+8SNhD1s22KS/nKOGRoHcCpmXPIIwDFKQt9GQjWa3K/0ar2TrkC5khHvuJE6pYrFUlCU802p1k+IeIjRFe8inwJNOp6MPEZXtpeZH4OexOY5HzYkBmXocNKhM/fgH6SH1HvL6LPzcL/87oHJeBmS8OVq8m2UbiHvLCWTZeTpa+jNWVNwO0j9y7i9jb2q1qDHo13vmUXarSrthlZDe+dQtGv/Au1AL9Ku19AOugeivXYLKkWuzw3NouPaMH2QDLMpvZTyQj7Sb0wgCrbx6+67XgTQX8PEX46c5rfmiWbjNjlct0gOxwTsc+m5LOmjZbr0tQs8wwR5xBABiglRr0uInQMlxPoQ8SeRWWsQmU8ZgU2tGIFTKnP0plE5T28K7p1fYzu/fBReSq2Tao5buAiS+mqGI2GPYzJrlZjtVZlt1xDbPhSv7TfCKygd1WoUe1RerbfBq6WdGa91J7Eyr759I65LssiZ47IYhDlbdPUgGtemaj7KnnFjGOV7DleqFWGWe423HnNPspdEQ72zq9EWJKRTtN2VGaQO2jSeDKXILlwXVSWQM7FZY2KFUeRChl+Ll0x1dpcz3BMcn5OkwjqlIsssn+KTfcu38rc6pYG67dJAoDRQQkxloFiG6bb/Xpl190c7KLNWYfpGha1Ts7ZFzQdXptFQmda7Mg+hzF5FmdjnFZCwCEWootLdS4kplw2vrS70ts3UwHXRYO1q0uuaVd0drLjQq/c+mFMVvVuwqQVPb8IGN6aXcCAsFzCnrl/Ud3AXz2upgNFPfdDW30jFXa5gTk9sk5L7Hy1hlDdvPSmqcHqmR0VjX0dF48hHRfXVy3sVs15z28V53hX2JYjzyX0Jb4fe3dR/ep2YxurxW9BXFxx5KXKGx7JJKJsTh/jQHWVoSY9Zn6+EBFKKT4ixlTyowpCRoqCVhPV8lEzlvFXCRqco4msLmNsis2jdI4o5X+IMfiR1dxuqu91Q3I1Vu1s2rRa3FZVc7hcvR/3epdbn9AqbZ+pzB3cQ9SOA/Qm/Psqa6uSpDqwqfO8cZXkz+41e0j37paMx+h8=</diagram><diagram id="_SMWdJT_P9braKPgiXsX" name="Page-3">7Vtbd6M2EP41Pqd9cA5INsaP8SVpT7N7ts2mm/QlhxjZVoIRFTjG/fWVjAQIcMA2kMvGL7YGMUKfvpnRDHIHjlfhJbW85RdiI6cDNDvswEkHAL0HDPbFJdtIMtBBJFhQbItOieAa/4eEUBPSNbaRr3QMCHEC7KnCGXFdNAsUmUUp2ajd5sRRR/WsBcoJrmeWk5f+wHawjKQmGCTy3xBeLOXIujGMrqws2VnMxF9aNtmkRHDagWNKSBD9WoVj5HDwJC7hzZ+TzXRLnnz30nlc3Y9v4KgbKbs45JZ4ChS5Qb2q5dyeLWctAOsAw2GjjOaEDcbXxSF0d8X4d82nOuoAOJ9r7JMWaX6wFZBLIVfQ9XeEOGcd9IEX7romNxkL/r1AgRyTPX00bHRFih/oSQM8oe2uh2GtPNZ0H3wvpdz3LPfE57eoP8GUsZfQbTceZ3fx96/Mor6uVw+IpiYZjSknCZThQYBCLl8GK4cJdP6IASVPaCxWwiUu4o+HHScjshy8cFnTQXOu4RnRADNLOBfiFbZtPshos8QBuvasGR9xw+yeyShZuzbiXNHE3IUt64P4CaQBwfixSzkpuMsfBYUpixQcvURkhQK6ZV3k1aGgpPA30BTtTWK9YNCPZMuU5ULRzxIOYxGrToyC/RB2cYj5mWU2Uo07OeI0amlHmplqMZprrVCG0REMQPuFERDx67/uVVtK7PoI2x5BocrPQQE9pVetm550rHn/PBq0d3v7Y3VzP3r+W8NdWMDODPAJVPoeMFNrwpdwHFMRXlzsCFjob1r0CmZf9QpFsJsFsPebgh38DLADletGAeiwIdCLJzA8BHWtAuqviW4fqKQu4LRuFMCrm03hexCp3zq8sT94M/BWcNVMC8uM9sW8dOj0vShdmuOQL0ebEbCnAjvMA9srwLXXFKy9DwKrpsKqFxC2VVyND4Kr+cZwHVTA1bXPefEj8ZspLFUXzNCi21veOOvL5p3ouWtMwnTPyVa2QhykbmOtu9SV5CbekPecumg+WdMZKjflwKI8XSn1pMhWij95CqSWuP/CRoUixwrws1oyKlp3McI3gncpmwzkA5Vh8e5UqojmLe5K12gyiozMhguCjKIImJyiHQ3jaR/PzKJM9wRmFjJMf5Fh+9islbC5cWbCisw0PpnZBDPzG3/sEpvXIQKKUI6lp9fQZow2iL7XKlo2tejlQ57Zag0tX2fGDKjwc/325C5G6foNC7xGc+un59bvXe4F+5k6UoupS2EVScujyALHtWgSGizJgriWM02kGY4mfa4I8QTCjygItoK51jogKv4nxmWgx1tLfl9XOyvdavLWN0QxA43bZGxcRQWvxiO5fIFZGspluC2N5acGaROe9VjElx+gUBQMh2daRmfDwVYi9O6tvada+6tnfvoHqQAZ4K0BW6UG9JPm1JX9nV7V37WTu5j6nnc+h+YuZmYz1XbuIufxmVbv51w5Od9WyefjkLOoylvTyZijjxGo52NqOQRU26QEULzP58mfOjcVeqZOH78PSb9ubjfrHeT9dHvpmfx9p/j6Mv+uePczzYTH5GbNu32zotsHFb1+ZXdelRD699HVHxje3KPF1V+aBTa4v5XF3XfEB5ada5rxPkghI1/5XmD4Wqx4sU5Q+wHBOH4eGmiSk3xJtFJPv7poE+s7/vxe++GpxeKBltmYFYWjporohcXCKjXYJI2YOZbv49lLmUT1ElwqfzCAeUgGUehKDluzjJmrDmL/mcjXSg2goavEyVY9qqYGcJhRlD1XV19qYE697+HscTa5fnj+YoHhud+dVjkNdjjfXt5bnpjbGiBbmtbgUbFuD/HqC3VVI53xqkzOnsU3jmRyL3NiDOp1MZk1k3/gRN2T/zHB6f8=</diagram><diagram id="HHLeNmLiLjBSiti2kdQe" name="Page-4">7Vtbd6o4FP41rjXz0C4SLuJjr6dz6/RMZ9ZpzxuVqJwiwRAr9tdPIuESQI2KWHvsS8mG7JC9v30ldvSrcfyFOOHoL+wivwM1N+7o1x0IgQEt9o9T5gmlC2BCGBLPFQ/lhEfvHQmiJqhTz0WR9CDF2KdeKBP7OAhQn0o0hxA8kx8bYF9eNXSGqEJ47Dt+lfrNc+koodqwm9PvkDccpSsDq5fcGTvpw2In0chx8axA0m86+hXBmCZX4/gK+Vx4qVwevd+1t/fb2eMFRC4mN0/Rf+gsYXa7yZRsCwQFdGvWD1/f9Zd/gnhyd9G7/ePH091kgs+AnfB+c/ypEFgHWj5b5XKA2WJs13QuRGlNpji9cRYtFH3BHgDdMM5vsquh+F/k0sc+JhKXDtQHA439FUnbrjZENF2QCSBZU36PF5JSXtE8YRU4Y3TGqM445Cz4vUQMUPtl4PmI3/91KVsovS2kKOb0ER37jADYpeN7w4Bd+2iwYI0I9RgsLwR57Lkun3w5G3kUPYZOn3OaMSNkNIKngYu44jQ2iijBrxl69Wz5tYAQwOFLo7hgDgIgXxAeI0rm7BFxVxdQT21dDGe54WTWMCoYTTrNEbY6zBjneGQXApIbwDNdbDk8mwXWAi9bYWuHBVJACiAGL1FYYB6FTrDj+zskuvYIc66YzEuA/+2eOfz76fgFkcImkzWVkZ7g80poIsABhzWzIL9Eas4i+N5FqAHdVi0E9GQT0a0aG+mabdqIUWMjJZ3l0gNL5FtQJxfuVWZW+u3twphqNXpAPdglPZg1erBrfJW5Nz3oh9NDe3KHstjr0K+3KfW6ALFU6JqC0A8pXBOa6+IvsGqkmxlD4+IFn0m8mTw/jHjhevEyLqxUWhYWi/lmFCb108CLuTraTBtLeWOvKlijRq7GvsSq4ImPQaywlGuAGsC2KlejKkaXFdtiiAkd4SEOHP8mp5YSt/yZPzEOhYh/IErnIo1wphTLCkCxR5/49HNTjJ4Ld65jwXkxmKeDgG03mWSBXkp4Lt7NJy5G0swHRDwmMUQEcWmmuisWIjwlfbRC4iIeUIfwMmSFnxZdGq6PldAiyHeo9yY3RxoHivk5DFDvfjADtBTkGrgXvG2WB9iCLGVjLFiJWbQRsM5Gai1SW2mRe7cUXdFSoKKhFFRsrkhole1JrPCAvUXfIs34rFIZ0y1BJ9m3mFXs7pUYWaDECJYYJYKpMFrAMNv29sjsNovM3Xy+uYnH3zsyoSIyzRMy94HMaofbC7DLu7yUIFRB6e7trT6DDU8djrPBVa5BjWrIs9tsb/Vq1OeyrZzUp1Tj1qmvzQ5+avzHngqatmwWLZa4vddwMrrEf1s3T/f2LJzE3+/+TfteR1WKAUMKzGfauWZ1t6nHVM2rFEobjOnpR/D16eZB67D0NY/e+gzZ+g5eiIFP0mKy4EcTrMLXrJ+1xFV2OmnQ/SClhA1kkG1dSthWiVHLpQRQ6Wv9pFVuirn14NRP4NwLOOuagw2dIdn6zJR8kqSR4zKNbUoIij9zOiPTZFJRPptRVyxltHaq0G7VT7dXLqXXz5KvX+ffJe9+rtn6NpXS/t2+rer2Fb1+S4VR7+gAwctlzToOVEDVZEA1UW0HFSnjQgjNIt+mIWLHKJcHJ/lYaIBm2Uucws7KzrUOasJOu0czVdoveb3Q950o8vqrSoZlZwLzUsKChnoxwQbrfUPxMIUhO6BtnE/TAaj+5INKa844ZN1hrPssplp36D0gMyqftdxz3QGrRfFKX9mfEq76ghfTFrO0Pbu2pr7rFMxP09IjuQdzekbpe49ek2vrrX7xgZsdUtnc6WVSz50eMK2i0ztvwu01nRKpJsCHcT/ZeFP3Y1p2PQDbcj/VkyfegMs59iJ6ciOq3wG0Uu5U83OKuqPRW3gRNsx/M5mgIP/lqX7zPw==</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="11" y="31" width="220" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 218px; height: 1px; padding-top: 46px; margin-left: 13px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 17px"><font color="#ff0000" style="font-size: 17px">get</font><br />key: name->value (filename)</font></div></div></div></foreignObject><text x="13" y="50" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">get...</text></switch></g><rect x="171" y="321" width="275" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 273px; height: 1px; padding-top: 336px; margin-left: 173px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font color="#ff0000" style="font-size: 17px">get</font><br style="font-size: 17px" />key: <span style="font-size: 17px">gearsDirectory->INodeNumber</span></div></div></div></foreignObject><text x="173" y="341" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">get...</text></switch></g><rect x="161" y="311" width="280" height="50" rx="7.5" ry="7.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="1" y="21" width="230" height="50" rx="7.5" ry="7.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="506" y="31" width="160" height="180" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="251" y="31" width="160" height="180" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="331" cy="71" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="291" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 371 171 L 371 211 L 340.5 211 L 340.51 240.9" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 340.51 247.65 L 336.01 238.65 L 340.51 240.9 L 345.01 238.64 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="371" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 291 131 L 331 91" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 331 91 L 371 131" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="506" y="1" width="85" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 83px; height: 1px; padding-top: 16px; margin-left: 507px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">inode tree</div></div></div></foreignObject><text x="549" y="21" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">inode tree</text></switch></g><rect x="251" y="1" width="80" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 16px; margin-left: 252px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">index tree</div></div></div></foreignObject><text x="291" y="21" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">index tree</text></switch></g><ellipse cx="586" cy="71" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 546 171 L 546 221 L 545.9 258.89" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 545.88 265.64 L 541.41 256.62 L 545.9 258.89 L 550.41 256.65 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="546" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="626" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 546 131 L 586 91" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 586 91 L 626 131" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="161" y="251" width="290" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 288px; height: 1px; padding-top: 266px; margin-left: 163px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="font-size: 17px">key: name->value (filename)</span><br style="font-size: 17px" /><span style="font-size: 17px">value: gearsDirectory->INodeNumber</span></div></div></div></foreignObject><text x="163" y="271" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">key: name->value (filename)...</text></switch></g><path d="M 231 46 L 240.9 46" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 247.65 46 L 238.65 50.5 L 240.9 46 L 238.65 41.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 446 336 L 476 336 L 476 45.9 L 494.94 45.93" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 501.69 45.94 L 492.68 50.42 L 494.94 45.93 L 492.69 41.42 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="506" y="271" width="275" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 273px; height: 1px; padding-top: 286px; margin-left: 508px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">key: gearsDirectory->INodeNumber<br style="font-size: 17px" />value: newDirectory</div></div></div></foreignObject><text x="508" y="291" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">key: gearsDirectory->INodeNumber...</text></switch></g><path d="M 341.96 281 L 341.91 300.9" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 341.89 307.65 L 337.41 298.63 L 341.91 300.9 L 346.41 298.66 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="451" y="351" width="380" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 378px; height: 1px; padding-top: 366px; margin-left: 452px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">gearsDirectory->currentDirectory = newDirectory</div></div></div></foreignObject><text x="641" y="371" fill="#000000" font-family="Helvetica" font-size="17px" text-anchor="middle">gearsDirectory->currentDirectory = newDirecto...</text></switch></g><path d="M 548.9 304 L 548.98 340.9" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 548.99 347.65 L 544.47 338.66 L 548.98 340.9 L 553.47 338.64 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="586" y="311" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 326px; margin-left: 587px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">if exist</div></div></div></foreignObject><text x="616" y="331" fill="#000000" font-family="Helvetica" font-size="17px" text-anchor="middle">if exist</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/cgdg.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Do not edit this file with editors other than diagrams.net --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="753px" height="83px" viewBox="-0.5 -0.5 753 83" content="<mxfile host="app.diagrams.net" modified="2022-05-27T06:28:59.214Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36" etag="4T78E14Pa8k8r_5f0wOW" version="18.1.3" type="device" pages="5"><diagram id="ZPwkLcfqQLWw-W21SHS2" name="Data Access">5VnbcpswEP0aP7ZjEDc/Jr4kncaTzHjaJn3JaEAGNYA8Qo5xv77CSOYiHDyxsdN48hB2JS3WOavV7tIDwyi9oXARTImHwp7e99IeGPV0XetrDv+Xada5xjKFwqfYE5MKxQz/RXKl0C6xh5LKREZIyPCiqnRJHCOXVXSQUrKqTpuTsPrWBfSRopi5MFS1v7DHglzr6Hahv0XYD+SbNWuQj0RQThY7SQLokVVJBcY9MKSEsPwpSocozMCTuOTrJjtGtz+Mopjts2CdfoPj4DZkjjG4J2A6+vF39EVYeYXhUmxY/Fi2lghQsow9lBnp98D1KsAMzRbQzUZXnHOuC1gUcknjj3MchkMSEsrlmMQoU5GYCV41m8sJo+RlCyYQM+Sing4mk2tgWduZTSPq3uVGEGUoLakEFjeIRIjRNZ8iRw3Bi3BMvS/kVUGzLucEJYq3E6FwLX9ru0CfPwgCmskYfWfPthNPfRyldqw9/xzd/T4+Ga3IHwFHo9+Oo6Y34Oh0BaP+GWAE+rlhBAqMUxQRYbgMJt8hqyJWPbgyDqihAYbYj7noctwQ119neGEefK/EQIQ9L3tNI0VVEs/CkmarLFkNJIGuSDIUkkY4eblkioBTi0cDlSL7lBRZKkWQwa5DknJ3WuPsr6OYb+wZrPSuQLY/P8jAOjfIAwXk+/k8QYzrhiTmO0swiRXMuWGerO+KEKe+Z3WzhiowVVS1BlTNzrI+1XdVDGPvKitmskAcwiTBbhW6ql9zdOj6sSw8lYVRWpHWUkoxexT2sufNmq+mkIpFmSDXHEBZQpbURe3exiD1EWs/+sirFHKqA5QINt/gl6IQMvxaLf+aSBdveCA4ZqXrZ7Dj1EoT+b7FqnK5VjNk1OoToNUM5cAohjY+uN32AW7p7Aip/SvXRUlyyTlGvXTU1RgyOGWKoamR+Swh5ADwW4+59aGOueICxrGOeb27cLxj3twA0lRP4RDPhEgoC4hPYhiOC23NV4o5d4QshDv9QYythS/AJSNVZ5N3TXG/PJVGmu+aHS6ZW+jGKVvvqL29d7Cn9+7tlod1SNRO06ZsBBOuFFV+9vyhMzmtlslxxV5R2DS7QlXtmHC/3wJ6wfdlPeluokrrn/LG1NWqfMPVpXdPtFr3BJgqU111TxrvJ13haYo2Wegdes0+Nf2nVO365HEMCkGVwqYeZWOF2xmHmhoYD0xP2wF+b7ZQZCa27VQrYQe8nZ9w4QFRzDHL/Geje39mIcuv1sxCWvwgiXG9/WrU+yZ7J8Y1NzaOlhhzsfjqmk8vvl2D8T8=</diagram><diagram id="YNPyPx7KaQu_DktN2Ut5" name="Disk to Memory">5VhNc5swEP01PqYDCLB9TLDTtEkmbT3jOLlpQAbFQnKFHHB/fYURNh/y2PWYpGnHB2sX7YLee1ot9IAXZ585XEb3LECkZxlB1gOjnmWZhjmQf7lnXXhcRzlCjgM1aeeY4F+ojFTeFQ5QUpsoGCMCL+tOn1GKfFHzQc5ZWp82Z6R+1yUMUcsx8SFpex9xIKLCO7D6O/8NwmFU3tl0h8WVGJaT1UqSCAYsrbjAuAc8zpgoRnHmIZKDV+JSxF3vubp9MI6oOCpgCL6PRndxOH2YGjP5PyTxBSiyvEKyUgtWDyvWJQKcrWiA8iRGD1ylERZosoR+fjWVnEtfJGIiLVMO54wKRaLZl3YiOFtskQP5DEyIxwjj0qaMou2k0tmzwPX1FXBdlU7nV0+NuEDZXjjMLchSnYjFSPC1nKICgKF4UcI0B8pOdzSbrvJFVYpLQqGSVrjNvUNfDhQBejJma3uY+uRWsOzCu/3qLlJTXJhvTsYZcDTtOo6WocHR0uA46ApG6yPC6Bh/G4zt0nCPYqYSV8GUixZ1xOobWu1yzcaHBIdUmr4ECUn/VQ4hlsX3Ul2IcRDkt9FSVCfxXcRu9tss6WoG6Ioku0XSCArYtd5bBdsd57+OCop95E7orC47/x7IrXLzliDfeu6PwH/6iabm45eXReo7S645/EY4WfzPxcYeHC42/Y6KjZai9sH6MJ8nSEifx6hca4IZbTEmE8tmfR+uJ/eOAZrDFRFnagZB8/R12tvB0GDdPwPW2sb8iF4Q0eAyf8PJNU1gkmB/Axrkou2uwPynSkYZFjMVm4+fVGQ+HmVVY10aVCIwqxqbmE9Oae7CNlYZV6wQBa03sgaNEgW24j46fC5KMEIkDkm6LYsK7Y6G9dLHEYECv9YfVycFdYdvDFNRUZ1VVx1wGmoqlqmiqq92jUR248gEZiNRgUMr0UaZ22WfLtYjOu6PJtazSbUqwf3dxXtJ0G4WPvtUCQ4OJDqfBL/7wTOb4Of4bnxDp5RM8IurqZf3KO/RjDv0mn+S+hBtRIefO6xho5lwNA2f7oQ7oZuQ5u6zVkHw7uMgGP8G</diagram><diagram id="kX6EBNgLvKkf43cEuNvj" name="MRAM">5VZLj5swEP41HCsFHPI4hiTd1VaRVo2qbntZWXgWrDU4Mk6A/voOxTwMRLt7yF6qHMJ8Hs+Mv2/8cMg2Ke4UPcUHyUA43owVDtk5nufO3BX+VUhZIwvfAJHizDh1wJH/gWamQc+cQWY5aimF5icbDGWaQqgtjColc9vtRQo764lGMAKOIRVj9CdnOq7Rlbfs8HvgUdxkdhfreiShjbNZSRZTJvMeRPYO2Sopdf2VFFsQFXkNL/W8r1dG28IUpPo9EwIF3xb7B/0cPzzd/fh9Oa7Txy8myoWKs1nwjmqKyCYMIctM5bps6NBQYLIg1olAwMXPTCv5ClsppEIklSl6Bi9ciAFEBY9SNEMsFxAPLqA0R6I3ZiDhjFVpgjzmGo4nGlY5c2wrxJQ8pwyqlcyq8DLVplXcZVtDow9BxCwLU0BxlS+3VQHbF2QCWpXoYibMjW6mcV3i13betcHauMS9DiAGo6bxojZwpw1+GHk+IJU3kmqkjs3SFI894T6JxAGLzb7useh6EzSubkUjudLxt6XS3iWORxb76ncjkv13kuzdiuT5iOTD983hfz5NyNrWaDWWaPmZp4n/9mkCKdtUN2hFs6BZxkNbK5tF5EGVT33jV9/YFZZVfpB7YKNresA8vguoikC/tfXHCvUk8CckaDAFgmp+scuY0sVkeJQcC2wboN2Aw03ahMjkWYVgZvXv8UGg+eBiGrZITcMozr8uaVc91Thodq+R2r1705H9Xw==</diagram><diagram id="admFRsE1YTgaXuMmf33F" name="CopyingGC">5VlNc5swEP01PrZjwMH2Mf5KD87J0zY5qkYGxYJlZOGP/voKIwFC2E07xbhhfDD7pBXSe1ppd+g50/D4xFAcPIOHac/ue8eeM+vZttW3RuIvRU4Z4j5IwGfEk50KYEV+YuUp0YR4eKd15ACUk1gH1xBFeM01DDEGB73bBqj+1hj52ABWa0RN9DvxeJChI3tY4F8w8QP1ZssdZy0hUp3lSnYB8uBQgpx5z5kyAJ49hccppil5ipfMb3GhNZ8YwxF/j8OPTYJfT/TbMsSrxzeymwf7p0+WIyfHT2rF2BMESBMYD8CHCNF5gU4YJJGH02H7wir6LAFiAVoCfMOcn6SaKOEgoICHVLbiI+EvpefXdKjPD9KaHeXIZ+OkjIiz00vZKHmlZuF2tpTfBiIuJ2INhb3jDLa5lo5AMgbSZV9kVkI7SNgaX6NT7lDEfMyv9LNz/UXgYAixmLHwY5giTvb6PJDcwX7erxBZPEid/0TzbNw9ool8k7EHdIUPAeF4FaPz0g8iznU1f8/whlA6BQpM2BFEOCd9jxnHx+u0mzQpBxVZ8mgZSvNQxGneJSjFqD3oN8Ss/UGYHfTvjdkHg9lnHIIcuMyvWDTXScxIq5BUwxuixI+EuRYkYYFPUgqJuAkeZUNIPO98/tWpputaFa6B3T4wNXFrJHGaUsTtvCLVKGlbkaGhyJJEW8GA3Z8hjlo4inShe7bjztNfMwExfuch1Rj/4zZTKZUvZUmR/Xe51PCukqnRO5OpC9vkNsnUyAi6rxHtUtjldmtxp0rFrh58ea3cngJmSdGxKKi7/G+sgVl8TCHuVDqmn0s1RctN0zFrYAjyNO2OHHk+pvRw29bDrCE/9DVRLU9az48ts2T84LdEVYI7yJU6ViRWFbiDXGlsKHAPpC8WE8d1/w3pTuXoH9VwPqjhfNQU50rgEucTtN4m8X9yHad2U1o5ulbNZU3CLD52ndtKnwyd+S8=</diagram><diagram id="hrIp13FTX1ieYZxsAdcR" name="GCDG">7Vffk5owEP5rePQGgqB9Ler1obadsZ07nzoZiZBeIF5cFPzrm0D4dYBjx7vrPagPZL/dDZvd/RYwbC9K7wXehUvuE2Yg008Ne2YgZJnWVF4UkhWI62ggENTXRjWwoidSemo0oT7ZtwyBcwZ01wY3PI7JBloYFoIf22Zbztp33eGAdIDVBrMu+kB9CAt0iiY1/oXQICzvbLmfCk2ES2N9kn2IfX5sQPbcsD3BORSrKPUIU8kr81L4LQa0VWCCxHCJw8Pyh7tA49nydFqt8Wi9Wf/0R46ODbLywMSX59ciFxDygMeYzWv0s+BJ7BO1qyml2uYr5zsJWhL8QwAyXUycAJdQCBHTWpJSeGys12qrO0dLs1TvnAtZKcQgssem0PBSYu2WS6XfHgR/qkpnS6Q4sTrmYCI1tOeJ2JRW21+/n80nz1zQuYkiL/2efRuVDYlFQOBMlu2q3JInhEdERij9BGEY6KEdB9YNG1R2dU3lQpd1oCfOBHnALNF38iRL7wkW3dozJnmlanwMKZDVDufHP0pqtyu45THo8lqTM1nuSeqBCCBpA+rmRWuRo5mjRwdy0Z3u12NNRavkV9ig4dS8Ppm9lRzf+HIFX1CXL8Mt+7/4gjp8MZDLQHd9/qhhXOQa9zlR01umyDbzXxNyA3WdYcAF14o9ZEjFNoW6007tZvlHGirZq6Kz3bn6V0VtaHS0feXeUsZKS59sccLgdeg8fsHmSQ+X7R4uO84bcblb6PcbjJ209SR3MJPu5OMNRvc2GC8bjMMvCBe8SKB3GozngrwNxu5gvIrO45d0fsPJKMX6iyPXNb7b7Plf</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><path d="M 331 41.5 L 420.9 41.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 427.65 41.5 L 418.65 46 L 420.9 41.5 L 418.65 37 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="271" cy="41.5" rx="60" ry="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 42px; margin-left: 212px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CodeGear</div></div></div></foreignObject><text x="271" y="47" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">CodeGear</text></switch></g><path d="M 131 41.5 L 200.9 41.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 207.65 41.5 L 198.65 46 L 200.9 41.5 L 198.65 37 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="1" y="14" width="130" height="55" fill="rgb(255, 255, 255)" stroke="#000000" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 42px; margin-left: 2px;"><div data-drawio-colors="color: #6E6E6E; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(110, 110, 110); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font color="#000000">DataGear</font></div></div></div></foreignObject><text x="66" y="47" fill="#6E6E6E" font-family="Helvetica" font-size="17px" text-anchor="middle">DataGear</text></switch></g><ellipse cx="691" cy="41.5" rx="60" ry="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 42px; margin-left: 632px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CodeGear</div></div></div></foreignObject><text x="691" y="47" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">CodeGear</text></switch></g><path d="M 561 41.5 L 620.9 41.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 627.65 41.5 L 618.65 46 L 620.9 41.5 L 618.65 37 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="431" y="14" width="130" height="55" fill="rgb(255, 255, 255)" stroke="#000000" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 42px; margin-left: 432px;"><div data-drawio-colors="color: #6E6E6E; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(110, 110, 110); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font color="#000000">DataGear</font></div></div></div></foreignObject><text x="496" y="47" fill="#6E6E6E" font-family="Helvetica" font-size="17px" text-anchor="middle">DataGear</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/context.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Do not edit this file with editors other than diagrams.net --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="643px" height="283px" viewBox="-0.5 -0.5 643 283" content="<mxfile host="app.diagrams.net" modified="2022-02-02T17:27:22.685Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" etag="fP3pOCByKC0H1HC2n0qt" version="16.5.2" type="device" pages="2"><diagram id="ob5f7rbcNVaDIw1cfcWt" name="Page-1">7VrbcpswEP0aHuNBEjc/xpe4nWnaTPPQ+FE1CpBixMjCl3x9hREGLGwnro2xp0/RLkIW56z27EI01J8uRwzH/iN1SahB3V1qaKBBCAxoiT+pZ5V5bAAzh8cCV04qHM/BO5FOXXqTwCWzykROaciDuOqc0CgiE17xYcboojrtlYbVX42xRxTH8wSHqvdX4HI/8zrQLvxfSOD5+S8Dq5tdmeJ8snySmY9duii50FBDfUYpz0bTZZ+EKXg5Ltl9DzuubjbGSMQ/csP3n++jN298N5zrdw/20yPlPXAnyZjjMJEPLDfLVzkCjCaRS9JFdA31Fn7AyXOMJ+nVheBc+Hw+DYUFxFDdlNznnDBOliWX3OSI0CnhbCWmyKvQkoDJiIG6tBcF/iCf45ewR/lELDn3NmsXsIiBROYTKIGuggpxRZhIkzLuU49GOBwW3l4Vt2LON0pjidYb4XwlYx4nnFaxJMuAv5TG43SpjimtwVKuvDZWuRGJ530pG+N8hdQoblpb+V07WZvRhE3IHmQMeSQx8wjfh6A8Lylse4OAkRDzYF49fScn1FDCfoA5HhHMLh7+myhebdml8Hdqot84W/A71x388q6zhL95neFvKuE/48nvvhDvVhwB2N1SAFSjAHqTZ2ATEC04A7BdCmBd5xGwrkgB7AsrgK1g1aeReBiuQLV2VvCYcUb/kD4NKROeiEbpyXgNwnDLhcPAi4Q5EbgR4e+leAWiDr+XF6aB666PVR0BVYpOkYLMKgfAUTmor0HPpcItykBtU+HuB1OQ2aoMBFBbGAVXyqdxaj7Xt94zhlelCTENIj4rrfyUOopUARxYTdfVPlwMshWLSNls7fjg6dak5B3Vm1gtiGe7MudppcvZKtxATeEGa9Kmc7a0qXZ6oONRcSpuV7r0w9Vzs9Kl1lqg8yPhcXLDBQToHm7jG2UBmpeUm6Jo+IzgFBozrkjMqQUn700OKg48ueT828lSK/O9jXyTUmC2TgsgVNCCna+RSEOb1m+INKHmXagNTc15SMdDW3NM7d6+3UxlGIczFUCNpipUQ1QmGP+ZKjNl1TBlNMrURT+M6NoRXSnQGupi4Ee/jUCnVaKSB0sLOD2KUbsFlFqnZvSoztTYeollIFiOjsPz9QY6Wah2aK2sXwx48fpFrfaMm++jDNus0lBTRjbbRzkKC63+eLYpGi728QwBBTHjxt/BKFFbQ0KjUYvUF4boxjmw0Fa1fL73YMIs/o8rE8biv+HQ8C8=</diagram><diagram id="92Ze3AgcpMly--miJshH" name="Page-2">7VrJdpswFP0alvUxEpOXjkPS8bRpFm26U40CajHiyCK2+/UVICYJx3biIcnxyrwLCOveq6f3sA04mS2vGUqjLzTAsQGGwdKAlwYApgUc8ZEjqxJxTVACISOBvKgBbsk/LMGhRDMS4HnnQk5pzEnaBac0SfCUdzDEGF10L7uncfepKQqxBtxOUayjP0jAoxL1gNvg7zEJo+rJpjMqz8xQdbGcyTxCAV20IOgbcMIo5eXRbDnBcU5exQtPb668j+ObePUpHt6s/OD74te7crCrXW6pp8Bwwvc7tNTyAcWZ5EvOla8qAhnNkgDngwwNeLGICMe3KZrmZxfCMgKL+CwWkSkO72nCpQdMV8RzzujfmngoEPlAzDheKgptmJ5Zcy7MiukMc7YS98lRAJQySZ8CT8aLRnXTkVjUUrzWF0mnhfXYDZviQBK6A7mWRu4l4ugaI/ZqSXa7JMOhTrLXw7F1KIq9t0+xe2KKRxrFE0EOXnKN4QLs0FjSNqExZQJJaIJzbkkcKxCKSZiIcCqYwwK/yHklIomP5YkZCYL8Mb26dZV9QSnI1qXry0DwUNJVW3VHuwD3Lg8xnNiS11H8IpaGujJ66DVBD7/ewfjVM7w5+JrxNDsvDlU801bUg6deHLa+BgJROsqQMh7RkCYo9htUYbO55jOlqZT1D+Z8JTlGGadd0fGS8J/57QNbRnetM5dLOXIRrKogEfNt3ZSHd+1zzW1FtNpR7HzaT5BaUEczNsWPXSebB45YiB8bEKwxD8Mx4uSh+/X2bwVHW8dznv1+zbnSHm1RDh83WboayWDwIRG5si7ZfGh4pjH25MHIrRDH8G3DuzI8YPiu4dnG2D0nWEVxy9pCceuoGVavzoHcHlXJ/ZSSgvw8BsYISMFHhfIXfu6Fs+CK4OqO6vQIbh9T8Gpib6TeVHOodfKCs3o90yLYOhec2+XDPvWOWnACWxMPDkIqKsSzdF3pHDWzjU4tnV4g6gktCcb5++qc/RjN52TalXBXcpuqv1PzD9y6B1hT9hvPK+o31upWv3Ytbfo2nQrbuqKXT/iWFwatNtJTrOEqmpc9ibwLtF6HKwOB4Zp+tBqo5EEbqPBPPe1nWEovhw9vKdl8Vu1maaiqEd3UfHZteGAXbmwtrS3dWvZ2p7IrVEoI23yiXdVaBKq/Whzarvpr4NPY9UlmdcAmuxbRN8yIICrfOAswQPOo+L7mEQztvUpD103HroZWyzOorowDG7pK96cw9PAp+dd8WfkXbFsueGe77sOueuf31n7prCne/y+dImz+p1FK0vzbBfr/AQ==</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="161" y="31" width="160" height="220" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="201" y="51" width="80" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 71px; margin-left: 202px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">DataGear</div></div></div></foreignObject><text x="241" y="76" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">DataGear</text></switch></g><rect x="201" y="121" width="80" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 141px; margin-left: 202px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">DataGear</div></div></div></foreignObject><text x="241" y="146" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">DataGear</text></switch></g><rect x="161" y="1" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 16px; margin-left: 162px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Context</div></div></div></foreignObject><text x="191" y="21" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Context</text></switch></g><ellipse cx="61" cy="141" rx="60" ry="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 141px; margin-left: 2px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CodeGear</div></div></div></foreignObject><text x="61" y="146" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">CodeGear</text></switch></g><rect x="81" y="81" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 96px; margin-left: 82px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">1.Output</div></div></div></foreignObject><text x="111" y="101" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">1.Output</text></switch></g><path d="M 581 111 L 581 190.9" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 581 197.65 L 576.5 188.65 L 581 190.9 L 585.5 188.65 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="581" cy="71" rx="60" ry="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 71px; margin-left: 522px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">stubCodeGear</div></div></div></foreignObject><text x="581" y="76" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">stubCodeGear</text></switch></g><rect x="371" y="31" width="140" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 46px; margin-left: 372px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">2.InputDataGearとして参照</div></div></div></foreignObject><text x="441" y="51" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">2.InputDataGearとして参照</text></switch></g><rect x="381" y="111" width="150" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 126px; margin-left: 382px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">2.OutputDataGearのpointerを取得</div></div></div></foreignObject><text x="456" y="131" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">2.OutputDataGearのpo...</text></switch></g><ellipse cx="581" cy="241" rx="60" ry="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 241px; margin-left: 522px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CodeGear</div></div></div></foreignObject><text x="581" y="246" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">CodeGear</text></switch></g><rect x="371" y="201" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 216px; margin-left: 372px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">4.Output</div></div></div></foreignObject><text x="401" y="221" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">4.Output</text></switch></g><rect x="581" y="141" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 156px; margin-left: 582px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">3.goto</div></div></div></foreignObject><text x="611" y="161" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">3.goto</text></switch></g><path d="M 111 121 L 191.77 85.1" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 197.94 82.36 L 191.54 90.13 L 191.77 85.1 L 187.88 81.91 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 281 71 L 510.9 71" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 517.65 71 L 508.65 75.5 L 510.9 71 L 508.65 66.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 281 121 L 511.03 82.66" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="9 9" pointer-events="stroke"/><path d="M 517.69 81.55 L 509.55 87.47 L 511.03 82.66 L 508.07 78.59 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 521 241 L 290.33 144.89" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 284.1 142.29 L 294.13 141.6 L 290.33 144.89 L 290.67 149.91 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="201" y="191" width="80" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 211px; margin-left: 202px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">DataGear</div></div></div></foreignObject><text x="241" y="216" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">DataGear</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/copy_alloc.drawio Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,1 @@ +<mxfile host="app.diagrams.net" modified="2022-05-27T06:28:52.256Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36" etag="Kpj0J8MaV50IOcT5MBJq" version="18.1.3" type="device" pages="5"><diagram id="ZPwkLcfqQLWw-W21SHS2" name="Data Access">5VnbcpswEP0aP7ZjEDc/Jr4kncaTzHjaJn3JaEAGNYA8Qo5xv77CSOYiHDyxsdN48hB2JS3WOavV7tIDwyi9oXARTImHwp7e99IeGPV0XetrDv+Xada5xjKFwqfYE5MKxQz/RXKl0C6xh5LKREZIyPCiqnRJHCOXVXSQUrKqTpuTsPrWBfSRopi5MFS1v7DHglzr6Hahv0XYD+SbNWuQj0RQThY7SQLokVVJBcY9MKSEsPwpSocozMCTuOTrJjtGtz+Mopjts2CdfoPj4DZkjjG4J2A6+vF39EVYeYXhUmxY/Fi2lghQsow9lBnp98D1KsAMzRbQzUZXnHOuC1gUcknjj3MchkMSEsrlmMQoU5GYCV41m8sJo+RlCyYQM+Sing4mk2tgWduZTSPq3uVGEGUoLakEFjeIRIjRNZ8iRw3Bi3BMvS/kVUGzLucEJYq3E6FwLX9ru0CfPwgCmskYfWfPthNPfRyldqw9/xzd/T4+Ga3IHwFHo9+Oo6Y34Oh0BaP+GWAE+rlhBAqMUxQRYbgMJt8hqyJWPbgyDqihAYbYj7noctwQ119neGEefK/EQIQ9L3tNI0VVEs/CkmarLFkNJIGuSDIUkkY4eblkioBTi0cDlSL7lBRZKkWQwa5DknJ3WuPsr6OYb+wZrPSuQLY/P8jAOjfIAwXk+/k8QYzrhiTmO0swiRXMuWGerO+KEKe+Z3WzhiowVVS1BlTNzrI+1XdVDGPvKitmskAcwiTBbhW6ql9zdOj6sSw8lYVRWpHWUkoxexT2sufNmq+mkIpFmSDXHEBZQpbURe3exiD1EWs/+sirFHKqA5QINt/gl6IQMvxaLf+aSBdveCA4ZqXrZ7Dj1EoT+b7FqnK5VjNk1OoToNUM5cAohjY+uN32AW7p7Aip/SvXRUlyyTlGvXTU1RgyOGWKoamR+Swh5ADwW4+59aGOueICxrGOeb27cLxj3twA0lRP4RDPhEgoC4hPYhiOC23NV4o5d4QshDv9QYythS/AJSNVZ5N3TXG/PJVGmu+aHS6ZW+jGKVvvqL29d7Cn9+7tlod1SNRO06ZsBBOuFFV+9vyhMzmtlslxxV5R2DS7QlXtmHC/3wJ6wfdlPeluokrrn/LG1NWqfMPVpXdPtFr3BJgqU111TxrvJ13haYo2Wegdes0+Nf2nVO365HEMCkGVwqYeZWOF2xmHmhoYD0xP2wF+b7ZQZCa27VQrYQe8nZ9w4QFRzDHL/Geje39mIcuv1sxCWvwgiXG9/WrU+yZ7J8Y1NzaOlhhzsfjqmk8vvl2D8T8=</diagram><diagram id="YNPyPx7KaQu_DktN2Ut5" name="Disk to Memory">5VhNc5swEP01PqYDCLB9TLDTtEkmbT3jOLlpQAbFQnKFHHB/fYURNh/y2PWYpGnHB2sX7YLee1ot9IAXZ585XEb3LECkZxlB1gOjnmWZhjmQf7lnXXhcRzlCjgM1aeeY4F+ojFTeFQ5QUpsoGCMCL+tOn1GKfFHzQc5ZWp82Z6R+1yUMUcsx8SFpex9xIKLCO7D6O/8NwmFU3tl0h8WVGJaT1UqSCAYsrbjAuAc8zpgoRnHmIZKDV+JSxF3vubp9MI6oOCpgCL6PRndxOH2YGjP5PyTxBSiyvEKyUgtWDyvWJQKcrWiA8iRGD1ylERZosoR+fjWVnEtfJGIiLVMO54wKRaLZl3YiOFtskQP5DEyIxwjj0qaMou2k0tmzwPX1FXBdlU7nV0+NuEDZXjjMLchSnYjFSPC1nKICgKF4UcI0B8pOdzSbrvJFVYpLQqGSVrjNvUNfDhQBejJma3uY+uRWsOzCu/3qLlJTXJhvTsYZcDTtOo6WocHR0uA46ApG6yPC6Bh/G4zt0nCPYqYSV8GUixZ1xOobWu1yzcaHBIdUmr4ECUn/VQ4hlsX3Ul2IcRDkt9FSVCfxXcRu9tss6WoG6Ioku0XSCArYtd5bBdsd57+OCop95E7orC47/x7IrXLzliDfeu6PwH/6iabm45eXReo7S645/EY4WfzPxcYeHC42/Y6KjZai9sH6MJ8nSEifx6hca4IZbTEmE8tmfR+uJ/eOAZrDFRFnagZB8/R12tvB0GDdPwPW2sb8iF4Q0eAyf8PJNU1gkmB/Axrkou2uwPynSkYZFjMVm4+fVGQ+HmVVY10aVCIwqxqbmE9Oae7CNlYZV6wQBa03sgaNEgW24j46fC5KMEIkDkm6LYsK7Y6G9dLHEYECv9YfVycFdYdvDFNRUZ1VVx1wGmoqlqmiqq92jUR248gEZiNRgUMr0UaZ22WfLtYjOu6PJtazSbUqwf3dxXtJ0G4WPvtUCQ4OJDqfBL/7wTOb4Of4bnxDp5RM8IurqZf3KO/RjDv0mn+S+hBtRIefO6xho5lwNA2f7oQ7oZuQ5u6zVkHw7uMgGP8G</diagram><diagram id="kX6EBNgLvKkf43cEuNvj" name="MRAM">5VZLj5swEP41HCsFHPI4hiTd1VaRVo2qbntZWXgWrDU4Mk6A/voOxTwMRLt7yF6qHMJ8Hs+Mv2/8cMg2Ke4UPcUHyUA43owVDtk5nufO3BX+VUhZIwvfAJHizDh1wJH/gWamQc+cQWY5aimF5icbDGWaQqgtjColc9vtRQo764lGMAKOIRVj9CdnOq7Rlbfs8HvgUdxkdhfreiShjbNZSRZTJvMeRPYO2Sopdf2VFFsQFXkNL/W8r1dG28IUpPo9EwIF3xb7B/0cPzzd/fh9Oa7Txy8myoWKs1nwjmqKyCYMIctM5bps6NBQYLIg1olAwMXPTCv5ClsppEIklSl6Bi9ciAFEBY9SNEMsFxAPLqA0R6I3ZiDhjFVpgjzmGo4nGlY5c2wrxJQ8pwyqlcyq8DLVplXcZVtDow9BxCwLU0BxlS+3VQHbF2QCWpXoYibMjW6mcV3i13betcHauMS9DiAGo6bxojZwpw1+GHk+IJU3kmqkjs3SFI894T6JxAGLzb7useh6EzSubkUjudLxt6XS3iWORxb76ncjkv13kuzdiuT5iOTD983hfz5NyNrWaDWWaPmZp4n/9mkCKdtUN2hFs6BZxkNbK5tF5EGVT33jV9/YFZZVfpB7YKNresA8vguoikC/tfXHCvUk8CckaDAFgmp+scuY0sVkeJQcC2wboN2Aw03ahMjkWYVgZvXv8UGg+eBiGrZITcMozr8uaVc91Thodq+R2r1705H9Xw==</diagram><diagram id="admFRsE1YTgaXuMmf33F" name="CopyingGC">5VlNc5swEP01PrZjwMH2Mf5KD87J0zY5qkYGxYJlZOGP/voKIwFC2E07xbhhfDD7pBXSe1ppd+g50/D4xFAcPIOHac/ue8eeM+vZttW3RuIvRU4Z4j5IwGfEk50KYEV+YuUp0YR4eKd15ACUk1gH1xBFeM01DDEGB73bBqj+1hj52ABWa0RN9DvxeJChI3tY4F8w8QP1ZssdZy0hUp3lSnYB8uBQgpx5z5kyAJ49hccppil5ipfMb3GhNZ8YwxF/j8OPTYJfT/TbMsSrxzeymwf7p0+WIyfHT2rF2BMESBMYD8CHCNF5gU4YJJGH02H7wir6LAFiAVoCfMOcn6SaKOEgoICHVLbiI+EvpefXdKjPD9KaHeXIZ+OkjIiz00vZKHmlZuF2tpTfBiIuJ2INhb3jDLa5lo5AMgbSZV9kVkI7SNgaX6NT7lDEfMyv9LNz/UXgYAixmLHwY5giTvb6PJDcwX7erxBZPEid/0TzbNw9ool8k7EHdIUPAeF4FaPz0g8iznU1f8/whlA6BQpM2BFEOCd9jxnHx+u0mzQpBxVZ8mgZSvNQxGneJSjFqD3oN8Ss/UGYHfTvjdkHg9lnHIIcuMyvWDTXScxIq5BUwxuixI+EuRYkYYFPUgqJuAkeZUNIPO98/tWpputaFa6B3T4wNXFrJHGaUsTtvCLVKGlbkaGhyJJEW8GA3Z8hjlo4inShe7bjztNfMwExfuch1Rj/4zZTKZUvZUmR/Xe51PCukqnRO5OpC9vkNsnUyAi6rxHtUtjldmtxp0rFrh58ea3cngJmSdGxKKi7/G+sgVl8TCHuVDqmn0s1RctN0zFrYAjyNO2OHHk+pvRw29bDrCE/9DVRLU9az48ts2T84LdEVYI7yJU6ViRWFbiDXGlsKHAPpC8WE8d1/w3pTuXoH9VwPqjhfNQU50rgEucTtN4m8X9yHad2U1o5ulbNZU3CLD52ndtKnwyd+S8=</diagram><diagram id="hrIp13FTX1ieYZxsAdcR" name="GCDG">7Vffk5owEP5rePQGgqB9Ler1obadsZ07nzoZiZBeIF5cFPzrm0D4dYBjx7vrPagPZL/dDZvd/RYwbC9K7wXehUvuE2Yg008Ne2YgZJnWVF4UkhWI62ggENTXRjWwoidSemo0oT7ZtwyBcwZ01wY3PI7JBloYFoIf22Zbztp33eGAdIDVBrMu+kB9CAt0iiY1/oXQICzvbLmfCk2ES2N9kn2IfX5sQPbcsD3BORSrKPUIU8kr81L4LQa0VWCCxHCJw8Pyh7tA49nydFqt8Wi9Wf/0R46ODbLywMSX59ciFxDygMeYzWv0s+BJ7BO1qyml2uYr5zsJWhL8QwAyXUycAJdQCBHTWpJSeGys12qrO0dLs1TvnAtZKcQgssem0PBSYu2WS6XfHgR/qkpnS6Q4sTrmYCI1tOeJ2JRW21+/n80nz1zQuYkiL/2efRuVDYlFQOBMlu2q3JInhEdERij9BGEY6KEdB9YNG1R2dU3lQpd1oCfOBHnALNF38iRL7wkW3dozJnmlanwMKZDVDufHP0pqtyu45THo8lqTM1nuSeqBCCBpA+rmRWuRo5mjRwdy0Z3u12NNRavkV9ig4dS8Ppm9lRzf+HIFX1CXL8Mt+7/4gjp8MZDLQHd9/qhhXOQa9zlR01umyDbzXxNyA3WdYcAF14o9ZEjFNoW6007tZvlHGirZq6Kz3bn6V0VtaHS0feXeUsZKS59sccLgdeg8fsHmSQ+X7R4uO84bcblb6PcbjJ209SR3MJPu5OMNRvc2GC8bjMMvCBe8SKB3GozngrwNxu5gvIrO45d0fsPJKMX6iyPXNb7b7Plf</diagram></mxfile> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/copying-gc.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Do not edit this file with editors other than diagrams.net --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="492px" height="272px" viewBox="-0.5 -0.5 492 272" content="<mxfile host="app.diagrams.net" modified="2022-05-25T09:16:04.135Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36" etag="NhJaZOGPxV4u8o2UVnYI" version="18.0.0" type="device" pages="4"><diagram id="ZPwkLcfqQLWw-W21SHS2" name="Data Access">5Vldb5swFP01edwUYwjksc3HOq1RK0Xb2r1UFjjgFXBknIbs188E82ko0UqStXmCe7ENPuf4+l4zgJMg/sLQ2ltQB/sDbejEAzgdaBrQtZG4JJ5d6jFH49ThMuLIRoVjSf5g6RxK74Y4OKo05JT6nKyrTpuGIbZ5xYcYo9tqsxX1q29dIxcrjqWNfNX7kzjcS72WZhb+G0xcL3szyOYXoKyxnEnkIYduSy44G8AJo5Snd0E8wX4CXoZL2m/e8jT/MIZDfkiHXfwVzbwbn1v6+I7CxfT7n+knOcoL8jdywvJj+S5DgNFN6OBkkOEAXm89wvFyjezk6VZwLnweD3xhAXG7Ir4/oT5lwg5piBMXDbnkFZjCjjijzzmYULbIOg00OJ9fw9Eob9n0RH41ZhzHrXCAHGShTkwDzNlONMmlKXmRwtSG0t4WNGtZG69Ecd4QSWm5+dgF+uJGEtBMxvQbfzKtcOGSIDZD8PRjevurfzI6ke8BR33YjSPQGnC0jgWj9hFghNq5YYQKjAscUDlwGUwxaV5FrLpwszighgbkEzcUpi1AwsJ/nUBIRPC9kg8C4jjJaxopqpJ4FpaAqbI0aiAJHoskXSFpSqLnS6YIWrV4NFYpMk9J0UilCHH0DkNSvht2hSTtWFCaHwVKODo3lGMFyrvVKsJc+CY0FJONCA0VZMXAIvFuW+2nRlUzaqhCQ0UVNKBqHC2DUxWqYhg6V0lhkgRVH0URsavQVdUroGC7h7LxWDamccXaZVZM+IMcL7nf9/lsSKvolBhZn0Mpw45SMdUIE9OlG2bjbvlxxFzMu1a8KoASwcYr/DLsI05eqp/bRLp8wz0lIS9tJeOWVZsNkU5T9iqXXrWB9FqtAUFtoBQHZaC9BvNpv0GWVkvgHF7ZNo6iS84X6mWgpsaQ8SnTBaBG5rOEkD7DQecyH51zmSsS0Pta5vWTgv6WefNhDlCVIthZSpMy7lGXhsifFd6aVoo2t5SupZx+Y853Ugtow2lVbNleU+wvj6UnzXtNiyTTEU4kys496mD1jpvVe7As33baoZ4a7UtAOBdOWbEn9/91JgdqmZxwHBSFDeNYqKqnH0L3OaAXvF/Wk+4mqsDwlDumplbYe64u/SQE1E5CoKEydayTkMb9SVN4WuB9FnqLX5LfRu+UqrbfF31QCKsUNp03Nla4R+MQqIHxjelpN8D/mi0UmYlpWtVK2IKv5yfCuMeMCMwS/ex9PWYWWT3WmVm0yeNE9W8tgOj1c5ODE+OajPXeEmNhFn9Q0+bFf2g4+ws=</diagram><diagram id="YNPyPx7KaQu_DktN2Ut5" name="Disk to Memory">5Vhdc6IwFP01PHYHCKA+tthud9tOt+uMtX3LQMTUkLghFtxfv0GCfMXRdbRdZ5/gHpILOedwc8EAfpx95XAxe2AhIoZthpkBhoZtW47tyUOOrAqk5w0KIOI4VIMqYIR/IwWaCl3iECWNgYIxIvCiCQaMUhSIBgY5Z2lz2JSR5l0XMEIdYBRA0kWfcShmBdq3exV+i3A0K+9sleuLYTlYrSSZwZClNQhcG8DnjIniLM58RHLySl6KeTdbrm4ejCMq9powAE/D4X0cjR/H5kQeByS+AEWWd0iWasHqYcWqZICzJQ1RnsQ0wFU6wwKNFjDIr6ZSc4nNRExkZMnTKaNCiWj1ZJwIzuYb5kA+AhPiM8K4jCmjaDOoBA0b3NxcAc9T6XS4emrEBcq20mFtSJbuRCxGgq/kEDUBmEoXZUyrr+K0ktnyFDarS1wKCpW1ok3uin15ogTQizFZOYM0IHeCZRf+3XdvnlriwvpwMY7Ao+U0ebRNDY+2hsf+qWi0z5FG1/zXaOyWhgcUM5W4TqZctGgy1nyh1VuuefEhwRGVYSBJQhK/yinEsvheqgsxDsP8NlqJmiJ+itmtXlclXc0ApxLJ6Yg0hAKegd87ZcPZ0+8nq77uuVLZKR0fSeWd7/0Mg5dfaGw9f3ubp4G74JqNbIiT+f9cOJz+7sLRO1Hh0ErU3SQfp9MECYn5jMq1JpjRjmIysWy8t/F6cB8YoilcEnGkxg60d1K3+zqYGq57R+Ba22Tv0dchGl7mXyu5pwlMEhysSYNcdOEazX/rZJRhMVFz8/MXNTM/H2b1YFUGVDIwqQfrOV/cMqymraNyXrFCFHa+rloyShbYkgdo9x4nyYiQ2GXpri1qsrsa1UuMIwIFfm8+rs4K6g4/GKai5jq76TrgttxULFPNqn+mtRI5rY0RWK1EBQ+dRGtnbpZ9uFn36J7PzaxHs2rdgtt7iM+yoNMufM6hFuzvSHQ8Cz4F4Ssb4df4/vqWjikZ4TdPUy8fUN6JmffoPf+9dBZtxAl/XdiDVjPhaho+3Q53QDchw+oXVSFw9aMPXP8B</diagram><diagram id="kX6EBNgLvKkf43cEuNvj" name="MRAM">5VbbjpswEP0aHisFnOtjSNKttoq0alR125fKwrNg1diRcQL06zsUczEQ7e7DrlT1CeYwnss5YxuP7NLiTtNzclQMhBfMWOGRvRcE/jxY4qNCyhpZLTc1EGvOrFMHnPhvsODMohfOIHMcjVLC8LMLRkpKiIyDUa1V7ro9KeFmPdMYRsApomKMfuPMJDW6DlYd/gl4nDSZ/aa/lDbOtpMsoUzlPYgcPLLTSpn6LS12ICryGl7qdR9vfG0L0yDNSxaEGj4vD/fmZ3L/ePf1x/W0kQ8fbJQrFRfb8J4aisg2iiDLbOWmbOgwUGCyMDGpQMDH18xo9Qt2SiiNiFQSPcMnLsQAooLHEs0IywXEwytow5Horf2QcsaqNGGecAOnM42qnDmOFWJaXSSDqpNZFV5JY0fFX7U1NPoQRGxbmAKKm3z5rQo4vqBSMLpEF7tgbnWzg+uTRW3n3RhsrEvSmwBiMWoHL24Dd9rgi5XnFVIFI6lG6rgsTfHYE+6dSByw2OzrHot+MEHj+q1oJDcm/t+jcvFCKoO3onI+ovL4ZXv8n88MsnE1Wo8lWr3nmbF4/swAybbVPVnRLGiW8cjVymURedDlY9/43jf2hWOVr+Qe2OgyHjCPtz/VMZjnNvhYoZ4EiwkJGkyDoIZf3TKmdLEZHhTHAtsBaDfgcJM2ITJ10RHYVf3behBoPrh+hiNS0zCK83dK2q6nBgfN7p+jdu/+3MjhDw==</diagram><diagram id="admFRsE1YTgaXuMmf33F" name="CopyingGC">5VlNc5swEP01PrZjwMH2Mf5KD8nJ0zY5qiCDEsEysvBHf32FkQAh7KadElwzPph9WgnpPa20OwyceXR4YCgJn8DHdGAP/cPAWQxs2xrZrvjLkGOOjN1pDgSM+NKpBNbkJ5bgUKIp8fFWc+QAlJNEBz2IY+xxDUOMwV532wDV35qgABvA2kPURL8Tn4c5OrHHJf4FkyBUb7bU+iKknOVKtiHyYV+BnOXAmTMAnj9FhzmmGXmKl7zf6kxrMTGGY/6eDj82KX450m+PEV7fv5LtMtw9fLIcOTl+VCvGviBAmsB4CAHEiC5LdMYgjX2cDTsUVunzCJAI0BLgK+b8KNVEKQcBhTyishUfCH+uPL9kQ32+k9biIEc+GUdlxJwdn6tGpVdmlt1Oluq3gZjLiVhjYW85g7dCS0cgOQPZss8yK6EtpMzDl+iUOxSxAPMLfnahvwgcDBEWMxb9GKaIk50+DyR3cFD4lSKLB6nzn2iej7tDNJVvMvaArvA+JByvE3Ra+l7Eua7m7xneEErnQIEJO4YYF6TvMOP4cJl2kybVQUWWOlqkuS/jtHAJKzFqj4YtMWvfCLOj4bUxe2cw+4QjkANX+RWL5jqJOWk1khp4Q5QEsTA9QRIW+CyjkIib4F42RMT3T+dfk2q6rnXhWtjtI1MTt0ESpy1F3N4rUo+SrhUZG4o8kvhNMGAPF4ijDo4iXeiB7bjL7NdOQEzfeUi1xv+0y1RK5Ut5UmT/XS41vqpkavLOZOrMNvmYZGpiBN3XmPYp7Aq7s7hTpWJfD76iVu5OAbOk6FkUNF3+H6yBWXzMIelVOqafSw1Fy4emY9bIEORh3h85inxM6eF2rYdZQ970NVEvTzrPjy2zZLzxW6IuwRXkSj0rEusKXEGuNDUUuAbSV6uZ47r/hnSndvRPGjgfNXA+aYtzJXCF8xny3tLkP7mOM7strRxdq/ayJmGWH7tObZVPhs7yFw==</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><path d="M 200 150 L 349.9 150" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 356.65 150 L 347.65 154.5 L 349.9 150 L 347.65 145.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="80" y="30" width="120" height="240" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="360" y="30" width="120" height="240" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="80" y="0" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 15px; margin-left: 81px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Memory</div></div></div></foreignObject><text x="110" y="20" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Memory</text></switch></g><rect x="360" y="0" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 15px; margin-left: 361px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Memory</div></div></div></foreignObject><text x="390" y="20" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Memory</text></switch></g><rect x="80" y="50" width="120" height="30" fill="none" stroke="#6e6e6e" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 65px; margin-left: 81px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Linked Data</div></div></div></foreignObject><text x="140" y="70" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Linked Data</text></switch></g><path d="M 80 87.5 L 60 87.5 L 60 210 L 69.9 210" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 76.65 210 L 67.65 214.5 L 69.9 210 L 67.65 205.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="80" y="80" width="120" height="30" fill="none" stroke="#6e6e6e" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 95px; margin-left: 81px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Unlinked Data</div></div></div></foreignObject><text x="140" y="100" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Unlinked Data</text></switch></g><rect x="80" y="170" width="120" height="30" fill="none" stroke="#6e6e6e" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 185px; margin-left: 81px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Linked Data</div></div></div></foreignObject><text x="140" y="190" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Linked Data</text></switch></g><rect x="80" y="200" width="120" height="30" fill="none" stroke="#6e6e6e" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 215px; margin-left: 81px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Unlinked Data</div></div></div></foreignObject><text x="140" y="220" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Unlinked Data</text></switch></g><rect x="0" y="130" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 145px; margin-left: 1px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Copy</div></div></div></foreignObject><text x="30" y="150" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Copy</text></switch></g><rect x="250" y="120" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 135px; margin-left: 251px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">GC</div></div></div></foreignObject><text x="280" y="140" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">GC</text></switch></g><rect x="360" y="50" width="120" height="30" fill="none" stroke="#6e6e6e" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 65px; margin-left: 361px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Linked Data</div></div></div></foreignObject><text x="420" y="70" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Linked Data</text></switch></g><rect x="360" y="80" width="120" height="30" fill="none" stroke="#6e6e6e" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 95px; margin-left: 361px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Unlinked Data</div></div></div></foreignObject><text x="420" y="100" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Unlinked Data</text></switch></g><rect x="360" y="170" width="120" height="30" fill="none" stroke="#6e6e6e" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 185px; margin-left: 361px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Linked Data</div></div></div></foreignObject><text x="420" y="190" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Linked Data</text></switch></g><rect x="350" y="40" width="140" height="80" fill="none" stroke="#ffb366" stroke-width="3" pointer-events="all"/><rect x="290" y="30" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 45px; margin-left: 291px;"><div data-drawio-colors="color: #FFB366; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(255, 179, 102); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Backup</div></div></div></foreignObject><text x="320" y="50" fill="#FFB366" font-family="Helvetica" font-size="17px" text-anchor="middle">Backup</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/data-access.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Do not edit this file with editors other than diagrams.net --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="483px" height="233px" viewBox="-0.5 -0.5 483 233" content="<mxfile host="app.diagrams.net" modified="2022-05-25T09:18:46.919Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36" etag="42TCIZHb-aIOffh_Ykhk" version="18.0.0" type="device" pages="4"><diagram id="ZPwkLcfqQLWw-W21SHS2" name="Data Access">5Vldb5swFP01edwU2wTIY5uPdVqjVoq2tXupLHDAK+DIOE3SXz8TzKdJidaQbI3yEO7FNvic4+t7TQ+Nws0Xjpf+jLkk6MG+u+mhcQ9CYEBT/iWebeqxAEwdHqeualQ45vSVKGdfeVfUJXGloWAsEHRZdTosiogjKj7MOVtXmy1YUH3qEntEc8wdHOjen9QVfuq1oVX4bwj1/OzJwBymd0KcNVYziX3ssnXJhSY9NOKMifQq3IxIkICX4ZL2m+65m78YJ5E4pMN28xVP/JtA2MbwjqHZ+Pvr+JMa5QUHKzVh9bJimyHA2SpySTJIv4eu1z4VZL7ETnJ3LTmXPl+EgbSAvFzQIBixgHFpRywiiYtFQvEKLGnHgrPnHEykWmSdehBNp9fINPOWTXfUWxMuyGYvHCAHWaqTsJAIvpVNcmkqXpQwYV/Z64JmmLXxSxTnDbGSlpePXaAvLxQBzWSMv4kny45mHg03VgSefoxvfx2fjFbkj4Cj0W/HEcAGHO2uYIQfAUYEzw0j0mCckZCpgctgykmLKmLVhZvFAT004IB6kTQdCRKR/usEQiqD75W6EVLXTR7TSFGVxLOwBCydJbOBJNQVSYZG0pjGz5dMEbJr8WioU2SdkiJTpwgL3HVI0vZOc5L8Oor5xoHBCnYFsvXxQUbmuUEeaiDfLRYxEdI3YpGcbExZpGEuB5bJ+r4Icep9Fg5qqKKBjipoQHXQWdana1fHMHKvkmImCcQBjmPqVKGr6lpCwbcPZeOxbIw3FWubWRsqHtR4yfWuz+eBsopOiZH1OZQy4mpVVo0wOV224g5pl5/A3COiLRboAigRPHiDX04CLOhL9XWbSFdPuGc0EqXtZ7hn1WZDpNNUvcrlWm0go1afIFAbKMVBG2inwXza75ClvSek9q8ch8TxJecY9dIR6jFkeMoUA+iR+Swh5JjhoHWZm+dc5poEjGMt8/rpwvGWefMBENCVItmZK5Nx4TOPRTiYFN6aVoo2t4wtlZx+EyG2Sgt4JVhVbNleU+wvj6U7zXvNHkmmI5xIlK171MHqHTar92BZvu+ERD9p2pWNaCqdqspPrv/pTA7UMjnpOCgKDwZdoaqfmEjd54Be8H5ZT7qbqAL9U+6YUK/Kd1xd+ukJqJ2eoIHOVFenJ437E9R4mpFdFnpLXpJPTf8pVfs+eRyDQlSlsOmMsrHC7YxDoAfGd6an7QD/bbZQZCaWZVcrYRu9nZ9I455wKjFL9LPzHTGzyOqx1sxinzxOVP/WAohRPzc5ODGuydg4WmIszeKra9q8+HaNJn8A</diagram><diagram id="YNPyPx7KaQu_DktN2Ut5" name="Disk to Memory">5Vhdc6IwFP01PnYHCKA+tmi3u22nu+uMtX3LQITUkLghFtxfv0GC8hFH15F2uzs+mHtIAjnn5OZCD3hx9pnDZXTPAkR6lhFkPTDqWZZpW678y5F1gfRNqwBCjgPVaQdM8C+kQEOhKxygpNZRMEYEXtZBn1GKfFHDIOcsrXebM1K/6xKGqAVMfEja6CMORFSgA6u/w28QDqPyzqY7LK7EsOysVpJEMGBpBQLjHvA4Y6JoxZmHSE5eyUsx7nrP1e2DcUTFUQOG4PtodBeH04epMZP/QxJfgGKWV0hWasHqYcW6ZICzFQ1QPonRA1dphAWaLKGfX02l5hKLRExkZMrmnFGhRDT7Mk4EZ4stcyDvgQnxGGFcxpRRtO1Ugj0LXF9fAddV0+lw9dSIC5TtpcPckizdiViMBF/LLmoAMJQuypjmQMXpTmbTVVhUlbgUFCprhdu5d+zLhhJAL8ZsbQ9Tn9wKll14t1/dRWqKC/PNxTgDj6Zd59EyNDxaGh4HXdFofUQaHeNvo7GdGu5RzNTEVTLlokWdsfqGVrtcs/EhwSGVoS9JQhK/yinEMvleqgsxDoL8NlqJ6iK+i9nNflslXc4AXYlkt0QaQQG79nsrYbvj/NdRQrGP3Amd5WXn3yO5lW7ekuRbz/0R+E8/0dR8/PKySH1nyTWH3wgni/852diDw8mm31Gy0UrUPlgf5vMECYl5jMq1JpjRlmJyYlms7+P15NoxQHO4IuJMxSBonr5OezsYGq77Z+BaW5gfUQsiGlzmbzi5pwlMEuxvSINctOEKzX/qZJRhMVNj8/aTGpm3R1k1WJcBlQzMqsFmzCenDHfDNlE5rlghClpvZA0ZJQtsxX10+FyUZIRIHLJ02xYV2R2N6iXGEYECv9YfV2cFdYdvDFNRcZ1Vdx1wGm4qlqlGVV/tGhPZjSMTmI2JCh5aE22cuV326WY9ouL+aGY9m1WrFtxfXbyXBe1m4rNPteDgwETns+B3P3hmE/wc341v6JSSCX5xNfnyHuU1mnGHXvNPUh+ijOjwc4c1bBQTjqbg051wJ1QTMtx91ioE3n0cBOPf</diagram><diagram id="kX6EBNgLvKkf43cEuNvj" name="MRAM">5VbJbtswEP0aHQtYotejtyZIYSCoUTTtJSDEiUSEIg2KtqR+fUcVtVCSkeTgXAofrHkczgzfGy4e2Sb5naan+KAYCC+YsNwjOy8I/Gkwx78SKSpk4QcVEGnOrFMLHPkfsODEomfOIHUcjVLC8JMLhkpKCI2DUa1V5rq9KOFmPdEIBsAxpGKI/uTMxBW6DBYtfg88iuvM/nxVjSS0drYrSWPKVNaByN4jW62Uqb6SfAuiJK/mpZr39cpoU5gGad4zYaPh23z/YJ7jh6e7H78vx5V8/GKjXKg42wXvqKGIrMMQ0tRWboqaDgM5JtvEJhEI+PiZGq1eYauE0ohIJdFz88KF6EFU8EiiGWK5gPjmAtpwJHptBxLOWJlmk8XcwPFEwzJnhm2FmFZnyaBcyaQMr6SxreIvmhpqfQgidlmYAvKrfPmNCti+oBIwukAXO2FqdbON65NZZWdtG6ysS9zpAGIxahsvagK32uCHlecDUgUDqQbquCyN8dgR7pNI7LFY7+sOi34wQuPyVjSSKx1/WyrdXeIFZL4vfzciefZOkoNbkTwdkHz4vj78z6cJWbkaLYcSLT7zNJm9fZqAZOvyBi1pFjRNeehq5bKIPOjiqWv86hq73LGKD3IPbHBN95jHdwHVEZi3tv5QoY4EsxEJakyDoIZf3DLGdLEZHhXHApsGaDZgf5PWIVJ11iHYWd17vBdo2ruY+i1S0TCI869LmlWPNQ6a7Wukcm/fdGT/Fw==</diagram><diagram id="admFRsE1YTgaXuMmf33F" name="CopyingGC">5VlNc5swEP01PrZjwMH2Mf5KD8nJ0zY5qiCDEsEysvBHf32FkQAh7KadElwzPph9WgnpPa20OwyceXR4YCgJn8DHdGAP/cPAWQxs2xrZrvjLkGOOjC07BwJGfOlUAmvyE0twKNGU+HirOXIAykmigx7EMfa4hiHGYK+7bYDqb01QgA1g7SFqot+Jz8McndjjEv+CSRCqN1vuNG+JkHKWK9mGyId9BXKWA2fOAHj+FB3mmGbkKV7yfqszrcXEGI75ezr82KT45Ui/PUZ4ff9Ktstw9/DJcuTk+FGtGPuCAGkC4yEEECO6LNEZgzT2cTbsUFilzyNAIkBLgK+Y86NUE6UcBBTyiMpWfCD8ufL8kg31+U5ai4Mc+WQclRFzdnyuGpVemVl2O1mq3wZiLidijYW95QzeCi0dgeQMZMs+y6yEtpAyD1+iU+5QxALML/jZhf4icDBEWMxY9GOYIk52+jyQ3MFB4VeKLB6kzn+ieT7uDtFUvsnYA7rC+5BwvE7Qael7Eee6mr9neEMonQMFJuwYYlyQvsOM48Nl2k2aVAcVWepokea+jNPCJazEqD0atsSsfSPMjobXxuydwewTjkAOXOVXLJrrJOak1Uhq4A1REsTC9ARJWOCzjEIiboJ72RAR3z+df02q6brWhWtht49MTdwGSZy2FHF7r0g9SrpWZGwo8kjiN8GAPVwgjjo4inShB7bjLrNfOwExfech1Rr/0y5TKZUv5UmR/Xe51PiqkqnJO5OpM9vkY5KpiRF0X2Pap7Ar7M7iTpWKfT34ilq5OwXMkqJnUdB0+X+wBmbxMYekV+mYfi41FC0fmo5ZI0OQh3l/5CjyMaWH27UeZg1509dEvTzpPD+2zJLxxm+JugRXkCv1rEisK3AFudLUUOAaSF+tZo7r/hvSndrRP2ngfNTA+aQtzpXAFc5nyHtLk//kOs7strRydK3ay5qEWX7sOrVVPhk6y18=</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="101" y="31" width="240" height="200" fill="none" stroke="#ffb366" stroke-width="3" pointer-events="all"/><rect x="361" y="31" width="120" height="80" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="361" y="151" width="120" height="80" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="361" y="1" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 16px; margin-left: 362px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Memory</div></div></div></foreignObject><text x="391" y="21" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Memory</text></switch></g><rect x="341" y="121" width="70" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 136px; margin-left: 342px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Disk</div></div></div></foreignObject><text x="376" y="141" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Disk</text></switch></g><rect x="361" y="71" width="120" height="20" fill="rgb(255, 255, 255)" stroke="#6e6e6e" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 81px; margin-left: 362px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Data</div></div></div></foreignObject><text x="421" y="86" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Data</text></switch></g><rect x="361" y="191" width="120" height="20" fill="rgb(255, 255, 255)" stroke="#6e6e6e" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 201px; margin-left: 362px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Data</div></div></div></foreignObject><text x="421" y="206" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Data</text></switch></g><ellipse cx="266" cy="191" rx="55" ry="25" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 191px; margin-left: 212px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Offset Conversion</div></div></div></foreignObject><text x="266" y="196" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Offset Conver...</text></switch></g><path d="M 321 191 L 350.9 191" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 357.65 191 L 348.65 195.5 L 350.9 191 L 348.65 186.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="1" y="56" width="90" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 71px; margin-left: 2px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Data Access</div></div></div></foreignObject><text x="46" y="76" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Data Access</text></switch></g><path d="M 201 71 L 350.9 71" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 357.65 71 L 348.65 75.5 L 350.9 71 L 348.65 66.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 156 101 L 156 191 L 200.9 191" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 207.65 191 L 198.65 195.5 L 200.9 191 L 198.65 186.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="156" cy="73.5" rx="45" ry="27.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 74px; margin-left: 112px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Disk? Memory?</div></div></div></foreignObject><text x="156" y="79" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Disk? Memor...</text></switch></g><rect x="211" y="46" width="100" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 61px; margin-left: 212px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">to Memory</div></div></div></foreignObject><text x="261" y="66" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">to Memory</text></switch></g><rect x="141" y="186" width="70" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 201px; margin-left: 142px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">to Disk</div></div></div></foreignObject><text x="176" y="206" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">to Disk</text></switch></g><rect x="91" y="1" width="110" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 16px; margin-left: 92px;"><div data-drawio-colors="color: #FFB366; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(255, 179, 102); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Meta Level</div></div></div></foreignObject><text x="146" y="21" fill="#FFB366" font-family="Helvetica" font-size="17px" text-anchor="middle">Meta Level</text></switch></g><path d="M 71.02 73.49 L 100.9 73.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 107.65 73.5 L 98.64 78 L 100.9 73.5 L 98.65 69 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/disk-memory.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Do not edit this file with editors other than diagrams.net --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="483px" height="152px" viewBox="-0.5 -0.5 483 152" content="<mxfile host="app.diagrams.net" modified="2022-05-25T09:20:12.934Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36" etag="RzsFO-nLp0gPBPC6cCGX" version="18.0.0" type="device" pages="4"><diagram id="ZPwkLcfqQLWw-W21SHS2" name="Data Access">5Vldb5swFP01edwU2wTIY5uPdVqjVoq2tXupLHDAK+DIOE3SXz8TzKdJidaQbI3yEO7FNvic4+t7TQ+Nws0Xjpf+jLkk6MG+u+mhcQ9CYEBT/iWebeqxAEwdHqeualQ45vSVKGdfeVfUJXGloWAsEHRZdTosiogjKj7MOVtXmy1YUH3qEntEc8wdHOjen9QVfuq1oVX4bwj1/OzJwBymd0KcNVYziX3ssnXJhSY9NOKMifQq3IxIkICX4ZL2m+65m78YJ5E4pMN28xVP/JtA2MbwjqHZ+Pvr+JMa5QUHKzVh9bJimyHA2SpySTJIv4eu1z4VZL7ETnJ3LTmXPl+EgbSAvFzQIBixgHFpRywiiYtFQvEKLGnHgrPnHEykWmSdehBNp9fINPOWTXfUWxMuyGYvHCAHWaqTsJAIvpVNcmkqXpQwYV/Z64JmmLXxSxTnDbGSlpePXaAvLxQBzWSMv4kny45mHg03VgSefoxvfx2fjFbkj4Cj0W/HEcAGHO2uYIQfAUYEzw0j0mCckZCpgctgykmLKmLVhZvFAT004IB6kTQdCRKR/usEQiqD75W6EVLXTR7TSFGVxLOwBCydJbOBJNQVSYZG0pjGz5dMEbJr8WioU2SdkiJTpwgL3HVI0vZOc5L8Oor5xoHBCnYFsvXxQUbmuUEeaiDfLRYxEdI3YpGcbExZpGEuB5bJ+r4Icep9Fg5qqKKBjipoQHXQWdana1fHMHKvkmImCcQBjmPqVKGr6lpCwbcPZeOxbIw3FWubWRsqHtR4yfWuz+eBsopOiZH1OZQy4mpVVo0wOV224g5pl5/A3COiLRboAigRPHiDX04CLOhL9XWbSFdPuGc0EqXtZ7hn1WZDpNNUvcrlWm0go1afIFAbKMVBG2inwXza75ClvSek9q8ch8TxJecY9dIR6jFkeMoUA+iR+Swh5JjhoHWZm+dc5poEjGMt8/rpwvGWefMBENCVItmZK5Nx4TOPRTiYFN6aVoo2t4wtlZx+EyG2Sgt4JVhVbNleU+wvj6U7zXvNHkmmI5xIlK171MHqHTar92BZvu+ERD9p2pWNaCqdqspPrv/pTA7UMjnpOCgKDwZdoaqfmEjd54Be8H5ZT7qbqAL9U+6YUK/Kd1xd+ukJqJ2eoIHOVFenJ437E9R4mpFdFnpLXpJPTf8pVfs+eRyDQlSlsOmMsrHC7YxDoAfGd6an7QD/bbZQZCaWZVcrYRu9nZ9I455wKjFL9LPzHTGzyOqx1sxinzxOVP/WAohRPzc5ODGuydg4WmIszeKra9q8+HaNJn8A</diagram><diagram id="YNPyPx7KaQu_DktN2Ut5" name="Disk to Memory">5Vhdc6IwFP01PnYHCKA+tmi3u22nu+uMtX3LQITUkLghFtxfv0GC8hFH15F2uzs+mHtIAjnn5OZCD3hx9pnDZXTPAkR6lhFkPTDqWZZpW678y5F1gfRNqwBCjgPVaQdM8C+kQEOhKxygpNZRMEYEXtZBn1GKfFHDIOcsrXebM1K/6xKGqAVMfEja6CMORFSgA6u/w28QDqPyzqY7LK7EsOysVpJEMGBpBQLjHvA4Y6JoxZmHSE5eyUsx7nrP1e2DcUTFUQOG4PtodBeH04epMZP/QxJfgGKWV0hWasHqYcW6ZICzFQ1QPonRA1dphAWaLKGfX02l5hKLRExkZMrmnFGhRDT7Mk4EZ4stcyDvgQnxGGFcxpRRtO1Ugj0LXF9fAddV0+lw9dSIC5TtpcPckizdiViMBF/LLmoAMJQuypjmQMXpTmbTVVhUlbgUFCprhdu5d+zLhhJAL8ZsbQ9Tn9wKll14t1/dRWqKC/PNxTgDj6Zd59EyNDxaGh4HXdFofUQaHeNvo7GdGu5RzNTEVTLlokWdsfqGVrtcs/EhwSGVoS9JQhK/yinEMvleqgsxDoL8NlqJ6iK+i9nNflslXc4AXYlkt0QaQQG79nsrYbvj/NdRQrGP3Amd5WXn3yO5lW7ekuRbz/0R+E8/0dR8/PKySH1nyTWH3wgni/852diDw8mm31Gy0UrUPlgf5vMECYl5jMq1JpjRlmJyYlms7+P15NoxQHO4IuJMxSBonr5OezsYGq77Z+BaW5gfUQsiGlzmbzi5pwlMEuxvSINctOEKzX/qZJRhMVNj8/aTGpm3R1k1WJcBlQzMqsFmzCenDHfDNlE5rlghClpvZA0ZJQtsxX10+FyUZIRIHLJ02xYV2R2N6iXGEYECv9YfV2cFdYdvDFNRcZ1Vdx1wGm4qlqlGVV/tGhPZjSMTmI2JCh5aE22cuV326WY9ouL+aGY9m1WrFtxfXbyXBe1m4rNPteDgwETns+B3P3hmE/wc341v6JSSCX5xNfnyHuU1mnGHXvNPUh+ijOjwc4c1bBQTjqbg051wJ1QTMtx91ioE3n0cBOPf</diagram><diagram id="kX6EBNgLvKkf43cEuNvj" name="MRAM">5VbJbtswEP0aHQtYotejtyZIYSCoUTTtJSDEiUSEIg2KtqR+fUcVtVCSkeTgXAofrHkczgzfGy4e2Sb5naan+KAYCC+YsNwjOy8I/Gkwx78SKSpk4QcVEGnOrFMLHPkfsODEomfOIHUcjVLC8JMLhkpKCI2DUa1V5rq9KOFmPdEIBsAxpGKI/uTMxBW6DBYtfg88iuvM/nxVjSS0drYrSWPKVNaByN4jW62Uqb6SfAuiJK/mpZr39cpoU5gGad4zYaPh23z/YJ7jh6e7H78vx5V8/GKjXKg42wXvqKGIrMMQ0tRWboqaDgM5JtvEJhEI+PiZGq1eYauE0ohIJdFz88KF6EFU8EiiGWK5gPjmAtpwJHptBxLOWJlmk8XcwPFEwzJnhm2FmFZnyaBcyaQMr6SxreIvmhpqfQgidlmYAvKrfPmNCti+oBIwukAXO2FqdbON65NZZWdtG6ysS9zpAGIxahsvagK32uCHlecDUgUDqQbquCyN8dgR7pNI7LFY7+sOi34wQuPyVjSSKx1/WyrdXeIFZL4vfzciefZOkoNbkTwdkHz4vj78z6cJWbkaLYcSLT7zNJm9fZqAZOvyBi1pFjRNeehq5bKIPOjiqWv86hq73LGKD3IPbHBN95jHdwHVEZi3tv5QoY4EsxEJakyDoIZf3DLGdLEZHhXHApsGaDZgf5PWIVJ11iHYWd17vBdo2ruY+i1S0TCI869LmlWPNQ6a7Wukcm/fdGT/Fw==</diagram><diagram id="admFRsE1YTgaXuMmf33F" name="CopyingGC">5VlNc5swEP01PrZjwMH2Mf5KD8nJ0zY5qiCDEsEysvBHf32FkQAh7KadElwzPph9WgnpPa20OwyceXR4YCgJn8DHdGAP/cPAWQxs2xrZrvjLkGOOjC07BwJGfOlUAmvyE0twKNGU+HirOXIAykmigx7EMfa4hiHGYK+7bYDqb01QgA1g7SFqot+Jz8McndjjEv+CSRCqN1vuNG+JkHKWK9mGyId9BXKWA2fOAHj+FB3mmGbkKV7yfqszrcXEGI75ezr82KT45Ui/PUZ4ff9Ktstw9/DJcuTk+FGtGPuCAGkC4yEEECO6LNEZgzT2cTbsUFilzyNAIkBLgK+Y86NUE6UcBBTyiMpWfCD8ufL8kg31+U5ai4Mc+WQclRFzdnyuGpVemVl2O1mq3wZiLidijYW95QzeCi0dgeQMZMs+y6yEtpAyD1+iU+5QxALML/jZhf4icDBEWMxY9GOYIk52+jyQ3MFB4VeKLB6kzn+ieT7uDtFUvsnYA7rC+5BwvE7Qael7Eee6mr9neEMonQMFJuwYYlyQvsOM48Nl2k2aVAcVWepokea+jNPCJazEqD0atsSsfSPMjobXxuydwewTjkAOXOVXLJrrJOak1Uhq4A1REsTC9ARJWOCzjEIiboJ72RAR3z+df02q6brWhWtht49MTdwGSZy2FHF7r0g9SrpWZGwo8kjiN8GAPVwgjjo4inShB7bjLrNfOwExfech1Rr/0y5TKZUv5UmR/Xe51PiqkqnJO5OpM9vkY5KpiRF0X2Pap7Ar7M7iTpWKfT34ilq5OwXMkqJnUdB0+X+wBmbxMYekV+mYfi41FC0fmo5ZI0OQh3l/5CjyMaWH27UeZg1509dEvTzpPD+2zJLxxm+JugRXkCv1rEisK3AFudLUUOAaSF+tZo7r/hvSndrRP2ngfNTA+aQtzpXAFc5nyHtLk//kOs7strRydK3ay5qEWX7sOrVVPhk6y18=</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="161" y="30" width="160" height="120" fill="none" stroke="#ffb366" stroke-width="3" pointer-events="all"/><rect x="1" y="50" width="120" height="80" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="361" y="50" width="120" height="80" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="1" y="20" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 35px; margin-left: 2px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Memory</div></div></div></foreignObject><text x="31" y="40" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Memory</text></switch></g><rect x="1" y="90" width="120" height="20" fill="rgb(255, 255, 255)" stroke="#6e6e6e" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 100px; margin-left: 2px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Data</div></div></div></foreignObject><text x="61" y="105" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Data</text></switch></g><rect x="361" y="90" width="120" height="20" fill="rgb(255, 255, 255)" stroke="#6e6e6e" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 100px; margin-left: 362px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Data</div></div></div></foreignObject><text x="421" y="105" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Data</text></switch></g><rect x="341" y="20" width="70" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 35px; margin-left: 342px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Disk</div></div></div></foreignObject><text x="376" y="40" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Disk</text></switch></g><ellipse cx="241" cy="90" rx="50" ry="35" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 90px; margin-left: 192px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Offset Conversion</div></div></div></foreignObject><text x="241" y="95" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">Offset Conve...</text></switch></g><path d="M 131.1 90 L 180.9 90" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 124.35 90 L 133.35 85.5 L 131.1 90 L 133.35 94.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 187.65 90 L 178.65 94.5 L 180.9 90 L 178.65 85.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 301.1 90 L 350.9 90" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 294.35 90 L 303.35 85.5 L 301.1 90 L 303.35 94.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 357.65 90 L 348.65 94.5 L 350.9 90 L 348.65 85.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="151" y="0" width="100" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 15px; margin-left: 152px;"><div data-drawio-colors="color: #FFB366; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(255, 179, 102); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Meta Level</div></div></div></foreignObject><text x="201" y="20" fill="#FFB366" font-family="Helvetica" font-size="17px" text-anchor="middle">Meta Level</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/inode.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Do not edit this file with editors other than diagrams.net --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="783px" height="251px" viewBox="-0.5 -0.5 783 251" content="<mxfile host="app.diagrams.net" modified="2022-02-02T15:59:23.685Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" etag="da0Sw5D39VMLHB7iTQc-" version="16.5.2" type="device" pages="4"><diagram id="AAaulOYO_kfhROZJ8ttr" name="Page-1">7Vttc6I6FP41fqwjIKAffenL3rHTznXv7u39lkrUtEDYEKv2198TSAQCVrZVW7ftdKbkcBKT5zw5L4ltWINgdclQNL+mHvYbZstbNaxhwzSNtunAHyFZpxLXMFPBjBFPKmWCMXnGUtiS0gXxcFxQ5JT6nERF4YSGIZ7wggwxRpdFtSn1i58aoRkuCcYT5JelP4nH56m0Y7qZ/AqT2Vx9suF00zcBUspyJfEceXSZE1nnDWvAKOXpU7AaYF+Ap3BJ+11sebuZGMMhr9Nh+nD37TudLDm/7l3eWmc3o5vRmSHN84T8hVyxnC1fKwgYXYQeFqO0GlZ/OSccjyM0EW+XYHSQzXngQ8uAxynx/QH1KYN2SENQ6sec0ccNehZIylOXq3nCjONVTiSXcolpgDlbg4p625WwSl45srnMjGS4UjbPG0j1Q5IYs83QGXbwIOH7HSh3IwmjAG/xbhRRHKVknpKVQP4wGJp2EcNOGcN2BYTtQyFonh6CRhFBo4KGR4XQOj0Iux8MwhoeEYdeT8SWzMflYCu6SwCGrf8VjaatmndSM2kMV3nN4Vq1VoTnukHrLvcm6yQaqs9v2CemCzbBu/ciR2yG+W6vh71CGC1bO2dNu8KaSsawjzh5KgbfKhPLT7ilBFa2IVO7UyST5WgsSdcte+WDpTaQbWkDGdpAKTClgRLGbZb9ehK6+yVhJZmMF8m0jbitHcTdJwlVwreLhNYXCQ9Bwk6JhGZT9AkhyxdmYRiXWAlenxepmBJCywkr0kTkk1kIzQnQBIO8L2IIgUy8J18ExPP8bXGrSPgpDbmsJQz3UJGr7WjmqUhBjQqaWYeKXN2SvYzUXh4s6MteeslQZa/WMe2lyHFC2ZptFjF875LBOL2qSw8P757wqhOZE8LQdj4ahnUKrz+/ajDqZmzK9X2QlM2195SydVrvm7IZ7f3y8FQLh1ZdHppfPDwID+0SDx8xDNgDGeSSOEQB5KKOL3LPe1bgp/NrIY7Ek5zwLE6SQtHLcKNV9hKeZuKvHL+XpLmLoMT1t6e3Pp7yE0huTS0x25xM5rPbqpB4uOy2W/Y8sMvGskkZn9MZDZF/nkk15DKdEaWRNOAD5nwt8UQLTovmVR7LyPmrzHvt8lgFf9Vsdaxd8Va0bjEjAJmogfbvyDp1HZlT05HV9lBvM3757EDMP7fj0/2bOoXMI3zW7dsu7t6q26yjlqbKm5zcvaB+KFOFpFOB5OHuBRVy9bbCpw9klquVdu0KCx7qWA1H/zz89ziOBu5V/6/eUzS0L3+dlZl/xDjWapqHT711w4q2YlEDgE1+XjC4FnReeePUrhnq0u9evCGyJV2hBELrnEIkUuF4e2pua1e9pqt93ULTd2z7TfrK32/T10sFTR8e0hXuNa03y+Wl5rb2nNKnNw2JbSC/+rROse3WyO6rwtrhEoTyDaW0lmajeEkCH6V2EFDJNwK6yZz43git6ULMNuZo8qha/Tll5Bn0UWZZxBTQVqugMRY95ZgMC37dKrANTXSNVgXFEYq5mg31fRTF5D6Zn+gYgCciYZ9yTgNl7RyVPDxFC58fiwOOfm5s1qzwNor7J0E5y7+AVB4k39fR1mx+33s0hu1JwtkoURu2M8nfEgMhotB96ieHXnPoiGGEvnT5MDe7D7+A0kAEThvmOoC2kbXhV6gziIohTB+RxIoYyLPEgkDgEzji6H5D7dcw4uV9tpsnL1xrHbXwN8v3kFAiBySOCQ2/SPEupKgqg45KCqtcUDabzS82vAsbukdkA/5hLy8658Mn7nau7MGP51V4o76wc0pHg02j0ykeDzqW+Zrjwbp230tRZdWtqVrVhHnraSE0s2+4p1VI9n8C1vn/</diagram><diagram id="s08jDtw-m_Aoh3yq8LbV" name="Page-2">7Vptc6o4FP41zOx+aIcXRfxo1d67O91Op93ZbT/toERMC4TGUPX++k0ggQBBufWl2lu/SA7JIXnynHNykmjWMFx9w248/wt5INBM3Vtp1kgzTaNj2vSPSdaZpGeYmcDH0OOVCsED/AG4UOfSBHpgUapIEAoIjMvCKYoiMCUlmYsxWparzVBQ/mrs+qAmeJi6QV36L/TIPJM6Zq+QfwfQn4svG3Y/exO6ojIfyWLuemgpiayxZg0xQiR7CldDEDDwBC7/OMYP/epRfxmt9Gg0++9m1IsuMmXXP9MkHwIGEdmzaifT/eYGCQdMM+2AfuVqhujH2LwECKdv7NeEDfVKM63ZTKc/WaQvyJpDLoRMwcUiJcSAVjB68SqtWjSyffYfJ0R8c4J30iTUUBCy3mfiF7DOGkZuCC6o1A1jKk7fZQM39d9mMADs/e976gtHlNXxgYsXI4gpvRFeVzrwxy01udsknADMaZZ/0iRgxarMSRhQgUEfFwSjFzDkcxKhCLAuwSCoiNwA+hEtBmCWdgZgAqlNDLg4hJ7HPnK1nEMCHmJ3yr64pB6AyjBKIg8w1uh8vNyqjV7eA2FKVjriVuzkLGZdASvJNjlbvwEUAoLXtIp4281acMdjOdwOl4UZm30um0smbHGZyz2Hn2surIM+cANRG8v4u/94t/w7NCcPywQlrxeT+3E+AtlWKjNWYGc0oCtNJoN2mJuXdX2dGpVyPo+Iul5G3a6jbukK1HuHQl3/FVC3yqgbCtRN50CoK0cg4mNzYGjnGht99EHCy6bYUgkKspvfGD2E2INvu496EbtRAxLv1JwHt/ZRZuMwqVjVSSpOAdhn16UQGYFl3vXGDp5gdDyihyhHQ0MVDXsHioZqD/Ezfllv4Zc/1P+aZQecQynBmztlGd5cuHd8re34Ui00jWpiqoStu4iz3GoGV2w+jomsU0G2X0e2owC2cyhcO58E105loaZg7FFxtT8Hrh3zxHBVLcSquEbegG2VFJ5TwrLshClaeP3ICpddUXziNdPCaCXXHK1FaQWJ1IyWnqQ3RSNWEG12nbQFSvAUbDdl4mIfbNLHXSnwSltFdQpIU9xVTLGQYRC4BL6VN5hU886/cIdgukziDLMrKVa3uojPxs1byTs6VUV2RZFZUZQBU1OU0jAf9vuZqdo72oGZSoYZGxnWxGZ9C5sPzkyrJTPtL2Yegpn9GjNhRBMgNiMYgBpLd88kppQ2NLU60502y+hdltOLTj3oOd067w6WXAgilmbQo6P5msGWM/jxU9hiu/QcFoTVBOaj8xdx/nb2uFYSGOOjF9rGJ8m4qxnMxwPbJuX+RVMYYc1bV4rCnZ7oUtHa11LROvJSUZwyfmUxzZzbTs7TzrDPgZzPwWtyPQpvp9Hz26RrrZ/u4yuxwSFTkSL8wIsIkznyUeQG40Ja4WNR5wahmFPxGRCy5gtVNyGoTGhBYUP2kjmdt1LY6pVJfGmb3W2emZXuAIYUL7YGPxK7nZbs7rQkd2vW7hZN68ltjSXne/By1HMXpc0ZNTRP1OYObiDiDsD+iK/2sla3crbZ7x7Kyy4HneE9tMGfk/VsPB35N8bbtfJeT5tLCjb91U+1yztNLS8ZiEZRdkQ/tjTH1PomO9xnz4Y2cPhDv1dXmrXmFccxw0lSko2rroZLbG1sa86QPXNJPeqcwlF7dXOlwdO05X+jR+pWPJIgo3zQrvJI+9hIUdKznj2Vt8KaKLaJvLpevWGTtRW3IN/HwBp/30O987n8UWVk7WZZ6iCOx1RTdSdEtcx+B1VpsbjpnDne4r64Nf4f</diagram><diagram id="_SMWdJT_P9braKPgiXsX" name="Page-3">7Vtbd6M2EP41Pqd9cA5INsaP8SVpT7N7ts2mm/QlhxjZVoIRFTjG/fWVjAQIcMA2kMvGL7YGMUKfvpnRDHIHjlfhJbW85RdiI6cDNDvswEkHAL0HDPbFJdtIMtBBJFhQbItOieAa/4eEUBPSNbaRr3QMCHEC7KnCGXFdNAsUmUUp2ajd5sRRR/WsBcoJrmeWk5f+wHawjKQmGCTy3xBeLOXIujGMrqws2VnMxF9aNtmkRHDagWNKSBD9WoVj5HDwJC7hzZ+TzXRLnnz30nlc3Y9v4KgbKbs45JZ4ChS5Qb2q5dyeLWctAOsAw2GjjOaEDcbXxSF0d8X4d82nOuoAOJ9r7JMWaX6wFZBLIVfQ9XeEOGcd9IEX7romNxkL/r1AgRyTPX00bHRFih/oSQM8oe2uh2GtPNZ0H3wvpdz3LPfE57eoP8GUsZfQbTceZ3fx96/Mor6uVw+IpiYZjSknCZThQYBCLl8GK4cJdP6IASVPaCxWwiUu4o+HHScjshy8cFnTQXOu4RnRADNLOBfiFbZtPshos8QBuvasGR9xw+yeyShZuzbiXNHE3IUt64P4CaQBwfixSzkpuMsfBYUpixQcvURkhQK6ZV3k1aGgpPA30BTtTWK9YNCPZMuU5ULRzxIOYxGrToyC/RB2cYj5mWU2Uo07OeI0amlHmplqMZprrVCG0REMQPuFERDx67/uVVtK7PoI2x5BocrPQQE9pVetm550rHn/PBq0d3v7Y3VzP3r+W8NdWMDODPAJVPoeMFNrwpdwHFMRXlzsCFjob1r0CmZf9QpFsJsFsPebgh38DLADletGAeiwIdCLJzA8BHWtAuqviW4fqKQu4LRuFMCrm03hexCp3zq8sT94M/BWcNVMC8uM9sW8dOj0vShdmuOQL0ebEbCnAjvMA9srwLXXFKy9DwKrpsKqFxC2VVyND4Kr+cZwHVTA1bXPefEj8ZspLFUXzNCi21veOOvL5p3ouWtMwnTPyVa2QhykbmOtu9SV5CbekPecumg+WdMZKjflwKI8XSn1pMhWij95CqSWuP/CRoUixwrws1oyKlp3McI3gncpmwzkA5Vh8e5UqojmLe5K12gyiozMhguCjKIImJyiHQ3jaR/PzKJM9wRmFjJMf5Fh+9islbC5cWbCisw0PpnZBDPzG3/sEpvXIQKKUI6lp9fQZow2iL7XKlo2tejlQ57Zag0tX2fGDKjwc/325C5G6foNC7xGc+un59bvXe4F+5k6UoupS2EVScujyALHtWgSGizJgriWM02kGY4mfa4I8QTCjygItoK51jogKv4nxmWgx1tLfl9XOyvdavLWN0QxA43bZGxcRQWvxiO5fIFZGspluC2N5acGaROe9VjElx+gUBQMh2daRmfDwVYi9O6tvada+6tnfvoHqQAZ4K0BW6UG9JPm1JX9nV7V37WTu5j6nnc+h+YuZmYz1XbuIufxmVbv51w5Od9WyefjkLOoylvTyZijjxGo52NqOQRU26QEULzP58mfOjcVeqZOH78PSb9ubjfrHeT9dHvpmfx9p/j6Mv+uePczzYTH5GbNu32zotsHFb1+ZXdelRD699HVHxje3KPF1V+aBTa4v5XF3XfEB5ada5rxPkghI1/5XmD4Wqx4sU5Q+wHBOH4eGmiSk3xJtFJPv7poE+s7/vxe++GpxeKBltmYFYWjporohcXCKjXYJI2YOZbv49lLmUT1ElwqfzCAeUgGUehKDluzjJmrDmL/mcjXSg2goavEyVY9qqYGcJhRlD1XV19qYE697+HscTa5fnj+YoHhud+dVjkNdjjfXt5bnpjbGiBbmtbgUbFuD/HqC3VVI53xqkzOnsU3jmRyL3NiDOp1MZk1k3/gRN2T/zHB6f8=</diagram><diagram id="HHLeNmLiLjBSiti2kdQe" name="Page-4">7Vtbd6o4FP41rjXz0C4SLuJjr6dz6/RMZ9ZpzxuVqJwiwRAr9tdPIuESQI2KWHvsS8mG7JC9v30ldvSrcfyFOOHoL+wivwM1N+7o1x0IgQEt9o9T5gmlC2BCGBLPFQ/lhEfvHQmiJqhTz0WR9CDF2KdeKBP7OAhQn0o0hxA8kx8bYF9eNXSGqEJ47Dt+lfrNc+koodqwm9PvkDccpSsDq5fcGTvpw2In0chx8axA0m86+hXBmCZX4/gK+Vx4qVwevd+1t/fb2eMFRC4mN0/Rf+gsYXa7yZRsCwQFdGvWD1/f9Zd/gnhyd9G7/ePH091kgs+AnfB+c/ypEFgHWj5b5XKA2WJs13QuRGlNpji9cRYtFH3BHgDdMM5vsquh+F/k0sc+JhKXDtQHA439FUnbrjZENF2QCSBZU36PF5JSXtE8YRU4Y3TGqM445Cz4vUQMUPtl4PmI3/91KVsovS2kKOb0ER37jADYpeN7w4Bd+2iwYI0I9RgsLwR57Lkun3w5G3kUPYZOn3OaMSNkNIKngYu44jQ2iijBrxl69Wz5tYAQwOFLo7hgDgIgXxAeI0rm7BFxVxdQT21dDGe54WTWMCoYTTrNEbY6zBjneGQXApIbwDNdbDk8mwXWAi9bYWuHBVJACiAGL1FYYB6FTrDj+zskuvYIc66YzEuA/+2eOfz76fgFkcImkzWVkZ7g80poIsABhzWzIL9Eas4i+N5FqAHdVi0E9GQT0a0aG+mabdqIUWMjJZ3l0gNL5FtQJxfuVWZW+u3twphqNXpAPdglPZg1erBrfJW5Nz3oh9NDe3KHstjr0K+3KfW6ALFU6JqC0A8pXBOa6+IvsGqkmxlD4+IFn0m8mTw/jHjhevEyLqxUWhYWi/lmFCb108CLuTraTBtLeWOvKlijRq7GvsSq4ImPQaywlGuAGsC2KlejKkaXFdtiiAkd4SEOHP8mp5YSt/yZPzEOhYh/IErnIo1wphTLCkCxR5/49HNTjJ4Ld65jwXkxmKeDgG03mWSBXkp4Lt7NJy5G0swHRDwmMUQEcWmmuisWIjwlfbRC4iIeUIfwMmSFnxZdGq6PldAiyHeo9yY3RxoHivk5DFDvfjADtBTkGrgXvG2WB9iCLGVjLFiJWbQRsM5Gai1SW2mRe7cUXdFSoKKhFFRsrkhole1JrPCAvUXfIs34rFIZ0y1BJ9m3mFXs7pUYWaDECJYYJYKpMFrAMNv29sjsNovM3Xy+uYnH3zsyoSIyzRMy94HMaofbC7DLu7yUIFRB6e7trT6DDU8djrPBVa5BjWrIs9tsb/Vq1OeyrZzUp1Tj1qmvzQ5+avzHngqatmwWLZa4vddwMrrEf1s3T/f2LJzE3+/+TfteR1WKAUMKzGfauWZ1t6nHVM2rFEobjOnpR/D16eZB67D0NY/e+gzZ+g5eiIFP0mKy4EcTrMLXrJ+1xFV2OmnQ/SClhA1kkG1dSthWiVHLpQRQ6Wv9pFVuirn14NRP4NwLOOuagw2dIdn6zJR8kqSR4zKNbUoIij9zOiPTZFJRPptRVyxltHaq0G7VT7dXLqXXz5KvX+ffJe9+rtn6NpXS/t2+rer2Fb1+S4VR7+gAwctlzToOVEDVZEA1UW0HFSnjQgjNIt+mIWLHKJcHJ/lYaIBm2Uucws7KzrUOasJOu0czVdoveb3Q950o8vqrSoZlZwLzUsKChnoxwQbrfUPxMIUhO6BtnE/TAaj+5INKa844ZN1hrPssplp36D0gMyqftdxz3QGrRfFKX9mfEq76ghfTFrO0Pbu2pr7rFMxP09IjuQdzekbpe49ek2vrrX7xgZsdUtnc6WVSz50eMK2i0ztvwu01nRKpJsCHcT/ZeFP3Y1p2PQDbcj/VkyfegMs59iJ6ciOq3wG0Uu5U83OKuqPRW3gRNsx/M5mgIP/lqX7zPw==</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs><clipPath id="mx-clip-645-121-132-30-0"><rect x="645" y="121" width="132" height="30"/></clipPath><clipPath id="mx-clip-645-151-132-30-0"><rect x="645" y="151" width="132" height="30"/></clipPath><clipPath id="mx-clip-645-181-132-30-0"><rect x="645" y="181" width="132" height="30"/></clipPath></defs><g><rect x="151" y="31" width="170" height="190" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="231" cy="71" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="191" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="271" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 191 131 L 231 91" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 231 91 L 271 131" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="421" y="1" width="110" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 16px; margin-left: 422px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">2. inode tree</div></div></div></foreignObject><text x="476" y="21" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">2. inode tree</text></switch></g><rect x="151" y="1" width="100" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 16px; margin-left: 152px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">1. index tree</div></div></div></foreignObject><text x="201" y="21" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">1. index tree</text></switch></g><ellipse cx="501" cy="71" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="461" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="541" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 461 131 L 501 91" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 501 91 L 541 131" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="181" y="181" width="140" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 138px; height: 1px; padding-top: 196px; margin-left: 183px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">key: filename<br style="font-size: 17px" />value: inum</div></div></div></foreignObject><text x="183" y="201" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">key: filename...</text></switch></g><path d="M 101 46 L 126 46 L 140.9 46.46" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 147.65 46.67 L 138.51 50.89 L 140.9 46.46 L 138.79 41.89 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="1" y="31" width="100" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 98px; height: 1px; padding-top: 46px; margin-left: 3px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">get<br />key:filename</div></div></div></foreignObject><text x="3" y="51" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">get...</text></switch></g><rect x="421" y="31" width="160" height="190" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="331" y="111" width="110" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 108px; height: 1px; padding-top: 126px; margin-left: 333px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">get<br />key: inum</div></div></div></foreignObject><text x="333" y="131" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">get...</text></switch></g><path d="M 471 211 L 471 241 L 616 241 L 616 71 L 711 71 L 711 80.9" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 711 87.65 L 706.5 78.65 L 711 80.9 L 715.5 78.65 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="431" y="181" width="160" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 158px; height: 1px; padding-top: 196px; margin-left: 433px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">key: inum<br style="font-size: 17px" />value: inode pointer</div></div></div></foreignObject><text x="433" y="201" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">key: inum...</text></switch></g><path d="M 641 121 L 641 91 L 781 91 L 781 121" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 641 121 L 641 211 L 781 211 L 781 121" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><path d="M 641 121 L 781 121" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="17px"><text x="710.5" y="113">inode</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-645-121-132-30-0)" font-size="17px"><text x="646.5" y="143">File Type</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-645-151-132-30-0)" font-size="17px"><text x="646.5" y="173">Permission</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-645-181-132-30-0)" font-size="17px"><text x="646.5" y="203">...</text></g><path d="M 291 151 L 356 151 L 440.98 151.07" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><path d="M 447.73 151.08 L 438.72 155.57 L 440.98 151.07 L 438.73 146.57 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/ls.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Do not edit this file with editors other than diagrams.net --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="773px" height="383px" viewBox="-0.5 -0.5 773 383" content="<mxfile host="app.diagrams.net" modified="2022-02-02T06:25:12.943Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" etag="65F9Z1BfKCBLWuhlnJo7" version="16.5.2" type="device" pages="4"><diagram id="AAaulOYO_kfhROZJ8ttr" name="Page-1">7Vpbb+I6EP41PBbFSQjwWGi350hUW52utNtHlxjirRMjxxTYX3/GiU2uQLbLJYsqIRFPxsb+5hvPeEzHGYfrB4EXwSP3CevYlr/uOHcd20au7cGXkmxSSd8bpoK5oL5WygTP9BfRQktLl9QncUFRcs4kXRSFUx5FZCoLMiwEXxXVZpwVf3WB56QieJ5iVpV+p74MUunA7mfyfwidB+aXkVlfiI2yXkkcYJ+vciLnvuOMBecyfQrXY8IUeAaXtN+XHW+3ExMkkk06zH6+/PuNT1dSPt4+PDk3XydfJzdIm+cds6VesZ6t3BgIBF9GPlGjWB1ntAqoJM8LPFVvV2B0kAUyZNBC8DijjI054wLaEY9AaVSdqJ77OxGSrHMiPfEHwkMixQZUzFtLg6hZ5OnmKjMJMrIgb46BFmJNg/l26AwpeNBg/Q5wh3GDUYCl5DBmOF6k1J3RtcL5KIh5RcQGVcTcGsDcU+Fltx0vu4gXqqHYeQFzqgD5sDXpJhcy4HMeYXafSUdFV810JpwvNHg/iZQbvc/ipeRFaMmayh+55xc1VLenW3drPXLS2JhGBOtVnW6sroVsI0m7el7fCLLeSavQ/YkICrgRoYU7LRrzpZiSPbhp2CQWcyL34asNp0DdSxBBGJb0vRgPjm5up+X+YVst848GgYtE/q1KAbJQlAOp6CpbDmuyGwKjQ+TV/pL5yEveRWr95ePcthtyGzWkds52vRrbGVljD9C/8MQprGxLHWdYpI7jlTiRrlv3ymcwpYFctzQQKg2UAlMZKOHXdtkfp1z/uJSrpQ5qttWWaGodoOnHKWdy7kOUcz4pdwrKDSqUoxGcsZRFBCEV+sFmLouci6Xgb6SUkdck6ZjReQTNKTBEReGRCg0UzkG3+kVIfZ/tCj5FZh8h3DiDIu5uNdrU5fvOqaLNsMYOPizl2u1QPnhd2g7G/VqbJ5U3jEufu1DbD6pu2xJL1PajqjtoG2JNDi/XloujppmR2bJakhp5/SOlRn37sqkRco/Lur8jHbeass7+ZN1JWNersO6NwIC3IAO5x1Te9yrgaa6etJp6a64BrjFLLB23tou9WJo4rG4FLS+eWoUNpGsNnPPWTdGg6c7iNdxZzlM4RdUjspq/beXd8mod7+C12FndzuzNLb9NLBcXLn+baHDaTeIrjh52KXrUnWfOS+NqZpm3w54YnxTnrthUTr93MNAPz2qqak1+hw3iFQ0ZTnHmkTSpgAJmGlDmT/CGL9V0Y4mnb6Y1Crigv0AfZ5bDQuoUwLEKGs+qpx5TkBh0ngzYqCR6xOuC4gTH0syGM4YXMX1N5qc6hhCSaTTiUvJQK+Wp4pMZXiacPMHeWFfAQnXVhe0F+vFtXI3wXyhTNfBvm8XO2uvvehgjM7nPv2JwLRrNJ4nanZtJ/tMYKBGH7jOWnDcD6EhghNFCHUUSTHoj+ABKY5UU9mCuY2ijrA0fpS7kmEcwfUwTKxKgxoooeoA/Syzx65a4VXvvd5LDLDCnqoZGP51fVwvukOqGNI4pjz5NfgKT1yVBZzW5U00eu93up61PYOvhxW1draJUDH2+2p098C58+DYZ5+F/LWlbt6SsV75n3+aDf3rPjnqlgT5c1oNm9h/bVD37p7Jz/z8=</diagram><diagram id="s08jDtw-m_Aoh3yq8LbV" name="Page-2">7Vpbc9o8EP01zLQPydgyNvAYLmk70y+TKZ02eeoILIwS23KEHEx//SfZku+AW+5p8hJ0LOty9uyuVtAyBl70icJg/h+xkdsCmh21jGELAL0NLP5PIKsE6eggARyKbdkpA8b4N5KgJtEQ22hR6MgIcRkOiuCU+D6asgIGKSXLYrcZcYuzBtBBFWA8hW4V/YltNk/QLuhk+GeEnbmaWbd6yRMPqs5yJ4s5tMkyBxmjljGghLDkkxcNkCvIU7z86Oq/tf6D9jyMNH84+/V12PGvksFu/+SVdAsU+WzPQ3eTsV+hG0rCWsBy+Sz9GeGTCbu4hMZPrJdQbLXfAsZspvG/PKQt2EpSrkAxwNUiFsQN76B3gijumr1kOeJ/EDI154TuNJIahpOQrD6Bn9EqedGHHrriKPQCDsfPko0D7cMMu0g8/7intUhGRR8HQboYYsrlTeiqtIAvd9zl7kJvgqiUWTolYCgSXebMczmg848LRskzGkib+MRHYknYdUsQdLHj86aLZvFiEGWY+8SNhD1s22KS/nKOGRoHcCpmXPIIwDFKQt9GQjWa3K/0ar2TrkC5khHvuJE6pYrFUlCU802p1k+IeIjRFe8inwJNOp6MPEZXtpeZH4OexOY5HzYkBmXocNKhM/fgH6SH1HvL6LPzcL/87oHJeBmS8OVq8m2UbiHvLCWTZeTpa+jNWVNwO0j9y7i9jb2q1qDHo13vmUXarSrthlZDe+dQtGv/Au1AL9Ku19AOugeivXYLKkWuzw3NouPaMH2QDLMpvZTyQj7Sb0wgCrbx6+67XgTQX8PEX46c5rfmiWbjNjlct0gOxwTsc+m5LOmjZbr0tQs8wwR5xBABiglRr0uInQMlxPoQ8SeRWWsQmU8ZgU2tGIFTKnP0plE5T28K7p1fYzu/fBReSq2Tao5buAiS+mqGI2GPYzJrlZjtVZlt1xDbPhSv7TfCKygd1WoUe1RerbfBq6WdGa91J7Eyr759I65LssiZ47IYhDlbdPUgGtemaj7KnnFjGOV7DleqFWGWe423HnNPspdEQ72zq9EWJKRTtN2VGaQO2jSeDKXILlwXVSWQM7FZY2KFUeRChl+Ll0x1dpcz3BMcn5OkwjqlIsssn+KTfcu38rc6pYG67dJAoDRQQkxloFiG6bb/Xpl190c7KLNWYfpGha1Ts7ZFzQdXptFQmda7Mg+hzF5FmdjnFZCwCEWootLdS4kplw2vrS70ts3UwHXRYO1q0uuaVd0drLjQq/c+mFMVvVuwqQVPb8IGN6aXcCAsFzCnrl/Ud3AXz2upgNFPfdDW30jFXa5gTk9sk5L7Hy1hlDdvPSmqcHqmR0VjX0dF48hHRfXVy3sVs15z28V53hX2JYjzyX0Jb4fe3dR/ep2YxurxW9BXFxx5KXKGx7JJKJsTh/jQHWVoSY9Zn6+EBFKKT4ixlTyowpCRoqCVhPV8lEzlvFXCRqco4msLmNsis2jdI4o5X+IMfiR1dxuqu91Q3I1Vu1s2rRa3FZVc7hcvR/3epdbn9AqbZ+pzB3cQ9SOA/Qm/Psqa6uSpDqwqfO8cZXkz+41e0j37paMx+h8=</diagram><diagram id="_SMWdJT_P9braKPgiXsX" name="Page-3">7Vtbd6M2EP41Pqd9cA5INsaP8SVpT7N7ts2mm/QlhxjZVoIRFTjG/fWVjAQIcMA2kMvGL7YGMUKfvpnRDHIHjlfhJbW85RdiI6cDNDvswEkHAL0HDPbFJdtIMtBBJFhQbItOieAa/4eEUBPSNbaRr3QMCHEC7KnCGXFdNAsUmUUp2ajd5sRRR/WsBcoJrmeWk5f+wHawjKQmGCTy3xBeLOXIujGMrqws2VnMxF9aNtmkRHDagWNKSBD9WoVj5HDwJC7hzZ+TzXRLnnz30nlc3Y9v4KgbKbs45JZ4ChS5Qb2q5dyeLWctAOsAw2GjjOaEDcbXxSF0d8X4d82nOuoAOJ9r7JMWaX6wFZBLIVfQ9XeEOGcd9IEX7romNxkL/r1AgRyTPX00bHRFih/oSQM8oe2uh2GtPNZ0H3wvpdz3LPfE57eoP8GUsZfQbTceZ3fx96/Mor6uVw+IpiYZjSknCZThQYBCLl8GK4cJdP6IASVPaCxWwiUu4o+HHScjshy8cFnTQXOu4RnRADNLOBfiFbZtPshos8QBuvasGR9xw+yeyShZuzbiXNHE3IUt64P4CaQBwfixSzkpuMsfBYUpixQcvURkhQK6ZV3k1aGgpPA30BTtTWK9YNCPZMuU5ULRzxIOYxGrToyC/RB2cYj5mWU2Uo07OeI0amlHmplqMZprrVCG0REMQPuFERDx67/uVVtK7PoI2x5BocrPQQE9pVetm550rHn/PBq0d3v7Y3VzP3r+W8NdWMDODPAJVPoeMFNrwpdwHFMRXlzsCFjob1r0CmZf9QpFsJsFsPebgh38DLADletGAeiwIdCLJzA8BHWtAuqviW4fqKQu4LRuFMCrm03hexCp3zq8sT94M/BWcNVMC8uM9sW8dOj0vShdmuOQL0ebEbCnAjvMA9srwLXXFKy9DwKrpsKqFxC2VVyND4Kr+cZwHVTA1bXPefEj8ZspLFUXzNCi21veOOvL5p3ouWtMwnTPyVa2QhykbmOtu9SV5CbekPecumg+WdMZKjflwKI8XSn1pMhWij95CqSWuP/CRoUixwrws1oyKlp3McI3gncpmwzkA5Vh8e5UqojmLe5K12gyiozMhguCjKIImJyiHQ3jaR/PzKJM9wRmFjJMf5Fh+9islbC5cWbCisw0PpnZBDPzG3/sEpvXIQKKUI6lp9fQZow2iL7XKlo2tejlQ57Zag0tX2fGDKjwc/325C5G6foNC7xGc+un59bvXe4F+5k6UoupS2EVScujyALHtWgSGizJgriWM02kGY4mfa4I8QTCjygItoK51jogKv4nxmWgx1tLfl9XOyvdavLWN0QxA43bZGxcRQWvxiO5fIFZGspluC2N5acGaROe9VjElx+gUBQMh2daRmfDwVYi9O6tvada+6tnfvoHqQAZ4K0BW6UG9JPm1JX9nV7V37WTu5j6nnc+h+YuZmYz1XbuIufxmVbv51w5Od9WyefjkLOoylvTyZijjxGo52NqOQRU26QEULzP58mfOjcVeqZOH78PSb9ubjfrHeT9dHvpmfx9p/j6Mv+uePczzYTH5GbNu32zotsHFb1+ZXdelRD699HVHxje3KPF1V+aBTa4v5XF3XfEB5ada5rxPkghI1/5XmD4Wqx4sU5Q+wHBOH4eGmiSk3xJtFJPv7poE+s7/vxe++GpxeKBltmYFYWjporohcXCKjXYJI2YOZbv49lLmUT1ElwqfzCAeUgGUehKDluzjJmrDmL/mcjXSg2goavEyVY9qqYGcJhRlD1XV19qYE697+HscTa5fnj+YoHhud+dVjkNdjjfXt5bnpjbGiBbmtbgUbFuD/HqC3VVI53xqkzOnsU3jmRyL3NiDOp1MZk1k3/gRN2T/zHB6f8=</diagram><diagram id="HHLeNmLiLjBSiti2kdQe" name="Page-4">7Vtbc+o2EP41zLQPycgSNvBILjS9nUnLdJo8OliAzjEWkUWA/PpKWLIs24Ch2IFJ8hJrba2tb7/d1UqihW5nq1+YP5/+SQMctiAIVi1014LQgT0o/knJOpF0vF4imDASqIeMYEjesRICJV2QAMfWg5zSkJO5LRzRKMIjbsl8xujSfmxMQ/utc3+CC4LhyA+L0n9JwKeJtAs7Rv6AyWSq3+zo8c18/bAaSTz1A7rMiNB9C90ySnlyNVvd4lCCp3EZkt/A2/tgOexDHFB2/xT/g68SZYNDuqRDYDjiR6t+/OsdvfwdrV4f+r3B79+fHl5fqeoC3vxwofBSY+VrDSCjiyjAUglooZvllHA8nPsjeXcpKCNkUz4LRcsRl2MShrc0pEy0IxqJh27UGzDjeJUzyZ7xOCnIgp2YzjBna9FPaXGBm+jRxFRjWRorO56STbMW7iqhr5g1SVUb9MSFAvAAMJ3LBVOgeWZgwv1gCi0iiuD9QPrxPAktY7KS4NcGI3JsGHtFGNslKLbrAhFdIogp+RSITgkZG0WxXQQtEDlGNSnjUzqhkR/eG+mN7ejmmT8onStAv2PO1yph+gtObbjxivAn2f3aVa3nzJ27ldK8aax1IxLDTTp5Tk8LnrN3TcdNy+r5iBkRiGGmhNK0RGTSfkgmkZDNSBCEJgpJEI6wuwCSLtgI7wBcBXbuswnmuwKuV04khkOfkzf7605OC/cSnQu5Z+ZcXgUUo6AvZ4ImDWaQsx0t4wFulv/OPv6XehvY6W11ewGq6AWw3OAZg7olBtWyyr6i3vBIiRidmYW1bT6hTo4oyTBVr+z0NK+ol1MEc4oSHAqKNqRLh308Dzun5eH/i97uIbG7bh7Cijx0v3h4Ah52CzwkkSjKpQEYxgVOivTAbSLGnNEfOFc3lJQSvsrqI8ESmfK3p/uy3GXTva5sla/x3GKyKqtKUF3JqldinEAM+VMaJ18zfrRxdO11WRMy17Mp/tElo+MUQTv7agcCK2NegWuA0DElz5hGXLtiC6LBAIi/BnKsUzXJwi1saqbk0Z95YS4GbRf78JrHuch1GQ+cG4ztCjB+ztqxcjxxQLnNm5m1d3o2pY6etXfbOUUNz9qdKotBn7N81NOy/VREX1Q8BRXLVtS8UBYi8dyPLE56rwu5e3ljXU3k/x9YfENfPBz5M3wlpP5M5p3NvUQzBD+JwgXL+z/rF4gPTt6RKNHiF1bxrUd8qBqm/NQJ9ll8R5hIh5Stcx/96zdRRX9bzF7EXG/b1568fAvxmJ9p8ZZbLymrO9I9/GbKt04xYjZXeOjrZyvq7ou0Vpy9Bt2jao7aA3C3agAuZ0xDpUVx4Uv7qSzKWvKEiK7LTAxA4/GmQiuEBTlS4+aJhmJQOi7W7Q0T5+/+uS3Wqtv99Tl/7+KcXy4yAO8iIgCsOgXbUgw0EwFg2fpdsxFAeX70Es8LsxGt9WuOUX2OkZsJeyVzDNBkmNEDy1AsDf6HWtawx0xBbf5EeJnq+1SGz2/bIFCSX3S91Yzhqyxcmvp8FPpxTEa7SvRtK8WmdPdgu3rxLhqNzwu3nJ5ppt5G+/ZZq9bbqOPYitxm621YYTHXUMfZ4pjZY59bmNXgcdBzmx7CCiu9l4ZxlezYcJAsLmLuTIqjBZMIZHIc2PQCNSe+U2yK5wgAgLXRV0dKtF2qXZISUz9rxtqHnbw7PCWmmJqUqPZpdUq8Bl7n4LSYWed2ku7ZbV8jOasCTP/yZe/27oceosrn5LZzZE5u509jeQ3n5OJpPjKWFl6RmH9FpIQzeRvVd35HNM3PpBIbmx+bofv/AA==</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="171" y="341" width="275" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 273px; height: 1px; padding-top: 356px; margin-left: 173px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font color="#ff0000" style="font-size: 17px">get</font><br style="font-size: 17px" />key: <span style="font-size: 17px">gearsDirectory->INodeNumber</span></div></div></div></foreignObject><text x="173" y="361" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">get...</text></switch></g><rect x="11" y="31" width="220" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 218px; height: 1px; padding-top: 46px; margin-left: 13px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 17px"><font color="#ff0000" style="font-size: 17px">get</font><br />key: name->value (filename)</font></div></div></div></foreignObject><text x="13" y="50" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">get...</text></switch></g><rect x="166" y="331" width="280" height="50" rx="7.5" ry="7.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="1" y="21" width="230" height="50" rx="7.5" ry="7.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="506" y="31" width="160" height="180" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="261" y="31" width="160" height="180" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="341" cy="71" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="301" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="381" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 301 131 L 341 91" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 341 91 L 381 131" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="506" y="1" width="85" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 83px; height: 1px; padding-top: 16px; margin-left: 507px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">inode tree</div></div></div></foreignObject><text x="549" y="21" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">inode tree</text></switch></g><rect x="246" y="1" width="90" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 16px; margin-left: 247px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">index tree</div></div></div></foreignObject><text x="291" y="21" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">index tree</text></switch></g><ellipse cx="586" cy="71" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 546 171 L 546 214.5 L 546.1 247.9" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 546.12 254.65 L 541.6 245.66 L 546.1 247.9 L 550.6 245.63 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="546" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="626" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 546 131 L 586 91" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 586 91 L 626 131" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="161" y="261" width="290" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 288px; height: 1px; padding-top: 276px; margin-left: 163px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="font-size: 17px">key: name->value (filename)</span><br style="font-size: 17px" /><span style="font-size: 17px">value: gearsDirectory->INodeNumber</span></div></div></div></foreignObject><text x="163" y="281" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">key: name->value (filename)...</text></switch></g><path d="M 231 46 L 250.9 46" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 257.65 46 L 248.65 50.5 L 250.9 46 L 248.65 41.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 446 356 L 476 356 L 476 45.9 L 494.94 45.93" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 501.69 45.94 L 492.68 50.42 L 494.94 45.93 L 492.69 41.42 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="486" y="261" width="285" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 283px; height: 1px; padding-top: 276px; margin-left: 488px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 17px">key: gearsDirectory->INodeNumber<br />value: newDirectory</font></div></div></div></foreignObject><text x="488" y="280" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">key: gearsDirectory->INodeNumber...</text></switch></g><path d="M 342 301 L 341.89 320.9" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 341.86 327.65 L 337.41 318.62 L 341.89 320.9 L 346.41 318.67 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 341 211 L 341.07 249.91" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 341.08 256.66 L 336.57 247.66 L 341.07 249.91 L 345.57 247.65 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/meta_cg_dg.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,593 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + version="1.1" + viewBox="0 0 662 250" + width="662" + height="250" + id="svg682" + sodipodi:docname="meta_cg_dg.svg" + inkscape:version="1.2.1 (9c6d41e, 2022-07-14)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview684" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + showgrid="false" + inkscape:zoom="0.7869063" + inkscape:cx="171.55791" + inkscape:cy="289.10685" + inkscape:window-width="1512" + inkscape:window-height="813" + inkscape:window-x="418" + inkscape:window-y="1219" + inkscape:window-maximized="0" + inkscape:current-layer="svg682" + showguides="true" /> + <defs + id="defs555"> + <font-face + font-family="Helvetica" + font-size="9" + units-per-em="1000" + underline-position="-75.68359" + underline-thickness="49.316406" + slope="0" + x-height="522.9492" + cap-height="717.28516" + ascent="770.0195" + descent="-229.98047" + font-weight="400" + id="font-face544" + stemv="0" + stemh="0" + accent-height="0" + ideographic="0" + alphabetic="0" + mathematical="0" + hanging="0" + v-ideographic="0" + v-alphabetic="0" + v-mathematical="0" + v-hanging="0" + strikethrough-position="0" + strikethrough-thickness="0" + overline-position="0" + overline-thickness="0"> + <font-face-src> + <font-face-name + name="Helvetica" /> + </font-face-src> + </font-face> + <font-face + font-family="Helvetica Neue" + font-size="12" + panose-1="2 0 5 3 0 0 0 2 0 4" + units-per-em="1000" + underline-position="-100" + underline-thickness="50" + slope="0" + x-height="517" + cap-height="714" + ascent="951.9958" + descent="-212.99744" + font-weight="400" + id="font-face546" + stemv="0" + stemh="0" + accent-height="0" + ideographic="0" + alphabetic="0" + mathematical="0" + hanging="0" + v-ideographic="0" + v-alphabetic="0" + v-mathematical="0" + v-hanging="0" + strikethrough-position="0" + strikethrough-thickness="0" + overline-position="0" + overline-thickness="0"> + <font-face-src> + <font-face-name + name="HelveticaNeue" /> + </font-face-src> + </font-face> + <font-face + font-family="Helvetica" + font-size="12" + units-per-em="1000" + underline-position="-75.68359" + underline-thickness="49.316406" + slope="0" + x-height="522.9492" + cap-height="717.28516" + ascent="770.0195" + descent="-229.98047" + font-weight="400" + id="font-face548" + stemv="0" + stemh="0" + accent-height="0" + ideographic="0" + alphabetic="0" + mathematical="0" + hanging="0" + v-ideographic="0" + v-alphabetic="0" + v-mathematical="0" + v-hanging="0" + strikethrough-position="0" + strikethrough-thickness="0" + overline-position="0" + overline-thickness="0"> + <font-face-src> + <font-face-name + name="Helvetica" /> + </font-face-src> + </font-face> + <marker + orient="auto" + overflow="visible" + markerUnits="strokeWidth" + id="FilledArrow_Marker" + stroke-linejoin="miter" + stroke-miterlimit="10" + viewBox="-1 -4 10 8" + markerWidth="10" + markerHeight="8" + color="#000000"> + <g + id="g552"> + <path + d="M 8,0 0,-3 v 6 z" + fill="currentColor" + stroke="currentColor" + stroke-width="1" + id="path550" /> + </g> + </marker> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath740"> + <rect + style="fill:none" + id="rect742" + width="602.35889" + height="193.1615" + x="-6.3539968" + y="-7.6247959" /> + </clipPath> + </defs> + <metadata + id="metadata557"> Produced by OmniGraffle 7.19.4\n2018-02-12 15:33:34 +0000</metadata> + <g + id="Canvas_1" + stroke-dasharray="none" + fill="none" + stroke-opacity="1" + fill-opacity="1" + stroke="none" + clip-path="url(#clipPath740)" + transform="translate(41.936371,36.853196)"> + <title + id="title559">Canvas 1</title> + <rect + fill="#ffffff" + x="0" + y="0" + width="662" + height="781" + id="rect561" /> + <g + id="Canvas_1_Layer_1"> + <title + id="title563">Layer 1</title> + <g + id="Graphic_3"> + <text + transform="translate(507.9492,692.58984)" + fill="#945200" + id="text567"><tspan + font-family="Helvetica" + font-size="9px" + font-weight="400" + fill="#945200" + x="0" + y="9" + id="tspan565" /></text> + </g> + <g + id="Group_94"> + <g + id="Graphic_96"> + <rect + x="4.8244653" + y="90" + width="130.17554" + height="90" + fill="#ffffff" + id="rect570" /> + <path + d="M 4.8244654,90 H 135 v 90 H 4.8244654 Z" + stroke="#ff9300" + stroke-linecap="round" + stroke-linejoin="round" + stroke-dasharray="4, 4" + stroke-width="1" + id="path572" /> + </g> + <g + id="Graphic_95"> + <text + transform="translate(25.623322,104)" + fill="#c25800" + id="text577"><tspan + font-family="'Helvetica Neue'" + font-size="12px" + font-weight="400" + fill="#c25800" + x="0.6286934" + y="11" + id="tspan575">Meta Data Gear</tspan></text> + </g> + </g> + <g + id="Group_91"> + <g + id="Graphic_93"> + <rect + x="459" + y="90" + width="130.17554" + height="90" + fill="#ffffff" + id="rect581" /> + <path + d="m 459,90 h 130.1755 v 90 H 459 Z" + stroke="#ff9300" + stroke-linecap="round" + stroke-linejoin="round" + stroke-dasharray="4, 4" + stroke-width="1" + id="path583" /> + </g> + <g + id="Graphic_92"> + <text + transform="translate(479.79886,104)" + fill="#c25800" + id="text588"><tspan + font-family="'Helvetica Neue'" + font-size="12px" + font-weight="400" + fill="#c25800" + x="0.6286934" + y="11" + id="tspan586">Meta Data Gear</tspan></text> + </g> + </g> + <g + id="Graphic_121"> + <ellipse + cx="297" + cy="148.5" + rx="45.879486" + ry="22.500036" + fill="#ffffff" + id="ellipse592" /> + <ellipse + cx="297" + cy="148.5" + rx="45.879486" + ry="22.500036" + stroke="#000000" + stroke-linecap="round" + stroke-linejoin="round" + stroke-width="1" + id="ellipse594" /> + <text + transform="translate(265.29647,141.5)" + fill="#000000" + id="text598"><tspan + font-family="Helvetica" + font-size="12px" + font-weight="400" + fill="#000000" + x="2.3539219" + y="11" + id="tspan596">Code Gear</tspan></text> + </g> + <g + id="Graphic_83"> + <rect + x="32.482346" + y="126" + width="75.517647" + height="45" + fill="#ffffff" + id="rect601" /> + <rect + x="32.482346" + y="126" + width="75.517647" + height="45" + stroke="#000000" + stroke-linecap="round" + stroke-linejoin="round" + stroke-width="1" + id="rect603" /> + <text + transform="translate(37.482347,141.5)" + fill="#000000" + id="text607"><tspan + font-family="Helvetica" + font-size="12px" + font-weight="400" + fill="#000000" + x="5.0791402" + y="11" + id="tspan605">Data Gear</tspan></text> + </g> + <g + id="Line_118"> + <line + x1="108.5" + y1="148.5" + x2="241.22057" + y2="148.5" + marker-end="url(#FilledArrow_Marker)" + stroke="#000000" + stroke-linecap="butt" + stroke-linejoin="miter" + stroke-width="1" + id="line610" /> + </g> + <g + id="Graphic_120"> + <rect + x="486" + y="126" + width="75.517647" + height="45" + fill="#ffffff" + id="rect613" /> + <rect + x="486" + y="126" + width="75.517647" + height="45" + stroke="#000000" + stroke-linecap="round" + stroke-linejoin="round" + stroke-width="1" + id="rect615" /> + <text + transform="translate(491,141.5)" + fill="#000000" + id="text619"><tspan + font-family="Helvetica" + font-size="12px" + font-weight="400" + fill="#000000" + x="5.0791402" + y="11" + id="tspan617">Data Gear</tspan></text> + </g> + <g + id="Line_116"> + <line + x1="342.87943" + y1="148.5" + x2="475.60001" + y2="148.5" + marker-end="url(#FilledArrow_Marker)" + stroke="#000000" + stroke-linecap="butt" + stroke-linejoin="miter" + stroke-width="1" + id="line622" /> + </g> + <g + id="Graphic_117"> + <ellipse + cx="405.26144" + cy="148.5" + rx="45.443569" + ry="22.500036" + fill="#ffffff" + id="ellipse625" /> + <path + d="m 437.3948,132.59012 c 17.7469,8.78678 17.7469,23.03298 0,31.81976 -17.74676,8.78684 -46.51995,8.78684 -64.26672,0 -17.74688,-8.78678 -17.74688,-23.03298 0,-31.81976 17.74677,-8.78684 46.51996,-8.78684 64.26672,0" + stroke="#ff9300" + stroke-linecap="round" + stroke-linejoin="round" + stroke-dasharray="4, 4" + stroke-width="1" + id="path627" /> + <text + transform="translate(373.90665,134.5)" + fill="#c25800" + id="text633"><tspan + font-family="Helvetica" + font-size="12px" + font-weight="400" + fill="#c25800" + x="18.01593" + y="11" + id="tspan629">Meta</tspan><tspan + font-family="Helvetica" + font-size="12px" + font-weight="400" + fill="#c25800" + x="2.005188" + y="25" + id="tspan631">Code Gear</tspan></text> + </g> + <g + id="Graphic_103"> + <ellipse + cx="297" + cy="22.5" + rx="44.289604" + ry="22.500036" + fill="#ffffff" + id="ellipse636" /> + <ellipse + cx="297" + cy="22.5" + rx="44.289604" + ry="22.500036" + stroke="#000000" + stroke-linecap="round" + stroke-linejoin="round" + stroke-width="1" + id="ellipse638" /> + <text + transform="translate(266.56837,15.5)" + fill="#000000" + id="text642"><tspan + font-family="Helvetica" + font-size="12px" + font-weight="400" + fill="#000000" + x="1.082016" + y="11" + id="tspan640">Code Gear</tspan></text> + </g> + <g + id="Graphic_104"> + <rect + x="32.482346" + y="0" + width="75.517647" + height="45" + fill="#ffffff" + id="rect645" /> + <rect + x="32.482346" + y="0" + width="75.517647" + height="45" + stroke="#000000" + stroke-linecap="round" + stroke-linejoin="round" + stroke-width="1" + id="rect647" /> + <text + transform="translate(37.482347,15.5)" + fill="#000000" + id="text651"><tspan + font-family="Helvetica" + font-size="12px" + font-weight="400" + fill="#000000" + x="5.0791402" + y="11" + id="tspan649">Data Gear</tspan></text> + </g> + <g + id="Line_105"> + <line + x1="108.5" + y1="22.5" + x2="242.81046" + y2="22.5" + marker-end="url(#FilledArrow_Marker)" + stroke="#000000" + stroke-linecap="butt" + stroke-linejoin="miter" + stroke-width="1" + id="line654" /> + </g> + <g + id="Graphic_106"> + <rect + x="486" + y="0" + width="75.517647" + height="45" + fill="#ffffff" + id="rect657" /> + <rect + x="486" + y="0" + width="75.517647" + height="45" + stroke="#000000" + stroke-linecap="round" + stroke-linejoin="round" + stroke-width="1" + id="rect659" /> + <text + transform="translate(491,15.5)" + fill="#000000" + id="text663"><tspan + font-family="Helvetica" + font-size="12px" + font-weight="400" + fill="#000000" + x="5.0791402" + y="11" + id="tspan661">Data Gear</tspan></text> + </g> + <g + id="Line_107"> + <line + x1="341.28955" + y1="22.5" + x2="475.60001" + y2="22.5" + marker-end="url(#FilledArrow_Marker)" + stroke="#000000" + stroke-linecap="butt" + stroke-linejoin="miter" + stroke-width="1" + id="line666" /> + </g> + <g + id="Graphic_122"> + <ellipse + cx="187.21873" + cy="148.5" + rx="45.443569" + ry="22.500036" + fill="#ffffff" + id="ellipse669" /> + <path + d="m 219.3521,132.59012 c 17.74687,8.78678 17.74687,23.03298 0,31.81976 -17.74678,8.78684 -46.51996,8.78684 -64.26674,0 -17.74686,-8.78678 -17.74686,-23.03298 0,-31.81976 17.74678,-8.78684 46.51996,-8.78684 64.26674,0" + stroke="#ff9300" + stroke-linecap="round" + stroke-linejoin="round" + stroke-dasharray="4, 4" + stroke-width="1" + id="path671" /> + <text + transform="translate(155.86393,134.5)" + fill="#c25800" + id="text677"><tspan + font-family="Helvetica" + font-size="12px" + font-weight="400" + fill="#c25800" + x="18.01593" + y="11" + id="tspan673">Meta</tspan><tspan + font-family="Helvetica" + font-size="12px" + font-weight="400" + fill="#c25800" + x="2.005188" + y="25" + id="tspan675">Code Gear</tspan></text> + </g> + </g> + </g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/mkdir.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Do not edit this file with editors other than diagrams.net --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="772px" height="393px" viewBox="-0.5 -0.5 772 393" content="<mxfile host="app.diagrams.net" modified="2022-02-02T13:02:13.263Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" etag="8CA1qQZBOPDJzuIKnjTP" version="16.5.2" type="device" pages="4"><diagram id="AAaulOYO_kfhROZJ8ttr" name="Page-1">7Vtbb+o4EP41kXYfinIhITwCpT0rUbXaHp2zfXSJAZ+amHVMgf76HSc2uZe0h0vZVqqEPRkb55vPM+MxNZzBfH3N0WJ2wwJMDdsM1oZzadi21bY9+JCSTSLpWHYimHISKKVUcE9esBKaSrokAY5yioIxKsgiLxyzMMRjkZMhztkqrzZhNP+tCzTFJcH9GNGy9CcJxCyR+nYnlX/DZDrT32x53eTJHGll9SbRDAVslRE5Q8MZcMZE0pqvB5hK8DQuybirmqfbhXEciiYDJr8e/vrOxishbnrXd87F7eh2dGEp8zwjulRvrFYrNhoCzpZhgOUspuH0VzMi8P0CjeXTFRgdZDMxp9CzoDkhlA4YZRz6IQtBqR8Jzp626DkgKS9dvc0z5gKvMyL1KteYzbHgG1DRT7sKVsUrT3VXqZGsjpLNsgbS45AixnQ7dYodNBR8b4FyN5IwC/AW70YRRYuEzBOylsgfBkPbzWPolzFsV0DYPhSC9vkhaOURtCpoeFQInfODsPvBIGzgEXEY9GRsSX1cBra8uwRg+OYf2Wm5uvugNOPO5TqrebnRvTURmWHQe8g8SQfJjh7zBvtEbMnHePdeFIhPsdjt9XCQC6Nla2es6VZYU8s4pkiQ53zwrTKx+oY7RuDNtmRq+3kyOV6BJcl7q1HZYFmYyHUKE1mFiRJgShPFjNu+9vtJ2NkvCSvJZL1KpjrimjuIu08S6oRvFwmdLxIegoR+iYQkhARfWoRjXCIkOHyRZ2HChUI6WJEhIkqmIXTHwBAM8r4MHwSS8J56MCdBQOtCVp7rExYKdYywOocKWm2vYJlyzPIrCOYcKmZ1KywVwKt8Wap4Tji1pfQWPqMMzbXzEJ76mGCd30mrGBJOnuTqKswZYeh6Hw3DJoet//9JwWqapWnX90HStI67pzTNN0+bplnt/fLwXA8LZlMe2l88PAgP3RIPnzBM2AMZyD0qc85HniOm9+9S1r/jXPAiipNBqW51FuuYDPo5tKbyU80tdXRZ/VOmtXYhodgWIk+W13bLPgf2173qMi5mbMpCRIeptABcqjNibKEs+AsLsVFwoqVgeftqX2VlPFXqt3b5qpynapm+syvSyt4d5gQgkyzZvwvzm7owr6ELa+ybfs/45UqBXL9tZvf/592sVsExVySu3jH3qj7Pnd2lX7HsUnXpV4Xk4S79NHL1zP/UYcrp5A1muccLU/iHu7ryh5fPouN/cwc/Xtbh7UWZ6EeMUsfIqJuatRA53nlJ1G4Yr5KfS/xGeIqHwgkGbTIKC5nJRvWZtWs7+SSpU/iFREHfK2Tib9XXfr5Ov5jpF/ShkbzhXrNyu3w6zPqmN2flr6Xk8fXAIRwexRNxBu6u3dmdlVume8xQX75IrDFStCJzihJDSKzUE4ndeEZoMEIbtpTLjQQaP+lef8Y4eQF9lJoWcY20Y+Y07uVINSfHkld3Gm2rILpB65ziCEVCr4ZRihYReYzXJwfOwf2QsM+EYHNt7gyXAjxBSyqORQKvWOu1K0hQVajcKu6fBeX8/IpQeZH3fbOovR7a9yaNYH+ScDqK1S7bqeRvhYEUMRg+oXGhagYDMczQV34e1ub24Q9QGsio6MJaB9C30j78SXUuBiyE5SMSWxEDeVZYEgicgkACPW6p/R5GvL7RdvOk/iaqkhaH8w3lW0M43M5JFBEWfpHiJKSoOtEclRR64gwpWq3WFxtOwobuEdlQeVxyTnlcel9Rr2X5fr6w5zn2ewp7Rz1JOU0PUmY1YfZe56ukQ/ko8QdsdhyiOTaGjuFbhj+wVas3NIau0TONfls2gMq+/+cBjgaHqIXU7NMK09Zu3W3NL7t3j1rqKN/GJE1lnr5uXCU/6tJWiz0pAKrtKY3ngyFdreHohqd12nHDNvz+J7BvzS86dK0ga2/H3I+9oZv+m0hSF0j/2cYZ/gc=</diagram><diagram id="s08jDtw-m_Aoh3yq8LbV" name="Page-2">7Vptc6o4FP41zOx+aIcXRfxo1d67O91Op93ZbT/toERMC4TGUPX++k0ggQBBufWl2lu/SA7JIXnynHNykmjWMFx9w248/wt5INBM3Vtp1kgzTaNj2vSPSdaZpGeYmcDH0OOVCsED/AG4UOfSBHpgUapIEAoIjMvCKYoiMCUlmYsxWparzVBQ/mrs+qAmeJi6QV36L/TIPJM6Zq+QfwfQn4svG3Y/exO6ojIfyWLuemgpiayxZg0xQiR7CldDEDDwBC7/OMYP/epRfxmt9Gg0++9m1IsuMmXXP9MkHwIGEdmzaifT/eYGCQdMM+2AfuVqhujH2LwECKdv7NeEDfVKM63ZTKc/WaQvyJpDLoRMwcUiJcSAVjB68SqtWjSyffYfJ0R8c4J30iTUUBCy3mfiF7DOGkZuCC6o1A1jKk7fZQM39d9mMADs/e976gtHlNXxgYsXI4gpvRFeVzrwxy01udsknADMaZZ/0iRgxarMSRhQgUEfFwSjFzDkcxKhCLAuwSCoiNwA+hEtBmCWdgZgAqlNDLg4hJ7HPnK1nEMCHmJ3yr64pB6AyjBKIg8w1uh8vNyqjV7eA2FKVjriVuzkLGZdASvJNjlbvwEUAoLXtIp4281acMdjOdwOl4UZm30um0smbHGZyz2Hn2surIM+cANRG8v4u/94t/w7NCcPywQlrxeT+3E+AtlWKjNWYGc0oCtNJoN2mJuXdX2dGpVyPo+Iul5G3a6jbukK1HuHQl3/FVC3yqgbCtRN50CoK0cg4mNzYGjnGht99EHCy6bYUgkKspvfGD2E2INvu496EbtRAxLv1JwHt/ZRZuMwqVjVSSpOAdhn16UQGYFl3vXGDp5gdDyihyhHQ0MVDXsHioZqD/Ezfllv4Zc/1P+aZQecQynBmztlGd5cuHd8re34Ui00jWpiqoStu4iz3GoGV2w+jomsU0G2X0e2owC2cyhcO58E105loaZg7FFxtT8Hrh3zxHBVLcSquEbegG2VFJ5TwrLshClaeP3ICpddUXziNdPCaCXXHK1FaQWJ1IyWnqQ3RSNWEG12nbQFSvAUbDdl4mIfbNLHXSnwSltFdQpIU9xVTLGQYRC4BL6VN5hU886/cIdgukziDLMrKVa3uojPxs1byTs6VUV2RZFZUZQBU1OU0jAf9vuZqdo72oGZSoYZGxnWxGZ9C5sPzkyrJTPtL2Yegpn9GjNhRBMgNiMYgBpLd88kppQ2NLU60502y+hdltOLTj3oOd067w6WXAgilmbQo6P5msGWM/jxU9hiu/QcFoTVBOaj8xdx/nb2uFYSGOOjF9rGJ8m4qxnMxwPbJuX+RVMYYc1bV4rCnZ7oUtHa11LROvJSUZwyfmUxzZzbTs7TzrDPgZzPwWtyPQpvp9Hz26RrrZ/u4yuxwSFTkSL8wIsIkznyUeQG40Ja4WNR5wahmFPxGRCy5gtVNyGoTGhBYUP2kjmdt1LY6pVJfGmb3W2emZXuAIYUL7YGPxK7nZbs7rQkd2vW7hZN68ltjSXne/By1HMXpc0ZNTRP1OYObiDiDsD+iK/2sla3crbZ7x7Kyy4HneE9tMGfk/VsPB35N8bbtfJeT5tLCjb91U+1yztNLS8ZiEZRdkQ/tjTH1PomO9xnz4Y2cPhDv1dXmrXmFccxw0lSko2rroZLbG1sa86QPXNJPeqcwlF7dXOlwdO05X+jR+pWPJIgo3zQrvJI+9hIUdKznj2Vt8KaKLaJvLpevWGTtRW3IN/HwBp/30O987n8UWVk7WZZ6iCOx1RTdSdEtcx+B1VpsbjpnDne4r64Nf4f</diagram><diagram id="_SMWdJT_P9braKPgiXsX" name="Page-3">7Vtbd6M2EP41Pqd9cA5INsaP8SVpT7N7ts2mm/QlhxjZVoIRFTjG/fWVjAQIcMA2kMvGL7YGMUKfvpnRDHIHjlfhJbW85RdiI6cDNDvswEkHAL0HDPbFJdtIMtBBJFhQbItOieAa/4eEUBPSNbaRr3QMCHEC7KnCGXFdNAsUmUUp2ajd5sRRR/WsBcoJrmeWk5f+wHawjKQmGCTy3xBeLOXIujGMrqws2VnMxF9aNtmkRHDagWNKSBD9WoVj5HDwJC7hzZ+TzXRLnnz30nlc3Y9v4KgbKbs45JZ4ChS5Qb2q5dyeLWctAOsAw2GjjOaEDcbXxSF0d8X4d82nOuoAOJ9r7JMWaX6wFZBLIVfQ9XeEOGcd9IEX7romNxkL/r1AgRyTPX00bHRFih/oSQM8oe2uh2GtPNZ0H3wvpdz3LPfE57eoP8GUsZfQbTceZ3fx96/Mor6uVw+IpiYZjSknCZThQYBCLl8GK4cJdP6IASVPaCxWwiUu4o+HHScjshy8cFnTQXOu4RnRADNLOBfiFbZtPshos8QBuvasGR9xw+yeyShZuzbiXNHE3IUt64P4CaQBwfixSzkpuMsfBYUpixQcvURkhQK6ZV3k1aGgpPA30BTtTWK9YNCPZMuU5ULRzxIOYxGrToyC/RB2cYj5mWU2Uo07OeI0amlHmplqMZprrVCG0REMQPuFERDx67/uVVtK7PoI2x5BocrPQQE9pVetm550rHn/PBq0d3v7Y3VzP3r+W8NdWMDODPAJVPoeMFNrwpdwHFMRXlzsCFjob1r0CmZf9QpFsJsFsPebgh38DLADletGAeiwIdCLJzA8BHWtAuqviW4fqKQu4LRuFMCrm03hexCp3zq8sT94M/BWcNVMC8uM9sW8dOj0vShdmuOQL0ebEbCnAjvMA9srwLXXFKy9DwKrpsKqFxC2VVyND4Kr+cZwHVTA1bXPefEj8ZspLFUXzNCi21veOOvL5p3ouWtMwnTPyVa2QhykbmOtu9SV5CbekPecumg+WdMZKjflwKI8XSn1pMhWij95CqSWuP/CRoUixwrws1oyKlp3McI3gncpmwzkA5Vh8e5UqojmLe5K12gyiozMhguCjKIImJyiHQ3jaR/PzKJM9wRmFjJMf5Fh+9islbC5cWbCisw0PpnZBDPzG3/sEpvXIQKKUI6lp9fQZow2iL7XKlo2tejlQ57Zag0tX2fGDKjwc/325C5G6foNC7xGc+un59bvXe4F+5k6UoupS2EVScujyALHtWgSGizJgriWM02kGY4mfa4I8QTCjygItoK51jogKv4nxmWgx1tLfl9XOyvdavLWN0QxA43bZGxcRQWvxiO5fIFZGspluC2N5acGaROe9VjElx+gUBQMh2daRmfDwVYi9O6tvada+6tnfvoHqQAZ4K0BW6UG9JPm1JX9nV7V37WTu5j6nnc+h+YuZmYz1XbuIufxmVbv51w5Od9WyefjkLOoylvTyZijjxGo52NqOQRU26QEULzP58mfOjcVeqZOH78PSb9ubjfrHeT9dHvpmfx9p/j6Mv+uePczzYTH5GbNu32zotsHFb1+ZXdelRD699HVHxje3KPF1V+aBTa4v5XF3XfEB5ada5rxPkghI1/5XmD4Wqx4sU5Q+wHBOH4eGmiSk3xJtFJPv7poE+s7/vxe++GpxeKBltmYFYWjporohcXCKjXYJI2YOZbv49lLmUT1ElwqfzCAeUgGUehKDluzjJmrDmL/mcjXSg2goavEyVY9qqYGcJhRlD1XV19qYE697+HscTa5fnj+YoHhud+dVjkNdjjfXt5bnpjbGiBbmtbgUbFuD/HqC3VVI53xqkzOnsU3jmRyL3NiDOp1MZk1k3/gRN2T/zHB6f8=</diagram><diagram id="HHLeNmLiLjBSiti2kdQe" name="Page-4">7Vtbd6o4FP41rjXz0C4SLuJjr6dz6/RMZ9ZpzxuVqJwiwRAr9tdPIuESQI2KWHvsS8mG7JC9v30ldvSrcfyFOOHoL+wivwM1N+7o1x0IgQEt9o9T5gmlC2BCGBLPFQ/lhEfvHQmiJqhTz0WR9CDF2KdeKBP7OAhQn0o0hxA8kx8bYF9eNXSGqEJ47Dt+lfrNc+koodqwm9PvkDccpSsDq5fcGTvpw2In0chx8axA0m86+hXBmCZX4/gK+Vx4qVwevd+1t/fb2eMFRC4mN0/Rf+gsYXa7yZRsCwQFdGvWD1/f9Zd/gnhyd9G7/ePH091kgs+AnfB+c/ypEFgHWj5b5XKA2WJs13QuRGlNpji9cRYtFH3BHgDdMM5vsquh+F/k0sc+JhKXDtQHA439FUnbrjZENF2QCSBZU36PF5JSXtE8YRU4Y3TGqM445Cz4vUQMUPtl4PmI3/91KVsovS2kKOb0ER37jADYpeN7w4Bd+2iwYI0I9RgsLwR57Lkun3w5G3kUPYZOn3OaMSNkNIKngYu44jQ2iijBrxl69Wz5tYAQwOFLo7hgDgIgXxAeI0rm7BFxVxdQT21dDGe54WTWMCoYTTrNEbY6zBjneGQXApIbwDNdbDk8mwXWAi9bYWuHBVJACiAGL1FYYB6FTrDj+zskuvYIc66YzEuA/+2eOfz76fgFkcImkzWVkZ7g80poIsABhzWzIL9Eas4i+N5FqAHdVi0E9GQT0a0aG+mabdqIUWMjJZ3l0gNL5FtQJxfuVWZW+u3twphqNXpAPdglPZg1erBrfJW5Nz3oh9NDe3KHstjr0K+3KfW6ALFU6JqC0A8pXBOa6+IvsGqkmxlD4+IFn0m8mTw/jHjhevEyLqxUWhYWi/lmFCb108CLuTraTBtLeWOvKlijRq7GvsSq4ImPQaywlGuAGsC2KlejKkaXFdtiiAkd4SEOHP8mp5YSt/yZPzEOhYh/IErnIo1wphTLCkCxR5/49HNTjJ4Ld65jwXkxmKeDgG03mWSBXkp4Lt7NJy5G0swHRDwmMUQEcWmmuisWIjwlfbRC4iIeUIfwMmSFnxZdGq6PldAiyHeo9yY3RxoHivk5DFDvfjADtBTkGrgXvG2WB9iCLGVjLFiJWbQRsM5Gai1SW2mRe7cUXdFSoKKhFFRsrkhole1JrPCAvUXfIs34rFIZ0y1BJ9m3mFXs7pUYWaDECJYYJYKpMFrAMNv29sjsNovM3Xy+uYnH3zsyoSIyzRMy94HMaofbC7DLu7yUIFRB6e7trT6DDU8djrPBVa5BjWrIs9tsb/Vq1OeyrZzUp1Tj1qmvzQ5+avzHngqatmwWLZa4vddwMrrEf1s3T/f2LJzE3+/+TfteR1WKAUMKzGfauWZ1t6nHVM2rFEobjOnpR/D16eZB67D0NY/e+gzZ+g5eiIFP0mKy4EcTrMLXrJ+1xFV2OmnQ/SClhA1kkG1dSthWiVHLpQRQ6Wv9pFVuirn14NRP4NwLOOuagw2dIdn6zJR8kqSR4zKNbUoIij9zOiPTZFJRPptRVyxltHaq0G7VT7dXLqXXz5KvX+ffJe9+rtn6NpXS/t2+rer2Fb1+S4VR7+gAwctlzToOVEDVZEA1UW0HFSnjQgjNIt+mIWLHKJcHJ/lYaIBm2Uucws7KzrUOasJOu0czVdoveb3Q950o8vqrSoZlZwLzUsKChnoxwQbrfUPxMIUhO6BtnE/TAaj+5INKa844ZN1hrPssplp36D0gMyqftdxz3QGrRfFKX9mfEq76ghfTFrO0Pbu2pr7rFMxP09IjuQdzekbpe49ek2vrrX7xgZsdUtnc6WVSz50eMK2i0ztvwu01nRKpJsCHcT/ZeFP3Y1p2PQDbcj/VkyfegMs59iJ6ciOq3wG0Uu5U83OKuqPRW3gRNsx/M5mgIP/lqX7zPw==</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="6" y="341" width="290" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 288px; height: 1px; padding-top: 356px; margin-left: 8px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font color="#ff0000" style="font-size: 17px">put<br style="font-size: 17px" /></font>key: name->value (filename)<br style="font-size: 17px" />value: gearsDirectory->INodeNumber</div></div></div></foreignObject><text x="8" y="361" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">put...</text></switch></g><rect x="1" y="321" width="300" height="70" rx="10.5" ry="10.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="21" y="121" width="280" height="70" rx="10.5" ry="10.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="26" y="141" width="270" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 268px; height: 1px; padding-top: 156px; margin-left: 28px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 17px"><font color="#ff0000" style="font-size: 17px">put</font><br /></font><div style="font-size: 17px"><span><font style="font-size: 17px">key: gearsDirectory->INodeNumber</font></span></div><font style="font-size: 17px">value: newDirectory</font></div></div></div></foreignObject><text x="28" y="160" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">put...</text></switch></g><rect x="311" y="231" width="160" height="160" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="391" cy="271" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="351" cy="351" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="431" cy="351" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 351 331 L 391 291" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 391 291 L 431 331" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="308.5" y="1" width="85" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 83px; height: 1px; padding-top: 16px; margin-left: 310px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">inode tree</div></div></div></foreignObject><text x="351" y="21" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">inode tree</text></switch></g><rect x="308.5" y="201" width="85" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 83px; height: 1px; padding-top: 216px; margin-left: 310px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">index tree</div></div></div></foreignObject><text x="351" y="221" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">index tree</text></switch></g><ellipse cx="391" cy="71" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="351" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="431" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 351 131 L 391 91" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 391 91 L 431 131" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 296 356 L 316 356 L 311 356 L 335.9 356" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 342.65 356 L 333.65 360.5 L 335.9 356 L 333.65 351.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="311" y="31" width="160" height="160" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 296 156 L 335.9 156" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 342.65 156 L 333.65 160.5 L 335.9 156 L 333.65 151.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="511" y="56" width="260" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 258px; height: 1px; padding-top: 71px; margin-left: 513px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font color="#ff6666">inode tree<br /></font>inode numberをkeyとし<br />inodeのpointerをvalueとして持つ</div></div></div></foreignObject><text x="513" y="76" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">inode tree...</text></switch></g><rect x="511" y="241" width="250" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 248px; height: 1px; padding-top: 256px; margin-left: 513px;"><div data-drawio-colors="color: #FF6666; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(255, 102, 102); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">index tree<br /><font color="#000000">filenameをkeyとし<br />inode numberをvalueとして持つ</font></div></div></div></foreignObject><text x="513" y="261" fill="#FF6666" font-family="Helvetica" font-size="17px">index tree...</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/test.drawio Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,31 @@ +<mxfile host="65bd71144e"> + <diagram id="TG3UEg7DHUoYuTF4jb0s" name="Page-1"> + <mxGraphModel dx="1025" dy="880" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> + <root> + <mxCell id="0"/> + <mxCell id="1" parent="0"/> + <mxCell id="6" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=20;strokeWidth=3;" edge="1" parent="1" source="2" target="3"> + <mxGeometry relative="1" as="geometry"/> + </mxCell> + <mxCell id="2" value="<font style="font-size: 20px">DataGear</font>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontColor=#333333;strokeColor=#000000;strokeWidth=5;" parent="1" vertex="1"> + <mxGeometry x="40" y="210" width="120" height="60" as="geometry"/> + </mxCell> + <mxCell id="7" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=20;strokeWidth=3;" edge="1" parent="1" source="3" target="4"> + <mxGeometry relative="1" as="geometry"/> + </mxCell> + <mxCell id="3" value="CodeGear" style="ellipse;whiteSpace=wrap;html=1;fontSize=20;strokeWidth=5;" vertex="1" parent="1"> + <mxGeometry x="240" y="200" width="120" height="80" as="geometry"/> + </mxCell> + <mxCell id="9" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fontSize=20;strokeWidth=3;" edge="1" parent="1" source="4" target="5"> + <mxGeometry relative="1" as="geometry"/> + </mxCell> + <mxCell id="4" value="<font style="font-size: 20px">DataGear</font>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontColor=#333333;strokeColor=#000000;strokeWidth=5;" vertex="1" parent="1"> + <mxGeometry x="440" y="210" width="120" height="60" as="geometry"/> + </mxCell> + <mxCell id="5" value="CodeGear" style="ellipse;whiteSpace=wrap;html=1;fontSize=20;strokeWidth=5;" vertex="1" parent="1"> + <mxGeometry x="640" y="200" width="120" height="80" as="geometry"/> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/test.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,1 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="725px" height="85px" viewBox="-0.5 -0.5 725 85" content="<mxfile><diagram id="TG3UEg7DHUoYuTF4jb0s" name="Page-1">7VZLc5swEP41HNvBCIhzbHGaXnryoelRY61BU4FcIQzur69AKx6VnfFMU3c6CRdpv90V+/hWEJCs7B4VPRRfJAMRRCHrArIJomgVRolZeuRkkfU6tECuOEOjCdjyn+A8EW04g3phqKUUmh+W4E5WFez0AqNKyXZptpdi+dYDzcEDtjsqfPQrZ7rALKK7Cf8MPC/cm1fpvdWU1BljJnVBmWxnEHkISKak1HZXdhmIvniuLtbv0wXtGJiCSl/jkGIY+uRyA2ZSRbGSlVk+FroURlqZLXRcP83238w+fJ+gtOk7HDrh5IRKq9PTXJh59eLkNkjOby8rjb2PernWSn4fC04MYoPvI76YPkK1bNQOrSJkDFU5oBUZS284C7IEE4cxUSCo5sfl6RTJk492U33NBkt8vtz46iMVDR4aRKnQmOyiEemPRjrFu3oowwdjYLLrJqXZ5f26oZo+AlXuNBOHPdCqvSYr2VQMGBa6LbiG7YEOBWrNyC57vudCZFJINTGiP9xBQUTsM7ZopgmHx2teMgZ1pldHUBq6GeQ3BrUxThFeI+P90E5DuXKTVswGMg3/vJV3r3ByiD858Y0mh3iTk5nPiuX8730QwnwI4ApiP1umiaMeIc8U6iJHPZKGV5J0/QIkvb8BSf8W2WKfbMmNyBa/XdMvOQLxv7ynk//14khveHEYcfrnHHSzP3fy8As=</diagram></mxfile>"><defs/><g><path d="M 122 42 L 191.9 42" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 198.65 42 L 189.65 46.5 L 191.9 42 L 189.65 37.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="2" y="12" width="120" height="60" fill="none" stroke="#000000" stroke-width="5" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 42px; margin-left: 3px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 20px">DataGear</font></div></div></div></foreignObject><text x="62" y="46" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">DataGear</text></switch></g><path d="M 322 42 L 391.9 42" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 398.65 42 L 389.65 46.5 L 391.9 42 L 389.65 37.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="262" cy="42" rx="60" ry="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="5" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 42px; margin-left: 203px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CodeGear</div></div></div></foreignObject><text x="262" y="48" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="20px" text-anchor="middle">CodeGear</text></switch></g><path d="M 522 42 L 591.9 42" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 598.65 42 L 589.65 46.5 L 591.9 42 L 589.65 37.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="402" y="12" width="120" height="60" fill="none" stroke="#000000" stroke-width="5" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 42px; margin-left: 403px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 20px">DataGear</font></div></div></div></foreignObject><text x="462" y="46" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">DataGear</text></switch></g><ellipse cx="662" cy="42" rx="60" ry="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="5" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 42px; margin-left: 603px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CodeGear</div></div></div></foreignObject><text x="662" y="48" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="20px" text-anchor="middle">CodeGear</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/figs/transaction.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,1 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="383px" height="565px" viewBox="-0.5 -0.5 383 565" content="<mxfile><diagram id="L_h3FubKQM33HK9nJZH5" name="Page-1">7VvNk5owHP1rPLYDBPw47rrr9tKZzuyh7TEjUZmNhEJctX99AySQQFBQgV3qHlbyS4LhvZeXLxyB+fbwEsJg8524CI8swz2MwNPIshxgsv9x4JgGTGM6SSPr0HN5LA+8en+RKMijO89FkVKQEoKpF6jBJfF9tKRKDIYh2avFVgSr3xrANSoFXpcQl6M/PZdu0ujUmuTxb8hbb8Q3m+NZmrOFojB/kmgDXbKXQuB5BOYhITS92h7mCMfgCVzSeouK3KxhIfJpnQpT3gx6FM+GXPaoPOkTn308bugWs5TJLtHBo7/YtfHV4anfUs5TzLAhEkeR8Gl4lCrFyd9yXl4tSeX13IeYrLwhLLLwMOb5EQ3JW0YAyCJzgkmYPAwwkj+WU8aFQxWRXbjkj25xKcFwjXgpJw3FoEjVOJYviGwRazErECIMqfeu6gNyma2zcjkT7IKToSdmdifmJDHjvojhbXmHeMdvWmYKY+ZEMS77jUfRawCTB9kzM1RJg1GQ2tPKOyC3IXIrBriIcxoqwXxHIUWHk0CJ3Cl3Ju7NNk/uc59zeGgjWZyIXYMsGDayBWCzwawDZMVX3d1E8nTZTUBfbmKad2ZOMjPpixln2G5kAtWOTKs7OxoPG1qrR2gnw4a2ODvpchAV2Da3asmoc9s+Y9WmYtS5b1dY9Yr4lK+TrYJ1LzGMIm+puLeZcAdDWvD3JFZyeB2/ZS3UcnhTM5XvzeJFY5TeMsaU46lwPf6zIyLjS5Qg/cAKWE5wSJ5d5LOrdfz5huImJ1UNKO7KGpTeOC1T0hPrBVTVkEoAZ0nTtyD21n5MNgMfsfhj3Ke8JcQPPGPruS6u6vQh2flu3MUzLTUawhtY49hR+6/GGmdOuf+CW0yCa6wvVCDO+GOxz/VvjwV3BOMyutlgJMObrfKuWr5phppa/iiuG/ljlrjMH+uYXy0PvfEM2LTL/mjObm2QSVX2bPAoFQiI59NIuvOPOCD1XbuoLqcgj/SOuViyptXTz6VbXl3op0TrYjGbAaCVgKQ1oPFTqeZNNHixriy7t4HX/t+s2J7WtOKbjHS6teuN5jWfcC4jC6PFuY19nnG7LcIvXpoMcRdJjJeK1xm9ed39iO0cN2Zv3MzOj0OfebsEFKdsTtmTQEueJHrcULG1ZgW/Bx1iaw4bW9AntpcuYz+OX59fpth1/drSrRt6eylCnNPduankpr/3Imqs6a71pHrgdTOW6ub3rXlSB4eRfWJbHEsdzcZla9h2cBrZq277xHaqwbbhRoRRsRExZ+XiLYZBbkc0OF1rcHhqqIcvQDOrmrSkBKDrZSlzUQD9OkoAVUp4kDSQ3uxDa+DkhnHbm1Tn3+5rywuA7tWEGyng8a6Ai8eDLvcEQPV4cLUG5gPXQDZxaEEDLc5lWTL/NUN6Kpj/JgQ8/wM=</diagram></mxfile>"><defs/><g><path d="M 165 53 L 115 83" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 165 53 L 215 83" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><ellipse cx="165" cy="28" rx="25" ry="25" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><ellipse cx="65" cy="198" rx="25" ry="25" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><path d="M 115 133 L 65 173" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 115 133 L 165 173" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><ellipse cx="115" cy="108" rx="25" ry="25" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><ellipse cx="215" cy="108" rx="25" ry="25" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><ellipse cx="165" cy="198" rx="25" ry="25" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><path d="M 225 198 L 200.1 198" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 193.35 198 L 202.35 193.5 L 200.1 198 L 202.35 202.5 Z" fill="#000000" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="225" y="183" width="95" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 93px; height: 1px; padding-top: 198px; margin-left: 226px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 25px;">key = a</font></div></div></div></foreignObject><text x="273" y="202" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">key = a</text></switch></g><rect x="40" y="323" width="120" height="240" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><path d="M 160 458 L 197.06 337.56 Q 200 328 210 328 L 289.9 328" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 296.65 328 L 287.65 332.5 L 289.9 328 L 287.65 323.5 Z" fill="#000000" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 160 458 L 289.9 458" fill="none" stroke="#ff9933" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 296.65 458 L 287.65 462.5 L 289.9 458 L 287.65 453.5 Z" fill="#ff9933" stroke="#ff9933" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="40" y="443" width="120" height="30" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><rect x="0" y="443" width="40" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 458px; margin-left: 1px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 25px;">a</font></div></div></div></foreignObject><text x="20" y="464" fill="#000000" font-family="Helvetica" font-size="20px" text-anchor="middle">a</text></switch></g><path d="M 315 343 L 265 393" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 315 343 L 365 393" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><ellipse cx="315" cy="328" rx="14.999999999999998" ry="14.999999999999998" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><ellipse cx="265" cy="408" rx="14.999999999999998" ry="14.999999999999998" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><ellipse cx="365" cy="408" rx="14.999999999999998" ry="14.999999999999998" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><path d="M 315 473 L 265 523" fill="none" stroke="#ff9933" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 315 473 L 365 523" fill="none" stroke="#ff9933" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><ellipse cx="315" cy="458" rx="14.999999999999998" ry="14.999999999999998" fill="none" stroke="#ff9933" stroke-width="4" pointer-events="all"/><ellipse cx="265" cy="538" rx="14.999999999999998" ry="14.999999999999998" fill="none" stroke="#ff9933" stroke-width="4" pointer-events="all"/><ellipse cx="365" cy="538" rx="14.999999999999998" ry="14.999999999999998" fill="none" stroke="#ff9933" stroke-width="4" pointer-events="all"/><rect x="65" y="293" width="70" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 308px; margin-left: 66px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 20px;">Context</font></div></div></div></foreignObject><text x="100" y="314" fill="#000000" font-family="Helvetica" font-size="20px" text-anchor="middle">Context</text></switch></g><rect x="40" y="3" width="30" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 18px; margin-left: 41px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="font-size: 30px;">A</span></div></div></div></foreignObject><text x="55" y="24" fill="#000000" font-family="Helvetica" font-size="20px" text-anchor="middle">A</text></switch></g><rect x="350" y="313" width="30" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 328px; margin-left: 351px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="font-size: 30px;">B</span></div></div></div></foreignObject><text x="365" y="334" fill="#000000" font-family="Helvetica" font-size="20px" text-anchor="middle">B</text></switch></g><rect x="350" y="443" width="30" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 458px; margin-left: 351px;"><div data-drawio-colors="color: #FF9933; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(255, 153, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="font-size: 30px;">C</span></div></div></div></foreignObject><text x="365" y="464" fill="#FF9933" font-family="Helvetica" font-size="20px" text-anchor="middle">C</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/logo.svg Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,683 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg3004" + version="1.1" + inkscape:version="0.48.5 r10040" + width="825.635" + height="268.76" + xml:space="preserve" + sodipodi:docname="logo.pdf"><metadata + id="metadata3010"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs3008"><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath3018"><path + d="m 8.504,8.504 643,0 0,198 -643,0 0,-198 z" + id="path3020" /></clipPath></defs><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview3006" + showgrid="false" + inkscape:zoom="0.38152452" + inkscape:cx="412.8175" + inkscape:cy="134.38" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="0" + inkscape:current-layer="g3012" /><g + id="g3012" + inkscape:groupmode="layer" + inkscape:label="logo" + transform="matrix(1.25,0,0,-1.25,0,268.76)"><g + id="g3014"><g + id="g3016" + clip-path="url(#clipPath3018)"><g + id="g3022" + transform="translate(102.5332,135.6518)"><path + d="m 0,0 -11.408,22.813 -14.75,0 c -2.032,0 -3.681,1.648 -3.681,3.682 0,2.032 1.649,3.679 3.681,3.679 l 19.299,0 L 6.585,3.292 C 7.494,1.473 6.755,-0.737 4.938,-1.648 4.41,-1.914 3.849,-2.039 3.295,-2.038 1.944,-2.038 0.645,-1.291 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3024" /></g><g + id="g3026" + transform="translate(122.8477,70.1152)"><path + d="m 0,0 0,111.942 c 0,2.032 1.653,3.679 3.682,3.679 2.034,0 3.684,-1.647 3.684,-3.679 L 7.366,0 c 0,-2.034 -1.65,-3.681 -3.684,-3.681 C 1.653,-3.681 0,-2.034 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3028" /></g><g + id="g3030" + transform="translate(51.0649,133.6162)"><path + d="m 0,0 c -2.03,0 -3.681,1.648 -3.681,3.679 0,2.035 1.651,3.684 3.681,3.684 l 121.941,0 c 2.034,0 3.681,-1.649 3.681,-3.684 C 125.622,1.648 123.975,0 121.941,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3032" /></g><g + id="g3034" + transform="translate(102.144,70.1152)"><path + d="m 0,0 0,67.18 c 0,2.034 1.65,3.684 3.681,3.684 2.032,0 3.68,-1.65 3.68,-3.684 L 7.361,0 c 0,-2.034 -1.648,-3.681 -3.68,-3.681 C 1.65,-3.681 0,-2.034 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3036" /></g><g + id="g3038" + transform="translate(102.459,68.6269)"><path + d="m 0,0 -18.358,41.521 -16.469,0 0,-0.002 c -2.03,0 -3.679,1.652 -3.679,3.684 0,2.034 1.649,3.68 3.679,3.68 l 21.263,0 L 6.733,2.977 C 7.556,1.117 6.712,-1.057 4.853,-1.881 4.371,-2.092 3.866,-2.194 3.367,-2.194 1.955,-2.194 0.605,-1.375 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3040" /></g><g + id="g3042" + transform="translate(141.7153,70.1152)"><path + d="m 0,0 0,49.696 c 0,2.035 1.65,3.682 3.682,3.682 2.034,0 3.682,-1.647 3.682,-3.682 L 7.364,0 C 7.364,-2.034 5.716,-3.681 3.682,-3.681 1.65,-3.681 0,-2.034 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3044" /></g><g + id="g3046" + transform="translate(31.2803,66.4346)"><path + d="m 0,0 c -2.032,0 -3.682,1.647 -3.682,3.681 0,2.032 1.65,3.678 3.682,3.678 l 147.246,0 c 2.035,0 3.684,-1.646 3.684,-3.678 C 150.93,1.647 149.281,0 147.246,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3048" /></g><g + id="g3050" + transform="translate(164.7226,156.6235)"><path + d="m 0,0 c -2.03,0 -3.679,1.648 -3.679,3.681 0,2.033 1.649,3.682 3.679,3.682 l 49.701,0 c 2.028,0 3.68,-1.649 3.68,-3.682 C 53.381,1.648 51.729,0 49.701,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3052" /></g><g + id="g3054" + transform="translate(165.4023,87.7905)"><path + d="m 0,0 c -1.929,0.645 -2.974,2.727 -2.33,4.656 l 23.008,69.021 c 0.643,1.93 2.727,2.975 4.654,2.328 1.931,-0.642 2.974,-2.726 2.33,-4.653 L 4.653,2.328 C 4.14,0.785 2.703,-0.191 1.163,-0.191 0.776,-0.191 0.385,-0.129 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3056" /></g><g + id="g3058" + transform="translate(134.8149,37.9038)"><path + d="m 0,0 c -2.034,0 -3.682,1.65 -3.682,3.681 0,2.033 1.648,3.684 3.682,3.684 l 45.138,0 27.183,88.347 -32.29,0 0,-0.002 c -2.034,0 -3.679,1.651 -3.679,3.685 0,2.03 1.645,3.68 3.679,3.68 l 42.257,0 L 50.575,0 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3060" /></g><g + id="g3062" + transform="translate(160.1216,105.5478)"><path + d="m 0,0 c -2.032,0 -3.677,1.645 -3.677,3.679 0,2.034 1.645,3.68 3.677,3.68 l 41.875,0 c 2.034,0 3.684,-1.646 3.684,-3.68 C 45.559,1.645 43.909,0 41.875,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3064" /></g><g + id="g3066" + transform="translate(226.3838,104.1665)"><path + d="m 0,0 0,41.414 c 0,2.032 1.648,3.678 3.681,3.678 2.034,0 3.682,-1.646 3.682,-3.678 L 7.363,0 C 7.363,-2.032 5.715,-3.681 3.681,-3.681 1.648,-3.681 0,-2.032 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3068" /></g><g + id="g3070" + transform="translate(203.8359,66.4346)"><path + d="m 0,0 c -2.032,0 -3.681,1.647 -3.681,3.681 0,2.032 1.649,3.678 3.681,3.678 l 43.255,0.004 0,96.631 0.002,0 c 0,2.032 1.65,3.681 3.679,3.681 2.033,0 3.684,-1.649 3.684,-3.681 L 50.62,0 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3072" /></g><g + id="g3074" + transform="translate(257.1143,101.0381)"><path + d="m 0,0 c -1.728,1.074 -2.259,3.342 -1.184,5.071 l 24.291,39.141 0,26.1 0.002,0 c 0,2.032 1.646,3.682 3.681,3.682 2.033,0 3.682,-1.65 3.682,-3.682 l 0,-28.201 L 5.071,1.189 C 4.372,0.063 3.171,-0.552 1.939,-0.552 1.276,-0.552 0.604,-0.375 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3076" /></g><g + id="g3078" + transform="translate(259.4902,40.251)"><path + d="m 0,0 c -1.751,1.034 -2.338,3.29 -1.308,5.042 l 17.897,30.427 0.002,61.575 c 0,2.034 1.649,3.684 3.682,3.684 2.031,0 3.681,-1.65 3.681,-3.684 l 0,-63.58 L 5.04,1.31 5.04,1.308 C 4.352,0.141 3.123,-0.508 1.864,-0.508 1.23,-0.508 0.587,-0.341 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3080" /></g><g + id="g3082" + transform="translate(295.8657,133.6162)"><path + d="m 0,0 c -2.032,0 -3.68,1.648 -3.68,3.679 0,2.035 1.648,3.684 3.68,3.684 l 119.181,0 c 2.034,0 3.679,-1.649 3.679,-3.684 C 122.86,1.648 121.215,0 119.181,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3084" /></g><g + id="g3086" + transform="translate(300.0078,153.8618)"><path + d="m 0,0 c -2.032,0 -3.679,1.65 -3.679,3.682 0,2.034 1.647,3.683 3.679,3.683 l 52.918,0 c 2.034,0 3.683,-1.649 3.683,-3.683 C 56.601,1.65 54.952,0 52.918,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3088" /></g><g + id="g3090" + transform="translate(300.0078,116.5898)"><path + d="m 0,0 c -2.032,0 -3.679,1.646 -3.679,3.682 0,2.031 1.647,3.682 3.679,3.682 l 52,0 c 2.032,0 3.68,-1.651 3.68,-3.682 C 55.68,1.646 54.032,0 52,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3092" /></g><g + id="g3094" + transform="translate(300.0078,99.5669)"><path + d="m 0,0 c -2.032,0 -3.679,1.647 -3.679,3.679 0,2.035 1.647,3.68 3.679,3.68 l 52,0 c 2.032,0 3.68,-1.645 3.68,-3.68 C 55.68,1.647 54.032,0 52,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3096" /></g><g + id="g3098" + transform="translate(303.6885,62.7539)"><path + d="m 0,0 44.637,-0.001 0,20.708 L 0,20.707 0,0 z m 44.637,-24.85 0,17.488 -51.997,0 0,35.43 59.356,0 0,-31.75 0,-21.168 0.004,0 c 0,-2.03 -1.649,-3.681 -3.681,-3.681 -2.036,0 -3.682,1.651 -3.682,3.681" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3100" /></g><g + id="g3102" + transform="translate(373.6348,117.5122)"><path + d="M 0,0 0,3.682 0,0 z m 3.679,-11.503 33.131,0 0,11.503 -33.131,0 0,-11.503 z m -7.361,-7.363 0,22.548 0,3.679 47.854,0 0,-26.227 -47.854,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3104" /></g><g + id="g3106" + transform="translate(390.6577,63.6728)"><path + d="m 0,0 0,106.756 c 0,2.034 1.648,3.681 3.684,3.681 2.032,0 3.679,-1.647 3.679,-3.681 L 7.363,0 C 7.363,-2.034 5.716,-3.682 3.684,-3.682 1.648,-3.682 0,-2.034 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3108" /></g><g + id="g3110" + transform="translate(356.6084,77.4766)"><path + d="m 0,0 c 0,2.034 1.645,3.682 3.681,3.682 l 15.513,0 15.473,23.211 c 1.127,1.691 3.414,2.147 5.105,1.02 1.694,-1.129 2.149,-3.414 1.022,-5.105 L 23.137,-3.679 3.681,-3.683 C 1.645,-3.683 0,-2.032 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3112" /></g><g + id="g3114" + transform="translate(404.9238,74.7148)"><path + d="m 0,0 0,27.61 c 0,2.036 1.647,3.684 3.683,3.684 2.03,0 3.678,-1.648 3.678,-3.684 L 7.361,0 C 7.361,-2.03 5.713,-3.681 3.683,-3.681 1.647,-3.681 0,-2.03 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3116" /></g><g + id="g3118" + transform="translate(409.5255,153.8618)"><path + d="m 0,0 c -2.034,0 -3.679,1.65 -3.679,3.684 0,2.032 1.645,3.679 3.679,3.679 l 54.298,0 0,20.833 c 0,2.03 1.649,3.679 3.681,3.679 2.03,0 3.682,-1.649 3.682,-3.679 L 61.661,0 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3120" /></g><path + d="m 429.77,83 34.054,0 0,50.616 -34.054,0 0,-50.616 z m -7.362,-7.361 0,62.974 17.397,21.261 0.003,0 c 1.287,1.574 3.605,1.807 5.179,0.52 1.575,-1.287 1.805,-3.609 0.52,-5.183 l -11.648,-14.232 37.328,0 0,-65.34 -48.779,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3122" /><g + id="g3124" + transform="translate(426.0903,114.2891)"><path + d="m 0,0 c -2.034,0 -3.68,1.648 -3.68,3.681 0,2.034 1.646,3.682 3.68,3.682 l 41.414,0 c 2.03,0 3.682,-1.648 3.682,-3.682 C 45.096,1.648 43.444,0 41.414,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3126" /></g><g + id="g3128" + transform="translate(426.0903,94.9624)"><path + d="m 0,0 c -2.034,0 -3.68,1.648 -3.68,3.684 0,2.032 1.646,3.679 3.68,3.679 l 41.414,0 c 2.03,0 3.682,-1.647 3.682,-3.679 C 45.096,1.648 43.444,0 41.414,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3130" /></g><g + id="g3132" + transform="translate(380.9961,50.7886)"><path + d="m 0,0 c 0,2.032 1.648,3.682 3.682,3.682 l 39.064,0 11.437,24.56 c 0.854,1.844 3.046,2.644 4.889,1.782 1.841,-0.855 2.639,-3.045 1.782,-4.892 L 47.439,-3.681 3.682,-3.683 C 1.648,-3.683 0,-2.034 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3134" /></g><g + id="g3136" + transform="translate(453.2397,37.9038)"><path + d="m 0,0 0,41.414 c 0,2.034 1.648,3.682 3.684,3.682 2.028,0 3.679,-1.648 3.679,-3.682 L 7.363,0 C 7.363,-2.03 5.712,-3.681 3.684,-3.681 1.648,-3.681 0,-2.03 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3138" /></g><g + id="g3140" + transform="translate(479.9297,140.979)"><path + d="m 0,0 c -2.034,0 -3.683,1.648 -3.683,3.684 0,2.029 1.649,3.677 3.683,3.677 l 42.795,0 c 2.031,0 3.679,-1.648 3.679,-3.677 C 46.474,1.648 44.826,0 42.795,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3142" /></g><g + id="g3144" + transform="translate(459.6821,79.3174)"><path + d="m 0,0 c 0,2.032 1.646,3.683 3.68,3.683 l 5.99,0 30.741,62.368 0.003,-0.003 c 0.897,1.827 3.103,2.574 4.926,1.678 1.825,-0.901 2.577,-3.108 1.678,-4.93 L 14.254,-3.679 3.68,-3.68 C 1.646,-3.68 0,-2.032 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3146" /></g><path + d="m 497.412,83 21.629,0 0,29.907 -21.629,0 0,-29.907 z m -7.363,-34.053 0,30.37 0,40.955 36.355,0 0,-44.633 -28.992,-0.002 0,-26.69 c 0,-2.032 -1.647,-3.682 -3.68,-3.682 -2.033,0 -3.683,1.65 -3.683,3.682" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3148" /><g + id="g3150" + transform="translate(531.4644,153.8618)"><path + d="m 0,0 c 0,2.034 1.648,3.682 3.683,3.682 l 46.016,0 0,24.514 c 0,2.032 1.647,3.679 3.681,3.679 2.029,0 3.682,-1.647 3.682,-3.679 l 0,-31.875 -53.379,0 0,-0.003 C 1.648,-3.682 0,-2.034 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3152" /></g><g + id="g3154" + transform="translate(531.0049,112.9072)"><path + d="m 0,0 c -2.032,0 -3.682,1.652 -3.682,3.683 0,2.033 1.65,3.682 3.682,3.682 l 99.395,0 c 2.032,0 3.679,-1.649 3.679,-3.682 C 103.074,1.652 101.427,0 99.395,0 L 0,0 z" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3156" /></g><g + id="g3158" + transform="translate(528.7994,59.8086)"><path + d="m 0,0 c -1.628,1.22 -1.96,3.525 -0.738,5.155 l 11.687,15.583 0,73.315 c 0,2.034 1.648,3.682 3.68,3.682 2.034,0 3.683,-1.648 3.683,-3.682 l 0,-75.769 L 5.152,0.733 C 4.427,-0.229 3.323,-0.738 2.203,-0.738 1.432,-0.737 0.659,-0.499 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3160" /></g><g + id="g3162" + transform="translate(568.7383,36.9849)"><path + d="m 0,0 0,116.877 c 0,2.034 1.644,3.682 3.681,3.682 2.035,0 3.682,-1.648 3.682,-3.682 L 7.363,0 C 7.363,-2.036 5.716,-3.681 3.681,-3.681 1.644,-3.681 0,-2.036 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3164" /></g><g + id="g3166" + transform="translate(168.8662,160.3042)"><path + d="m 0,0 c 0,-2.289 -1.854,-4.142 -4.144,-4.142 -2.285,0 -4.138,1.853 -4.138,4.142 0,2.289 1.853,4.142 4.138,4.142 C -1.854,4.142 0,2.289 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3168" /></g><g + id="g3170" + transform="translate(162.4238,160.3042)"><path + d="M 0,0 C 0.003,-1.268 1.032,-2.297 2.299,-2.3 3.57,-2.297 4.6,-1.268 4.601,0 4.6,1.27 3.57,2.301 2.299,2.302 1.032,2.301 0.003,1.27 0,0 m -3.683,0 c 0.002,3.306 2.68,5.981 5.982,5.985 C 5.606,5.981 8.282,3.306 8.282,0 8.282,-3.304 5.606,-5.979 2.299,-5.981 -1.003,-5.979 -3.681,-3.304 -3.683,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3172" /></g><g + id="g3174" + transform="translate(55.2051,137.2983)"><path + d="m 0,0 c 0,-2.289 -1.852,-4.142 -4.14,-4.142 -2.285,0 -4.14,1.853 -4.14,4.142 0,2.285 1.855,4.14 4.14,4.14 C -1.852,4.14 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3176" /></g><g + id="g3178" + transform="translate(48.7646,137.2983)"><path + d="M 0,0 C 0.003,-1.27 1.031,-2.299 2.3,-2.302 3.574,-2.299 4.599,-1.27 4.603,0 4.599,1.268 3.574,2.295 2.3,2.302 1.031,2.295 0.003,1.268 0,0 m -3.681,0 c 0.004,3.304 2.678,5.981 5.981,5.981 3.306,0 5.983,-2.677 5.983,-5.981 0,-3.307 -2.677,-5.983 -5.983,-5.983 -3.303,0 -5.977,2.676 -5.981,5.983" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3180" /></g><g + id="g3182" + transform="translate(71.772,113.8301)"><path + d="m 0,0 c 0,-2.291 -1.852,-4.14 -4.138,-4.14 -2.289,0 -4.142,1.849 -4.142,4.14 0,2.285 1.853,4.14 4.142,4.14 C -1.852,4.14 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3184" /></g><g + id="g3186" + transform="translate(65.333,113.8301)"><path + d="M 0,0 C 0.002,-1.27 1.029,-2.297 2.301,-2.301 3.569,-2.297 4.596,-1.27 4.598,0 4.596,1.271 3.569,2.3 2.301,2.3 1.029,2.3 0.002,1.271 0,0 m -3.681,0 c 0,3.304 2.675,5.979 5.982,5.981 C 5.603,5.979 8.278,3.304 8.28,0 8.278,-3.306 5.603,-5.981 2.301,-5.981 c -3.307,0 -5.982,2.675 -5.982,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3188" /></g><g + id="g3190" + transform="translate(35.4204,70.1152)"><path + d="m 0,0 c 0,-2.289 -1.853,-4.142 -4.142,-4.142 -2.285,0 -4.138,1.853 -4.138,4.142 0,2.287 1.853,4.142 4.138,4.142 C -1.853,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3192" /></g><g + id="g3194" + transform="translate(28.98,70.1152)"><path + d="M 0,0 C 0.001,-1.27 1.029,-2.299 2.3,-2.3 3.57,-2.299 4.598,-1.27 4.599,0 4.598,1.27 3.57,2.297 2.3,2.302 1.029,2.297 0.001,1.27 0,0 m -3.681,0 c 0,3.304 2.676,5.981 5.981,5.983 C 5.604,5.981 8.28,3.304 8.282,0 8.28,-3.304 5.604,-5.983 2.3,-5.983 c -3.305,0 -5.981,2.679 -5.981,5.983" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3196" /></g><g + id="g3198" + transform="translate(80.5166,162.147)"><path + d="m 0,0 c 0,-2.29 -1.853,-4.143 -4.142,-4.143 -2.287,0 -4.14,1.853 -4.14,4.143 0,2.287 1.853,4.138 4.14,4.138 C -1.853,4.138 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3200" /></g><g + id="g3202" + transform="translate(74.0742,162.147)"><path + d="M 0,0 C 0.002,-1.271 1.029,-2.299 2.302,-2.3 3.569,-2.299 4.6,-1.271 4.601,0 4.6,1.268 3.569,2.297 2.302,2.301 1.029,2.297 0.002,1.268 0,0 m -3.679,0 c 0,3.3 2.674,5.979 5.981,5.979 3.302,0 5.98,-2.679 5.98,-5.979 0,-3.305 -2.678,-5.983 -5.98,-5.984 -3.307,0.001 -5.981,2.679 -5.981,5.984" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3204" /></g><g + id="g3206" + transform="translate(149.5425,119.811)"><path + d="m 0,0 c 0,-2.287 -1.856,-4.142 -4.145,-4.142 -2.285,0 -4.142,1.855 -4.142,4.142 0,2.289 1.857,4.143 4.142,4.143 C -1.856,4.143 0,2.289 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3208" /></g><g + id="g3210" + transform="translate(143.0952,119.811)"><path + d="M 0,0 C 0.005,-1.27 1.032,-2.297 2.302,-2.302 3.574,-2.297 4.603,-1.27 4.603,0 4.603,1.27 3.574,2.299 2.302,2.302 1.032,2.299 0.005,1.27 0,0 M -3.681,0 C -3.677,3.305 -1.003,5.979 2.302,5.981 5.606,5.979 8.282,3.305 8.283,0 8.282,-3.306 5.606,-5.979 2.302,-5.981 -1.003,-5.979 -3.677,-3.306 -3.681,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3212" /></g><g + id="g3214" + transform="translate(132.5146,41.5845)"><path + d="m 0,0 c 0,-2.289 -1.855,-4.14 -4.142,-4.14 -2.288,0 -4.142,1.851 -4.142,4.14 0,2.287 1.854,4.142 4.142,4.142 C -1.855,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3216" /></g><g + id="g3218" + transform="translate(126.0723,41.5859)"><path + d="M 0,0 C 0.001,-1.27 1.029,-2.3 2.3,-2.302 3.572,-2.3 4.594,-1.27 4.601,0 4.594,1.27 3.572,2.297 2.3,2.303 1.029,2.297 0.001,1.27 0,0 m -3.679,0 c 0,3.304 2.674,5.981 5.979,5.981 C 5.604,5.981 8.28,3.304 8.282,0 8.28,-3.307 5.604,-5.981 2.3,-5.984 -1.005,-5.981 -3.679,-3.307 -3.679,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3220" /></g><g + id="g3222" + transform="translate(130.6733,182.0576)"><path + d="m 0,0 c 0,-2.291 -1.856,-4.144 -4.14,-4.144 -2.287,0 -4.144,1.853 -4.144,4.144 0,2.287 1.857,4.14 4.144,4.14 C -1.856,4.14 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3224" /></g><g + id="g3226" + transform="translate(124.231,182.0576)"><path + d="M 0,0 C 0.002,-1.273 1.031,-2.301 2.302,-2.303 3.571,-2.301 4.596,-1.273 4.601,0 4.596,1.266 3.571,2.295 2.302,2.299 1.031,2.295 0.002,1.266 0,0 m -3.681,0 c 0,3.304 2.678,5.981 5.983,5.981 3.301,0 5.98,-2.677 5.98,-5.981 0,-3.308 -2.679,-5.983 -5.98,-5.983 -3.305,0 -5.983,2.675 -5.983,5.983" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3228" /></g><g + id="g3230" + transform="translate(164.2666,109.227)"><path + d="m 0,0 c 0,-2.289 -1.855,-4.14 -4.145,-4.14 -2.285,0 -4.14,1.851 -4.14,4.14 0,2.289 1.855,4.143 4.14,4.143 C -1.855,4.143 0,2.289 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3232" /></g><g + id="g3234" + transform="translate(157.8227,109.227)"><path + d="M 0,0 C 0.001,-1.27 1.029,-2.299 2.299,-2.301 3.57,-2.299 4.598,-1.27 4.601,0 4.598,1.271 3.57,2.297 2.299,2.302 1.029,2.297 0.001,1.271 0,0 m -3.683,0 c 0,3.305 2.68,5.984 5.982,5.984 3.304,0 5.983,-2.679 5.983,-5.984 0,-3.304 -2.679,-5.981 -5.983,-5.981 -3.302,0 -5.982,2.677 -5.982,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3236" /></g><g + id="g3238" + transform="translate(170.7056,91.2817)"><path + d="m 0,0 c 0,-2.287 -1.853,-4.142 -4.14,-4.142 -2.289,0 -4.142,1.855 -4.142,4.142 0,2.287 1.853,4.14 4.142,4.14 C -1.853,4.14 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3240" /></g><g + id="g3242" + transform="translate(164.2666,91.2817)"><path + d="M 0,0 C 0,-1.27 1.029,-2.295 2.299,-2.301 3.569,-2.295 4.594,-1.27 4.6,0 4.594,1.27 3.569,2.297 2.299,2.302 1.029,2.297 0,1.27 0,0 M -3.684,0 C -3.682,3.304 -1.006,5.978 2.299,5.983 5.603,5.978 8.278,3.304 8.278,0 c 0,-3.306 -2.675,-5.981 -5.979,-5.981 -3.305,0 -5.981,2.675 -5.983,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3244" /></g><g + id="g3246" + transform="translate(218.5615,160.3042)"><path + d="m 0,0 c 0,-2.289 -1.855,-4.142 -4.138,-4.142 -2.289,0 -4.142,1.853 -4.142,4.142 0,2.289 1.853,4.142 4.142,4.142 C -1.855,4.142 0,2.289 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3248" /></g><g + id="g3250" + transform="translate(212.1211,160.3076)"><path + d="M 0,0 C 0.002,-1.273 1.031,-2.302 2.302,-2.304 3.57,-2.302 4.6,-1.273 4.601,0 4.6,1.267 3.57,2.297 2.302,2.297 1.031,2.297 0.002,1.267 0,0 m -3.682,0 c 0,3.302 2.679,5.978 5.984,5.978 C 5.606,5.978 8.28,3.302 8.282,0 8.28,-3.307 5.606,-5.981 2.302,-5.984 -1.003,-5.981 -3.682,-3.307 -3.682,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3252" /></g><g + id="g3254" + transform="translate(234.2065,145.5801)"><path + d="m 0,0 c 0,-2.289 -1.854,-4.142 -4.139,-4.142 -2.288,0 -4.143,1.853 -4.143,4.142 0,2.287 1.855,4.142 4.143,4.142 C -1.854,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3256" /></g><g + id="g3258" + transform="translate(227.7676,145.5801)"><path + d="M 0,0 C 0,-1.27 1.029,-2.299 2.297,-2.3 3.568,-2.299 4.596,-1.27 4.599,0 4.596,1.271 3.568,2.299 2.297,2.299 1.029,2.299 0,1.271 0,0 m -3.683,0 c 0,3.306 2.678,5.981 5.98,5.983 C 5.603,5.981 8.28,3.306 8.28,0 8.28,-3.304 5.603,-5.979 2.297,-5.981 -1.005,-5.979 -3.683,-3.304 -3.683,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3260" /></g><g + id="g3262" + transform="translate(207.9795,70.1152)"><path + d="m 0,0 c 0,-2.289 -1.855,-4.142 -4.142,-4.142 -2.287,0 -4.142,1.853 -4.142,4.142 0,2.287 1.855,4.142 4.142,4.142 C -1.855,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3264" /></g><g + id="g3266" + transform="translate(201.5351,70.1152)"><path + d="m 0,0 c 0.005,-1.27 1.031,-2.299 2.302,-2.3 1.272,10e-4 2.3,1.03 2.3,2.3 0,1.27 -1.028,2.297 -2.3,2.302 C 1.031,2.297 0.005,1.27 0,0 m -3.679,0 c 0,3.304 2.676,5.981 5.981,5.983 C 5.606,5.981 8.284,3.304 8.284,0 c 0,-3.304 -2.678,-5.983 -5.982,-5.983 -3.305,0 -5.981,2.679 -5.981,5.983" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3268" /></g><g + id="g3270" + transform="translate(234.2065,104.1665)"><path + d="m 0,0 c 0,-2.287 -1.854,-4.142 -4.139,-4.142 -2.288,0 -4.143,1.855 -4.143,4.142 0,2.287 1.855,4.143 4.143,4.143 C -1.854,4.143 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3272" /></g><g + id="g3274" + transform="translate(227.7642,104.1665)"><path + d="M 0,0 C 0.003,-1.27 1.032,-2.299 2.3,-2.301 3.57,-2.299 4.601,-1.27 4.601,0 4.601,1.27 3.57,2.297 2.3,2.304 1.032,2.297 0.003,1.27 0,0 m -3.679,0 c 0,3.304 2.678,5.979 5.979,5.981 C 5.606,5.979 8.283,3.304 8.283,0 c 0,-3.306 -2.677,-5.981 -5.983,-5.981 -3.301,0 -5.979,2.675 -5.979,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3276" /></g><g + id="g3278" + transform="translate(182.6714,70.1152)"><path + d="m 0,0 c 0,-2.289 -1.857,-4.142 -4.142,-4.142 -2.287,0 -4.143,1.853 -4.143,4.142 0,2.287 1.856,4.142 4.143,4.142 C -1.857,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3280" /></g><g + id="g3282" + transform="translate(176.229,70.1152)"><path + d="M 0,0 C 0.001,-1.27 1.032,-2.299 2.299,-2.3 3.57,-2.299 4.6,-1.27 4.603,0 4.6,1.27 3.57,2.297 2.299,2.302 1.032,2.297 0.001,1.27 0,0 m -3.684,0 c 0,3.304 2.679,5.981 5.983,5.983 C 5.604,5.981 8.278,3.304 8.28,0 8.278,-3.304 5.604,-5.983 2.299,-5.983 c -3.304,0 -5.983,2.679 -5.983,5.983" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3284" /></g><g + id="g3286" + transform="translate(265.4971,43.4258)"><path + d="m 0,0 c 0,-2.287 -1.853,-4.142 -4.14,-4.142 -2.287,0 -4.142,1.855 -4.142,4.142 0,2.288 1.855,4.142 4.142,4.142 C -1.853,4.142 0,2.288 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3288" /></g><g + id="g3290" + transform="translate(259.0552,43.4258)"><path + d="M 0,0 C 0.001,-1.269 1.03,-2.297 2.302,-2.301 3.572,-2.297 4.599,-1.269 4.603,0 4.599,1.271 3.572,2.3 2.302,2.302 1.03,2.3 0.001,1.271 0,0 m -3.681,0 c 0,3.305 2.676,5.981 5.983,5.981 3.305,0 5.981,-2.676 5.981,-5.981 0,-3.304 -2.676,-5.979 -5.981,-5.981 -3.307,0.002 -5.983,2.677 -5.983,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3292" /></g><g + id="g3294" + transform="translate(254.915,170.4287)"><path + d="m 0,0 c 0,-2.288 -1.855,-4.144 -4.142,-4.144 -2.287,0 -4.142,1.856 -4.142,4.144 0,2.285 1.855,4.142 4.142,4.142 C -1.855,4.142 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3296" /></g><g + id="g3298" + transform="translate(248.4746,170.4287)"><path + d="M 0,0 C 0.001,-1.271 1.029,-2.297 2.297,-2.3 3.568,-2.297 4.596,-1.271 4.598,0 4.596,1.27 3.568,2.299 2.297,2.301 1.029,2.299 0.001,1.27 0,0 m -3.683,0 c 0,3.304 2.676,5.983 5.98,5.983 C 5.604,5.983 8.28,3.304 8.28,0 8.28,-3.305 5.604,-5.981 2.297,-5.983 -1.007,-5.981 -3.683,-3.305 -3.683,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3300" /></g><g + id="g3302" + transform="translate(288.0454,171.3496)"><path + d="m 0,0 c 0,-2.287 -1.855,-4.14 -4.142,-4.14 -2.287,0 -4.14,1.853 -4.14,4.14 0,2.285 1.853,4.142 4.14,4.142 C -1.855,4.142 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3304" /></g><g + id="g3306" + transform="translate(281.603,171.3496)"><path + d="M 0,0 C 0,-1.271 1.029,-2.299 2.301,-2.301 3.57,-2.299 4.6,-1.271 4.601,0 4.6,1.271 3.57,2.299 2.301,2.299 1.029,2.299 0,1.271 0,0 m -3.679,0 c 0,3.304 2.676,5.981 5.98,5.981 3.305,0 5.983,-2.677 5.983,-5.981 0,-3.306 -2.678,-5.981 -5.983,-5.981 -3.304,0 -5.98,2.675 -5.98,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3308" /></g><g + id="g3310" + transform="translate(263.1968,104.1665)"><path + d="m 0,0 c 0,-2.287 -1.853,-4.142 -4.142,-4.142 -2.288,0 -4.14,1.855 -4.14,4.142 0,2.287 1.852,4.143 4.14,4.143 C -1.853,4.143 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3312" /></g><g + id="g3314" + transform="translate(256.7545,104.1665)"><path + d="M 0,0 C 0,-1.27 1.031,-2.299 2.301,-2.301 3.57,-2.299 4.6,-1.27 4.603,0 4.6,1.27 3.57,2.299 2.301,2.304 1.031,2.299 0,1.27 0,0 m -3.682,0 c 0,3.304 2.679,5.979 5.983,5.981 C 5.604,5.979 8.282,3.304 8.284,0 8.282,-3.306 5.604,-5.981 2.301,-5.981 c -3.304,0 -5.983,2.675 -5.983,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3316" /></g><g + id="g3318" + transform="translate(304.1528,157.5439)"><path + d="m 0,0 c 0,-2.287 -1.855,-4.142 -4.145,-4.142 -2.285,0 -4.138,1.855 -4.138,4.142 0,2.287 1.853,4.142 4.138,4.142 C -1.855,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3320" /></g><g + id="g3322" + transform="translate(297.707,157.5439)"><path + d="M 0,0 C 0.003,-1.271 1.033,-2.295 2.301,-2.302 3.572,-2.295 4.601,-1.271 4.604,0 4.601,1.27 3.572,2.299 2.301,2.303 1.033,2.299 0.003,1.27 0,0 m -3.679,0 c 0,3.304 2.673,5.979 5.98,5.981 C 5.606,5.979 8.284,3.304 8.285,0 8.284,-3.304 5.606,-5.981 2.301,-5.981 c -3.307,0 -5.98,2.677 -5.98,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3324" /></g><g + id="g3326" + transform="translate(357.0693,157.5439)"><path + d="m 0,0 c 0,-2.287 -1.854,-4.142 -4.143,-4.142 -2.287,0 -4.14,1.855 -4.14,4.142 0,2.287 1.853,4.142 4.14,4.142 C -1.854,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3328" /></g><g + id="g3330" + transform="translate(350.6255,157.5439)"><path + d="M 0,0 C 0.002,-1.268 1.033,-2.3 2.297,-2.302 3.571,-2.3 4.6,-1.271 4.603,0 4.6,1.27 3.571,2.299 2.297,2.303 1.033,2.299 0.002,1.27 0,0 M -3.682,0 C -3.68,3.304 -1.003,5.979 2.297,5.981 5.604,5.979 8.282,3.304 8.282,0 c 0,-3.304 -2.678,-5.981 -5.985,-5.981 -3.3,0 -5.977,2.677 -5.979,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3332" /></g><g + id="g3334" + transform="translate(300.0078,137.2983)"><path + d="m 0,0 c 0,-2.289 -1.852,-4.142 -4.138,-4.142 -2.289,0 -4.142,1.853 -4.142,4.142 0,2.285 1.853,4.14 4.142,4.14 C -1.852,4.14 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3336" /></g><g + id="g3338" + transform="translate(293.5669,137.2949)"><path + d="M 0,0 C 0.002,-1.267 1.029,-2.295 2.303,-2.299 3.572,-2.295 4.6,-1.267 4.602,0 4.6,1.273 3.572,2.299 2.303,2.304 1.029,2.299 0.002,1.273 0,0 m -3.68,0 c 0,3.307 2.677,5.981 5.983,5.985 C 5.604,5.981 8.28,3.307 8.284,0 8.28,-3.304 5.604,-5.978 2.303,-5.979 -1.003,-5.978 -3.68,-3.304 -3.68,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3340" /></g><g + id="g3342" + transform="translate(419.1885,137.2983)"><path + d="m 0,0 c 0,-2.289 -1.854,-4.142 -4.142,-4.142 -2.285,0 -4.139,1.853 -4.139,4.142 0,2.285 1.854,4.14 4.139,4.14 C -1.854,4.14 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3344" /></g><g + id="g3346" + transform="translate(412.7461,137.2983)"><path + d="M 0,0 C 0,-1.27 1.029,-2.299 2.299,-2.302 3.571,-2.299 4.598,-1.27 4.602,0 4.598,1.27 3.571,2.295 2.299,2.302 1.029,2.295 0,1.27 0,0 m -3.679,0 c 0,3.306 2.674,5.978 5.978,5.981 C 5.608,5.978 8.284,3.302 8.284,0 8.284,-3.305 5.608,-5.981 2.299,-5.983 -1.005,-5.981 -3.679,-3.307 -3.679,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3348" /></g><g + id="g3350" + transform="translate(304.1528,120.272)"><path + d="m 0,0 c 0,-2.287 -1.855,-4.142 -4.145,-4.142 -2.285,0 -4.138,1.855 -4.138,4.142 0,2.287 1.853,4.14 4.138,4.14 C -1.855,4.14 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3352" /></g><g + id="g3354" + transform="translate(297.707,120.272)"><path + d="M 0,0 C 0.003,-1.268 1.033,-2.299 2.301,-2.302 3.572,-2.299 4.601,-1.268 4.604,0 4.601,1.268 3.572,2.299 2.301,2.301 1.033,2.299 0.003,1.268 0,0 m -3.679,0 c 0,3.306 2.673,5.978 5.98,5.983 C 5.606,5.978 8.284,3.306 8.285,0 8.284,-3.304 5.606,-5.978 2.301,-5.981 -1.006,-5.978 -3.679,-3.304 -3.679,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3356" /></g><g + id="g3358" + transform="translate(304.1528,103.2456)"><path + d="m 0,0 c 0,-2.289 -1.855,-4.143 -4.145,-4.143 -2.285,0 -4.138,1.854 -4.138,4.143 0,2.287 1.853,4.144 4.138,4.144 C -1.855,4.144 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3360" /></g><g + id="g3362" + transform="translate(297.707,103.2456)"><path + d="M 0,0 C 0.003,-1.27 1.033,-2.297 2.301,-2.299 3.572,-2.297 4.601,-1.27 4.604,0 4.601,1.272 3.572,2.299 2.301,2.302 1.033,2.299 0.003,1.272 0,0 m -3.679,0 c 0,3.304 2.673,5.979 5.98,5.981 C 5.606,5.979 8.284,3.304 8.285,0 8.284,-3.304 5.606,-5.981 2.301,-5.981 c -3.307,0 -5.98,2.677 -5.98,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3364" /></g><g + id="g3366" + transform="translate(356.1475,37.9038)"><path + d="m 0,0 c 0,-2.289 -1.852,-4.142 -4.14,-4.142 -2.291,0 -4.14,1.853 -4.14,4.142 0,2.287 1.849,4.14 4.14,4.14 C -1.852,4.14 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3368" /></g><g + id="g3370" + transform="translate(349.7051,37.9038)"><path + d="M 0,0 C 0,-1.27 1.032,-2.297 2.301,-2.299 3.57,-2.297 4.601,-1.27 4.603,0 4.601,1.271 3.57,2.299 2.301,2.3 1.032,2.299 0,1.268 0,0 M -3.683,0 C -3.681,3.305 -1.005,5.979 2.301,5.985 5.606,5.979 8.282,3.305 8.282,0 c 0,-3.304 -2.676,-5.981 -5.981,-5.981 -3.304,0 -5.982,2.677 -5.984,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3372" /></g><g + id="g3374" + transform="translate(356.1475,120.272)"><path + d="m 0,0 c 0,-2.287 -1.852,-4.142 -4.14,-4.142 -2.291,0 -4.14,1.855 -4.14,4.142 0,2.287 1.849,4.14 4.14,4.14 C -1.852,4.14 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3376" /></g><g + id="g3378" + transform="translate(349.7051,120.272)"><path + d="M 0,0 C 0,-1.27 1.032,-2.299 2.301,-2.302 3.57,-2.299 4.601,-1.27 4.603,0 4.601,1.27 3.57,2.299 2.301,2.301 1.032,2.299 0,1.268 0,0 M -3.683,0 C -3.681,3.306 -1.005,5.979 2.301,5.983 5.606,5.979 8.282,3.306 8.282,0 8.282,-3.302 5.606,-5.979 2.301,-5.983 -1.005,-5.979 -3.681,-3.305 -3.683,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3380" /></g><g + id="g3382" + transform="translate(356.1475,103.2456)"><path + d="m 0,0 c 0,-2.289 -1.852,-4.143 -4.14,-4.143 -2.291,0 -4.14,1.854 -4.14,4.143 0,2.287 1.849,4.144 4.14,4.144 C -1.852,4.144 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3384" /></g><g + id="g3386" + transform="translate(349.7051,103.2456)"><path + d="M 0,0 C 0,-1.27 1.032,-2.297 2.301,-2.299 3.57,-2.297 4.601,-1.27 4.603,0 4.601,1.272 3.57,2.299 2.301,2.302 1.032,2.299 0,1.272 0,0 M -3.683,0 C -3.681,3.306 -1.005,5.979 2.301,5.981 5.606,5.979 8.282,3.306 8.282,0 8.282,-3.304 5.606,-5.981 2.301,-5.983 -1.005,-5.981 -3.681,-3.304 -3.683,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3388" /></g><g + id="g3390" + transform="translate(364.4292,77.4766)"><path + d="m 0,0 c 0,-2.287 -1.852,-4.14 -4.14,-4.14 -2.285,0 -4.142,1.853 -4.142,4.14 0,2.289 1.857,4.142 4.142,4.142 C -1.852,4.142 0,2.289 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3392" /></g><g + id="g3394" + transform="translate(357.9868,77.4785)"><path + d="M 0,0 C 0.003,-1.272 1.034,-2.299 2.302,-2.301 3.572,-2.299 4.601,-1.272 4.601,0 4.601,1.271 3.572,2.297 2.302,2.299 1.034,2.297 0.003,1.268 0,0 m -3.679,0 c 0,3.304 2.676,5.979 5.981,5.982 3.306,0 5.982,-2.678 5.982,-5.982 0,-3.306 -2.676,-5.981 -5.982,-5.981 -3.305,0 -5.981,2.675 -5.981,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3396" /></g><g + id="g3398" + transform="translate(398.4834,63.6728)"><path + d="m 0,0 c 0,-2.287 -1.855,-4.142 -4.144,-4.142 -2.285,0 -4.141,1.855 -4.141,4.142 0,2.287 1.856,4.142 4.141,4.142 C -1.855,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3400" /></g><g + id="g3402" + transform="translate(392.0376,63.6728)"><path + d="M 0,0 C 0.003,-1.27 1.031,-2.297 2.302,-2.302 3.574,-2.297 4.6,-1.271 4.606,0 4.6,1.271 3.574,2.297 2.302,2.301 1.031,2.297 0.003,1.271 0,0 m -3.68,0 c 0,3.306 2.679,5.979 5.982,5.983 C 5.608,5.979 8.284,3.304 8.284,0 8.284,-3.305 5.608,-5.979 2.302,-5.982 -1.001,-5.979 -3.68,-3.305 -3.68,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3404" /></g><g + id="g3406" + transform="translate(388.8185,50.7886)"><path + d="m 0,0 c 0,-2.287 -1.854,-4.142 -4.14,-4.142 -2.289,0 -4.142,1.855 -4.142,4.142 0,2.287 1.853,4.142 4.142,4.142 C -1.854,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3408" /></g><g + id="g3410" + transform="translate(382.376,50.7886)"><path + d="M 0,0 C 0.002,-1.27 1.032,-2.299 2.302,-2.301 3.57,-2.299 4.6,-1.272 4.601,0 4.6,1.271 3.57,2.297 2.302,2.3 1.032,2.297 0.002,1.266 0,0 m -3.679,0 c 0,3.305 2.676,5.981 5.981,5.981 3.306,0 5.98,-2.677 5.98,-5.981 0,-3.306 -2.674,-5.981 -5.98,-5.981 -3.305,0.002 -5.981,2.675 -5.981,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3412" /></g><g + id="g3414" + transform="translate(461.0635,37.9038)"><path + d="m 0,0 c 0,-2.289 -1.854,-4.142 -4.142,-4.142 -2.286,0 -4.143,1.853 -4.143,4.142 0,2.287 1.857,4.14 4.143,4.14 C -1.854,4.14 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3416" /></g><g + id="g3418" + transform="translate(454.6216,37.9038)"><path + d="M 0,0 C 0,-1.27 1.029,-2.297 2.3,-2.299 3.57,-2.297 4.598,-1.27 4.603,0 4.598,1.27 3.57,2.299 2.3,2.3 1.031,2.299 0,1.27 0,0 m -3.683,0 c 0,3.307 2.678,5.983 5.983,5.983 C 5.603,5.983 8.282,3.307 8.282,0 8.282,-3.304 5.603,-5.979 2.3,-5.981 -1.001,-5.979 -3.683,-3.304 -3.683,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3420" /></g><g + id="g3422" + transform="translate(398.4834,170.4287)"><path + d="m 0,0 c 0,-2.288 -1.855,-4.144 -4.144,-4.144 -2.285,0 -4.141,1.856 -4.141,4.144 0,2.285 1.856,4.142 4.141,4.142 C -1.855,4.142 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3424" /></g><g + id="g3426" + transform="translate(392.0376,170.4287)"><path + d="M 0,0 C 0.003,-1.27 1.031,-2.297 2.302,-2.3 3.574,-2.297 4.6,-1.271 4.606,0 4.6,1.27 3.574,2.299 2.302,2.299 1.031,2.299 0.003,1.27 0,0 m -3.68,0 c 0,3.306 2.679,5.981 5.982,5.981 3.306,0 5.982,-2.679 5.982,-5.981 0,-3.305 -2.676,-5.981 -5.982,-5.981 -3.303,0 -5.982,2.676 -5.982,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3428" /></g><g + id="g3430" + transform="translate(413.665,157.5439)"><path + d="m 0,0 c 0,-2.287 -1.854,-4.142 -4.14,-4.142 -2.285,0 -4.138,1.855 -4.138,4.142 0,2.287 1.853,4.142 4.138,4.142 C -1.854,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3432" /></g><g + id="g3434" + transform="translate(407.2246,157.5459)"><path + d="M 0,0 C 0,-1.271 1.032,-2.297 2.301,-2.304 3.572,-2.297 4.596,-1.273 4.601,0 4.596,1.268 3.572,2.297 2.301,2.299 1.032,2.297 0,1.268 0,0 m -3.682,0 c 0,3.306 2.677,5.978 5.983,5.981 C 5.604,5.978 8.278,3.302 8.278,0 8.278,-3.306 5.604,-5.983 2.301,-5.983 -1.005,-5.981 -3.682,-3.306 -3.682,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3436" /></g><g + id="g3438" + transform="translate(471.6475,182.0576)"><path + d="m 0,0 c 0,-2.291 -1.854,-4.144 -4.143,-4.144 -2.287,0 -4.142,1.853 -4.142,4.144 0,2.287 1.855,4.14 4.142,4.14 C -1.854,4.14 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3440" /></g><g + id="g3442" + transform="translate(465.2036,182.0576)"><path + d="M 0,0 C 0.002,-1.27 1.033,-2.301 2.301,-2.303 3.572,-2.301 4.598,-1.27 4.605,0 4.598,1.27 3.572,2.295 2.301,2.299 1.033,2.295 0.002,1.266 0,0 m -3.682,0 c 0,3.304 2.679,5.981 5.983,5.981 3.303,0 5.983,-2.677 5.983,-5.981 0,-3.304 -2.68,-5.983 -5.983,-5.983 -3.304,0 -5.983,2.675 -5.983,5.983" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3444" /></g><g + id="g3446" + transform="translate(484.0693,144.6611)"><path + d="m 0,0 c 0,-2.29 -1.853,-4.145 -4.14,-4.145 -2.287,0 -4.142,1.855 -4.142,4.145 0,2.287 1.855,4.139 4.142,4.139 C -1.853,4.139 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3448" /></g><g + id="g3450" + transform="translate(477.6269,144.6631)"><path + d="M 0,0 C 0.004,-1.271 1.033,-2.301 2.303,-2.306 3.572,-2.301 4.6,-1.275 4.602,0 4.6,1.268 3.572,2.294 2.303,2.299 1.033,2.294 0.004,1.268 0,0 m -3.679,0 c 0,3.304 2.674,5.978 5.982,5.979 3.303,0 5.979,-2.68 5.979,-5.979 0,-3.306 -2.676,-5.983 -5.979,-5.984 -3.308,0.001 -5.982,2.678 -5.982,5.984" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3452" /></g><g + id="g3454" + transform="translate(535.1471,62.7524)"><path + d="m 0,0 c 0,-2.287 -1.855,-4.142 -4.14,-4.142 -2.285,0 -4.142,1.855 -4.142,4.142 0,2.287 1.857,4.142 4.142,4.142 C -1.855,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3456" /></g><g + id="g3458" + transform="translate(528.7047,62.7539)"><path + d="M 0,0 C 0.003,-1.273 1.032,-2.297 2.302,-2.3 3.572,-2.297 4.599,-1.273 4.603,0 4.599,1.27 3.572,2.296 2.302,2.299 1.032,2.296 0.003,1.27 0,0 m -3.681,0 c 0,3.306 2.678,5.978 5.983,5.979 3.306,0 5.98,-2.677 5.98,-5.979 0,-3.305 -2.674,-5.982 -5.98,-5.982 -3.305,0.001 -5.983,2.675 -5.983,5.982" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3460" /></g><g + id="g3462" + transform="translate(576.5626,36.9849)"><path + d="m 0,0 c 0,-2.289 -1.856,-4.143 -4.144,-4.143 -2.285,0 -4.14,1.854 -4.14,4.143 0,2.287 1.855,4.14 4.14,4.14 C -1.856,4.14 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3464" /></g><g + id="g3466" + transform="translate(570.1168,36.9834)"><path + d="M 0,0 C 0.003,-1.27 1.036,-2.299 2.302,-2.301 3.572,-2.299 4.604,-1.271 4.604,0 4.604,1.271 3.572,2.3 2.302,2.302 1.036,2.3 0.003,1.27 0,0 M -3.682,0 C -3.679,3.305 -0.998,5.979 2.302,5.982 5.606,5.982 8.285,3.305 8.287,0 L 8.285,0 c 0,-3.302 -2.679,-5.979 -5.983,-5.979 -3.3,0 -5.981,2.675 -5.984,5.979" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3468" /></g><g + id="g3470" + transform="translate(526.8653,144.6611)"><path + d="m 0,0 c 0,-2.29 -1.854,-4.145 -4.14,-4.145 -2.289,0 -4.144,1.855 -4.144,4.145 0,2.287 1.855,4.139 4.144,4.139 C -1.854,4.139 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3472" /></g><g + id="g3474" + transform="translate(520.4194,144.6631)"><path + d="M 0,0 C 0.005,-1.275 1.032,-2.301 2.306,-2.304 3.574,-2.301 4.601,-1.275 4.604,0 4.601,1.268 3.574,2.297 2.306,2.299 1.032,2.297 0.005,1.265 0,0 m -3.679,0 c 0.002,3.304 2.678,5.978 5.985,5.979 3.3,0 5.979,-2.679 5.979,-5.979 0,-3.306 -2.679,-5.983 -5.979,-5.984 -3.307,0.001 -5.983,2.675 -5.985,5.984" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3476" /></g><g + id="g3478" + transform="translate(539.2887,153.8618)"><path + d="m 0,0 c 0,-2.287 -1.853,-4.14 -4.142,-4.14 -2.285,0 -4.14,1.853 -4.14,4.14 0,2.287 1.855,4.142 4.14,4.142 C -1.853,4.142 0,2.287 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3480" /></g><g + id="g3482" + transform="translate(532.8448,153.8618)"><path + d="M 0,0 C 0.003,-1.27 1.034,-2.297 2.302,-2.299 3.574,-2.297 4.598,-1.271 4.604,0 4.598,1.272 3.574,2.297 2.302,2.301 1.034,2.297 0.003,1.27 0,0 m -3.681,0 c 0,3.306 2.678,5.983 5.983,5.983 3.304,0 5.981,-2.677 5.981,-5.983 0,-3.302 -2.677,-5.979 -5.981,-5.979 -3.305,0 -5.983,2.677 -5.983,5.979" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3484" /></g><g + id="g3486" + transform="translate(535.1471,116.5898)"><path + d="m 0,0 c 0,-2.285 -1.855,-4.14 -4.14,-4.14 -2.285,0 -4.142,1.855 -4.142,4.14 0,2.289 1.857,4.142 4.142,4.142 C -1.855,4.142 0,2.289 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3488" /></g><g + id="g3490" + transform="translate(528.7047,116.5898)"><path + d="M 0,0 C 0.003,-1.271 1.032,-2.295 2.302,-2.301 3.572,-2.295 4.599,-1.271 4.603,0 4.599,1.271 3.572,2.297 2.302,2.302 1.032,2.297 0.003,1.271 0,0 m -3.681,0 c 0,3.306 2.678,5.981 5.983,5.981 3.306,0 5.98,-2.677 5.98,-5.981 0,-3.302 -2.674,-5.981 -5.98,-5.981 -3.305,0.002 -5.983,2.675 -5.983,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3492" /></g><g + id="g3494" + transform="translate(634.5416,116.5898)"><path + d="m 0,0 c 0,-2.285 -1.853,-4.14 -4.142,-4.14 -2.287,0 -4.142,1.855 -4.142,4.14 0,2.289 1.855,4.142 4.142,4.142 C -1.853,4.142 0,2.289 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3496" /></g><g + id="g3498" + transform="translate(628.0977,116.5918)"><path + d="M 0,0 C 0.001,-1.273 1.03,-2.297 2.302,-2.301 3.574,-2.297 4.596,-1.273 4.604,0 4.596,1.271 3.574,2.295 2.302,2.3 1.03,2.295 0.001,1.268 0,0 m -3.679,0 c 0,3.304 2.674,5.979 5.981,5.981 C 5.606,5.979 8.281,3.304 8.281,0 c 0,-3.306 -2.675,-5.983 -5.979,-5.983 -3.307,0 -5.981,2.675 -5.981,5.983" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3500" /></g><g + id="g3502" + transform="translate(588.9845,182.0591)"><path + d="m 0,0 c 0,-2.291 -1.854,-4.145 -4.14,-4.145 -2.287,0 -4.142,1.854 -4.142,4.145 0,2.285 1.855,4.138 4.142,4.138 C -1.854,4.138 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3504" /></g><g + id="g3506" + transform="translate(582.54,182.0591)"><path + d="M 0,0 C 0.005,-1.27 1.034,-2.299 2.304,-2.304 3.576,-2.299 4.6,-1.271 4.604,0 4.6,1.267 3.576,2.297 2.304,2.3 1.034,2.297 0.005,1.267 0,0 m -3.681,0 c 0.004,3.302 2.68,5.979 5.985,5.981 C 5.608,5.979 8.284,3.302 8.284,0 c 0,-3.305 -2.676,-5.981 -5.98,-5.985 -3.305,0.004 -5.981,2.68 -5.985,5.985" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3508" /></g><g + id="g3510" + transform="translate(497.875,48.9473)"><path + d="m 0,0 c 0,-2.285 -1.855,-4.14 -4.14,-4.14 -2.287,0 -4.142,1.855 -4.142,4.14 0,2.289 1.855,4.142 4.142,4.142 C -1.855,4.142 0,2.289 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3512" /></g><g + id="g3514" + transform="translate(491.4307,48.9473)"><path + d="M 0,0 C 0.005,-1.27 1.034,-2.295 2.301,-2.297 3.574,-2.295 4.6,-1.27 4.601,0 4.6,1.273 3.574,2.299 2.301,2.301 1.034,2.299 0.005,1.268 0,0 m -3.679,0 c 0,3.306 2.678,5.979 5.98,5.983 3.305,0 5.984,-2.677 5.984,-5.983 0,-3.304 -2.679,-5.978 -5.984,-5.981 -3.302,0.003 -5.98,2.677 -5.98,5.981" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3516" /></g><g + id="g3518" + transform="translate(412.7461,74.7183)"><path + d="m 0,0 c 0,-2.291 -1.853,-4.144 -4.14,-4.144 -2.287,0 -4.141,1.853 -4.141,4.144 0,2.285 1.854,4.138 4.141,4.138 C -1.853,4.138 0,2.285 0,0" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3520" /></g><g + id="g3522" + transform="translate(406.3042,74.7183)"><path + d="M 0,0 C 0.001,-1.27 1.031,-2.299 2.302,-2.304 3.57,-2.299 4.598,-1.273 4.603,0 4.598,1.27 3.57,2.299 2.302,2.3 1.031,2.299 0.001,1.266 0,0 m -3.682,0 c 0.003,3.302 2.675,5.979 5.984,5.979 3.302,0 5.98,-2.677 5.98,-5.979 0,-3.306 -2.678,-5.983 -5.98,-5.983 -3.309,0 -5.981,2.677 -5.984,5.983" + style="fill:#7ea3d3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3524" /></g></g></g></g></svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/slide.html Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,404 @@ +<!DOCTYPE html><html lang="ja-JP"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1.0"><meta name="apple-mobile-web-app-capable" content="yes"><meta http-equiv="X-UA-Compatible" content="ie=edge"><meta property="og:type" content="website"><meta name="twitter:card" content="summary"><style>@media screen{body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button{-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font-size:inherit;opacity:.8;outline:none;padding:0;transition:opacity .2s linear}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:disabled,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button:disabled{cursor:not-allowed;opacity:.15!important}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button:hover{opacity:1}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:active,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button:hover:active{opacity:.6}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:not(:disabled),body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button:hover:not(:disabled){transition:none}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-prev{background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNNjggOTAgMjggNTBsNDAtNDAiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-next{background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJtMzIgOTAgNDAtNDAtNDAtNDAiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen]{background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgeD0iMTAiIHk9IjIwIiBjbGFzcz0iYSIgcng9IjUuNjciLz48cGF0aCBkPSJNNDAgNzBIMjBWNTBtMjAgMEwyMCA3MG00MC00MGgyMHYyMG0tMjAgMCAyMC0yMCIgY2xhc3M9ImEiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen]{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgeD0iMTAiIHk9IjIwIiBjbGFzcz0iYSIgcng9IjUuNjciLz48cGF0aCBkPSJNMjAgNTBoMjB2MjBtLTIwIDAgMjAtMjBtNDAgMEg2MFYzMG0yMCAwTDYwIDUwIiBjbGFzcz0iYSIvPjwvc3ZnPg==")}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter]{background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNODcuOCA0Ny41Qzg5IDUwIDg3LjcgNTIgODUgNTJIMzVhOC43IDguNyAwIDAgMS03LjItNC41bC0xNS42LTMxQzExIDE0IDEyLjIgMTIgMTUgMTJoNTBhOC44IDguOCAwIDAgMSA3LjIgNC41ek02MCA1MnYzNm0tMTAgMGgyME00NSA0MmgyMCIvPjwvc3ZnPg==") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button.bespoke-marp-presenter-note-bigger{background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNMTIgNTBoODBNNTIgOTBWMTAiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button.bespoke-marp-presenter-note-smaller{background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNMTIgNTBoODAiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}}@keyframes __bespoke_marp_transition_reduced_outgoing__{0%{opacity:1}to{opacity:0}}@keyframes __bespoke_marp_transition_reduced_incoming__{0%{mix-blend-mode:plus-lighter;opacity:0}to{mix-blend-mode:plus-lighter;opacity:1}}.bespoke-marp-note,.bespoke-marp-osc,.bespoke-progress-parent{display:none;transition:none}@media screen{::view-transition-group(*){animation-duration:var(--marp-bespoke-transition-animation-duration,.5s);animation-timing-function:ease}::view-transition-new(*),::view-transition-old(*){animation-delay:0s;animation-direction:var(--marp-bespoke-transition-animation-direction,normal);animation-duration:var(--marp-bespoke-transition-animation-duration,.5s);animation-fill-mode:both;animation-name:var(--marp-bespoke-transition-animation-name,var(--marp-bespoke-transition-animation-name-fallback,__bespoke_marp_transition_no_animation__));mix-blend-mode:normal}::view-transition-old(*){--marp-bespoke-transition-animation-name-fallback:__bespoke_marp_transition_reduced_outgoing__;animation-timing-function:ease}::view-transition-new(*){--marp-bespoke-transition-animation-name-fallback:__bespoke_marp_transition_reduced_incoming__;animation-timing-function:ease}::view-transition-new(root),::view-transition-old(root){animation-timing-function:linear}::view-transition-new(__bespoke_marp_transition_osc__),::view-transition-old(__bespoke_marp_transition_osc__){animation-duration:0s!important;animation-name:__bespoke_marp_transition_osc__!important}::view-transition-new(__bespoke_marp_transition_osc__){opacity:0!important}.bespoke-marp-transition-warming-up::view-transition-group(*),.bespoke-marp-transition-warming-up::view-transition-new(*),.bespoke-marp-transition-warming-up::view-transition-old(*){animation-play-state:paused!important}body,html{height:100%;margin:0}body{background:#000;overflow:hidden}svg.bespoke-marp-slide{content-visibility:hidden;opacity:0;pointer-events:none;z-index:-1}svg.bespoke-marp-slide:not(.bespoke-marp-active) *{view-transition-name:none!important}svg.bespoke-marp-slide.bespoke-marp-active{content-visibility:visible;opacity:1;pointer-events:auto;z-index:0}svg.bespoke-marp-slide.bespoke-marp-active.bespoke-marp-active-ready *{animation-name:__bespoke_marp__!important}@supports not (content-visibility:hidden){svg.bespoke-marp-slide[data-bespoke-marp-load=hideable]{display:none}svg.bespoke-marp-slide[data-bespoke-marp-load=hideable].bespoke-marp-active{display:block}}}@media screen and (prefers-reduced-motion:reduce){svg.bespoke-marp-slide *{view-transition-name:none!important}}@media screen{[data-bespoke-marp-fragment=inactive]{visibility:hidden}body[data-bespoke-view=""] .bespoke-marp-parent,body[data-bespoke-view=next] .bespoke-marp-parent{inset:0;position:absolute}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc{view-transition-name:__bespoke_marp_transition_osc__;background:rgba(0,0,0,.65);border-radius:7px;bottom:50px;color:#fff;contain:paint;display:block;font-family:Helvetica,Arial,sans-serif;font-size:16px;left:50%;line-height:0;opacity:1;padding:12px;position:absolute;touch-action:manipulation;transform:translateX(-50%);transition:opacity .2s linear;-webkit-user-select:none;user-select:none;white-space:nowrap;will-change:transform;z-index:1}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>*,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>*{margin-left:6px}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>:first-child,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>:first-child{margin-left:0}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>span,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span{opacity:.8}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page]{display:inline-block;min-width:140px;text-align:center}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev]{height:32px;line-height:32px;width:32px}body[data-bespoke-view=""] .bespoke-marp-parent.bespoke-marp-inactive,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive{cursor:none}body[data-bespoke-view=""] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc{opacity:0;pointer-events:none}body[data-bespoke-view=""] svg.bespoke-marp-slide,body[data-bespoke-view=next] svg.bespoke-marp-slide{height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=""] .bespoke-progress-parent{background:#222;display:flex;height:5px;width:100%}body[data-bespoke-view=""] .bespoke-progress-parent+.bespoke-marp-parent{top:5px}body[data-bespoke-view=""] .bespoke-progress-parent .bespoke-progress-bar{background:#0288d1;flex:0 0 0;transition:flex-basis .2s cubic-bezier(0,1,1,1)}body[data-bespoke-view=next]{background:transparent}body[data-bespoke-view=presenter]{background:#161616}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container{display:grid;font-family:Helvetica,Arial,sans-serif;grid-template:"current dragbar next" minmax(140px,1fr) "current dragbar note" 2fr "info dragbar note" 3em;grid-template-columns:minmax(3px,var(--bespoke-marp-presenter-split-ratio,66%)) 0 minmax(3px,1fr);height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent{grid-area:current;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide{height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide.bespoke-marp-active{filter:drop-shadow(0 3px 10px rgba(0,0,0,.5))}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-dragbar-container{background:#0288d1;cursor:col-resize;grid-area:dragbar;margin-left:-3px;opacity:0;position:relative;transition:opacity .4s linear .1s;width:6px;z-index:10}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-dragbar-container:hover{opacity:1}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-dragbar-container.active{opacity:1;transition-delay:0s}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container{background:#222;cursor:pointer;display:none;grid-area:next;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container iframe.bespoke-marp-presenter-next{background:transparent;border:0;display:block;filter:drop-shadow(0 3px 10px rgba(0,0,0,.5));height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container{background:#222;color:#eee;grid-area:note;position:relative;z-index:1}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button{height:1.5em;line-height:1.5em;width:1.5em}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-presenter-note-wrapper{display:block;inset:0;position:absolute}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-presenter-note-buttons{background:rgba(0,0,0,.65);border-radius:4px;bottom:0;display:flex;gap:4px;margin:12px;opacity:0;padding:6px;pointer-events:none;position:absolute;right:0;transition:opacity .2s linear}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-presenter-note-buttons:focus-within,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-presenter-note-wrapper:focus-within+.bespoke-marp-presenter-note-buttons,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container:hover .bespoke-marp-presenter-note-buttons{opacity:1;pointer-events:auto}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note{word-wrap:break-word;box-sizing:border-box;font-size:calc(1.1em*var(--bespoke-marp-note-font-scale, 1));height:calc(100% - 40px);margin:20px;overflow:auto;padding-right:3px;scrollbar-color:hsla(0,0%,93%,.5) transparent;scrollbar-width:thin;white-space:pre-wrap;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar{width:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-track{background:transparent}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-thumb{background:hsla(0,0%,93%,.5);border-radius:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note:empty{pointer-events:none}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:first-child{margin-top:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:last-child{margin-bottom:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container{align-items:center;box-sizing:border-box;color:#eee;display:flex;flex-wrap:nowrap;grid-area:info;justify-content:center;overflow:hidden;padding:0 10px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{box-sizing:border-box;display:block;padding:0 10px;white-space:nowrap;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button{height:1.5em;line-height:1.5em;width:1.5em}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page{order:2;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page .bespoke-marp-presenter-info-page-text{display:inline-block;min-width:120px;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time{color:#999;order:1;text-align:left}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{color:#999;order:3;text-align:right}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer:hover{cursor:pointer}}@media print{.bespoke-marp-presenter-info-container,.bespoke-marp-presenter-next-container,.bespoke-marp-presenter-note-container{display:none}}</style><style>div#\:\$p>svg>foreignObject>section{width:1280px;height:720px;box-sizing:border-box;overflow:hidden;position:relative;scroll-snap-align:center center}div#\:\$p>svg>foreignObject>section:after{bottom:0;content:attr(data-marpit-pagination);padding:inherit;pointer-events:none;position:absolute;right:0}div#\:\$p>svg>foreignObject>section:not([data-marpit-pagination]):after{display:none}/* Normalization */div#\:\$p>svg>foreignObject>section :is(h1,marp-h1){font-size:2em;margin:0.67em 0}div#\:\$p>svg>foreignObject>section video::-webkit-media-controls{will-change:transform}@page{size:1280px 720px;margin:0}@media print{body,html{background-color:#fff;margin:0;page-break-inside:avoid;break-inside:avoid-page}div#\:\$p>svg>foreignObject>section{page-break-before:always;break-before:page}div#\:\$p>svg>foreignObject>section,div#\:\$p>svg>foreignObject>section *{-webkit-print-color-adjust:exact!important;animation-delay:0s!important;animation-duration:0s!important;color-adjust:exact!important;transition:none!important}div#\:\$p>svg[data-marpit-svg]{display:block;height:100vh;width:100vw}} +/*! + * Marp default theme. + * + * @theme default + * @author Yuki Hattori + * + * @auto-scaling true + * @size 16:9 1280px 720px + * @size 4:3 960px 720px + */div#\:\$p>svg>foreignObject>section,div#\:\$p>svg>foreignObject>section [data-theme=light]{--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-entity:#6639ba;--color-prettylights-syntax-storage-modifier-import:#24292f;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-variable:#953800;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-invalid-illegal-text:#f6f8fa;--color-prettylights-syntax-invalid-illegal-bg:#82071e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-italic:#24292f;--color-prettylights-syntax-markup-bold:#24292f;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-ignored-text:#eaeef2;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-brackethighlighter-angle:#57606a;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-fg-default:#1f2328;--color-fg-muted:#656d76;--color-fg-subtle:#6e7781;--color-canvas-default:#fff;--color-canvas-subtle:#f6f8fa;--color-border-default:#d0d7de;--color-border-muted:#d8dee4;--color-neutral-muted:rgba(175,184,193,.2);--color-accent-fg:#0969da;--color-accent-emphasis:#0969da;--color-attention-subtle:#fff8c5;--color-danger-fg:#d1242f;color-scheme:light}div#\:\$p>svg>foreignObject>section [data-theme=dark],div#\:\$p>svg>foreignObject>section:where(.invert){--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-storage-modifier-import:#c9d1d9;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-variable:#ffa657;--color-prettylights-syntax-brackethighlighter-unmatched:#f85149;--color-prettylights-syntax-invalid-illegal-text:#f0f6fc;--color-prettylights-syntax-invalid-illegal-bg:#8e1519;--color-prettylights-syntax-carriage-return-text:#f0f6fc;--color-prettylights-syntax-carriage-return-bg:#b62324;--color-prettylights-syntax-string-regexp:#7ee787;--color-prettylights-syntax-markup-list:#f2cc60;--color-prettylights-syntax-markup-heading:#1f6feb;--color-prettylights-syntax-markup-italic:#c9d1d9;--color-prettylights-syntax-markup-bold:#c9d1d9;--color-prettylights-syntax-markup-deleted-text:#ffdcd7;--color-prettylights-syntax-markup-deleted-bg:#67060c;--color-prettylights-syntax-markup-inserted-text:#aff5b4;--color-prettylights-syntax-markup-inserted-bg:#033a16;--color-prettylights-syntax-markup-changed-text:#ffdfb6;--color-prettylights-syntax-markup-changed-bg:#5a1e02;--color-prettylights-syntax-markup-ignored-text:#c9d1d9;--color-prettylights-syntax-markup-ignored-bg:#1158c7;--color-prettylights-syntax-meta-diff-range:#d2a8ff;--color-prettylights-syntax-brackethighlighter-angle:#8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant-other-reference-link:#a5d6ff;--color-fg-default:#e6edf3;--color-fg-muted:#7d8590;--color-fg-subtle:#6e7681;--color-canvas-default:#0d1117;--color-canvas-subtle:#161b22;--color-border-default:#30363d;--color-border-muted:#21262d;--color-neutral-muted:hsla(215,8%,47%,.4);--color-accent-fg:#2f81f7;--color-accent-emphasis:#1f6feb;--color-attention-subtle:rgba(187,128,9,.15);--color-danger-fg:#f85149;color-scheme:dark}div#\:\$p>svg>foreignObject>section{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;word-wrap:break-word;background-color:var(--color-canvas-default);color:var(--color-fg-default);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5;margin:0}div#\:\$p>svg>foreignObject>section{--marpit-root-font-size:16px}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1):hover .anchor .octicon-link:before,div#\:\$p>svg>foreignObject>section :is(h2,marp-h2):hover .anchor .octicon-link:before,div#\:\$p>svg>foreignObject>section :is(h3,marp-h3):hover .anchor .octicon-link:before,div#\:\$p>svg>foreignObject>section :is(h4,marp-h4):hover .anchor .octicon-link:before,div#\:\$p>svg>foreignObject>section :is(h5,marp-h5):hover .anchor .octicon-link:before,div#\:\$p>svg>foreignObject>section :is(h6,marp-h6):hover .anchor .octicon-link:before{background-color:currentColor;content:" ";display:inline-block;height:16px;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0z"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0z"/></svg>');width:16px}div#\:\$p>svg>foreignObject>section details,div#\:\$p>svg>foreignObject>section figcaption,div#\:\$p>svg>foreignObject>section figure{display:block}div#\:\$p>svg>foreignObject>section summary{display:list-item}div#\:\$p>svg>foreignObject>section [hidden]{display:none!important}div#\:\$p>svg>foreignObject>section a{background-color:transparent;color:var(--color-accent-fg);text-decoration:none}div#\:\$p>svg>foreignObject>section abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}div#\:\$p>svg>foreignObject>section b,div#\:\$p>svg>foreignObject>section strong{font-weight:var(--base-text-weight-semibold,600)}div#\:\$p>svg>foreignObject>section dfn{font-style:italic}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1){border-bottom:1px solid var(--color-border-muted);font-size:2em;font-weight:var(--base-text-weight-semibold,600);margin:.67em 0;padding-bottom:.3em}div#\:\$p>svg>foreignObject>section mark{background-color:var(--color-attention-subtle);color:var(--color-fg-default)}div#\:\$p>svg>foreignObject>section small{font-size:90%}div#\:\$p>svg>foreignObject>section sub,div#\:\$p>svg>foreignObject>section sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}div#\:\$p>svg>foreignObject>section sub{bottom:-.25em}div#\:\$p>svg>foreignObject>section sup{top:-.5em}div#\:\$p>svg>foreignObject>section img{background-color:var(--color-canvas-default);border-style:none;box-sizing:content-box;max-width:100%}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre),div#\:\$p>svg>foreignObject>section code,div#\:\$p>svg>foreignObject>section kbd,div#\:\$p>svg>foreignObject>section samp{font-family:monospace;font-size:1em}div#\:\$p>svg>foreignObject>section figure{margin:1em 40px}div#\:\$p>svg>foreignObject>section hr{background:transparent;background-color:var(--color-border-default);border:0;box-sizing:content-box;height:.25em;margin:24px 0;overflow:hidden;padding:0}div#\:\$p>svg>foreignObject>section input{font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible}div#\:\$p>svg>foreignObject>section [type=button],div#\:\$p>svg>foreignObject>section [type=reset],div#\:\$p>svg>foreignObject>section [type=submit]{-webkit-appearance:button}div#\:\$p>svg>foreignObject>section [type=checkbox],div#\:\$p>svg>foreignObject>section [type=radio]{box-sizing:border-box;padding:0}div#\:\$p>svg>foreignObject>section [type=number]::-webkit-inner-spin-button,div#\:\$p>svg>foreignObject>section [type=number]::-webkit-outer-spin-button{height:auto}div#\:\$p>svg>foreignObject>section [type=search]::-webkit-search-cancel-button,div#\:\$p>svg>foreignObject>section [type=search]::-webkit-search-decoration{-webkit-appearance:none}div#\:\$p>svg>foreignObject>section ::-webkit-input-placeholder{color:inherit;opacity:.54}div#\:\$p>svg>foreignObject>section ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}div#\:\$p>svg>foreignObject>section a:hover{text-decoration:underline}div#\:\$p>svg>foreignObject>section ::-moz-placeholder{color:var(--color-fg-subtle);opacity:1}div#\:\$p>svg>foreignObject>section ::placeholder{color:var(--color-fg-subtle);opacity:1}div#\:\$p>svg>foreignObject>section hr:after,div#\:\$p>svg>foreignObject>section hr:before{content:"";display:table}div#\:\$p>svg>foreignObject>section hr:after{clear:both}div#\:\$p>svg>foreignObject>section table{border-collapse:collapse;border-spacing:0;display:block;max-width:100%;overflow:auto;width:-moz-max-content;width:max-content}div#\:\$p>svg>foreignObject>section td,div#\:\$p>svg>foreignObject>section th{padding:0}div#\:\$p>svg>foreignObject>section details summary{cursor:pointer}div#\:\$p>svg>foreignObject>section details:not([open])>:not(summary){display:none!important}div#\:\$p>svg>foreignObject>section [role=button]:focus,div#\:\$p>svg>foreignObject>section a:focus,div#\:\$p>svg>foreignObject>section input[type=checkbox]:focus,div#\:\$p>svg>foreignObject>section input[type=radio]:focus{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}div#\:\$p>svg>foreignObject>section [role=button]:focus:not(:focus-visible),div#\:\$p>svg>foreignObject>section a:focus:not(:focus-visible),div#\:\$p>svg>foreignObject>section input[type=checkbox]:focus:not(:focus-visible),div#\:\$p>svg>foreignObject>section input[type=radio]:focus:not(:focus-visible){outline:1px solid transparent}div#\:\$p>svg>foreignObject>section [role=button]:focus-visible,div#\:\$p>svg>foreignObject>section a:focus-visible,div#\:\$p>svg>foreignObject>section input[type=checkbox]:focus-visible,div#\:\$p>svg>foreignObject>section input[type=radio]:focus-visible{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}div#\:\$p>svg>foreignObject>section a:not([class]):focus,div#\:\$p>svg>foreignObject>section a:not([class]):focus-visible,div#\:\$p>svg>foreignObject>section input[type=checkbox]:focus,div#\:\$p>svg>foreignObject>section input[type=checkbox]:focus-visible,div#\:\$p>svg>foreignObject>section input[type=radio]:focus,div#\:\$p>svg>foreignObject>section input[type=radio]:focus-visible{outline-offset:0}div#\:\$p>svg>foreignObject>section kbd{background-color:var(--color-canvas-subtle);border-bottom-color:var(--color-neutral-muted);border:1px solid var(--color-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--color-neutral-muted);color:var(--color-fg-default);display:inline-block;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1),div#\:\$p>svg>foreignObject>section :is(h2,marp-h2),div#\:\$p>svg>foreignObject>section :is(h3,marp-h3),div#\:\$p>svg>foreignObject>section :is(h4,marp-h4),div#\:\$p>svg>foreignObject>section :is(h5,marp-h5),div#\:\$p>svg>foreignObject>section :is(h6,marp-h6){font-weight:var(--base-text-weight-semibold,600);line-height:1.25;margin-bottom:16px;margin-top:24px}div#\:\$p>svg>foreignObject>section :is(h2,marp-h2){border-bottom:1px solid var(--color-border-muted);font-size:1.5em;padding-bottom:.3em}div#\:\$p>svg>foreignObject>section :is(h2,marp-h2),div#\:\$p>svg>foreignObject>section :is(h3,marp-h3){font-weight:var(--base-text-weight-semibold,600)}div#\:\$p>svg>foreignObject>section :is(h3,marp-h3){font-size:1.25em}div#\:\$p>svg>foreignObject>section :is(h4,marp-h4){font-size:1em}div#\:\$p>svg>foreignObject>section :is(h4,marp-h4),div#\:\$p>svg>foreignObject>section :is(h5,marp-h5){font-weight:var(--base-text-weight-semibold,600)}div#\:\$p>svg>foreignObject>section :is(h5,marp-h5){font-size:.875em}div#\:\$p>svg>foreignObject>section :is(h6,marp-h6){color:var(--color-fg-muted);font-size:.85em;font-weight:var(--base-text-weight-semibold,600)}div#\:\$p>svg>foreignObject>section p{margin-bottom:10px;margin-top:0}div#\:\$p>svg>foreignObject>section blockquote{border-left:.25em solid var(--color-border-default);color:var(--color-fg-muted);margin:0;padding:0 1em}div#\:\$p>svg>foreignObject>section ol,div#\:\$p>svg>foreignObject>section ul{margin-bottom:0;margin-top:0;padding-left:2em}div#\:\$p>svg>foreignObject>section ol ol,div#\:\$p>svg>foreignObject>section ul ol{list-style-type:lower-roman}div#\:\$p>svg>foreignObject>section ol ol ol,div#\:\$p>svg>foreignObject>section ol ul ol,div#\:\$p>svg>foreignObject>section ul ol ol,div#\:\$p>svg>foreignObject>section ul ul ol{list-style-type:lower-alpha}div#\:\$p>svg>foreignObject>section dd{margin-left:0}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre),div#\:\$p>svg>foreignObject>section code,div#\:\$p>svg>foreignObject>section samp,div#\:\$p>svg>foreignObject>section tt{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre){word-wrap:normal;margin-bottom:0;margin-top:0}div#\:\$p>svg>foreignObject>section .octicon{fill:currentColor;display:inline-block;overflow:visible!important;vertical-align:text-bottom}div#\:\$p>svg>foreignObject>section input::-webkit-inner-spin-button,div#\:\$p>svg>foreignObject>section input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}div#\:\$p>svg>foreignObject>section:after,div#\:\$p>svg>foreignObject>section:before{ + /* content:""; */display:table}div#\:\$p>svg>foreignObject>section:after{clear:both}div#\:\$p>svg>foreignObject>section>:first-child{margin-top:0!important}div#\:\$p>svg>foreignObject>section>:last-child{margin-bottom:0!important}div#\:\$p>svg>foreignObject>section a:not([href]){color:inherit;text-decoration:none}div#\:\$p>svg>foreignObject>section .absent{color:var(--color-danger-fg)}div#\:\$p>svg>foreignObject>section .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}div#\:\$p>svg>foreignObject>section .anchor:focus{outline:none}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre),div#\:\$p>svg>foreignObject>section blockquote,div#\:\$p>svg>foreignObject>section details,div#\:\$p>svg>foreignObject>section dl,div#\:\$p>svg>foreignObject>section ol,div#\:\$p>svg>foreignObject>section p,div#\:\$p>svg>foreignObject>section table,div#\:\$p>svg>foreignObject>section ul{margin-bottom:16px;margin-top:0}div#\:\$p>svg>foreignObject>section blockquote>:first-child{margin-top:0}div#\:\$p>svg>foreignObject>section blockquote>:last-child{margin-bottom:0}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1) .octicon-link,div#\:\$p>svg>foreignObject>section :is(h2,marp-h2) .octicon-link,div#\:\$p>svg>foreignObject>section :is(h3,marp-h3) .octicon-link,div#\:\$p>svg>foreignObject>section :is(h4,marp-h4) .octicon-link,div#\:\$p>svg>foreignObject>section :is(h5,marp-h5) .octicon-link,div#\:\$p>svg>foreignObject>section :is(h6,marp-h6) .octicon-link{color:var(--color-fg-default);vertical-align:middle;visibility:hidden}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1):hover .anchor,div#\:\$p>svg>foreignObject>section :is(h2,marp-h2):hover .anchor,div#\:\$p>svg>foreignObject>section :is(h3,marp-h3):hover .anchor,div#\:\$p>svg>foreignObject>section :is(h4,marp-h4):hover .anchor,div#\:\$p>svg>foreignObject>section :is(h5,marp-h5):hover .anchor,div#\:\$p>svg>foreignObject>section :is(h6,marp-h6):hover .anchor{text-decoration:none}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1):hover .anchor .octicon-link,div#\:\$p>svg>foreignObject>section :is(h2,marp-h2):hover .anchor .octicon-link,div#\:\$p>svg>foreignObject>section :is(h3,marp-h3):hover .anchor .octicon-link,div#\:\$p>svg>foreignObject>section :is(h4,marp-h4):hover .anchor .octicon-link,div#\:\$p>svg>foreignObject>section :is(h5,marp-h5):hover .anchor .octicon-link,div#\:\$p>svg>foreignObject>section :is(h6,marp-h6):hover .anchor .octicon-link{visibility:visible}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1) code,div#\:\$p>svg>foreignObject>section :is(h1,marp-h1) tt,div#\:\$p>svg>foreignObject>section :is(h2,marp-h2) code,div#\:\$p>svg>foreignObject>section :is(h2,marp-h2) tt,div#\:\$p>svg>foreignObject>section :is(h3,marp-h3) code,div#\:\$p>svg>foreignObject>section :is(h3,marp-h3) tt,div#\:\$p>svg>foreignObject>section :is(h4,marp-h4) code,div#\:\$p>svg>foreignObject>section :is(h4,marp-h4) tt,div#\:\$p>svg>foreignObject>section :is(h5,marp-h5) code,div#\:\$p>svg>foreignObject>section :is(h5,marp-h5) tt,div#\:\$p>svg>foreignObject>section :is(h6,marp-h6) code,div#\:\$p>svg>foreignObject>section :is(h6,marp-h6) tt{font-size:inherit;padding:0 .2em}div#\:\$p>svg>foreignObject>section summary :is(h1,marp-h1),div#\:\$p>svg>foreignObject>section summary :is(h2,marp-h2),div#\:\$p>svg>foreignObject>section summary :is(h3,marp-h3),div#\:\$p>svg>foreignObject>section summary :is(h4,marp-h4),div#\:\$p>svg>foreignObject>section summary :is(h5,marp-h5),div#\:\$p>svg>foreignObject>section summary :is(h6,marp-h6){display:inline-block}div#\:\$p>svg>foreignObject>section summary :is(h1,marp-h1) .anchor,div#\:\$p>svg>foreignObject>section summary :is(h2,marp-h2) .anchor,div#\:\$p>svg>foreignObject>section summary :is(h3,marp-h3) .anchor,div#\:\$p>svg>foreignObject>section summary :is(h4,marp-h4) .anchor,div#\:\$p>svg>foreignObject>section summary :is(h5,marp-h5) .anchor,div#\:\$p>svg>foreignObject>section summary :is(h6,marp-h6) .anchor{margin-left:-40px}div#\:\$p>svg>foreignObject>section summary :is(h1,marp-h1),div#\:\$p>svg>foreignObject>section summary :is(h2,marp-h2){border-bottom:0;padding-bottom:0}div#\:\$p>svg>foreignObject>section ol.no-list,div#\:\$p>svg>foreignObject>section ul.no-list{list-style-type:none;padding:0}div#\:\$p>svg>foreignObject>section ol[type="a s"]{list-style-type:lower-alpha}div#\:\$p>svg>foreignObject>section ol[type="A s"]{list-style-type:upper-alpha}div#\:\$p>svg>foreignObject>section ol[type="i s"]{list-style-type:lower-roman}div#\:\$p>svg>foreignObject>section ol[type="I s"]{list-style-type:upper-roman}div#\:\$p>svg>foreignObject>section div>ol:not([type]),div#\:\$p>svg>foreignObject>section ol[type="1"]{list-style-type:decimal}div#\:\$p>svg>foreignObject>section ol ol,div#\:\$p>svg>foreignObject>section ol ul,div#\:\$p>svg>foreignObject>section ul ol,div#\:\$p>svg>foreignObject>section ul ul{margin-bottom:0;margin-top:0}div#\:\$p>svg>foreignObject>section li>p{margin-top:16px}div#\:\$p>svg>foreignObject>section li+li{margin-top:.25em}div#\:\$p>svg>foreignObject>section dl{padding:0}div#\:\$p>svg>foreignObject>section dl dt{font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold,600);margin-top:16px;padding:0}div#\:\$p>svg>foreignObject>section dl dd{margin-bottom:16px;padding:0 16px}div#\:\$p>svg>foreignObject>section table th{font-weight:var(--base-text-weight-semibold,600)}div#\:\$p>svg>foreignObject>section table td,div#\:\$p>svg>foreignObject>section table th{border:1px solid var(--color-border-default);padding:6px 13px}div#\:\$p>svg>foreignObject>section table td>:last-child{margin-bottom:0}div#\:\$p>svg>foreignObject>section table tr{background-color:var(--color-canvas-default);border-top:1px solid var(--color-border-muted)}div#\:\$p>svg>foreignObject>section table tr:nth-child(2n){background-color:var(--color-canvas-subtle)}div#\:\$p>svg>foreignObject>section table img{background-color:transparent}div#\:\$p>svg>foreignObject>section img[align=right]{padding-left:20px}div#\:\$p>svg>foreignObject>section img[align=left]{padding-right:20px}div#\:\$p>svg>foreignObject>section .emoji{background-color:transparent;max-width:none;vertical-align:text-top}div#\:\$p>svg>foreignObject>section :is(span,marp-span).frame,div#\:\$p>svg>foreignObject>section :is(span,marp-span).frame>:is(span,marp-span){display:block;overflow:hidden}div#\:\$p>svg>foreignObject>section :is(span,marp-span).frame>:is(span,marp-span){border:1px solid var(--color-border-default);float:left;margin:13px 0 0;padding:7px;width:auto}div#\:\$p>svg>foreignObject>section :is(span,marp-span).frame :is(span,marp-span) img{display:block;float:left}div#\:\$p>svg>foreignObject>section :is(span,marp-span).frame :is(span,marp-span) :is(span,marp-span){clear:both;color:var(--color-fg-default);display:block;padding:5px 0 0}div#\:\$p>svg>foreignObject>section :is(span,marp-span).align-center{clear:both;display:block;overflow:hidden}div#\:\$p>svg>foreignObject>section :is(span,marp-span).align-center>:is(span,marp-span){display:block;margin:13px auto 0;overflow:hidden;text-align:center}div#\:\$p>svg>foreignObject>section :is(span,marp-span).align-center :is(span,marp-span) img{margin:0 auto;text-align:center}div#\:\$p>svg>foreignObject>section :is(span,marp-span).align-right{clear:both;display:block;overflow:hidden}div#\:\$p>svg>foreignObject>section :is(span,marp-span).align-right>:is(span,marp-span){display:block;margin:13px 0 0;overflow:hidden;text-align:right}div#\:\$p>svg>foreignObject>section :is(span,marp-span).align-right :is(span,marp-span) img{margin:0;text-align:right}div#\:\$p>svg>foreignObject>section :is(span,marp-span).float-left{display:block;float:left;margin-right:13px;overflow:hidden}div#\:\$p>svg>foreignObject>section :is(span,marp-span).float-left :is(span,marp-span){margin:13px 0 0}div#\:\$p>svg>foreignObject>section :is(span,marp-span).float-right{display:block;float:right;margin-left:13px;overflow:hidden}div#\:\$p>svg>foreignObject>section :is(span,marp-span).float-right>:is(span,marp-span){display:block;margin:13px auto 0;overflow:hidden;text-align:right}div#\:\$p>svg>foreignObject>section code,div#\:\$p>svg>foreignObject>section tt{background-color:var(--color-neutral-muted);border-radius:6px;font-size:85%;margin:0;padding:.2em .4em;white-space:break-spaces}div#\:\$p>svg>foreignObject>section code br,div#\:\$p>svg>foreignObject>section tt br{display:none}div#\:\$p>svg>foreignObject>section del code{text-decoration:inherit}div#\:\$p>svg>foreignObject>section samp{font-size:85%}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) code{font-size:100%}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre)>code{background:transparent;border:0;margin:0;padding:0;white-space:pre;word-break:normal}div#\:\$p>svg>foreignObject>section .highlight{margin-bottom:16px}div#\:\$p>svg>foreignObject>section .highlight :is(pre,marp-pre){margin-bottom:0;word-break:normal}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre){background-color:var(--color-canvas-subtle);border-radius:6px;color:var(--color-fg-default);font-size:85%;line-height:1.45;overflow:auto;padding:16px}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) code,div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) tt{word-wrap:normal;background-color:transparent;border:0;display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0}div#\:\$p>svg>foreignObject>section .csv-data td,div#\:\$p>svg>foreignObject>section .csv-data th{font-size:12px;line-height:1;overflow:hidden;padding:5px;text-align:left;white-space:nowrap}div#\:\$p>svg>foreignObject>section .csv-data .blob-num{background:var(--color-canvas-default);border:0;padding:10px 8px 9px;text-align:right}div#\:\$p>svg>foreignObject>section .csv-data tr{border-top:0}div#\:\$p>svg>foreignObject>section .csv-data th{background:var(--color-canvas-subtle);border-top:0;font-weight:var(--base-text-weight-semibold,600)}div#\:\$p>svg>foreignObject>section [data-footnote-ref]:before{content:"["}div#\:\$p>svg>foreignObject>section [data-footnote-ref]:after{content:"]"}div#\:\$p>svg>foreignObject>section .footnotes{border-top:1px solid var(--color-border-default);color:var(--color-fg-muted);font-size:12px}div#\:\$p>svg>foreignObject>section div#\:\$p>svg>foreignObject>section section.footnotes{--marpit-root-font-size:12px}div#\:\$p>svg>foreignObject>section .footnotes ol{padding-left:16px}div#\:\$p>svg>foreignObject>section .footnotes ol ul{display:inline-block;margin-top:16px;padding-left:16px}div#\:\$p>svg>foreignObject>section .footnotes li{position:relative}div#\:\$p>svg>foreignObject>section .footnotes li:target:before{border:2px solid var(--color-accent-emphasis);border-radius:6px;bottom:-8px;content:"";left:-24px;pointer-events:none;position:absolute;right:-8px;top:-8px}div#\:\$p>svg>foreignObject>section .footnotes li:target{color:var(--color-fg-default)}div#\:\$p>svg>foreignObject>section .footnotes .data-footnote-backref g-emoji{font-family:monospace}div#\:\$p>svg>foreignObject>section .pl-c{color:var(--color-prettylights-syntax-comment)}div#\:\$p>svg>foreignObject>section .pl-c1,div#\:\$p>svg>foreignObject>section .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}div#\:\$p>svg>foreignObject>section .pl-e,div#\:\$p>svg>foreignObject>section .pl-en{color:var(--color-prettylights-syntax-entity)}div#\:\$p>svg>foreignObject>section .pl-s .pl-s1,div#\:\$p>svg>foreignObject>section .pl-smi{color:var(--color-prettylights-syntax-storage-modifier-import)}div#\:\$p>svg>foreignObject>section .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}div#\:\$p>svg>foreignObject>section .pl-k{color:var(--color-prettylights-syntax-keyword)}div#\:\$p>svg>foreignObject>section .pl-pds,div#\:\$p>svg>foreignObject>section .pl-s,div#\:\$p>svg>foreignObject>section .pl-s .pl-pse .pl-s1,div#\:\$p>svg>foreignObject>section .pl-sr,div#\:\$p>svg>foreignObject>section .pl-sr .pl-cce,div#\:\$p>svg>foreignObject>section .pl-sr .pl-sra,div#\:\$p>svg>foreignObject>section .pl-sr .pl-sre{color:var(--color-prettylights-syntax-string)}div#\:\$p>svg>foreignObject>section .pl-smw,div#\:\$p>svg>foreignObject>section .pl-v{color:var(--color-prettylights-syntax-variable)}div#\:\$p>svg>foreignObject>section .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}div#\:\$p>svg>foreignObject>section .pl-ii{background-color:var(--color-prettylights-syntax-invalid-illegal-bg);color:var(--color-prettylights-syntax-invalid-illegal-text)}div#\:\$p>svg>foreignObject>section .pl-c2{background-color:var(--color-prettylights-syntax-carriage-return-bg);color:var(--color-prettylights-syntax-carriage-return-text)}div#\:\$p>svg>foreignObject>section .pl-sr .pl-cce{color:var(--color-prettylights-syntax-string-regexp);font-weight:700}div#\:\$p>svg>foreignObject>section .pl-ml{color:var(--color-prettylights-syntax-markup-list)}div#\:\$p>svg>foreignObject>section .pl-mh,div#\:\$p>svg>foreignObject>section .pl-mh .pl-en,div#\:\$p>svg>foreignObject>section .pl-ms{color:var(--color-prettylights-syntax-markup-heading);font-weight:700}div#\:\$p>svg>foreignObject>section .pl-mi{color:var(--color-prettylights-syntax-markup-italic);font-style:italic}div#\:\$p>svg>foreignObject>section .pl-mb{color:var(--color-prettylights-syntax-markup-bold);font-weight:700}div#\:\$p>svg>foreignObject>section .pl-md{background-color:var(--color-prettylights-syntax-markup-deleted-bg);color:var(--color-prettylights-syntax-markup-deleted-text)}div#\:\$p>svg>foreignObject>section .pl-mi1{background-color:var(--color-prettylights-syntax-markup-inserted-bg);color:var(--color-prettylights-syntax-markup-inserted-text)}div#\:\$p>svg>foreignObject>section .pl-mc{background-color:var(--color-prettylights-syntax-markup-changed-bg);color:var(--color-prettylights-syntax-markup-changed-text)}div#\:\$p>svg>foreignObject>section .pl-mi2{background-color:var(--color-prettylights-syntax-markup-ignored-bg);color:var(--color-prettylights-syntax-markup-ignored-text)}div#\:\$p>svg>foreignObject>section .pl-mdr{color:var(--color-prettylights-syntax-meta-diff-range);font-weight:700}div#\:\$p>svg>foreignObject>section .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}div#\:\$p>svg>foreignObject>section .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}div#\:\$p>svg>foreignObject>section .pl-corl{color:var(--color-prettylights-syntax-constant-other-reference-link);text-decoration:underline}div#\:\$p>svg>foreignObject>section g-emoji{display:inline-block;font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:var(--base-text-weight-normal,400);line-height:1;min-width:1ch;vertical-align:-.075em}div#\:\$p>svg>foreignObject>section g-emoji img{height:1em;width:1em}div#\:\$p>svg>foreignObject>section .task-list-item{list-style-type:none}div#\:\$p>svg>foreignObject>section .task-list-item label{font-weight:var(--base-text-weight-normal,400)}div#\:\$p>svg>foreignObject>section .task-list-item.enabled label{cursor:pointer}div#\:\$p>svg>foreignObject>section .task-list-item+.task-list-item{margin-top:4px}div#\:\$p>svg>foreignObject>section .task-list-item .handle{display:none}div#\:\$p>svg>foreignObject>section .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}div#\:\$p>svg>foreignObject>section .contains-task-list:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}div#\:\$p>svg>foreignObject>section .contains-task-list{position:relative}div#\:\$p>svg>foreignObject>section .contains-task-list:focus-within .task-list-item-convert-container,div#\:\$p>svg>foreignObject>section .contains-task-list:hover .task-list-item-convert-container{clip:auto;display:block;height:24px;overflow:visible;width:auto}div#\:\$p>svg>foreignObject>section ::-webkit-calendar-picker-indicator{filter:invert(50%)}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1){color:var(--h1-color);font-size:1.6em}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1),div#\:\$p>svg>foreignObject>section :is(h2,marp-h2){border-bottom:none}div#\:\$p>svg>foreignObject>section :is(h2,marp-h2){font-size:1.3em}div#\:\$p>svg>foreignObject>section :is(h3,marp-h3){font-size:1.1em}div#\:\$p>svg>foreignObject>section :is(h4,marp-h4){font-size:1.05em}div#\:\$p>svg>foreignObject>section :is(h5,marp-h5){font-size:1em}div#\:\$p>svg>foreignObject>section :is(h6,marp-h6){font-size:.9em}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1) strong,div#\:\$p>svg>foreignObject>section :is(h2,marp-h2) strong,div#\:\$p>svg>foreignObject>section :is(h3,marp-h3) strong,div#\:\$p>svg>foreignObject>section :is(h4,marp-h4) strong,div#\:\$p>svg>foreignObject>section :is(h5,marp-h5) strong,div#\:\$p>svg>foreignObject>section :is(h6,marp-h6) strong{color:var(--heading-strong-color);font-weight:inherit}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1)::part(auto-scaling),div#\:\$p>svg>foreignObject>section :is(h2,marp-h2)::part(auto-scaling),div#\:\$p>svg>foreignObject>section :is(h3,marp-h3)::part(auto-scaling),div#\:\$p>svg>foreignObject>section :is(h4,marp-h4)::part(auto-scaling),div#\:\$p>svg>foreignObject>section :is(h5,marp-h5)::part(auto-scaling),div#\:\$p>svg>foreignObject>section :is(h6,marp-h6)::part(auto-scaling){max-height:563px}div#\:\$p>svg>foreignObject>section hr{height:0;padding-top:.25em}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre){border:1px solid var(--color-border-default);line-height:1.15;overflow:visible}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre)::part(auto-scaling){max-height:529px}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs){color:var(--color-prettylights-syntax-storage-modifier-import)}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-doctag),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-keyword),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-meta .hljs-keyword),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-template-tag),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-template-variable),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-type),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-variable.language_){color:var(--color-prettylights-syntax-keyword)}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-title),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-title.class_),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-title.class_.inherited__),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-title.function_){color:var(--color-prettylights-syntax-entity)}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-attr),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-attribute),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-literal),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-meta),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-number),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-operator),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-selector-attr),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-selector-class),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-selector-id),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-variable){color:var(--color-prettylights-syntax-constant)}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-meta .hljs-string),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-regexp),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-string){color:var(--color-prettylights-syntax-string)}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-built_in),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-symbol){color:var(--color-prettylights-syntax-variable)}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-code),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-comment),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-formula){color:var(--color-prettylights-syntax-comment)}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-name),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-quote),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-selector-pseudo),div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-selector-tag){color:var(--color-prettylights-syntax-entity-tag)}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-subst){color:var(--color-prettylights-syntax-storage-modifier-import)}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-section){color:var(--color-prettylights-syntax-markup-heading);font-weight:700}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-bullet){color:var(--color-prettylights-syntax-markup-list)}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-emphasis){color:var(--color-prettylights-syntax-markup-italic);font-style:italic}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-strong){color:var(--color-prettylights-syntax-markup-bold);font-weight:700}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-addition){background-color:var(--color-prettylights-syntax-markup-inserted-bg);color:var(--color-prettylights-syntax-markup-inserted-text)}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) :where(.hljs-deletion){background-color:var(--color-prettylights-syntax-markup-deleted-bg);color:var(--color-prettylights-syntax-markup-deleted-text)}div#\:\$p>svg>foreignObject>section footer,div#\:\$p>svg>foreignObject>section header{color:var(--header-footer-color);font-size:18px;left:30px;margin:0;position:absolute}div#\:\$p>svg>foreignObject>section header{top:21px}div#\:\$p>svg>foreignObject>section footer{bottom:21px}div#\:\$p>svg>foreignObject>section{--h1-color:#246;--header-footer-color:hsla(0,0%,40%,.75);--heading-strong-color:#48c;--paginate-color:#777;align-items:stretch;display:flex;flex-flow:column nowrap;font-size:29px;height:720px;justify-content:center;padding:78.5px;width:1280px}div#\:\$p>svg>foreignObject>section{--marpit-root-font-size:29px}div#\:\$p>svg>foreignObject>section:where(.invert){--h1-color:#cee7ff;--header-footer-color:hsla(0,0%,60%,.75);--heading-strong-color:#7bf;--paginate-color:#999}div#\:\$p>svg>foreignObject>section>:last-child,div#\:\$p>svg>foreignObject>section[data-footer]>:nth-last-child(2){margin-bottom:0}div#\:\$p>svg>foreignObject>section>:first-child,div#\:\$p>svg>foreignObject>section>header:first-child+*{margin-top:0}div#\:\$p>svg>foreignObject>section:after{bottom:21px;color:var(--paginate-color);font-size:24px;padding:0;position:absolute;right:30px}div#\:\$p>svg>foreignObject>section:after{--marpit-root-font-size:24px}div#\:\$p>svg>foreignObject>section[data-color] :is(h1,marp-h1),div#\:\$p>svg>foreignObject>section[data-color] :is(h2,marp-h2),div#\:\$p>svg>foreignObject>section[data-color] :is(h3,marp-h3),div#\:\$p>svg>foreignObject>section[data-color] :is(h4,marp-h4),div#\:\$p>svg>foreignObject>section[data-color] :is(h5,marp-h5),div#\:\$p>svg>foreignObject>section[data-color] :is(h6,marp-h6){color:currentcolor}div#\:\$p>svg>foreignObject>:where(section){container-type:size}div#\:\$p>svg>foreignObject>section img[data-marp-twemoji]{background:transparent;height:1em;margin:0 .05em 0 .1em;vertical-align:-.1em;width:1em} + +/* @theme cr */div#\:\$p>svg>foreignObject>section{background-image:url('./logo.svg');background-repeat:no-repeat;background-position:right calc(var(--marpit-root-font-size, 1rem) * 2) bottom calc(var(--marpit-root-font-size, 1rem) * 0.6);background-size:12%}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1){color:#828db2;font-size:calc(var(--marpit-root-font-size, 1rem) * 2.1)}div#\:\$p>svg>foreignObject>section :is(h2,marp-h2){background-color:#828db2;color:#fff;padding:calc(var(--marpit-root-font-size, 1rem) * 0.3);font-size:calc(var(--marpit-root-font-size, 1rem) * 2.1)}div#\:\$p>svg>foreignObject>section p{font-size:calc(var(--marpit-root-font-size, 1rem) * 1.3)}div#\:\$p>svg>foreignObject>section ol,div#\:\$p>svg>foreignObject>section ul{font-size:calc(var(--marpit-root-font-size, 1rem) * 1.2)}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]{columns:initial!important;display:block!important;padding:0!important}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]:after,div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]:before,div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=content]:after,div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=content]:before{display:none!important}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]{all:initial;display:flex;flex-direction:row;height:100%;overflow:hidden;width:100%}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container][data-marpit-advanced-background-direction=vertical]{flex-direction:column}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split]>div[data-marpit-advanced-background-container]{width:var(--marpit-advanced-background-split,50%)}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split=right]>div[data-marpit-advanced-background-container]{margin-left:calc(100% - var(--marpit-advanced-background-split, 50%))}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]>figure{all:initial;background-position:center;background-repeat:no-repeat;background-size:cover;flex:auto;margin:0}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]>figure>figcaption{position:absolute;border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;white-space:nowrap;width:1px}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=content],div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=pseudo]{background:transparent!important}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=pseudo],div#\:\$p>svg[data-marpit-svg]>foreignObject[data-marpit-advanced-background=pseudo]{pointer-events:none!important}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background-split]{width:100%;height:100%}</style></head><body><div class="bespoke-marp-osc"><button data-bespoke-marp-osc="prev" tabindex="-1" title="Previous slide">Previous slide</button><span data-bespoke-marp-osc="page"></span><button data-bespoke-marp-osc="next" tabindex="-1" title="Next slide">Next slide</button><button data-bespoke-marp-osc="fullscreen" tabindex="-1" title="Toggle fullscreen (f)">Toggle fullscreen</button><button data-bespoke-marp-osc="presenter" tabindex="-1" title="Open presenter view (p)">Open presenter view</button></div><div id=":$p"><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="1" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="1" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h1 id="gears-os%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%A8db">Gears OSのファイルシステムとDB</h1> + +<p>琉球大学 理工学研究科 知能情報プログラム<br /> +河野研究室</p> +<p>又吉 雄斗, 佐野 巧曜, 河野 真治</p> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="2" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="2" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E5%85%A8%E4%BD%93%E3%81%AE%E4%BF%A1%E9%A0%BC%E6%80%A7%E3%82%92%E4%B8%8A%E3%81%92%E3%81%9F%E3%81%84">システム全体の信頼性を上げたい</h2> +<ul> +<li>システムの構成要素全体の信頼性を上げる必要がある +<ul> +<li>アプリケーション</li> +<li>OS</li> +<li>ファイルシステム</li> +<li>DB</li> +<li>メモリとSSD</li> +<li>分散ノード</li> +<li>ネットワーク</li> +</ul> +</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="3" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="3" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="gears-os%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E5%AE%9F%E7%8F%BE%E3%81%99%E3%82%8B">Gears OSを使って実現する</h2> +<ul> +<li>CodeGear +<ul> +<li>処理の単位</li> +</ul> +</li> +<li>DataGear +<ul> +<li>データの単位</li> +</ul> +</li> +<li>metaGear +<ul> +<li>データの整合性</li> +<li>資源管理</li> +</ul> +</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="4" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="4" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="%E4%BF%A1%E9%A0%BC%E6%80%A7%E3%82%92%E4%B8%8A%E3%81%92%E3%82%8B%E6%96%B9%E6%B3%95">信頼性を上げる方法</h2> +<ul> +<li>証明 +<ul> +<li>GearsAgdaを使ってinvariantを証明する</li> +</ul> +</li> +<li>テスト</li> +<li>モデル検査</li> +<li>システムの構成要素全体にこれらの方法を適用したい</li> +<li>既存システムの信頼性における問題点の解決</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="5" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="5" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="continuation-based-c">Continuation based C</h2> +<ul> +<li>Cの下位言語である</li> +<li>処理の単位 CodeGear</li> +<li>データの単位 DataGear</li> +<li>ノーマルレベルとメタレベルの切り分け</li> +<li>gotoによる軽量継続</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="6" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="6" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="codegear%E3%81%A8metacodegear%E3%81%AE%E9%96%A2%E4%BF%82">CodeGearとmetaCodeGearの関係</h2> +<ul> +<li>ノーマルレベルとメタレベルの存在</li> +</ul> +<p><img src="figs/meta_cg_dg.svg" alt="" style="width:1100px;" /></p> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="7" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="7" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="context">Context</h2> +<ul> +<li>Gears OS上全てのCodeGear,DataGearの参照を持つ</li> +<li>OS上の処理の実行単位 +<ul> +<li>プロセスに相当</li> +</ul> +</li> +<li>Gearの概念ではmetaDataGearに当たる</li> +<li>ノーマルレベルから直接参照されない +<ul> +<li>metaCodeGearから参照される</li> +</ul> +</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="8" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="8" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="3%E7%A8%AE%E9%A1%9E%E3%81%AEgears-os">3種類のGears OS</h2> +<ul> +<li>GearsAgda(Agda) +<ul> +<li>形式手法による信頼性の向上</li> +</ul> +</li> +<li>Gears OS(CbC) +<ul> +<li>ユーザーレベルタスクマネージメント</li> +</ul> +</li> +<li>CbC x.v6 ← 今回の実装対象 +<ul> +<li>スタンドアロンOS</li> +</ul> +</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="9" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="9" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="codegear%E9%81%B7%E7%A7%BB%E3%81%AE%E6%B5%81%E3%82%8C">CodeGear遷移の流れ</h2> +<p><img src="figs/context.svg" alt="" style="width:1100px;" /></p> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="10" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="10" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="os%E3%81%A8fs%E3%81%A8db%E3%81%8C%E3%83%90%E3%83%A9%E3%83%90%E3%83%A9">OSとFSとDBがバラバラ</h2> + +<ul> +<li>全体を組み合わせた時の正しさが怪しい</li> +<li>DBは実はファイルの上に作られていたり +<ul> +<li>ファイルに対する書き込みのatomicityが保証されてない</li> +</ul> +</li> +<li>ファイルシステムが提供してるトランザクションが明快でない</li> +<li>それぞれ別々なトランザクションがある</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="11" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="11" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="fs%E3%81%A8db%E3%82%92redblacktree%E3%81%A7%E7%B5%B1%E4%B8%80">FSとDBをRedBlackTreeで統一</h2> + +<ul> +<li>両方ともRedBlackTreeで実装する +<ul> +<li>組み合わせを考える必要がなくなる</li> +<li>証明のしやすさ</li> +<li>本質的な役割は一緒</li> +<li>トランザクションが統一化される</li> +</ul> +</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="12" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="12" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%E9%9A%8E%E5%B1%A4%E3%81%AE%E5%A4%9A%E6%A7%98%E6%80%A7">ストレージ階層の多様性</h2> +<ul> +<li>HDDのような物理的制約(セクター,トラック)が無くなりつつある</li> +<li>HDDはログをリニアに書き込んでいく用途に向いている</li> +<li>NVMe, MRAMはメモリに近い特性を持つ</li> +</ul> + +<ul> +<li>個々のデバイスの持続性よりも多数デバイス上のコピー</li> +<li>イレイジャーコーディング</li> +<li>メモリとディスクみたいな分け方が時代遅れに</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="13" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="13" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%E9%9A%8E%E5%B1%A4%E3%81%A8%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3">ストレージ階層とアプリケーション</h2> +<ul> +<li>ファイルシステムやDBが多様なストレージ階層に対応していない +<ul> +<li>大容量メモリ</li> +<li>NVMe</li> +<li>SSD</li> +<li>RAID</li> +<li>テープ</li> +</ul> +</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="14" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="14" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="%E5%AE%9F%E8%A3%85%E3%81%8C%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%83%99%E3%83%BC%E3%82%B9">実装がブロックベース</h2> +<ul> +<li>B-Treeによる実装 +<ul> +<li>ディスクのブロックアクセスが前提</li> +<li>ランダムアクセスが前提となっていない</li> +</ul> +</li> +<li>ランダムアクセスの場合B-Treeを用いる利点は少ない</li> +<li>証明しやすいRedBlackTreeを用いることが考えられる</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="15" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="15" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E6%8C%81%E7%B6%9A%E6%80%A7">データの持続性</h2> + +<ul> +<li>オンメモリーなRedBlackTree</li> +<li>SSD上のコピー +<ul> +<li>ログ的にコピーしていく</li> +<li>Copying GC</li> +<li>メモリ上とSSD上のデータ構造を統一</li> +</ul> +</li> +<li>非破壊的なRedBlackTree</li> +<li>スキーマ</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="16" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="16" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="%E9%9D%9E%E7%A0%B4%E5%A3%8A%E7%9A%84%E3%81%AAredblacktree">非破壊的なRedBlackTree</h2> + +<p><img src="figs/nondestructive_tree_modification.png" alt="" style="width:1100px;" /></p> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="17" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="17" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="%E3%82%B9%E3%82%AD%E3%83%BC%E3%83%9E%E3%81%AE%E5%95%8F%E9%A1%8C">スキーマの問題</h2> + +<ul> +<li>実は頻繁に変更される +<ul> +<li>なので動的な属性名を設定されたりする</li> +<li>DB理論が役に立たない</li> +<li>過去のDBとの互換性がない</li> +</ul> +</li> +<li>扱うデータはjsonなどで,もはや第一正規形でない</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="18" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="18" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="gears-os%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%82%B9%E3%82%AD%E3%83%BC%E3%83%9E">Gears OSにおけるスキーマ</h2> +<ul> +<li>ファイルシステムには型が存在しないがスキーマは必要</li> +<li>DBの各テーブルのレコードの型定義</li> +<li>Contextに登録されているDataGearの型</li> +<li>キーを用いたDataGearの参照</li> +<li>RedBlackTreeはDBのテーブル</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="19" style="--paginate:true;--theme:cr;--marpit-advanced-background-split:45%;" data-marpit-pagination-total="26" data-marpit-advanced-background="background" data-marpit-advanced-background-split="right"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url("figs/transaction.svg");background-size:65%;"></figure></div></section></foreignObject><foreignObject width="55%" height="720"><section id="19" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="19" style="--paginate:true;--theme:cr;--marpit-advanced-background-split:45%;" data-marpit-pagination-total="26" data-marpit-advanced-background="content" data-marpit-advanced-background-split="right"> +<h2 id="db%E3%81%AE%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B6%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3">DBのトランザクション</h2> +<ul> +<li>テーブルのキーはRedBlackTreeのkey</li> +<li>トランザクションはテーブルのルートの置き換え</li> +<li>複数の書き込みポイント</li> +</ul> +</section> +</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="19" style="" data-marpit-pagination-total="26" data-marpit-advanced-background="pseudo" data-marpit-advanced-background-split="right"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="20" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="20" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="%E3%82%A4%E3%83%B3%E3%83%94%E3%83%BC%E3%83%80%E3%83%B3%E3%82%B9%E3%83%9F%E3%82%B9%E3%83%9E%E3%83%83%E3%83%81">インピーダンスミスマッチ</h2> +<ul> +<li>プログラムで使用するデータ構造 +<ul> +<li>queue</li> +<li>stack</li> +</ul> +</li> +<li>DBにはリストやキューは入らない +<ul> +<li>第一正規形でないから</li> +</ul> +</li> +<li>データ構造を持続的にしたい +<ul> +<li>なのでファイルシステムのような柔軟性が必要</li> +</ul> +</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="21" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="21" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="redblacktree%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0">RedBlackTreeベースのファイルシステム</h2> +<ul> +<li>i-node番号をkeyにする</li> +<li>inodeにはDGのリストが入る</li> +<li>持続性 +<ul> +<li>オンメモリーなRedBlackTree</li> +<li>SSD上のコピー +<ul> +<li>ログ的にコピーしていく</li> +</ul> +</li> +</ul> +</li> +<li>正しくスキーマに対応しているかどうか +<ul> +<li>違反しても良い</li> +</ul> +</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="22" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="22" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%81%A8%E3%83%AD%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF">バックアップとロールバック</h2> + +<ul> +<li>ロールバックの必要性 +<ul> +<li>トランザクションの失敗</li> +<li>システムクラッシュ</li> +</ul> +</li> +<li>SSDのログからロールバックする +<ul> +<li>Copying GCによるバックアップ</li> +<li>ルートノードがデータのバージョン</li> +</ul> +</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="23" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="23" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="%E3%81%BE%E3%81%A8%E3%82%81f">まとめf</h2> +<ul> +<li>すべてRedBlackTreeで構成されている +<ul> +<li>検証はRedBlackTreeだけで良い</li> +<li>invariantで証明する</li> +<li>トランザクション統一化</li> +<li>持続性</li> +<li>柔軟なスキーマ</li> +</ul> +</li> +<li>バックアップとロールバック</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="24" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="24" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="%E4%BF%A1%E9%A0%BC%E6%80%A7%E3%81%AE%E4%BF%9D%E8%A8%BC">信頼性の保証</h2> + +<ul> +<li>RedBlackTreeの変更の正しさ</li> +<li>トランザクションの正しさ</li> +<li>アクセス権限の正しさ</li> +<li>SSDへのコピーの正しさ</li> +<li>正しくスキーマに対応しているかどうか +<ul> +<li>違反しても良い</li> +</ul> +</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="25" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="25" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="%E8%89%B2%E5%95%8F%E9%A1%8C%E3%81%AF%E3%81%82%E3%82%8B">色々問題はある</h2> +<ul> +<li>非破壊ツリーのコピーはメモリ量的にダメではないか</li> +<li>トランザクションが正しく表現されているか +<ul> +<li>RBTreeのルート入れ替えのみ</li> +</ul> +</li> +<li>証明できるか</li> +<li>後方互換性</li> +<li>メモリプロテクションなどの既存のシステムを使わなくて良いか</li> +</ul> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="26" data-paginate="true" data-theme="cr" lang="ja-JP" data-marpit-pagination="26" style="--paginate:true;--theme:cr;" data-marpit-pagination-total="26"> +<h2 id="%E4%BB%8A%E5%BE%8C%E3%81%AE%E8%AA%B2%E9%A1%8C">今後の課題</h2> + +<ul> +<li>データクエリ言語 +<ul> +<li>SQL</li> +<li>SQLより良いものが欲しい +<ul> +<li>ファイルシステムとDBの両方で使える</li> +</ul> +</li> +</ul> +</li> +<li>時系列データ +<ul> +<li>データ圧縮</li> +</ul> +</li> +<li>スタンドアロンなDB +<ul> +<li>ポータビリティ</li> +</ul> +</li> +</ul> +</section> +<script>!function(){"use strict";const t={h1:{proto:()=>HTMLHeadingElement,attrs:{role:"heading","aria-level":"1"},style:"display: block; font-size: 2em; margin-block-start: 0.67em; margin-block-end: 0.67em; margin-inline-start: 0px; margin-inline-end: 0px; font-weight: bold;"},h2:{proto:()=>HTMLHeadingElement,attrs:{role:"heading","aria-level":"2"},style:"display: block; font-size: 1.5em; margin-block-start: 0.83em; margin-block-end: 0.83em; margin-inline-start: 0px; margin-inline-end: 0px; font-weight: bold;"},h3:{proto:()=>HTMLHeadingElement,attrs:{role:"heading","aria-level":"3"},style:"display: block; font-size: 1.17em; margin-block-start: 1em; margin-block-end: 1em; margin-inline-start: 0px; margin-inline-end: 0px; font-weight: bold;"},h4:{proto:()=>HTMLHeadingElement,attrs:{role:"heading","aria-level":"4"},style:"display: block; margin-block-start: 1.33em; margin-block-end: 1.33em; margin-inline-start: 0px; margin-inline-end: 0px; font-weight: bold;"},h5:{proto:()=>HTMLHeadingElement,attrs:{role:"heading","aria-level":"5"},style:"display: block; font-size: 0.83em; margin-block-start: 1.67em; margin-block-end: 1.67em; margin-inline-start: 0px; margin-inline-end: 0px; font-weight: bold;"},h6:{proto:()=>HTMLHeadingElement,attrs:{role:"heading","aria-level":"6"},style:"display: block; font-size: 0.67em; margin-block-start: 2.33em; margin-block-end: 2.33em; margin-inline-start: 0px; margin-inline-end: 0px; font-weight: bold;"},span:{proto:()=>HTMLSpanElement},pre:{proto:()=>HTMLElement,style:"display: block; font-family: monospace; white-space: pre; margin: 1em 0; --marp-auto-scaling-white-space: pre;"}},e="data-marp-auto-scaling-wrapper",i="data-marp-auto-scaling-svg",n="data-marp-auto-scaling-container";class s extends HTMLElement{constructor(){super(),this.svgPreserveAspectRatio="xMinYMid meet";const t=t=>([e])=>{const{width:i,height:n}=e.contentRect;this[t]={width:i,height:n},this.updateSVGRect()};this.attachShadow({mode:"open"}),this.containerObserver=new ResizeObserver(t("containerSize")),this.wrapperObserver=new ResizeObserver(((...e)=>{t("wrapperSize")(...e),this.flushSvgDisplay()}))}static get observedAttributes(){return["data-downscale-only"]}connectedCallback(){var t,s,o,r,a;this.shadowRoot.innerHTML=`\n<style>\n svg[${i}] { display: block; width: 100%; height: auto; vertical-align: top; }\n span[${n}] { display: table; white-space: var(--marp-auto-scaling-white-space, nowrap); width: max-content; }\n</style>\n<div ${e}>\n <svg part="svg" ${i}>\n <foreignObject><span ${n}><slot></slot></span></foreignObject>\n </svg>\n</div>\n `.split(/\n\s*/).join(""),this.wrapper=null!==(t=this.shadowRoot.querySelector(`div[${e}]`))&&void 0!==t?t:void 0;const l=this.svg;this.svg=null!==(o=null===(s=this.wrapper)||void 0===s?void 0:s.querySelector(`svg[${i}]`))&&void 0!==o?o:void 0,this.svg!==l&&(this.svgComputedStyle=this.svg?window.getComputedStyle(this.svg):void 0),this.container=null!==(a=null===(r=this.svg)||void 0===r?void 0:r.querySelector(`span[${n}]`))&&void 0!==a?a:void 0,this.observe()}disconnectedCallback(){this.svg=void 0,this.svgComputedStyle=void 0,this.wrapper=void 0,this.container=void 0,this.observe()}attributeChangedCallback(){this.observe()}flushSvgDisplay(){const{svg:t}=this;t&&(t.style.display="inline",requestAnimationFrame((()=>{t.style.display=""})))}observe(){this.containerObserver.disconnect(),this.wrapperObserver.disconnect(),this.wrapper&&this.wrapperObserver.observe(this.wrapper),this.container&&this.containerObserver.observe(this.container),this.svgComputedStyle&&this.observeSVGStyle(this.svgComputedStyle)}observeSVGStyle(t){const e=()=>{const i=(()=>{const e=t.getPropertyValue("--preserve-aspect-ratio");if(e)return e.trim();return`x${(({textAlign:t,direction:e})=>{if(t.endsWith("left"))return"Min";if(t.endsWith("right"))return"Max";if("start"===t||"end"===t){let i="rtl"===e;return"end"===t&&(i=!i),i?"Max":"Min"}return"Mid"})(t)}YMid meet`})();i!==this.svgPreserveAspectRatio&&(this.svgPreserveAspectRatio=i,this.updateSVGRect()),t===this.svgComputedStyle&&requestAnimationFrame(e)};e()}updateSVGRect(){var t,e,i,n,s,o,r;let a=Math.ceil(null!==(e=null===(t=this.containerSize)||void 0===t?void 0:t.width)&&void 0!==e?e:0);const l=Math.ceil(null!==(n=null===(i=this.containerSize)||void 0===i?void 0:i.height)&&void 0!==n?n:0);void 0!==this.dataset.downscaleOnly&&(a=Math.max(a,null!==(o=null===(s=this.wrapperSize)||void 0===s?void 0:s.width)&&void 0!==o?o:0));const c=null===(r=this.svg)||void 0===r?void 0:r.querySelector(":scope > foreignObject");if(null==c||c.setAttribute("width",`${a}`),null==c||c.setAttribute("height",`${l}`),this.svg&&(this.svg.setAttribute("viewBox",`0 0 ${a} ${l}`),this.svg.setAttribute("preserveAspectRatio",this.svgPreserveAspectRatio),this.svg.style.height=a<=0||l<=0?"0":""),this.container){const t=this.svgPreserveAspectRatio.toLowerCase();this.container.style.marginLeft=t.startsWith("xmid")||t.startsWith("xmax")?"auto":"0",this.container.style.marginRight=t.startsWith("xmi")?"auto":"0"}}}const o=(t,{attrs:e={},style:i})=>class extends t{constructor(...t){super(...t);for(const[t,i]of Object.entries(e))this.hasAttribute(t)||this.setAttribute(t,i);this.attachShadow({mode:"open"})}static get observedAttributes(){return["data-auto-scaling"]}connectedCallback(){this._update()}attributeChangedCallback(){this._update()}_update(){const t=i?`<style>:host { ${i} }</style>`:"";let e="<slot></slot>";const{autoScaling:n}=this.dataset;if(void 0!==n){e=`<marp-auto-scaling exportparts="svg:auto-scaling" ${"downscale-only"===n?"data-downscale-only":""}>${e}</marp-auto-scaling>`}this.shadowRoot.innerHTML=t+e}};let r;const a=Symbol();let l;const c="marpitSVGPolyfill:setZoomFactor,",d=Symbol(),g=Symbol();const h=()=>{const t="Apple Computer, Inc."===navigator.vendor,e=t?[u]:[],i={then:e=>(t?(async()=>{if(void 0===l){const t=document.createElement("canvas");t.width=10,t.height=10;const e=t.getContext("2d"),i=new Image(10,10),n=new Promise((t=>{i.addEventListener("load",(()=>t()))}));i.crossOrigin="anonymous",i.src="data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2210%22%20height%3D%2210%22%20viewBox%3D%220%200%201%201%22%3E%3CforeignObject%20width%3D%221%22%20height%3D%221%22%20requiredExtensions%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%22%3E%3Cdiv%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%22%20style%3D%22width%3A%201px%3B%20height%3A%201px%3B%20background%3A%20red%3B%20position%3A%20relative%22%3E%3C%2Fdiv%3E%3C%2FforeignObject%3E%3C%2Fsvg%3E",await n,e.drawImage(i,0,0),l=e.getImageData(5,5,1,1).data[3]<128}return l})().then((t=>{null==e||e(t?[u]:[])})):null==e||e([]),i)};return Object.assign(e,i)};let p,m;function u(t){const e="object"==typeof t&&t.target||document,i="object"==typeof t?t.zoom:t;window[g]||(Object.defineProperty(window,g,{configurable:!0,value:!0}),document.body.style.zoom=1.0001,document.body.offsetHeight,document.body.style.zoom=1,window.addEventListener("message",(({data:t,origin:e})=>{if(e===window.origin)try{if(t&&"string"==typeof t&&t.startsWith(c)){const[,e]=t.split(","),i=Number.parseFloat(e);Number.isNaN(i)||(m=i)}}catch(t){console.error(t)}})));let n=!1;Array.from(e.querySelectorAll("svg[data-marpit-svg]"),(t=>{var e,s,o,r;t.style.transform||(t.style.transform="translateZ(0)");const a=i||m||t.currentScale||1;p!==a&&(p=a,n=a);const l=t.getBoundingClientRect(),{length:c}=t.children;for(let i=0;i<c;i+=1){const n=t.children[i];if(n.getScreenCTM){const t=n.getScreenCTM();if(t){const i=null!==(s=null===(e=n.x)||void 0===e?void 0:e.baseVal.value)&&void 0!==s?s:0,c=null!==(r=null===(o=n.y)||void 0===o?void 0:o.baseVal.value)&&void 0!==r?r:0,d=n.children.length;for(let e=0;e<d;e+=1){const s=n.children[e];if("SECTION"===s.tagName){const{style:e}=s;e.transformOrigin||(e.transformOrigin=`${-i}px ${-c}px`),e.transform=`scale(${a}) matrix(${t.a}, ${t.b}, ${t.c}, ${t.d}, ${t.e-l.left}, ${t.f-l.top}) translateZ(0.0001px)`;break}}}}}})),!1!==n&&Array.from(e.querySelectorAll("iframe"),(({contentWindow:t})=>{null==t||t.postMessage(`${c}${n}`,"null"===window.origin?"*":window.origin)}))}function v({once:t=!1,target:e=document}={}){const i=function(t=document){if(t[d])return t[d];let e=!0;const i=()=>{e=!1,delete t[d]};Object.defineProperty(t,d,{configurable:!0,value:i});let n=[],s=!1;(async()=>{try{n=await h()}finally{s=!0}})();const o=()=>{for(const e of n)e({target:t});s&&0===n.length||e&&window.requestAnimationFrame(o)};return o(),i}(e);return t?(i(),()=>{}):i}p=1,m=void 0;const b=Symbol(),w=(e=document)=>{if("undefined"==typeof window)throw new Error("Marp Core's browser script is valid only in browser context.");if(((e=document)=>{const i=window[a];i||customElements.define("marp-auto-scaling",s);for(const n of Object.keys(t)){const s=`marp-${n}`,a=t[n].proto();null!=r||(r=!!document.createElement("div",{is:"marp-auto-scaling"}).outerHTML.startsWith("<div is")),r&&a!==HTMLElement?i||customElements.define(s,o(a,{style:t[n].style}),{extends:n}):(i||customElements.define(s,o(HTMLElement,t[n])),e.querySelectorAll(`${n}[is="${s}"]`).forEach((t=>{t.outerHTML=t.outerHTML.replace(new RegExp(`^<${n}`,"i"),`<${s}`).replace(new RegExp(`</${n}>$`,"i"),`</${s}>`)})))}window[a]=!0})(e),e[b])return e[b];const i=v({target:e}),n=()=>{i(),delete e[b]},l=Object.assign(n,{cleanup:n,update:()=>w(e)});return Object.defineProperty(e,b,{configurable:!0,value:l}),l},y=document.currentScript;w(y?y.getRootNode():document)}(); +</script></foreignObject></svg></div><div class="bespoke-marp-note" data-index="0" tabindex="0"><p>全体の流れ +- 目的 +- 基礎概念 +- 問題提起 -> 解決 の繰り返し +- 評価</p><p>スピーカーノート</p></div><div class="bespoke-marp-note" data-index="1" tabindex="0"><p>目的</p></div><div class="bespoke-marp-note" data-index="4" tabindex="0"><p>ここからGears OSの基礎概念だと明示する</p></div><div class="bespoke-marp-note" data-index="8" tabindex="0"><p>ここまでがGears OSの基礎概念だと明示する</p></div><div class="bespoke-marp-note" data-index="9" tabindex="0"><p>問題提起1 統一化</p></div><div class="bespoke-marp-note" data-index="10" tabindex="0"><p>解決1</p><p>これでFSとDBのシステムは統一化されるが +まだバラバラになっている部分はある</p></div><div class="bespoke-marp-note" data-index="11" tabindex="0"><p>問題提起2 +持続性 メモリやディスク,SSDは別々の仕組みをとっている +最終的に全てRBTreeで表現してしまおうという話に持っていく</p><p>ssdはmemoryに近い性質を持っている</p><p>シークread write</p><p>- メモリやディスク,SSDは別々の仕組みをとっている + - 持続されていない</p></div><div class="bespoke-marp-note" data-index="12" tabindex="0"><p>問題提起2</p><p>階層を分けて考えてしまうから複雑になる</p></div><div class="bespoke-marp-note" data-index="13" tabindex="0"><p>問題提起2 B-treeがよく用いられるがそうでなくて良いの?という感じ</p></div><div class="bespoke-marp-note" data-index="14" tabindex="0"><p>解決2 +ディスク上とメモリ上のデータ構造が一緒という話を入れる</p></div><div class="bespoke-marp-note" data-index="15" tabindex="0"><p>解決2 +データ構造を統一化し,さらに非破壊とすることで持続性の向上へ繋げる</p></div><div class="bespoke-marp-note" data-index="16" tabindex="0"><p>問題提起3 スキーマ +最終的にFSのような柔軟性を持ち合わせることで解決</p><p>ファイルシステムにも型は必要</p></div><div class="bespoke-marp-note" data-index="17" tabindex="0"><p>スキーマ必要だ. +Gears OSではこのように表現できるね. +でも変更されちゃうのはどうするの</p></div><div class="bespoke-marp-note" data-index="18" tabindex="0"><p>本システムでテーブルはこのように表現される->問題提起へ</p></div><div class="bespoke-marp-note" data-index="19" tabindex="0"><p>解決3 解決したいが...とone step置く</p></div><div class="bespoke-marp-note" data-index="20" tabindex="0"><p>本解決3</p></div><div class="bespoke-marp-note" data-index="21" tabindex="0"><p>SSD上のコピーという言葉が出てたよね +そのままコピーをSSDに置いているので,それをバックアップとして使える</p></div><div class="bespoke-marp-note" data-index="22" tabindex="0"><p>一旦解決したことをまとめて,その後評価</p></div><div class="bespoke-marp-note" data-index="23" tabindex="0"><p>このような正しさを確認していく必要があるし, +他にも問題はある(次のスライド)</p></div><div class="bespoke-marp-note" data-index="25" tabindex="0"><p>- スタンドアロンとは + +- 異なる計算機アーキテクチャ +- 異なるエンコード +- 異なる分散ノード</p></div><script>/*!! License: https://unpkg.com/@marp-team/marp-cli@3.4.0/lib/bespoke.js.LICENSE.txt */ +!function(){"use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var t={from:function(e,t){var n,r=1===(e.parent||e).nodeType?e.parent||e:document.querySelector(e.parent||e),o=[].filter.call("string"==typeof e.slides?r.querySelectorAll(e.slides):e.slides||r.children,(function(e){return"SCRIPT"!==e.nodeName})),i={},a=function(e,t){return(t=t||{}).index=o.indexOf(e),t.slide=e,t},s=function(e,t){i[e]=(i[e]||[]).filter((function(e){return e!==t}))},l=function(e,t){return(i[e]||[]).reduce((function(e,n){return e&&!1!==n(t)}),!0)},c=function(e,t){o[e]&&(n&&l("deactivate",a(n,t)),n=o[e],l("activate",a(n,t)))},d=function(e,t){var r=o.indexOf(n)+e;l(e>0?"next":"prev",a(n,t))&&c(r,t)},u={off:s,on:function(e,t){return(i[e]||(i[e]=[])).push(t),s.bind(null,e,t)},fire:l,slide:function(e,t){if(!arguments.length)return o.indexOf(n);l("slide",a(o[e],t))&&c(e,t)},next:d.bind(null,1),prev:d.bind(null,-1),parent:r,slides:o,destroy:function(e){l("destroy",a(n,e)),i={}}};return(t||[]).forEach((function(e){e(u)})),n||c(0),u}},n=e(t);const r=document.body,o=(...e)=>history.replaceState(...e),i="presenter",a="next",s=["",i,a],l="bespoke-marp-",c=`data-${l}`,d=(e,{protocol:t,host:n,pathname:r,hash:o}=location)=>{const i=e.toString();return`${t}//${n}${r}${i?"?":""}${i}${o}`},u=()=>r.dataset.bespokeView,f=e=>new URLSearchParams(location.search).get(e),m=(e,t={})=>{var n;const r={location,setter:o,...t},i=new URLSearchParams(r.location.search);for(const t of Object.keys(e)){const n=e[t];"string"==typeof n?i.set(t,n):i.delete(t)}try{r.setter({...null!==(n=window.history.state)&&void 0!==n?n:{}},"",d(i,r.location))}catch(e){console.error(e)}},g=(()=>{const e="bespoke-marp";try{return localStorage.setItem(e,e),localStorage.removeItem(e),!0}catch(e){return!1}})(),p=e=>{try{return localStorage.getItem(e)}catch(e){return null}},v=(e,t)=>{try{return localStorage.setItem(e,t),!0}catch(e){return!1}},h=e=>{try{return localStorage.removeItem(e),!0}catch(e){return!1}},y=(e,t)=>{const n="aria-hidden";t?e.setAttribute(n,"true"):e.removeAttribute(n)},b=e=>{e.parent.classList.add(`${l}parent`),e.slides.forEach((e=>e.classList.add(`${l}slide`))),e.on("activate",(t=>{const n=`${l}active`,r=t.slide,o=r.classList,i=!o.contains(n);if(e.slides.forEach((e=>{e.classList.remove(n),y(e,!0)})),o.add(n),y(r,!1),i){const e=`${n}-ready`;o.add(e),document.body.clientHeight,o.remove(e)}}))},w=e=>{let t=0,n=0;Object.defineProperty(e,"fragments",{enumerable:!0,value:e.slides.map((e=>[null,...e.querySelectorAll("[data-marpit-fragment]")]))});const r=r=>void 0!==e.fragments[t][n+r],o=(r,o)=>{t=r,n=o,e.fragments.forEach(((e,t)=>{e.forEach(((e,n)=>{if(null==e)return;const i=t<r||t===r&&n<=o;e.setAttribute(`${c}fragment`,(i?"":"in")+"active");const a=`${c}current-fragment`;t===r&&n===o?e.setAttribute(a,"current"):e.removeAttribute(a)}))})),e.fragmentIndex=o;const i={slide:e.slides[r],index:r,fragments:e.fragments[r],fragmentIndex:o};e.fire("fragment",i)};e.on("next",(({fragment:i=!0})=>{if(i){if(r(1))return o(t,n+1),!1;const i=t+1;e.fragments[i]&&o(i,0)}else{const r=e.fragments[t].length;if(n+1<r)return o(t,r-1),!1;const i=e.fragments[t+1];i&&o(t+1,i.length-1)}})),e.on("prev",(({fragment:i=!0})=>{if(r(-1)&&i)return o(t,n-1),!1;const a=t-1;e.fragments[a]&&o(a,e.fragments[a].length-1)})),e.on("slide",(({index:t,fragment:n})=>{let r=0;if(void 0!==n){const o=e.fragments[t];if(o){const{length:e}=o;r=-1===n?e-1:Math.min(Math.max(n,0),e-1)}}o(t,r)})),o(0,0)},x=document,k=()=>!(!x.fullscreenEnabled&&!x.webkitFullscreenEnabled),$=()=>!(!x.fullscreenElement&&!x.webkitFullscreenElement),E=e=>{e.fullscreen=()=>{k()&&(async()=>{return $()?null===(e=x.exitFullscreen||x.webkitExitFullscreen)||void 0===e?void 0:e.call(x):((e=x.body)=>{var t;return null===(t=e.requestFullscreen||e.webkitRequestFullscreen)||void 0===t?void 0:t.call(e)})();var e})()},document.addEventListener("keydown",(t=>{"f"!==t.key&&"F11"!==t.key||t.altKey||t.ctrlKey||t.metaKey||!k()||(e.fullscreen(),t.preventDefault())}))},L=`${l}inactive`,S=(e=2e3)=>({parent:t,fire:n})=>{const r=t.classList,o=e=>n(`marp-${e?"":"in"}active`);let i;const a=()=>{i&&clearTimeout(i),i=setTimeout((()=>{r.add(L),o()}),e),r.contains(L)&&(r.remove(L),o(!0))};for(const e of["mousedown","mousemove","touchend"])document.addEventListener(e,a);setTimeout(a,0)},P=["AUDIO","BUTTON","INPUT","SELECT","TEXTAREA","VIDEO"],_=e=>{e.parent.addEventListener("keydown",(e=>{if(!e.target)return;const t=e.target;(P.includes(t.nodeName)||"true"===t.contentEditable)&&e.stopPropagation()}))},T=e=>{window.addEventListener("load",(()=>{for(const t of e.slides){const e=t.querySelector("marp-auto-scaling, [data-auto-scaling], [data-marp-fitting]");t.setAttribute(`${c}load`,e?"":"hideable")}}))},I=({interval:e=250}={})=>t=>{document.addEventListener("keydown",(e=>{if(" "===e.key&&e.shiftKey)t.prev();else if("ArrowLeft"===e.key||"ArrowUp"===e.key||"PageUp"===e.key)t.prev({fragment:!e.shiftKey});else if(" "!==e.key||e.shiftKey)if("ArrowRight"===e.key||"ArrowDown"===e.key||"PageDown"===e.key)t.next({fragment:!e.shiftKey});else if("End"===e.key)t.slide(t.slides.length-1,{fragment:-1});else{if("Home"!==e.key)return;t.slide(0)}else t.next();e.preventDefault()}));let n,r,o=0;t.parent.addEventListener("wheel",(i=>{let a=!1;const s=(e,t)=>{e&&(a=a||((e,t)=>((e,t)=>{const n="X"===t?"Width":"Height";return e[`client${n}`]<e[`scroll${n}`]})(e,t)&&((e,t)=>{const{overflow:n}=e,r=e[`overflow${t}`];return"auto"===n||"scroll"===n||"auto"===r||"scroll"===r})(getComputedStyle(e),t))(e,t)),(null==e?void 0:e.parentElement)&&s(e.parentElement,t)};if(0!==i.deltaX&&s(i.target,"X"),0!==i.deltaY&&s(i.target,"Y"),a)return;i.preventDefault();const l=Math.sqrt(i.deltaX**2+i.deltaY**2);if(void 0!==i.wheelDelta){if(void 0===i.webkitForce&&Math.abs(i.wheelDelta)<40)return;if(i.deltaMode===i.DOM_DELTA_PIXEL&&l<4)return}else if(i.deltaMode===i.DOM_DELTA_PIXEL&&l<12)return;r&&clearTimeout(r),r=setTimeout((()=>{n=0}),e);const c=Date.now()-o<e,d=l<=n;if(n=l,c||d)return;let u;(i.deltaX>0||i.deltaY>0)&&(u="next"),(i.deltaX<0||i.deltaY<0)&&(u="prev"),u&&(t[u](),o=Date.now())}))},M=(e=`.${l}osc`)=>{const t=document.querySelector(e);if(!t)return()=>{};const n=(e,n)=>{t.querySelectorAll(`[${c}osc=${JSON.stringify(e)}]`).forEach(n)};return k()||n("fullscreen",(e=>e.style.display="none")),g||n("presenter",(e=>{e.disabled=!0,e.title="Presenter view is disabled due to restricted localStorage."})),e=>{t.addEventListener("click",(t=>{if(t.target instanceof HTMLElement){const{bespokeMarpOsc:n}=t.target.dataset;n&&t.target.blur();const r={fragment:!t.shiftKey};"next"===n?e.next(r):"prev"===n?e.prev(r):"fullscreen"===n?null==e||e.fullscreen():"presenter"===n&&e.openPresenterView()}})),e.parent.appendChild(t),e.on("activate",(({index:t})=>{n("page",(n=>n.textContent=`Page ${t+1} of ${e.slides.length}`))})),e.on("fragment",(({index:t,fragments:r,fragmentIndex:o})=>{n("prev",(e=>e.disabled=0===t&&0===o)),n("next",(n=>n.disabled=t===e.slides.length-1&&o===r.length-1))})),e.on("marp-active",(()=>y(t,!1))),e.on("marp-inactive",(()=>y(t,!0))),k()&&(e=>{for(const t of["","webkit"])x.addEventListener(t+"fullscreenchange",e)})((()=>n("fullscreen",(e=>e.classList.toggle("exit",k()&&$())))))}},O=e=>{window.addEventListener("message",(t=>{if(t.origin!==window.origin)return;const[n,r]=t.data.split(":");if("navigate"===n){const[t,n]=r.split(",");let o=Number.parseInt(t,10),i=Number.parseInt(n,10)+1;i>=e.fragments[o].length&&(o+=1,i=0),e.slide(o,{fragment:i})}}))};var A=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];let C=e=>String(e).replace(/[&<>"']/g,(e=>`&${D[e]};`)),D={"&":"amp","<":"lt",">":"gt",'"':"quot","'":"apos"},N="dangerouslySetInnerHTML",B={className:"class",htmlFor:"for"},q={};function K(e,t){let n=[],r="";t=t||{};for(let e=arguments.length;e-- >2;)n.push(arguments[e]);if("function"==typeof e)return t.children=n.reverse(),e(t);if(e){if(r+="<"+e,t)for(let e in t)!1!==t[e]&&null!=t[e]&&e!==N&&(r+=` ${B[e]?B[e]:C(e)}="${C(t[e])}"`);r+=">"}if(-1===A.indexOf(e)){if(t[N])r+=t[N].__html;else for(;n.length;){let e=n.pop();if(e)if(e.pop)for(let t=e.length;t--;)n.push(e[t]);else r+=!0===q[e]?e:C(e)}r+=e?`</${e}>`:""}return q[r]=!0,r}const j=({children:e})=>K(null,null,...e),F=`${l}presenter-`,V={container:`${F}container`,dragbar:`${F}dragbar-container`,next:`${F}next`,nextContainer:`${F}next-container`,noteContainer:`${F}note-container`,noteWrapper:`${F}note-wrapper`,noteButtons:`${F}note-buttons`,infoContainer:`${F}info-container`,infoPage:`${F}info-page`,infoPageText:`${F}info-page-text`,infoPagePrev:`${F}info-page-prev`,infoPageNext:`${F}info-page-next`,noteButtonsBigger:`${F}note-bigger`,noteButtonsSmaller:`${F}note-smaller`,infoTime:`${F}info-time`,infoTimer:`${F}info-timer`},U=e=>{const{title:t}=document;document.title="[Presenter view]"+(t?` - ${t}`:"");const n={},r=e=>(n[e]=n[e]||document.querySelector(`.${e}`),n[e]);document.body.appendChild((e=>{const t=document.createElement("div");return t.className=V.container,t.appendChild(e),t.insertAdjacentHTML("beforeend",K(j,null,K("div",{class:V.nextContainer},K("iframe",{class:V.next,src:"?view=next"})),K("div",{class:V.dragbar}),K("div",{class:V.noteContainer},K("div",{class:V.noteWrapper}),K("div",{class:V.noteButtons},K("button",{class:V.noteButtonsSmaller,tabindex:"-1",title:"Smaller notes font size"},"Smaller notes font size"),K("button",{class:V.noteButtonsBigger,tabindex:"-1",title:"Bigger notes font size"},"Bigger notes font size"))),K("div",{class:V.infoContainer},K("div",{class:V.infoPage},K("button",{class:V.infoPagePrev,tabindex:"-1",title:"Previous"},"Previous"),K("span",{class:V.infoPageText}),K("button",{class:V.infoPageNext,tabindex:"-1",title:"Next"},"Next")),K("time",{class:V.infoTime,title:"Current time"}),K("time",{class:V.infoTimer,title:"Timer"})))),t})(e.parent)),(e=>{let t=!1;r(V.dragbar).addEventListener("mousedown",(()=>{t=!0,r(V.dragbar).classList.add("active")})),window.addEventListener("mouseup",(()=>{t=!1,r(V.dragbar).classList.remove("active")})),window.addEventListener("mousemove",(e=>{if(!t)return;const n=e.clientX/document.documentElement.clientWidth*100;r(V.container).style.setProperty("--bespoke-marp-presenter-split-ratio",`${Math.max(0,Math.min(100,n))}%`)})),r(V.nextContainer).addEventListener("click",(()=>e.next()));const n=r(V.next),o=(i=n,(e,t)=>{var n;return null===(n=i.contentWindow)||void 0===n?void 0:n.postMessage(`navigate:${e},${t}`,"null"===window.origin?"*":window.origin)});var i;n.addEventListener("load",(()=>{r(V.nextContainer).classList.add("active"),o(e.slide(),e.fragmentIndex),e.on("fragment",(({index:e,fragmentIndex:t})=>o(e,t)))}));const a=document.querySelectorAll(".bespoke-marp-note");a.forEach((e=>{e.addEventListener("keydown",(e=>e.stopPropagation())),r(V.noteWrapper).appendChild(e)})),e.on("activate",(()=>a.forEach((t=>t.classList.toggle("active",t.dataset.index==e.slide())))));let s=0;const l=e=>{s=Math.max(-5,s+e),r(V.noteContainer).style.setProperty("--bespoke-marp-note-font-scale",(1.2**s).toFixed(4))},c=()=>l(1),d=()=>l(-1),u=r(V.noteButtonsBigger),f=r(V.noteButtonsSmaller);u.addEventListener("click",(()=>{u.blur(),c()})),f.addEventListener("click",(()=>{f.blur(),d()})),document.addEventListener("keydown",(e=>{"+"===e.key&&c(),"-"===e.key&&d()}),!0),e.on("activate",(({index:t})=>{r(V.infoPageText).textContent=`${t+1} / ${e.slides.length}`}));const m=r(V.infoPagePrev),g=r(V.infoPageNext);m.addEventListener("click",(t=>{m.blur(),e.prev({fragment:!t.shiftKey})})),g.addEventListener("click",(t=>{g.blur(),e.next({fragment:!t.shiftKey})})),e.on("fragment",(({index:t,fragments:n,fragmentIndex:r})=>{m.disabled=0===t&&0===r,g.disabled=t===e.slides.length-1&&r===n.length-1}));let p=new Date;const v=()=>{const e=new Date,t=e=>`${Math.floor(e)}`.padStart(2,"0"),n=e.getTime()-p.getTime(),o=t(n/1e3%60),i=t(n/1e3/60%60),a=t(n/36e5%24);r(V.infoTime).textContent=e.toLocaleTimeString(),r(V.infoTimer).textContent=`${a}:${i}:${o}`};v(),setInterval(v,250),r(V.infoTimer).addEventListener("click",(()=>{p=new Date}))})(e)},X=e=>{if(!(e=>e.syncKey&&"string"==typeof e.syncKey)(e))throw new Error("The current instance of Bespoke.js is invalid for Marp bespoke presenter plugin.");Object.defineProperties(e,{openPresenterView:{enumerable:!0,value:H},presenterUrl:{enumerable:!0,get:R}}),g&&document.addEventListener("keydown",(t=>{"p"!==t.key||t.altKey||t.ctrlKey||t.metaKey||(t.preventDefault(),e.openPresenterView())}))};function H(){const{max:e,floor:t}=Math,n=e(t(.85*window.innerWidth),640),r=e(t(.85*window.innerHeight),360);return window.open(this.presenterUrl,F+this.syncKey,`width=${n},height=${r},menubar=no,toolbar=no`)}function R(){const e=new URLSearchParams(location.search);return e.set("view","presenter"),e.set("sync",this.syncKey),d(e)}const W=e=>{const t=u();return t===a&&e.appendChild(document.createElement("span")),{"":X,[i]:U,[a]:O}[t]},J=e=>{e.on("activate",(t=>{document.querySelectorAll(".bespoke-progress-parent > .bespoke-progress-bar").forEach((n=>{n.style.flexBasis=100*t.index/(e.slides.length-1)+"%"}))}))},Y=e=>{const t=Number.parseInt(e,10);return Number.isNaN(t)?null:t},z=(e={})=>{const t={history:!0,...e};return e=>{let n=!0;const r=e=>{const t=n;try{return n=!0,e()}finally{n=t}},o=(t={fragment:!0})=>{let n=t.fragment?Y(f("f")||""):null;((t,n)=>{const{min:r,max:o}=Math,{fragments:i,slides:a}=e,s=o(0,r(t,a.length-1)),l=o(0,r(n||0,i[s].length-1));s===e.slide()&&l===e.fragmentIndex||e.slide(s,{fragment:l})})((()=>{var t,r;if(location.hash){const[o]=location.hash.slice(1).split(":~:");if(/^\d+$/.test(o))return(null!==(t=Y(o))&&void 0!==t?t:1)-1;const i=document.getElementById(o)||document.querySelector(`a[name="${CSS.escape(o)}"]`);if(i){const{length:t}=e.slides;for(let o=0;o<t;o+=1)if(e.slides[o].contains(i)){const t=null===(r=e.fragments)||void 0===r?void 0:r[o],a=i.closest("[data-marpit-fragment]");if(t&&a){const e=t.indexOf(a);e>=0&&(n=e)}return o}}}return 0})(),n)};e.on("fragment",(({index:e,fragmentIndex:r})=>{n||m({f:0===r||r.toString()},{location:{...location,hash:`#${e+1}`},setter:(...e)=>t.history?history.pushState(...e):history.replaceState(...e)})})),setTimeout((()=>{o(),window.addEventListener("hashchange",(()=>r((()=>{o({fragment:!1}),m({f:void 0})})))),window.addEventListener("popstate",(()=>{n||r((()=>o()))})),n=!1}),0)}},G=(e={})=>{var t;const n=e.key||(null===(t=window.history.state)||void 0===t?void 0:t.marpBespokeSyncKey)||Math.random().toString(36).slice(2),r=`bespoke-marp-sync-${n}`;var i;i={marpBespokeSyncKey:n},m({},{setter:(e,...t)=>o({...e,...i},...t)});const a=()=>{const e=p(r);return e?JSON.parse(e):Object.create(null)},s=e=>{const t=a(),n={...t,...e(t)};return v(r,JSON.stringify(n)),n},l=()=>{window.removeEventListener("pageshow",l),s((e=>({reference:(e.reference||0)+1})))};return e=>{l(),Object.defineProperty(e,"syncKey",{value:n,enumerable:!0});let t=!0;setTimeout((()=>{e.on("fragment",(e=>{t&&s((()=>({index:e.index,fragmentIndex:e.fragmentIndex})))}))}),0),window.addEventListener("storage",(n=>{if(n.key===r&&n.oldValue&&n.newValue){const r=JSON.parse(n.oldValue),o=JSON.parse(n.newValue);if(r.index!==o.index||r.fragmentIndex!==o.fragmentIndex)try{t=!1,e.slide(o.index,{fragment:o.fragmentIndex,forSync:!0})}finally{t=!0}}}));const o=()=>{const{reference:e}=a();void 0===e||e<=1?h(r):s((()=>({reference:e-1})))};window.addEventListener("pagehide",(e=>{e.persisted&&window.addEventListener("pageshow",l),o()})),e.on("destroy",o)}},{PI:Q,abs:Z,sqrt:ee,atan2:te}=Math,ne={passive:!0},re=({slope:e=-.7,swipeThreshold:t=30}={})=>n=>{let r;const o=n.parent,i=e=>{const t=o.getBoundingClientRect();return{x:e.pageX-(t.left+t.right)/2,y:e.pageY-(t.top+t.bottom)/2}};o.addEventListener("touchstart",(({touches:e})=>{r=1===e.length?i(e[0]):void 0}),ne),o.addEventListener("touchmove",(e=>{if(r)if(1===e.touches.length){e.preventDefault();const t=i(e.touches[0]),n=t.x-r.x,o=t.y-r.y;r.delta=ee(Z(n)**2+Z(o)**2),r.radian=te(n,o)}else r=void 0})),o.addEventListener("touchend",(o=>{if(r){if(r.delta&&r.delta>=t&&r.radian){const t=(r.radian-e+Q)%(2*Q)-Q;n[t<0?"next":"prev"](),o.stopPropagation()}r=void 0}}),ne)},oe=new Map;oe.clear(),oe.set("none",{backward:{both:void 0,incoming:void 0,outgoing:void 0},forward:{both:void 0,incoming:void 0,outgoing:void 0}});const ie={both:"",outgoing:"outgoing-",incoming:"incoming-"},ae={forward:"",backward:"-backward"},se=e=>`--marp-bespoke-transition-animation-${e}`,le=e=>`--marp-transition-${e}`,ce=se("name"),de=se("duration"),ue=e=>new Promise((t=>{const n={},r=document.createElement("div"),o=e=>{r.remove(),t(e)};r.addEventListener("animationstart",(()=>o(n))),Object.assign(r.style,{animationName:e,animationDuration:"1s",animationFillMode:"both",animationPlayState:"paused",position:"absolute",pointerEvents:"none"}),document.body.appendChild(r);const i=getComputedStyle(r).getPropertyValue(le("duration"));i&&(n.defaultDuration=i),((e,t)=>{requestAnimationFrame((()=>{e.style.animationPlayState="running",requestAnimationFrame((()=>t(void 0)))}))})(r,o)})),fe=async e=>oe.has(e)?oe.get(e):(e=>{const t={},n=[];for(const[r,o]of Object.entries(ie))for(const[i,a]of Object.entries(ae)){const s=`marp-${o}transition${a}-${e}`;n.push(ue(s).then((e=>{t[i]=t[i]||{},t[i][r]=e?{...e,name:s}:void 0})))}return Promise.all(n).then((()=>t))})(e).then((t=>(oe.set(e,t),t))),me=e=>Object.values(e).flatMap(Object.values).every((e=>!e)),ge=(e,{type:t,backward:n})=>{const r=e[n?"backward":"forward"],o=(()=>{const e=r[t],n=e=>({[ce]:e.name});if(e)return n(e);if(r.both){const e=n(r.both);return"incoming"===t&&(e[se("direction")]="reverse"),e}})();return!o&&n?ge(e,{type:t,backward:!1}):o||{[ce]:"__bespoke_marp_transition_no_animation__"}},pe=e=>{if(e)try{const t=JSON.parse(e);if((e=>{if("object"!=typeof e)return!1;const t=e;return"string"==typeof t.name&&(void 0===t.duration||"string"==typeof t.duration)})(t))return t}catch(e){}},ve="_tSId",he="_tA",ye="bespoke-marp-transition-warming-up",be=window.matchMedia("(prefers-reduced-motion: reduce)"),we="__bespoke_marp_transition_reduced_outgoing__",xe="__bespoke_marp_transition_reduced_incoming__",ke={forward:{both:void 0,incoming:{name:xe},outgoing:{name:we}},backward:{both:void 0,incoming:{name:xe},outgoing:{name:we}}},$e=e=>{if(!document.startViewTransition)return;const t=t=>(void 0!==t&&(e._tD=t),e._tD);let n;t(!1),((...e)=>{const t=[...new Set(e).values()];return Promise.all(t.map((e=>fe(e)))).then()})(...Array.from(document.querySelectorAll("section[data-transition], section[data-transition-back]")).flatMap((e=>[e.dataset.transition,e.dataset.transitionBack].flatMap((e=>{const t=pe(e);return[null==t?void 0:t.name,(null==t?void 0:t.builtinFallback)?`__builtin__${t.name}`:void 0]})).filter((e=>!!e))))).then((()=>{document.querySelectorAll("style").forEach((e=>{e.innerHTML=e.innerHTML.replace(/--marp-transition-duration:[^;}]*[;}]/g,(e=>e.slice(0,-1)+"!important"+e.slice(-1)))}))}));const r=(n,{back:r,cond:o})=>i=>{var a;const s=t();if(s)return!!i[he]||!("object"!=typeof s||(s.skipTransition(),!i.forSync));if(!o(i))return!0;const l=e.slides[e.slide()],c=()=>{var e;return null!==(e=i.back)&&void 0!==e?e:r},d="data-transition"+(c()?"-back":""),u=l.querySelector(`section[${d}]`);if(!u)return!0;const f=pe(null!==(a=u.getAttribute(d))&&void 0!==a?a:void 0);return!f||((async(e,{builtinFallback:t=!0}={})=>{let n=await fe(e);if(me(n)){if(!t)return;return n=await fe(`__builtin__${e}`),me(n)?void 0:n}return n})(f.name,{builtinFallback:f.builtinFallback}).then((e=>{if(!e){t(!0);try{n(i)}finally{t(!1)}return}let r=e;be.matches&&(console.warn("Use a constant animation to transition because preferring reduced motion by viewer has detected."),r=ke);const o=document.getElementById(ve);o&&o.remove();const a=document.createElement("style");a.id=ve,document.head.appendChild(a),((e,t)=>{const n=[`:root{${le("direction")}:${t.backward?-1:1};}`,":root:has(.bespoke-marp-inactive){cursor:none;}"],r=t=>{var n,o,i;const a=(null===(n=e[t].both)||void 0===n?void 0:n.defaultDuration)||(null===(o=e[t].outgoing)||void 0===o?void 0:o.defaultDuration)||(null===(i=e[t].incoming)||void 0===i?void 0:i.defaultDuration);return"forward"===t?a:a||r("forward")},o=t.duration||r(t.backward?"backward":"forward");void 0!==o&&n.push(`::view-transition-group(*){${de}:${o};}`);const i=e=>Object.entries(e).map((([e,t])=>`${e}:${t};`)).join("");return n.push(`::view-transition-old(root){${i(ge(e,{...t,type:"outgoing"}))}}`,`::view-transition-new(root){${i(ge(e,{...t,type:"incoming"}))}}`),n})(r,{backward:c(),duration:f.duration}).forEach((e=>{var t;return null===(t=a.sheet)||void 0===t?void 0:t.insertRule(e)}));const s=document.documentElement.classList;s.add(ye);let l=!1;const d=()=>{l||(n(i),l=!0,s.remove(ye))},u=()=>{t(!1),a.remove(),s.remove(ye)};try{t(!0);const e=document.startViewTransition(d);t(e),e.finished.finally(u)}catch(e){console.error(e),d(),u()}})),!1)};e.on("prev",r((t=>e.prev({...t,[he]:!0})),{back:!0,cond:e=>{var t;return e.index>0&&!((null===(t=e.fragment)||void 0===t||t)&&n.fragmentIndex>0)}})),e.on("next",r((t=>e.next({...t,[he]:!0})),{cond:t=>t.index+1<e.slides.length&&!(n.fragmentIndex+1<n.fragments.length)})),setTimeout((()=>{e.on("slide",r((t=>e.slide(t.index,{...t,[he]:!0})),{cond:t=>{const n=e.slide();return t.index!==n&&(t.back=t.index<n,!0)}}))}),0),e.on("fragment",(e=>{n=e}))};let Ee;const Le=()=>(void 0===Ee&&(Ee="wakeLock"in navigator&&navigator.wakeLock),Ee),Se=async()=>{const e=Le();if(e)try{return await e.request("screen")}catch(e){console.warn(e)}return null},Pe=async()=>{if(!Le())return;let e;const t=()=>{e&&"visible"===document.visibilityState&&Se()};for(const e of["visibilitychange","fullscreenchange"])document.addEventListener(e,t);return e=await Se(),e};((e=document.getElementById(":$p"))=>{(()=>{const e=f("view");r.dataset.bespokeView=e===a||e===i?e:""})();const t=(e=>{const t=f(e);return m({[e]:void 0}),t})("sync")||void 0;n.from(e,((...e)=>{const t=s.findIndex((e=>u()===e));return e.map((([e,n])=>e[t]&&n)).filter((e=>e))})([[1,1,0],G({key:t})],[[1,1,1],W(e)],[[1,1,0],_],[[1,1,1],b],[[1,0,0],S()],[[1,1,1],T],[[1,1,1],z({history:!1})],[[1,1,0],I()],[[1,1,0],E],[[1,0,0],J],[[1,1,0],re()],[[1,0,0],M()],[[1,0,0],$e],[[1,1,1],w],[[1,1,0],Pe]))})()}();</script></body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/marp-slide/slide.md Tue Feb 13 17:12:55 2024 +0900 @@ -0,0 +1,182 @@ +--- +marp: true +theme: cr +paginate: true +--- + +<!-- 全体の流れ +- 目的 +- 基礎概念 +- 問題提起 -> 解決 の繰り返し +- 評価 --> + +# GearsOSのファイルシステムにおける GCとレプリケーション + +<!-- +スピーカーノート +--> + +琉球大学 理工学研究科 知能情報プログラム +河野研究室 + +又吉 雄斗 + +--- + +<!-- 目的 --> + +## システム全体の信頼性を上げたい + +- システムの構成要素全体の信頼性を上げる必要がある + - アプリケーション + - OS + - ファイルシステム + - DB + - メモリとSSD + - 分散ノード + - ネットワーク + +--- + +## Gears OSを使って実現する + +- CodeGear + - 処理の単位 +- DataGear + - データの単位 +- metaGear + - データの整合性 + - 資源管理 + +--- + +## 信頼性を上げる方法 + +- 証明 + - GearsAgdaを使ってinvariantを証明する +- テスト +- モデル検査 +- システムの構成要素全体にこれらの方法を適用したい +- 既存システムの信頼性における問題点の解決 + +--- + +<!-- ここからGears OSの基礎概念だと明示する --> + +## Continuation based C + +- Cの下位言語である +- 処理の単位 CodeGear +- データの単位 DataGear +- ノーマルレベルとメタレベルの切り分け +- gotoによる軽量継続 + +--- + +## CodeGearとmetaCodeGearの関係 + +- ノーマルレベルとメタレベルの存在 + +![w:1100](figs/meta_cg_dg.svg) + +--- + +## Context + +- Gears OS上全てのCodeGear,DataGearの参照を持つ +- OS上の処理の実行単位 + - プロセスに相当 +- Gearの概念ではmetaDataGearに当たる +- ノーマルレベルから直接参照されない + - metaCodeGearから参照される + +--- + +## 3種類のGears OS + +- GearsAgda(Agda) + - 形式手法による信頼性の向上 +- Gears OS(CbC) + - ユーザーレベルタスクマネージメント +- CbC x.v6 ← 今回の実装対象 + - スタンドアロンOS + +--- + +## GearsOSとGearsAgda + +--- + +<!-- ここまでがGears OSの基礎概念だと明示する --> + +## CodeGear遷移の流れ + +![w:1100](figs/context.svg) + +--- + +## 非破壊RedBlackTreeによる構成 + +--- + +## GearsFilesystem + + +--- + +## 多重性やメモリ管理に必要な機能がない + +--- + +## copyRedBlackTreeの実装をした + +--- + +## copyRedBlackTreeができると何ができるようになるか + +多重性やメモリ管理に関する機能を追加できる +GC(defragmentation) +レプリケーション +バックアップ + +--- + +## GCによる非破壊RedBlackTreeの増大問題 + +--- + +## Tree InterfaceのAPIとして実装 + +--- + +## コピーのアルゴリズム + +--- + +## アロケーション部分 + +--- + +## swap + +--- + +## 評価 + +非破壊RedBlackTreeの増大抑制できる +コピーするだけなので木が持続的 +課題点 + 同一Contextへコピーしている + +--- + +## 今後の研究方針 + +--- + +## まとめ + +copyRedBlackTreeを実装した +それにより多重性を確保できるようになった +多重性はシステムの信頼性を向上させる +非破壊RedBlackTreeの増大抑制により実用的に
--- a/mindmaps/gears_fs_db.mm Mon Feb 12 17:54:36 2024 +0900 +++ b/mindmaps/gears_fs_db.mm Tue Feb 13 17:12:55 2024 +0900 @@ -1,6 +1,6 @@ <map version="freeplane 1.9.8"> <!--To view this file, download free mind mapping software Freeplane from https://www.freeplane.org --> -<node TEXT="GearsOS上のファイルシステムとDBの信頼性(仮)" FOLDED="false" ID="ID_452131666" CREATED="1610381621610" MODIFIED="1707213585347" STYLE="oval"> +<node TEXT="GearsOS上のファイルシステムとDBの信頼性(仮)" FOLDED="false" ID="ID_452131666" CREATED="1610381621610" MODIFIED="1707801882816" STYLE="oval"> <font SIZE="18"/> <hook NAME="MapStyle" zoom="0.8"> <properties edgeColorConfiguration="#808080ff,#ff0000ff,#0000ffff,#00ff00ff,#ff00ffff,#00ffffff,#7c0000ff,#00007cff,#007c00ff,#7c007cff,#007c7cff,#7c7c00ff" associatedTemplateLocation="template:/standard-1.6-noEdgeColor.mm" fit_to_viewport="false"/> @@ -974,7 +974,19 @@ </node> <node TEXT="tree->rootを書き換えて,途中のノードからコピーできるみたいなの作りたい" ID="ID_1603927493" CREATED="1706692686178" MODIFIED="1706692704418"/> </node> -<node TEXT="評価" FOLDED="true" POSITION="right" ID="ID_1699170037" CREATED="1706803749390" MODIFIED="1707213585346" HGAP_QUANTITY="14.75 pt" VSHIFT_QUANTITY="121.5 pt"> +<node TEXT="GearsOSとGearsAgda" POSITION="right" ID="ID_733544140" CREATED="1707725731232" MODIFIED="1707725738470"> +<node TEXT="Agdaは定理証明支援系" ID="ID_1915356889" CREATED="1707726700043" MODIFIED="1707726714105"/> +<node TEXT="GearsAgdaはGearsOSの実行単位CodeGearと直接対応している" ID="ID_1381869743" CREATED="1707725738619" MODIFIED="1707725765165"> +<node TEXT="gotoからgotoまで" ID="ID_1042935357" CREATED="1707726490738" MODIFIED="1707726499671"/> +</node> +<node TEXT="RedBlackTreeの証明が進められている" ID="ID_1796353967" CREATED="1707726206978" MODIFIED="1707726225617"/> +<node TEXT="findの証明が完了している" ID="ID_242792232" CREATED="1707726329699" MODIFIED="1707726364229"/> +<node TEXT="insertの証明を進めている" ID="ID_413832620" CREATED="1707726364981" MODIFIED="1707726489560"/> +<node TEXT="GearsAgdaでRBTreeを証明できれば,GearsOSの大部分の構造を証明できたことになる" ID="ID_1229657069" CREATED="1707726542553" MODIFIED="1707726575888"> +<node TEXT="GearsOSの構造の多くはRedBlackTreeで構成されているため" ID="ID_1004423346" CREATED="1707726585550" MODIFIED="1707726602966"/> +</node> +</node> +<node TEXT="評価" POSITION="right" ID="ID_1699170037" CREATED="1706803749390" MODIFIED="1707213585346" HGAP_QUANTITY="14.75 pt" VSHIFT_QUANTITY="121.5 pt"> <node TEXT="説明" ID="ID_1332913546" CREATED="1707024290462" MODIFIED="1707024304655"> <node TEXT="テストコード" FOLDED="true" ID="ID_83989606" CREATED="1707024312272" MODIFIED="1707024315913"> <node TEXT="いくつかの考えられる木の形はテストした" ID="ID_401372478" CREATED="1707024501611" MODIFIED="1707024539431"> @@ -1072,7 +1084,7 @@ <node TEXT="それ以外はまとめと今後の課題に書く" ID="ID_1941288242" CREATED="1706803862696" MODIFIED="1706803878303"/> </node> </node> -<node TEXT="まとめと今後の課題" FOLDED="true" POSITION="right" ID="ID_912711900" CREATED="1706956151544" MODIFIED="1707213611142"> +<node TEXT="まとめと今後の課題" POSITION="right" ID="ID_912711900" CREATED="1706956151544" MODIFIED="1707213611142"> <node TEXT="非破壊RedBlackTreeの増大を防ぐ仕組みを構築できた" ID="ID_418966492" CREATED="1706956585170" MODIFIED="1706956610719"/> <node TEXT="別コンテキストへのコピー" ID="ID_1209930854" CREATED="1706956313462" MODIFIED="1706956324424"/> <node TEXT="GearsOS全体をGCすることも考えられる" ID="ID_1250275844" CREATED="1707013490904" MODIFIED="1707013522142"/> @@ -1088,6 +1100,14 @@ <node TEXT="Contextをコピーすることでフラグメンテーションは解消する" ID="ID_1667984108" CREATED="1707286730333" MODIFIED="1707286747139"> <node TEXT="Gears全体では解消してないかも" ID="ID_1073971147" CREATED="1707286747311" MODIFIED="1707286755075"/> </node> +<node TEXT="SSDに書き込んでデータをpersistentにする" ID="ID_1589020784" CREATED="1707705357976" MODIFIED="1707705370161"> +<node TEXT="木の一部をSSDに書き出すとか" ID="ID_1267827528" CREATED="1707705387592" MODIFIED="1707705397533"/> +</node> +<node TEXT="木を破壊する場合" ID="ID_470528591" CREATED="1707705370519" MODIFIED="1707705410788"/> +<node TEXT="実行中のコピー" ID="ID_1071752009" CREATED="1707705411594" MODIFIED="1707705420741"> +<node TEXT="コピー実行中に変更があった場合は?" ID="ID_501485740" CREATED="1707705427998" MODIFIED="1707705446579"/> +<node TEXT="ノードロックで管理すれば良い" ID="ID_277716335" CREATED="1707705479046" MODIFIED="1707705512045"/> +</node> <node TEXT="今後の課題" ID="ID_428993998" CREATED="1707285565828" MODIFIED="1707285588990"> <node TEXT="別ContextへのALLOCATION" ID="ID_1464367692" CREATED="1707285571840" MODIFIED="1707285601877"> <node TEXT="現状は同一Contextにコピーしている" ID="ID_864566640" CREATED="1707286044589" MODIFIED="1707286060465"/> @@ -1126,7 +1146,7 @@ </node> </node> </node> -<node TEXT="バックアップやGCのタイミング" FOLDED="true" POSITION="left" ID="ID_1968325106" CREATED="1705995867783" MODIFIED="1705995947002"> +<node TEXT="バックアップやGCのタイミング" FOLDED="true" POSITION="left" ID="ID_1968325106" CREATED="1705995867783" MODIFIED="1707801876355" HGAP_QUANTITY="20 pt" VSHIFT_QUANTITY="-73.5 pt"> <node TEXT="木の操作の度にGCしていては効率が悪い" ID="ID_1270257607" CREATED="1705995886579" MODIFIED="1705995983113"> <node TEXT="システムの状態によって処理を切り替える" ID="ID_835268540" CREATED="1705995987307" MODIFIED="1705995998232"/> <node TEXT="メモリがこれくらい使われている" ID="ID_708465587" CREATED="1705996000486" MODIFIED="1705996008587"/> @@ -1147,7 +1167,7 @@ </node> </node> </node> -<node TEXT="レプリケーション手法" FOLDED="true" POSITION="left" ID="ID_1667606869" CREATED="1705990967981" MODIFIED="1705990975745"> +<node TEXT="レプリケーション手法" FOLDED="true" POSITION="left" ID="ID_1667606869" CREATED="1705990967981" MODIFIED="1707801878703" HGAP_QUANTITY="23 pt" VSHIFT_QUANTITY="-65.25 pt"> <node TEXT="bin log" ID="ID_1578494368" CREATED="1705990975951" MODIFIED="1705990978180"/> <node TEXT="WAL" ID="ID_173341311" CREATED="1705991115261" MODIFIED="1705991117448"> <node TEXT="Write Ahead Logging" ID="ID_885834048" CREATED="1705991256045" MODIFIED="1705991267446"/> @@ -1162,7 +1182,7 @@ </node> </node> </node> -<node TEXT="実装" FOLDED="true" POSITION="left" ID="ID_1462455862" CREATED="1706417525408" MODIFIED="1706520562138"> +<node TEXT="実装" FOLDED="true" POSITION="left" ID="ID_1462455862" CREATED="1706417525408" MODIFIED="1707801880634" HGAP_QUANTITY="29.75 pt" VSHIFT_QUANTITY="-83.25 pt"> <node TEXT="CopyRedBlackTreeの実装" ID="ID_1619882257" CREATED="1701697553803" MODIFIED="1706520562137" VSHIFT_QUANTITY="-4.5 pt"> <node TEXT="実装方法" FOLDED="true" ID="ID_1774988166" CREATED="1705735668943" MODIFIED="1705735677711"> <node TEXT="Tree InterfaceのAPIにCopyを追加する" ID="ID_95904284" CREATED="1705735678228" MODIFIED="1705735715335"/> @@ -1229,7 +1249,7 @@ </node> </node> </node> -<node TEXT="評価" FOLDED="true" POSITION="left" ID="ID_186645686" CREATED="1706418118012" MODIFIED="1706418120523"> +<node TEXT="評価" FOLDED="true" POSITION="left" ID="ID_186645686" CREATED="1706418118012" MODIFIED="1707801882814" HGAP_QUANTITY="38.75 pt" VSHIFT_QUANTITY="-64.5 pt"> <node TEXT="スタックを使ってることに関して" ID="ID_1617928125" CREATED="1706417138929" MODIFIED="1706417138929"/> <node TEXT="フラグメンテーション解消できてないことにかんして" ID="ID_912797279" CREATED="1706417138929" MODIFIED="1706417138929"/> <node TEXT="GearsFileSystemで重要なCopyの機能を実装できた" ID="ID_1040965600" CREATED="1706418258268" MODIFIED="1706418270889"/> @@ -1246,5 +1266,47 @@ </node> </node> </node> +<node TEXT="スライド" POSITION="left" ID="ID_1109312213" CREATED="1707801871675" MODIFIED="1707810947177"> +<node TEXT="システム全体の信頼性を向上させたい" ID="ID_1519013410" CREATED="1707809324624" MODIFIED="1707809621777" HGAP_QUANTITY="14 pt" VSHIFT_QUANTITY="-3 pt"/> +<node TEXT="GearsOSで実現する" ID="ID_1781659444" CREATED="1707809341570" MODIFIED="1707809348782"/> +<node TEXT="信頼性を上げる方法" ID="ID_284645498" CREATED="1707809403391" MODIFIED="1707809624565" HGAP_QUANTITY="12.5 pt" VSHIFT_QUANTITY="-33.75 pt"/> +<node TEXT="CbC" ID="ID_958035941" CREATED="1707801942372" MODIFIED="1707802244891"/> +<node TEXT="CodeGearとmetaCodeGear" ID="ID_1503258760" CREATED="1707809428339" MODIFIED="1707809436431"/> +<node TEXT="Context" ID="ID_1498708640" CREATED="1707809445330" MODIFIED="1707809447599"/> +<node TEXT="3種類のGearsOS" ID="ID_1789403817" CREATED="1707809449604" MODIFIED="1707809454625"/> +<node TEXT="GearsOSとGearsAgda" ID="ID_1922073865" CREATED="1707810849140" MODIFIED="1707810857063"/> +<node TEXT="CodeGear遷移の流れ" ID="ID_1864344252" CREATED="1707809502144" MODIFIED="1707809508404"/> +<node TEXT="非破壊RedBlackTreeによる構成" ID="ID_622602101" CREATED="1707805849509" MODIFIED="1707810947176" HGAP_QUANTITY="12.5 pt" VSHIFT_QUANTITY="3.75 pt"/> +<node TEXT="GearsFilesystem" ID="ID_9731029" CREATED="1707810937030" MODIFIED="1707810953288" HGAP_QUANTITY="15.5 pt" VSHIFT_QUANTITY="-61.5 pt"/> +<node TEXT="多重性やメモリ管理に必要な機能がない" ID="ID_1755524219" CREATED="1707809043957" MODIFIED="1707809590104"/> +<node TEXT="copyRedBlackTreeの実装をした" ID="ID_3452822" CREATED="1707802848111" MODIFIED="1707802871025"/> +<node TEXT="copyRedBlackTreeができると何ができるようになるか" FOLDED="true" ID="ID_108556449" CREATED="1707804472923" MODIFIED="1707809906416"> +<node TEXT="多重性やメモリ管理に関する機能を追加できる" ID="ID_42031813" CREATED="1707804510984" MODIFIED="1707805366037"/> +<node TEXT="GC(defragmentation)" ID="ID_240352266" CREATED="1707802572704" MODIFIED="1707809162287"> +<node TEXT="特にこれは欲しい" ID="ID_245613381" CREATED="1707809727579" MODIFIED="1707809740497"/> +</node> +<node TEXT="レプリケーション" ID="ID_854911737" CREATED="1707802624641" MODIFIED="1707802629911"/> +<node TEXT="バックアップ" ID="ID_1828283529" CREATED="1707809645235" MODIFIED="1707809648227"/> +</node> +<node TEXT="GCによる非破壊RedBlackTreeの増大問題" ID="ID_561572897" CREATED="1707809658587" MODIFIED="1707809922510" HGAP_QUANTITY="13.25 pt" VSHIFT_QUANTITY="-71.25 pt"/> +<node TEXT="Tree InterfaceのAPIとして実装" ID="ID_235794385" CREATED="1707802437228" MODIFIED="1707802472777"/> +<node TEXT="コピーのアルゴリズム" ID="ID_1999989614" CREATED="1707802473477" MODIFIED="1707802480540"/> +<node TEXT="アロケーション部分" ID="ID_952299777" CREATED="1707802483093" MODIFIED="1707802493772"/> +<node TEXT="swap" ID="ID_640800397" CREATED="1707802511025" MODIFIED="1707809991542" HGAP_QUANTITY="14.75 pt" VSHIFT_QUANTITY="-21 pt"/> +<node TEXT="評価" ID="ID_922190913" CREATED="1707802640955" MODIFIED="1707809987420"> +<node TEXT="非破壊RedBlackTreeの増大抑制できる" ID="ID_706668254" CREATED="1707802699292" MODIFIED="1707802733788"/> +<node TEXT="コピーするだけなので木が持続的" ID="ID_1768044233" CREATED="1707802719359" MODIFIED="1707802787778"/> +<node TEXT="課題点" ID="ID_146606099" CREATED="1707802646131" MODIFIED="1707802649518"> +<node TEXT="同一Contextへコピーしている" ID="ID_161154382" CREATED="1707802771082" MODIFIED="1707802782242"/> +</node> +</node> +<node TEXT="今後の研究方針" ID="ID_483450755" CREATED="1707805171584" MODIFIED="1707810001419" HGAP_QUANTITY="15.5 pt" VSHIFT_QUANTITY="16.5 pt"/> +<node TEXT="まとめ" ID="ID_1995509457" CREATED="1707802020025" MODIFIED="1707810003706" VSHIFT_QUANTITY="17.25 pt"> +<node TEXT="copyRedBlackTreeを実装した" ID="ID_723776666" CREATED="1707802023680" MODIFIED="1707802079425"/> +<node TEXT="それにより多重性を確保できるようになった" ID="ID_1299421285" CREATED="1707802080169" MODIFIED="1707802116869"/> +<node TEXT="多重性はシステムの信頼性を向上させる" ID="ID_1822229578" CREATED="1707802117853" MODIFIED="1707802132188"/> +<node TEXT="非破壊RedBlackTreeの増大抑制により実用的に" ID="ID_1391218931" CREATED="1707802699292" MODIFIED="1707809767003"/> +</node> +</node> </node> </map>