diff --git a/README.md b/README.md index a0f513b..becb8da 100644 --- a/README.md +++ b/README.md @@ -29,14 +29,18 @@ and Times Newer Roman (fonts are installed into `~/.local/share/fonts/` by the s ```sh # render a single diagram -mmdc -i figures/diagrams/system-context.mmd -o figures/diagrams/system-context.pdf +mmdc -f -i figures/diagrams/system-context.mmd -o figures/diagrams/system-context.pdf # render all diagrams at once for f in figures/diagrams/*.mmd; do - mmdc -i "$f" -o "${f%.mmd}.pdf" + mmdc -f -i "$f" -o "${f%.mmd}.pdf" done ``` +`-f` (`--pdfFit`) is mandatory: without it `mmdc` writes the chart onto a full US-Letter +page, so `\includegraphics[width=\textwidth]` scales all that surrounding whitespace up +and a small diagram eats a whole A4 page. + Render before calling `latexmk` whenever a `.mmd` file changes. The generated `.pdf` files are gitignored via `out` (only `out/` is ignored, so diagrams in `figures/` are **not** ignored — commit them). diff --git a/TODO.md b/TODO.md index 6cd52b8..cf6a756 100644 --- a/TODO.md +++ b/TODO.md @@ -39,7 +39,7 @@ screenshots habe ich in figures/screenshots gelegt. - [x] allegemin sowas wie: "Im Review fragte Robin Noack, ob die Einschränkungen ausreichen. Eine zu schwache Norma lisierung führt zu Schlüsseln, die der Speicher zurückweist — das wäre erst bei einem Kunden mit ungewöhnlichem Firmenna men aufgefallen. Die Antwort verwies auf die Herstellerdokumentation (IBM 2026; Amazon Web Services 2026c)." das ist vie lzuviel text einfach nur um zu sagen "laut der IBM doku passt das so" - [x] "Timo Walter merkte an, dass reale Kundennamen in den Tests verwendet wurden, und schlug Platzhalter vor. Der Hinweis ist klein, in der Sache aber richtig: Testdaten liegen in der Versionsverwaltung und bleiben dauerhaft lesbar; ein realer Kundenname ist eine unnötige Offenlegung, da der Test mit Platzhaltern denselben Zweck erfüllt. Die Daten wur den ersetzt." unnötige details schon wieder... // ist das noch kaputt? - [ ] Ein paar der bibreferences sehen komisch aus und zeigen nicht richtig auf den korrekten bib eintrag, sollte gefixed werden. -- [ ] Die Abbildungen nehmen vertikal sehr viel white space ein, das sollte nicht so sein. +- [x] Die Abbildungen nehmen vertikal sehr viel white space ein, das sollte nicht so sein. - [ ] ähnlich wie ich es in ~/repos/itc.componentware/ gemacht habe, eine flake und ein build output haben. # Review diff --git a/appendix/appendix-diagrams.tex b/appendix/appendix-diagrams.tex deleted file mode 100644 index 15ab173..0000000 --- a/appendix/appendix-diagrams.tex +++ /dev/null @@ -1 +0,0 @@ -% TODO: eingebundene Diagramme (falls nicht inline in Kapiteln) diff --git a/appendix/appendix.tex b/appendix/appendix.tex index acd38d0..2ca3606 100644 --- a/appendix/appendix.tex +++ b/appendix/appendix.tex @@ -3,11 +3,6 @@ \clearpage -\section{Diagramme} -\input{appendix/appendix-diagrams} - -\clearpage - \section{Screenshots} \input{appendix/appendix-screenshots} diff --git a/figures/diagrams/auth-sequence.pdf b/figures/diagrams/auth-sequence.pdf index f086dc4..6bc48a9 100644 Binary files a/figures/diagrams/auth-sequence.pdf and b/figures/diagrams/auth-sequence.pdf differ diff --git a/figures/diagrams/gantt-plan.pdf b/figures/diagrams/gantt-plan.pdf index 5c06144..3610216 100644 --- a/figures/diagrams/gantt-plan.pdf +++ b/figures/diagrams/gantt-plan.pdf @@ -4,8 +4,8 @@ <> +/CreationDate (D:20260907214435+00'00') +/ModDate (D:20260907214435+00'00')>> endobj 3 0 obj <> stream -xœí]]o\GŽ}¿¿¢žH»Xßl9 öa˜±�™wí&‹…<ƒdgÿÿâ°È"¯Ú–d½ÅÓIݦêƒ<<§š·ºnë’òäB 1|wq/ûLáþÓñÛ�ߤZcÈ9Æðûý·ð÷ã·#_(Uî·®Ö÷Ÿ -ø÷/?‡uñû¯Ç›Ÿsøõ�7ÿñ�¿øçïÿwÿÏðý÷oþt÷ïïC ?üðîýOÒG y LñËñçãÏÇo‡ [j ”(]ª›Ÿxn -©Œ@™0sdÓ_~ë‚gn˜ùÇ?ÝoþÖÃûð°ÚµÄþl×7�»Õö’nóq·žÚ ºQ|ÜoŒú’~ô¸Åò¢ŽéªcŠå%óUÇÜ^Ô±\u¬)¿¤c½êØFzIÇvÕq”u¼âLŠ‘^ÒñŠ5‰Z|IÇ+Þ¤¨×/uK´ú¥«4²xâ³ý®²˜jÈéùù®’˜j(ñùù®r˜j˜/˜ï*…˜ï¸\g°†ö‚ù®XC}žŸË_—|¥{ô{>¾|¥{ð%¾`ÂÏf<`Þ„ùâ;Àe¤^ƒÿÿ_~×F{gè#Ô>}âçÃÑç%Ï>^õyé#Öˆ—ØÑ#^¨ŒX¶”F®5Ü#^*Õ::¬yÄ:ZŽ#qï:{îaÐ…eª0�>ZïèL—S# -•.Tç„–�f¶2J‰ ¶Þ©¥ Û¨4ËêƒE23;ò̦gf‹�8³ŠÊàžÙÔg‰™™Ýeh5s°-ª#­¼("Ñ“óKuâ[Qeàª� -Cló&¦p2†÷� -'­ùH(svÛ9fỄâÑ¡Ì|éEÊ̬¬xó +8¨‰™˜:q Ã'��ºÕùFÈÚÊ‘AsœÙ³žØµýs<Üq8¾îˆ=±74NB§” öIS;-N};}�çúñõoñ7Ùßd“ý7 ûW¼åç–ÂáÓ‘gÆÅ.E¼Â5Pna�<Ï¢\ì&—a°"qD‚ ìî°IàyÖEØ!E0S¡„M„5¥8‚i)N-ŽVg¦+vP4�ldQÃ(õ]žhCܧ¢ÊÑî†T¥Vt#RU–éä%5Ó¿º9Ø,Ôµx`Ž[äDÝä` Á,Ê14a‰ð0îUÀr³Té;‰l[G†‘À{N:®ŽÜˆÑ)§†�„r~ÄóG“·(<ö޶ÈY,§�êiœÃ¯“©‘NPÕɪ'Pëdº=¿N3ŽS®ê¸N*gC¦d<®�c‰�èø¤“Ÿ˜·Ý4Šîp“wäžò#§� ¦Ó�Â.bã5Áäd¹3 Ý.U})p[nËÁm9ø†—ƒ×”sJ)|:ʈ|õ€+!TJ/j¼R -ö¶=S2_aF›%*Ga‹Ä^FRu¤´Q‚U„”²â #˜–ظp‡ µú`ÛÎÌ«¬§T4—l\YOE+ÃÂm–Ãø”srÌ»a–ý´Ü�yo¼¹éK´ÚÕyZ¢òØÅT"KžÂ/k‹0v8•µ•spp–µçØ=òeíNÆüÎRY™uËcYû�±Ç@%ñZ2ù -ëâÐ…ÁÂ( ƒ�˜g—…ÁO+RSœŸ°Éº`åÙt]ð‘à jT�Œ`Ððx¸ -øö0‹Œ-Onµ·Œò›Ažú¶�½-GÜ�¦^ýôÂÜÖ‡¡õáE>KI$Ö6øêWµw~�W«pMS>ÛŸ1Ua[¸Ý°.Rú`ƒmÕͰ-Øj�¼çÆó j÷¬KPi’ ÛRl«è‚ "­lã5Bz/=§™3¶MŒÛ‚¬vø¼zPIk—ãÚ¥ 6LK~6qŽºí·&^.º·P`ÅEœ£|Â&x-l`] CØÖ�•¡ Ûºµº?,/°®!Ë\&Îÿ¼ç,ã -‹a$ð¯V6Fk»ë4Œ ~s ¶•&s¿ Ýhó�ºÊmÁðÃ×î]¡Õêò`ëùNWY‰’eùõ˾e߆3–ìy=�ÌA#žEaµx=• #½!hâØP{YNLo–5(R5ûõ%ÁMí7µßÔþÇUû+Þà+ד ’ÇÞSi�@iB¼Æ+Ù™*mŸ´(}£ÍöaÖºU*£Êm±%”ÙÈ`€ÁŒ(ld¬0vÙ¼j#,eì{ÕF8R†Æ]‘Á,…{YÅŽq”!š†Øñ¨˜dõ™�ZæÈwÖõC)7dËú±¢›¾­ ½Ôdzqµ­Í¿V‚ ª­mÂq U«ˆX­jõì`mu ²´µ©™×;]­î3T–ÑVµÎ焯ՖáÔËZ95”´ä‡,²‡vž½ÈZñžÙE#S‘m´|Ž¿¬�´tªÈNÚ Õ"{i电—«OV™]ë|Kk™ƒ³Î}˜ ‡khDqC¥lvÏ>ç¨1Õ…dœvá{þ;¨L+TS•ᠥʉՒ -=‹â¿¾<¸­·µâ¶Vü«®¯).¨çýtT<;ÄgXêHJ/ÔôØR[ œEï'FV²N9QoQp-^Ï¢÷(¸Ö§n³èýÊ-®®aÛ÷(¸–¬f•c°‰þfÕû‰Q¤¬‡mëX½EÕs9éÜRä?ådJÖ4YY|¶†8^m—Hι6¹¡Ø3ãÈ 2&3Ë=%½¡Ø±À†Š2²ìŠ ¬PR0 aZxÚ°ñG‚ÜYó«ÜOì̱�åT>{ƒc,È5®ŽJk/�|;*Â57ñNÚèç™)kil>’l¤¹P(i­íc¦$4Ph(ɇ{?JR_Ÿ�¦¤w–"½k°Üñ1%™Œ³�ˆµ�ãÂÏqfÏ|b×öÑñpâøºC>1{cã4°1tZÙhŸTµóâô·óÇ - ¿¢\¸©ÿ¦þ›ú¿õ¿¦À³Æ=ê?±âêËýCߊV­öhÎZaÛ÷†¢UÀ]ÊpÅr_»0ã|³ÐI sx'}’Ãjõî6­¬ïIÓiõOšvÜô¬÷ £Ÿï†òuã�½£h3yPæ|“0ä‘�0ÖŽ¢…<ÜŽ¢�3¦èÆ0Såeh�iB´¼Œ½¡h™S¥Í‹7¶Ÿ8×kË8%¥�µKI©fã%RRú™ÓÊyi©»CIºÅvŠ9é›B“¢ÊËðKºÁvB:E•¬å„æuîRäÌrÎ6–€yÍÏ8c3{v™�ÆC Äøj!{f6¦Ãдbh{UY^L–?(T4üŠà¦þ›úoêÿfÔÿš` ’|0ù -5ñÜ•$jH>·�y¨'<:?#2Ì×¹ƒ°Q‚šq¹CƒŸ´Ëáa0M>ŠRQõMtò‘•ÔØ&ÀOÚuø´MÒŠ=EMæ$­ìSÔ¤ãq�ÄLÄUÆ×.W%‘�—«< äfÎÍ>P4sÓ -ÖbÉ�Yn!çnb0prÕls—Ó:ëÜíãÄ�”Üåù,—µÜwý?CÊŒ/òœWv»Öÿ®]×úß�'OÊ>š¸ u�‹£ Å-�Qµþ÷�ªõ¿3ªÖÿ†ÞàGƒS?ã<ªÖÿ–»w³Ì n¡÷xéÑ=ž1ÁÆ3ÆØÌž[棱Ð1¶ZȞ׆�)À04¥Ú^R–Ÿå�Õ¹ôûŠ7ÿ›òoÊ¿)ÿ›Pþ+ÞøáÑ[œ.nØjáÓ¦-¯TÖk¼’M¦"‡CËE9YÒvVÙ¸*I‚m•·°-ÈZ®Ræ[$°Ê†Yɲ™›l¬Ý,�m‘6Ýž�U[ŠÅ`ÛJ{‘c£¡ex·¼m³=®]]çPƒ®N)3ÝÄ-n^:[”Lj\(M%î‚n´áài$}Œ�äØŽ¼ÑÖ¢KM#)×]òšîwqj¹lçt7N25e‘µ£¦l³ñ¨êþŸŸ™tÌùHU÷ÿ,Ò=°SÔTäÓ3‡ñX™G*ºè§¢ÊµÜȦO!ñ‹Õ�sŽ ó5#l8cŽMì9f.-c­íùmð˜ FSŒîµe©1Z -¡SQò×—·5à¶ÜÖ€om ø°¾ÈðÒ[ï­S°«ï>g¤ÒâeÖÖzø®á¹ÊÚRÕ7âYÕLø<±•ÌW¸Úg\KÀ+9KúyF+Êî,À#â²dÀ¶UƒÁ$çoì9…VªžÔØWgU`؉[ÊÁ_�½°mq:/اt–³Ä‚zå†räXPGgѹG 9»Ûe"Úp™$v7oNÆló0'Õ€E’“jÅbÎY®`‚NæÏàj bÎ2´;gyVêþpiÉYÜu‰ËY—¤5c7ŽS�9Ái]»4„¯n¼Ô…Ù§™S×“Êæcê’4JZçjÎ1§&òsè¤&2u(¦&Õý ï$gj|fRs©[/VSÎõƒ\mØÆ›Ì‘ʼ2ö™÷ÆÒ¦§³áaÄ7ÜL †°’¥Âg)ã –j_Q>Üô~ÓûMï`½x滋k!Ⱦ•.¯��®è¨õp¹Çuõ€+Ý�Â÷7Ŷ«V³Ç¾ë[}Šóþ€µR-…­«<‚mä9–m•Q=ò§k)±M .Xe'®é3œ°ÉŽ]ÓG8aë�Ê`›¤Æ™2»¬p²mU�MŸßìëê1ðp¸vC¾Ä 7²Ô¬nÞQö‡\Îá÷.<€R|À£î²ÚA3tqýþöЯZ¹?\Z†~+‹KÜÐÇp9­ƒ+Ú¾®ŽÖ«V¢»lR±îñZççg�f†U¶Ä¶�°ÉÖÙŽ¥õõìÎ)h¡©� ^vÂ&›{jX¥òßIi==Î]÷�-eáªñ-£5ÛTpÃmʸ‰�[ÎÃMBÆ&«ÅëXí€Ùüwn�8¨�¢\R¶ö\òðE±¢_©rª5\rœ#\zî™åeôÁMÿ7ýßôÿMèÿÃgÿòÁ—þx ùë5ï>o~Â7J…�¿È_SøŽ¾_;_jøøéø>Æ4c,#ÆRb¬=Æ:b¬uÙðçì´~_~бÞÅX~ÿCøø?Ç�×±ùŒõI/°r�nnè43ƚą¾ÜÀ5»…ß¿|Ë1ƹ~¦*.µÅÕ„öϹٞt³ðw�‘ùÙeÜ&>Eóð±/xý.ƚͅ´ÖçüéÏøS.1£2¤\Í«;ñ(‰'íŒNo�w/IÞxÚ œŸíƒðìp>å°TG—wÍ%<éÏÍ>Ÿœ½Ö»c�rRßÊÜšû²8t…F^}@}¥·ïJógüKñiÿf )·³ã3û'œfy)?Òâ-s*?7?=�ϰ¼ä…w»¥Œ�lcøøŸá{Ñr^¢+wœÝcМ·«­&™Ûß)õžs<=>nvbáóœâ#„õYJë:öÓš}#áËö³ül1~w÷œŸùI?[áõËü|'X��¨ž}û¬/ ßÛ—ørZÍóµ3•BNŽmYVLa4;ò£KÔÔ\ü÷~u}Ι§u>öÈ·­Ýä™ýÒñ_00™Q’Ý—õô2Nø“[{’¶dÈkÄÝù½„Ç[1ÅHUÀÏùœO¯àp`¾Ø�ùž^Ä ½ïż}…ùéUšbÈ´("©r”�o›ˆ¤‰hîü›èãÒD"-ÖÈkEÿà_ë :úÄ™�þðE -¹ÊË�ßƹ¾Â¶ÜŒ œj�ïe‰”àêÉí–ü»%PTœ 'Ê/eM…+Üíïz*‹^ÈøëŠ€èÿà� +/Length 4721>> stream +xœí]]o\GŽ}¿¿¢žH»Xßl9 öa˜±�™wí&‹…<ƒdgÿÿâ°È"¯Ú–d½ÅÓIݦêƒ<<§š·ºnë’òäB 1|wq/sÌJáþÓñÛ�_¦c ÔÒ¥†ßÿëøë¿…¿¿hS¹óºZÿÝ:(àß¿üÖÅï¿o~Îá×ÿ=ÞüÇ?þþ៿ÿßý?Ã÷ß¿ùÓÝ¿¿1üðû÷wîÖS{A7Š�û�Q_Ò�÷£X^Ô1]uL±¼¤c¾ê˜Û‹:–«Ž5å—t¬WÛH/騮:Žò¢ŽWœI1ÒK:^±&Q‹/éxÅ›Tõú¥n‰V¿t•FO|¶ßUS 9=?ßUS %>?ßUS óó]¥ó½—ë ÖÐ^0ßuk¨/ÀósùëÏã’¯t�~ÏÇ—¯t¾ÄLø9ÂŒçÌ›0_|¸ŒÔkðÿÿËÏáÚhï }„ç£Oü|8ú¼äÙG«>/}Äñâ{#aÄ • Á–Òȵ†ûcÄK¥ZG‡5�XgCËQb$î]gÏ= ºP¢L¦ÑGë�éRbjD¡Ò…꜃вÑÌ£ÂVF)1ÁÖ;µ4a•fY�gÊ£—PÓ%Ñ,£¡!¿¡&ØZLÔs@DíSh=<Ö¦u‰Ø†j�—YÝœmhà<©x׆nQ´¡�[¼mêƒ%¿osõaXeœ6ulƒºMõâþ°¤´©þî¤Á´¢ê3ôˆæ?ŽÞ‰V}›¾; ÕÚÜΓ6$!Oç]oœ«ž]½®¬žÂ핳ߚ¦×Å’äìUù¤P�Õ›™G’ÞËUîzEZÑi~8¬‰QÀ†2ªØ¤Ê©²&÷Œ}†±tÇëélÀlÞoøL†³×‘eÄg™ƒ$Y®÷Ç¿`aÿƒÐÏ–¥òr“ùMæ7™ÿAeþáëßÒµÐKøt¤Òqñ€ �ð/@{üN'Oeå ÌMX‘µ +« ÛÈsØ©T˜i¶�BgæK�€O�‚ ¼ª°1Tƒm à‚YS+¨ÊL¬Ø6çd +”Ùœ\LâXµÕ¤´ôLydØûè:o�a&Ž=g™wy8ÇÞg°HfbfÇâBžÙ4`à̬b1gVQÜ3›ú,13³» ­f¶Eu¤•E$zr~©.@|+ª \õ£QaˆmÞÄÃNÆðRá¤5 eÎn;ÇL™yP<:”™/Ý£H™™•o^ba51S'ŽaøR·Ú#ßY[92è`Ž3{Ö»¶އ;Ç×±'ö†Æ)`C蔲Á>ij§Å©o§ò\?¾þ-þ&û›ìo²ÿdÿŠ·üÜR˜#|:ò̸xÀ£ˆW¸Ê-Ì¡“çY”‹ƒÝä2 V$ƒh@°�Ý6 <Ϻ¨›"£f*”°‰°¦G0-åÏ©ÅÑêÌtÅЦ‘�,j¥¾Ëmˆû´@T9ÚÝ�ªÔŠnDªÊ2�¼¢fúW7›…ºŒÂq‹œ¨› $˜E9†&Œ"1ƽ +XŽ`–*}'‘mKàÈ0xÏIÇÕÑ1:åÔ°‘PÎ�Ø"cþhò…ÇÞÑ9‹åR�"�søu25Ò ª:™Cõj�L·Gø× bÆqÊU×IålÈ”Lƒ‡Ãµs,±Ÿtòó¶›FÑŽcòŽÜS~cä´±ÁtRØEl¼&X‚œ,w&¡Û¥ê¯/nËÁm9¸-ßðrðšaÎ@)…OG‘¯p%„J)àC�Wê@ÁÞÖ¢gJæ+ÌÈ`c³Dã(l‘ØËHªŽ”6J°Š�RVr˜A�êQ‚ OWÂf‘±åÉ­ö–Q~3ÈSßÒ£·ãˆRØÔ«Ÿ^˜'«òvu“ÔÅdlvñ;â;¨L#S“’ÁïUç2e +u9Mè¸TþŠšá¶>ÜÖ‡Ûúð/´>¼¢ˆÀg)iâƒÄÚ_=à + öίñj®iÊg¡âs"¦*l ·ûÖEjXl°­º¶[í‘÷Üx>Aíþ€u *MÔ`[ʃm]°A¤•m¼FHï¥ç4“`ƶ‰q`[�ÕŸW + éÃaír\»tÁ†ƒiÉÏ&ÎQ·ýÖÄËEXWø +l£¸ˆs”Oد… ¬«ƒaÛº³2´a[·V÷‡åÖu#d™ËÄ™ãŸ÷œe\a1¬‚^ãÕÂÊÆ(cmw�&ƒqÁonÁ¶Òdî—¡m>PXW¹-xÀ~xÐ`ãÚÝ£ #´Z]l=ßé*+Q²ì#¿~Ù·ìÛpÆ’=¯§“9hij(Œ ¯§²!c¤7Mj¯"ˉéͲEªf¿¾$¸©ý¦ö›Úÿ¸jÅ|åz²AòØ{* (Mˆƒ×x%;S¥í“¥ïb´Ùþ!ÌZ·JeT¹-¶„2 0˜…�ŒUâÆ.›Wm„e£Œ]`¯ÚÇAÊB¸+2˜¥p/«8Â1Ž2DÓ0;“¬>3PËùnز~(å†lY?VtÓ·µ¡—šL/®¶µù×JpAµµM8N´j±«U­ž¬­îT–‚¶65ó`§«Õ}†Ê2ÚªÖùœðµÚò œzÙA+§†²ƒ–ü�EöÐγÙC+ÞÓ"»häc*²�–Ïñ—µ‘–NXÙI;¡Zd/휀²öÒbõÉ*³k�oi-spÖ¹3ááp �(nH£”ÍîÙç5¦º�ŒÓ.|Ï•iÅ�jª2üO´T9±ZR¡gQü×—·µâ¶VÜÖŠÕµâ5ÅÕ€ã¼ŸŽŠg‡ø KIé…š[j‹�³èýÄÈJÖ)'*à- +®ÅëYô~×úÔm½Ÿ@¹ÅÕ5lû~×’Õ¬r¬6Ñ߬z?1Š”õ°­c«·¨z®#'�[Šü§œL Àš&+‹ÏÖÇ«íÉ9—`ãÁ&7{fyáOÆdf¹ç¡¤7;ØpC±CÆA–}C±Á�J +†!LëOC6þH�;k^`•û‰�9¶ñ¡œÊgopŒ¹ÆÕÃQií¥‘oGE¸æÆ#ÞIý<3e-�ÍG’�4 +%­µ}Ì”„ + %ùpÏáGIêëÒ”ônÀrB¤w –;>¦$“q¶±¶s\Øã9Îì™OìÚ>:î@_wÈ'folœ6†N+퓪v^œþvþX¡¢áW” 7õßÔSÿ7£þ×xÖ¸G½cà'V\}Ù£¿cè{CѪÕÍY+lûÞP´ +¸ëC®Xîkfœo: d®ï¤OrX­Þ݆¢•õ=i:­þïIÓŽ»ƒžõ>aôó}ÂÐC¾n¼±wmæ!Êœo†²’ÛøI»Ÿ–¢IZ±§¨Éœ¤•}Ššt<’˜‰¸Ê8câÚåª$²ñr•g�Ü̹ÙŠæcnZÁZ,¹1Ë-äÜM N aîrZÇa�»}œ¸“’»<Ÿå²–û®ÿgH™ñEžóÊn×úßµëZÿ»ñäIÙG7¡®sq4¡¸2ªÖÿ>âQµþ`FÕúßÐühpêgœGÕúß2b÷n–¹Á-ô/=ºÇ3&ØxÆ›ÙsË|4Z ÆV ÙóÚ°1†¦CÛKÊòbâ³ü±:—~_ñæSþMù7åÊÅ#óÞXºÃôt6<Œø†› ÄvB²T˜â,eÄRí+ʇ›Þoz¿éý¬÷Ï|wq-Ù·ÒÃe Bàõà±ÑUµ ÷¸®p¥»Søþ¦ØvÕª`öØw}«OqÞ°Vª¥°u•G°�<Dz­2ªGþt-%¶iÁ«ìÄ5}†6Ù±kú'l½Sl“ôÁ8Sf—N¶­ê±éó›=¢`]=f@×nÈ—ƒ¸áF–šÕÍ;Êþ�Ëy8ô>ÀE‚PŠxÔ]V;h†."¡ߟâÀúU+÷‡KËÐoeq‰ú.§upEÛ×ÕÃÑzÕJt·ƒM*Ö=^ëüüÌ Ó̰ʖØö6Ù:Û±´¾žÝ9 #4µ±�ÂË@ØdsÏA «Tþ;)­§Ç¹køö±¥,\5¾e´f› +n¸M7±qËy¸IèÂØdµx«0›ÿÀ­µS”KÊÖžK¾(Vô+µ@Nµ†KŽs„KÏ=³ü¯Œ¾"¸éÿ¦ÿ›þ¿ ýøì_>øÒ¯¡"½æÝÇãÍOøF©ðñùk +ßQÀ÷kçK ?ßǘfŒeÄXJŒµÇXGŒµ.þ\C‚�ÖïËO1Ö»kÃïÿçøñãú#6Ÿñ¢>éV®ÑÍ �fÆX“¸Ð—¸f·ðû·bƒo9Æ8×Oü- v®ý(®&´ÎÍö¤›…¿{ŒÌÏ.ã6ñ)š?€�}Áëw1Öl~(¤µ>çOÆŸr‰•!åj^݉GIíߌ!Eãvv|fÿ„Ó,/åGZ¼eNåçæ§çñ–—¼ðn¢”ñ‘m ÿ3|/ZÎKtåN€s¢{ ƒóvµÕ$sû;¥Þsާg€ÃÇÍNl"|žS|„°>Ki]Ç~Z@³ïïb$|Ù~–Ÿ-FÂïîžó3?ég+¼~™Ÿï Õ³oŸõä{û_N«y¾v¦RÈɱ-ËŠ)ŒfG~t‰šº€Ë‚ÿÞ¯®Ï9óô¢ÎÇù¶µ›<³_š‡,‘n±*êØ‰IN¶¹¼PÃOCî’Âú5±^ÿþëƒxzÉ'þ &3J²ûr ž^Æ rkOÒ– y�¸;¿—pàx+¦© +ø9ŸsàéÌ;0_ãÀÓ‹8áï÷½Ø�·¯p ?½JS ™¶E„"UŽòñm‘4Í�}\š¨C¤Å¹b­èük=AGŸø"óãѾHá/Wyùñ›À8×WØ–›±áƒS ò½,‘\ý"¹Ý’·Š +ƒ³áDù¥¬©p…»ýýOOeÑ ]ý?:«�î endstream endobj 2 0 obj @@ -566,7 +569,7 @@ endobj /X33 33 0 R>> /Font <>>> -/MediaBox [0 0 612 792] +/MediaBox [0 0 600 303.12] /Contents 36 0 R /StructParents 0 /Tabs /S @@ -1180,10 +1183,10 @@ xref 0 115 0000000000 65535 f 0000000015 00000 n -0000014955 00000 n +0000014956 00000 n 0000000280 00000 n 0000000317 00000 n -0000033622 00000 n +0000033626 00000 n 0000000397 00000 n 0000000435 00000 n 0000000883 00000 n @@ -1213,90 +1216,90 @@ xref 0000009461 00000 n 0000009777 00000 n 0000010086 00000 n -0000040157 00000 n +0000040161 00000 n 0000010163 00000 n -0000015527 00000 n -0000020989 00000 n -0000020602 00000 n -0000020530 00000 n -0000020232 00000 n -0000015660 00000 n -0000015583 00000 n -0000015809 00000 n -0000015732 00000 n -0000015958 00000 n -0000015881 00000 n -0000016107 00000 n -0000016030 00000 n -0000016256 00000 n -0000016179 00000 n -0000016405 00000 n -0000016328 00000 n -0000016554 00000 n -0000016477 00000 n -0000016703 00000 n -0000016626 00000 n -0000016852 00000 n -0000016775 00000 n -0000017002 00000 n -0000016924 00000 n -0000017152 00000 n -0000017074 00000 n -0000017302 00000 n -0000017224 00000 n -0000017452 00000 n -0000017374 00000 n -0000017602 00000 n -0000017524 00000 n -0000017752 00000 n -0000017674 00000 n -0000017902 00000 n -0000017824 00000 n -0000018052 00000 n -0000017974 00000 n -0000018202 00000 n -0000018124 00000 n -0000018352 00000 n -0000018274 00000 n -0000018502 00000 n -0000018424 00000 n -0000018652 00000 n -0000018574 00000 n -0000018802 00000 n -0000018724 00000 n -0000018952 00000 n -0000018874 00000 n -0000019102 00000 n -0000019024 00000 n -0000019252 00000 n -0000019174 00000 n -0000019402 00000 n -0000019324 00000 n -0000019552 00000 n -0000019474 00000 n -0000019702 00000 n -0000019624 00000 n -0000019852 00000 n -0000019774 00000 n -0000020004 00000 n -0000019924 00000 n -0000020158 00000 n -0000020078 00000 n -0000020687 00000 n -0000020932 00000 n -0000021082 00000 n -0000021282 00000 n -0000032286 00000 n -0000032537 00000 n -0000033201 00000 n -0000033770 00000 n -0000039197 00000 n -0000039459 00000 n -0000039797 00000 n +0000015531 00000 n +0000020993 00000 n +0000020606 00000 n +0000020534 00000 n +0000020236 00000 n +0000015664 00000 n +0000015587 00000 n +0000015813 00000 n +0000015736 00000 n +0000015962 00000 n +0000015885 00000 n +0000016111 00000 n +0000016034 00000 n +0000016260 00000 n +0000016183 00000 n +0000016409 00000 n +0000016332 00000 n +0000016558 00000 n +0000016481 00000 n +0000016707 00000 n +0000016630 00000 n +0000016856 00000 n +0000016779 00000 n +0000017006 00000 n +0000016928 00000 n +0000017156 00000 n +0000017078 00000 n +0000017306 00000 n +0000017228 00000 n +0000017456 00000 n +0000017378 00000 n +0000017606 00000 n +0000017528 00000 n +0000017756 00000 n +0000017678 00000 n +0000017906 00000 n +0000017828 00000 n +0000018056 00000 n +0000017978 00000 n +0000018206 00000 n +0000018128 00000 n +0000018356 00000 n +0000018278 00000 n +0000018506 00000 n +0000018428 00000 n +0000018656 00000 n +0000018578 00000 n +0000018806 00000 n +0000018728 00000 n +0000018956 00000 n +0000018878 00000 n +0000019106 00000 n +0000019028 00000 n +0000019256 00000 n +0000019178 00000 n +0000019406 00000 n +0000019328 00000 n +0000019556 00000 n +0000019478 00000 n +0000019706 00000 n +0000019628 00000 n +0000019856 00000 n +0000019778 00000 n +0000020008 00000 n +0000019928 00000 n +0000020162 00000 n +0000020082 00000 n +0000020691 00000 n +0000020936 00000 n +0000021086 00000 n +0000021286 00000 n +0000032290 00000 n +0000032541 00000 n +0000033205 00000 n +0000033774 00000 n +0000039201 00000 n +0000039463 00000 n +0000039801 00000 n trailer <> startxref -40313 +40317 %%EOF diff --git a/figures/diagrams/lookup-flow.pdf b/figures/diagrams/lookup-flow.pdf index fc30458..26e7923 100644 Binary files a/figures/diagrams/lookup-flow.pdf and b/figures/diagrams/lookup-flow.pdf differ diff --git a/figures/diagrams/module-components.pdf b/figures/diagrams/module-components.pdf index ba1f343..84b0b84 100644 Binary files a/figures/diagrams/module-components.pdf and b/figures/diagrams/module-components.pdf differ diff --git a/figures/diagrams/race-condition-a.pdf b/figures/diagrams/race-condition-a.pdf index 4b74561..1e56f23 100644 Binary files a/figures/diagrams/race-condition-a.pdf and b/figures/diagrams/race-condition-a.pdf differ diff --git a/figures/diagrams/s3-layout.pdf b/figures/diagrams/s3-layout.pdf index ee37a38..fafca16 100644 Binary files a/figures/diagrams/s3-layout.pdf and b/figures/diagrams/s3-layout.pdf differ diff --git a/figures/diagrams/system-context.pdf b/figures/diagrams/system-context.pdf index b273634..f94286c 100644 Binary files a/figures/diagrams/system-context.pdf and b/figures/diagrams/system-context.pdf differ diff --git a/figures/diagrams/timeline-infra.pdf b/figures/diagrams/timeline-infra.pdf index 3abfee4..859d771 100644 Binary files a/figures/diagrams/timeline-infra.pdf and b/figures/diagrams/timeline-infra.pdf differ diff --git a/figures/diagrams/zip-stream.pdf b/figures/diagrams/zip-stream.pdf index c8efe7a..f076988 100644 Binary files a/figures/diagrams/zip-stream.pdf and b/figures/diagrams/zip-stream.pdf differ