meadow 2.0.42 → 2.0.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +2 -3
  2. package/docs/architecture.md +10 -99
  3. package/docs/diagrams/create-waterfall.excalidraw +2016 -0
  4. package/docs/diagrams/create-waterfall.mmd +19 -0
  5. package/docs/diagrams/create-waterfall.svg +2 -0
  6. package/docs/diagrams/crud-behavior-flow.excalidraw +1305 -0
  7. package/docs/diagrams/crud-behavior-flow.mmd +13 -0
  8. package/docs/diagrams/crud-behavior-flow.svg +2 -0
  9. package/docs/diagrams/module-hierarchy.excalidraw +1582 -0
  10. package/docs/diagrams/module-hierarchy.mmd +15 -0
  11. package/docs/diagrams/module-hierarchy.svg +2 -0
  12. package/docs/diagrams/query-lifecycle.excalidraw +1808 -0
  13. package/docs/diagrams/query-lifecycle.mmd +21 -0
  14. package/docs/diagrams/query-lifecycle.svg +2 -0
  15. package/docs/diagrams/schema-system.excalidraw +2034 -0
  16. package/docs/diagrams/schema-system.mmd +21 -0
  17. package/docs/diagrams/schema-system.svg +2 -0
  18. package/docs/providers/README.md +6 -14
  19. package/docs/providers/diagrams/overview.excalidraw +1324 -0
  20. package/docs/providers/diagrams/overview.mmd +8 -0
  21. package/docs/providers/diagrams/overview.svg +2 -0
  22. package/docs/providers/diagrams/use-case-unified-client-server-interface.excalidraw +919 -0
  23. package/docs/providers/diagrams/use-case-unified-client-server-interface.mmd +12 -0
  24. package/docs/providers/diagrams/use-case-unified-client-server-interface.svg +2 -0
  25. package/docs/providers/meadow-endpoints.md +5 -17
  26. package/docs/providers/mongodb.md +2 -2
  27. package/docs/providers/mssql.md +1 -1
  28. package/docs/providers/mysql.md +1 -1
  29. package/docs/providers/postgresql.md +2 -2
  30. package/docs/providers/rocksdb.md +1 -1
  31. package/docs/providers/sqlite.md +1 -1
  32. package/docs/query/README.md +1 -1
  33. package/docs/query/count.md +2 -8
  34. package/docs/query/create.md +2 -12
  35. package/docs/query/diagrams/how-it-works-2.excalidraw +1097 -0
  36. package/docs/query/diagrams/how-it-works-2.mmd +10 -0
  37. package/docs/query/diagrams/how-it-works-2.svg +2 -0
  38. package/docs/query/diagrams/how-it-works-3.excalidraw +665 -0
  39. package/docs/query/diagrams/how-it-works-3.mmd +6 -0
  40. package/docs/query/diagrams/how-it-works-3.svg +2 -0
  41. package/docs/query/diagrams/how-it-works-4.excalidraw +881 -0
  42. package/docs/query/diagrams/how-it-works-4.mmd +8 -0
  43. package/docs/query/diagrams/how-it-works-4.svg +2 -0
  44. package/docs/query/diagrams/how-it-works-5.excalidraw +881 -0
  45. package/docs/query/diagrams/how-it-works-5.mmd +8 -0
  46. package/docs/query/diagrams/how-it-works-5.svg +2 -0
  47. package/docs/query/diagrams/how-it-works.excalidraw +665 -0
  48. package/docs/query/diagrams/how-it-works.mmd +6 -0
  49. package/docs/query/diagrams/how-it-works.svg +2 -0
  50. package/docs/query/read.md +4 -18
  51. package/docs/query/update.md +2 -10
  52. package/docs/query-dsl.md +1 -1
  53. package/docs/quick-start.md +1 -1
  54. package/docs/retold-catalog.json +1 -1
  55. package/docs/retold-keyword-index.json +1 -1
  56. package/docs/schema/README.md +2 -7
  57. package/docs/schema/diagrams/overview.excalidraw +834 -0
  58. package/docs/schema/diagrams/overview.mmd +5 -0
  59. package/docs/schema/diagrams/overview.svg +2 -0
  60. package/package.json +13 -6
  61. package/scripts/bookstore-seed.js +136 -1
  62. package/scripts/meadow-test-cleanup.sh +1 -0
  63. package/scripts/oracle-test-db.sh +128 -0
  64. package/source/providers/Meadow-Provider-MeadowEndpoints.js +36 -7
  65. package/source/providers/Meadow-Provider-Oracle.js +5 -1
  66. package/test/Meadow-Provider-MeadowEndpoints-Session_tests.js +123 -0
  67. package/test/Meadow-Provider-Oracle_tests.js +877 -0
@@ -0,0 +1,13 @@
1
+ flowchart TD
2
+ A["Application calls<br/>meadow.doCreate / doRead / doReads /<br/>doUpdate / doDelete / doUndelete / doCount"]
3
+ B["Behavior Module<br/>(async waterfall)"]
4
+ C["Provider.Create / Read /<br/>Update / Delete / Undelete / Count"]
5
+ D["Database Result"]
6
+ E["Marshal Record<br/>(marshalRecordFromSourceToObject)"]
7
+ F["Callback<br/>(pError, pQuery, pRecord)"]
8
+
9
+ A --> B
10
+ B --> C
11
+ C --> D
12
+ D --> E
13
+ E --> F
@@ -0,0 +1,2 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 515 941" width="515" height="941"><!-- svg-source:excalidraw --><metadata><!-- payload-type:application/vnd.excalidraw+json --><!-- payload-version:2 --><!-- payload-start -->eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1dW5PayFx1MDAxNX73r6DYl02Vkft+8dtcXLNO4mSz3q08JFspXHJoZ+RcdTAwMTGIXGKNZ5wt//dcdTAwMWNcdJC6hYy6XHUwMDA3yIgymFx1MDAxYUNLOuo+fb7+vr6o+f3VYDDMP8+j4dvBMHpcdTAwMWGHSTzJwsfh61wi/VOULeJ0XHUwMDA2h0j5fZE+ZOPyzLs8n79981x1MDAwNlx1MDAxM1x1MDAxOSD4h98yLbFeXlx1MDAxNSXRNJrlXHUwMDBiOO+f8H0w+L38XHUwMDBiR+JJce3iLpxHo7NcdTAwMTEqX+F9eVV5fJ2PLFx1MDAxYefh7DaJ6kNPkI5F9fWz/fUxnuR3kMQ0r9Luovj2Li/OQ7RKXFxafTtAVcpcIs/S++hcIk3SrLj1d/hcdTAwMWNfXHUwMDEzWt/4Jlx1MDAxY9/fZunDbFKdk2fhbDFcdTAwMGYzKGR93m9xknzIP5fWwVHgxmHjXHUwMDFl/1hlkjTSv3ZcdTAwMTXc9PZuXHUwMDE2LVxuR+IqNZ2H4zgvy4/qUlx1MDAxNDmcv5uUPv+1zlNcdTAwMTZOo3eF02dcdTAwMGZJYlx1MDAxYZ5NVobXdVN7n65SvtTZjKLCXHUwMDA2VfX9XHUwMDFhkWGm/TWdlTFCXHUwMDEwYVxm8bpC4sUlhEZe2votTFx1MDAxNlHt41wiQ1fNsDFDx1xinzDL0kdcYp/zVVx1MDAwMKm0cplcdTAwMTVE5XnD6siX1afaO1x1MDAwZvNJuMxccpZcbjFGhGBcZsvqeFx1MDAxMs/um65L0vF9S1x1MDAwMeLZJHoqb4qWd1xcOa9cdTAwMTH5SXhcdTAwMTMlVeTr8Wbk59FTvjXoXHUwMDA1clx1MDAwYnqGelx1MDAxNfO4TzFvXHUwMDFkWFx1MDAwNzdcdTAwMTU+wa05NHdIPCu4XHUwMDBmXHUwMDEygWXggD+nUThJXHUwMDFmg0l6kUVge/BmMEl/grTqw2Lw5l+zSfpLeesydZnx8uMvXHUwMDEwx9WXXHUwMDBiyLhZ2eks/1x1MDAxMP83smOySL1cdTAwMGWncVLUXHUwMDBlt7JzlsS3hVx1MDAxM4djKHmUXHJNX+YxME11Qp7OzeBbRFDw8j61wTHcJ4TUbLNq0yy+jWdh8vPBXVx1MDAxMD7kYGCxdEKePURmTUU/VIRcdTAwMTNcdTAwMTAjMKqmXHUwMDAxb2tcdTAwMWGWpLhu06banVx1MDAxNDmzXHUwMDFhXGKC9EZcdTAwMGJBSI2aqoWQqlctxLGyokLYXGbsroZcdTAwMDNcdTAwMTMsXHUwMDA111LUKH9hXnzdbfR8dLEyet8rsiXdZLv2xkc3sm2CiaOAu8GJnFxi14twhfZcIlxcjIjEQlwi/SzcXHUwMDFjlHK/XHUwMDBmXHUwMDE3n2fjwSPYzeCM5Fx1MDAwZkfImVvKsFx1MDAxYunRbtJbty381pn0XGZcdTAwMTVcXPiQyrpcdTAwMDIrVYzqtFx1MDAxM+ftl/OwJ3ZcdCBNXHUwMDAy1Op++F45z5+eXHUwMDFjOO9idLnup6k+cVx1MDAxZevmvLU3mFx1MDAxM+c1sMSwaqG8VjSdKM+P8jD3go3SSmrCaf9cdTAwMTiv6jlV/Saj13Ss3UafQu3GibybXHUwMDEz123PzcSZXHUwMDEzsTFcdTAwMWFRepVtwlx1MDAxOOtcdTAwMTZcdTAwMThcdTAwMWJR2Vx1MDAwN1x1MDAxOFx1MDAxZispMqPj7TI8yjDRau+MuGSAdfjIx3bqKoF8YDp0MHo5ulpcdTAwMTmFqulcdTAwMTHHim6ObfHwtn6lpDY2RVu/XHUwMDEyK7yJTqNcdTAwMDXpXHUwMDAzOntPskQxXHUwMDFmXHUwMDE48lx1MDAwMoWcXHUwMDE5gzh9IdnLMFx1MDAwZlx1MDAwYlJcdTAwMWJcdTAwMDDRPCTtjGoosL0w6jSeTExecSHVLYzVpNivXHUwMDE2aTc+ld18um5nPlx1MDAxMvc+ZmPiRdchslx1MDAwNiw1+kGnPuZ+6VQovz6movBGhD5cdTAwMGLIh6AqXHUwMDA3/rtcdTAwMWFdr4z+J+9cdTAwMTP/qW7+W3sjVi7818CSpKSF/lrRdOpjelx1MDAwZav69TGxoFJJRnrIf99Pw1xmXHUwMDFh7+SnaJxmk+ssnX4ol5/8nP7t5iM02Uc5zOpept0oUXdT4rrpuZu6dzGxPVak+OZcXCM9jbtcdTAwMWWOXHUwMDEzqZe2XHUwMDE1kkss0YFGXftKXmfd5LXO+MfUhbyaUa9RW+etNe5P7OXHXlx1MDAxMimfXHUwMDAwx0pSpqVi+jkhflj2ml9B9GevXHUwMDA3878/RNln+H/Z5lx1MDAxZiVrdZdlN7Y631x1MDAwNtkt61x1MDAxYVx1MDAxYS2NhVpcImhgXHUwMDBmiGK8yVYmkivUalx1MDAxZtSSK3kp2TfDVq1r5/BcdTAwMDZCt6FWKkpcdTAwMTTjz+Olg4B2nsZN2qs/XHLqyi+/VJ9/fd19Nlx1MDAxNp2nXHUwMDA3XGIyz1x1MDAxNVx1MDAxNlhcdM458DW2LOhASY4lZkJKwZAgXHUwMDBlXHUwMDE269O5llrVa1x1MDAxYotcdTAwMTdcdTAwMDFgYK00XCJcdTAwMDJcdIpcdTAwMWTMUVm/heBW/ohcYrQg5tvBINxcdTAwMTYhTEGdMIJl3SZcdTAwMTQvilx1MDAwMkIp1lx1MDAwMnONXHRBLlx1MDAxZdRcZuiXSOj+U0JcdTAwMTG2iktpQLmGziWjlEnEXHUwMDFk8ofN8kiu7fyJwPRcdTAwMDdVXHUwMDBl9oSC81x1MDAxOFJSaqxcYrHM6YBoplx045xhRZVDfVx1MDAxMKQ4YlxuYaQlXHUwMDE0iprmXHUwMDE4XHRWkSQ0kVx1MDAxNGLLwZ5VPsZcdTAwMWSu0JjpdVx1MDAxMFx1MDAxMVqvmipccsigKFx1MDAwN2WrSnGwZ9a3wnVvoXhxXHUwMDE0gFxyJPlcbiXawZxVP/W8TGmOXHUwMDA2vuFcbigqnEm0XHUwMDE0QpF65V5pTlx1MDAwNFx1MDAwNShcdTAwMTHlXHUwMDAwXGZcdTAwMDI+cTBHhdJaXHSiXGJXxqBHaU5cdTAwMDfFTepocTBnXHUwMDE2h1KrLoFcdTAwMDMt8EpcdTAwMDdziihOXHRZYsZcdTAwMGUuIYJV2FFNhUNFQJCsolx1MDAxYaKBXHUwMDExbblOXHUwMDE2QDNu51x1MDAxMKlW4aTvXHUwMDA12mi7XzUuhJ7BXCK/SKfTOFx1MDAwN1L5sSCEXHK2y8MsP1x1MDAwN9VcdTAwMTLPbu1+2zSdlIScZjex2Vx1MDAxN1o/XG5jjpO3PPdSqoGn+q6NXCIgZDW4y5SNktSdxWg22TmXLVx1MDAwYpH3nMvSm2eFbruLwlxyyVx1MDAwMWUwjzVcdTAwMDVelNykj1t7gVx1MDAxN92SsnXZ0HZJ2VhcdTAwMWSqNpednVx1MDAwNOU+uoHMa5xcdTAwMDNT4CMqhdm3+IZcdTAwMTXlyJaUXHUwMDAyUyUtgm5Kym6GXHUwMDFlWZpSIE25rWJsTVlcdTAwMTCEi0lcdTAwMWZd2ck2I09dqTrJcGQrSyypLc1cdTAwMWLKklx0XHUwMDE3P1raXHUwMDEya9ugr7RcdTAwMWM1tCXhNv83xaVTXHUwMDBlTXlcdKhilkDx15cjf4E52rfCXHUwMDFjNSSmZMLKkrfGXHUwMDFj+YlM6Vx1MDAwMlpTZkqhlVXkps6kLmU2laZURNpl9pWaoz1rzZGX2EQuLcp+9ebIW3A2r+iF4jy8ltuH4mx5XG7guFx1MDAxNOdlt+JsXUTnN4jJeMu6sVx1MDAwMFx1MDAwM9CFolJcdTAwMTJovKCRiEa4XHUwMDFlXTvJ0Gc/XHUwMDEz7DWuyVx1MDAxNYLGXHUwMDA1+OikQuE14oFQjEJrrFx1MDAwNFx1MDAwMs8gXHUwMDAyQbmrXGbttOmvQ61i2aKTXCLWPWCym8S0L2+MVHaPLG5cdTAwMTGPQIV+l3tLxc7KeMZYpJ9OtE/3XHUwMDFldtxJXHUwMDAx2ld76z37cm9xZ1/eUHJ+UdfQbdgv6rxVmnW1/1x1MDAxMKCfXHUwMDFls07vhVx1MDAxODu8zNmHXHUwMDE4a1nMe1xcYuyqW4y1ruj0XHUwMDEzY1x1MDAwMm2uXHQ+XHJcdTAwMDDuQXkxz1x1MDAwN0ylgmZbmI9cdTAwMDF/y9LLb0qZOlxiXHUwMDA1v1x1MDAxOWVcdTAwMTfd4zP456TD/Fx1MDAwNv+6acpvUtllXHUwMDEy2GNSmTlMbX3Tk8rYoUQvN6nMXHUwMDFkIOozqeygXHUwMDA3fWaVlVP+3If6XHUwMDFjJON+R/pOXHUwMDEzyy+i2fahLFtcdTAwMWXEOi5led2tLFtXRvtMLEtxWqm4Tt2rrtTGM/Iuulx1MDAxMlx1MDAxOFx1MDAxNFx1MDAxYWClTrqyeHlOLDtcYkvfeWXllMf9KkvfeWWnmW+PaeVubek3q9ytLT1nlXXnXHUwMDEyOr9JZaJcXKZfXHUwMDBmPKfcLTBfeE65W8O9+JSyg870m1PuXHUwMDE2mqc55f+P2Dy8jNuH2Gx5xPG4xOZcdTAwMWZ9dpP+d1x1MDAxZefmXHUwMDEzm857StPNKeXWPaVPW5F4PostvJYxMlx1MDAwNXpTiVx1MDAxZT6KfTafJ/E4zCGzg3GYJMZ4+Vx1MDAwMTcj2e9DbFvKsNvDaz/4bELrgdHmVrSEO29Fe8Kp35ZBxmb5bnsmXHUwMDE08lFcdTAwMWHNZl+Aelx1MDAxZd2Fn+I0XHUwMDFivE8nXHUwMDBmZpxcdTAwMWRccky/WoLdQPrOZ9dMd5A296HV1HnvzFx1MDAxM0a9MKqU18hccnRZtVSqf1T6Y5Z+iidRXHUwMDE2VD9OsPxpgiOEandRdsPsn3x2IfLAbGMvXCIknfdcIjph1m9cdTAwMTZcdTAwMWb58apcdTAwMDbNQ1x1MDAxOdX9Q+375bY9g+W+XHUwMDA3R4jVr1x1MDAxNWA3hP7ZZ6tcdTAwMTVcdTAwMGbp29xmSLZJ3/ZccldOXHUwMDEw9ZO+fj97RHi5XHUwMDFhon9cdTAwMDC9gFx1MDAxZV1RfUdcYs3NrO9cdTAwMDbKv6xA+Wo1LjhcZufzXHUwMDBmOTh8uFx1MDAxZUeDXHUwMDEwiidcct8s0/JoXvulTFx1MDAwMlx1MDAxOVx1MDAxZV3Nwpuk6fzhpzh6PN9EzHfX59fy6mpVmlW9vX9I8vhcdTAwMDNEyrjof5e7Xlx1MDAxNfkrXHUwMDFijlx1MDAwMk7RKunL/1x1MDAwMJh1ZMcifQ==<!-- payload-end --><pict-renderer-graph:source xmlns:pict-renderer-graph="https://fable-retold.github.io/pict-renderer-graph/ns/v1"><![CDATA[{"type":"flowgraph","mermaid":"flowchart TD\n\tA[\"Application calls<br/>meadow.doCreate / doRead / doReads /<br/>doUpdate / doDelete / doUndelete / doCount\"]\n\tB[\"Behavior Module<br/>(async waterfall)\"]\n\tC[\"Provider.Create / Read /<br/>Update / Delete / Undelete / Count\"]\n\tD[\"Database Result\"]\n\tE[\"Marshal Record<br/>(marshalRecordFromSourceToObject)\"]\n\tF[\"Callback<br/>(pError, pQuery, pRecord)\"]\n\n\tA --> B\n\tB --> C\n\tC --> D\n\tD --> E\n\tE --> F\n","style":"notebook"}]]></pict-renderer-graph:source></metadata><defs><style class="style-fonts">
2
+ @font-face { font-family: Excalifont; src: url(data:font/woff2;base64,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); }</style></defs><g stroke-linecap="round" transform="translate(10 10) rotate(0 247.5 51.5)"><path d="M25.75 0 C115.09 0.12, 204.91 -0.02, 469.25 0 M25.75 0 C184.14 -0.41, 343.11 -0.94, 469.25 0 M469.25 0 C487.43 -0.91, 494.98 8.99, 495 25.75 M469.25 0 C486.02 -0.62, 496.05 6.44, 495 25.75 M495 25.75 C496.71 39.89, 494.35 53.09, 495 77.25 M495 25.75 C494.44 37.9, 495.24 48.7, 495 77.25 M495 77.25 C495.24 92.97, 488.36 103.31, 469.25 103 M495 77.25 C494.8 92.99, 485.53 104.96, 469.25 103 M469.25 103 C310.61 105.45, 154.66 105.33, 25.75 103 M469.25 103 C375.51 102.58, 281.9 103.08, 25.75 103 M25.75 103 C9.58 103.76, -0.78 92.92, 0 77.25 M25.75 103 C7.32 103.22, -0.46 96.49, 0 77.25 M0 77.25 C-0.23 56.33, 0.69 38.55, 0 25.75 M0 77.25 C0.26 64.29, 1.2 52.16, 0 25.75 M0 25.75 C-0.35 9.23, 9.01 1.01, 25.75 0 M0 25.75 C1.18 10.45, 9.69 1.04, 25.75 0" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(10 54) rotate(0 247.5 20)"><text x="247.5" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">meadow.doCreate / doRead / doReads /</text><text x="247.5" y="34.096000000000004" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">doUpdate / doDelete / doUndelete / doCount</text></g><g stroke-linecap="round" transform="translate(148 203) rotate(0 110 39)"><path d="M19.5 0 C55.02 -0.52, 93.08 -0.89, 200.5 0 M19.5 0 C66.97 -0.27, 115.31 -0.49, 200.5 0 M200.5 0 C214.34 -0.11, 220 6.05, 220 19.5 M200.5 0 C211.66 -1.23, 217.98 4.21, 220 19.5 M220 19.5 C218.96 26.76, 220.29 38.05, 220 58.5 M220 19.5 C220.16 28.43, 220.49 36.34, 220 58.5 M220 58.5 C220.88 71.06, 213.24 76.09, 200.5 78 M220 58.5 C219.35 71.22, 213.29 78.34, 200.5 78 M200.5 78 C135.78 79.75, 73.85 80.1, 19.5 78 M200.5 78 C151.64 77.16, 102.11 76.78, 19.5 78 M19.5 78 C7.13 79.74, -0.77 70.14, 0 58.5 M19.5 78 C5.43 77.71, 0.23 70.39, 0 58.5 M0 58.5 C-0.94 44.01, 2.14 32.19, 0 19.5 M0 58.5 C0.93 51.09, 0.76 41.47, 0 19.5 M0 19.5 C1.17 5.65, 7.73 0.39, 19.5 0 M0 19.5 C-0.08 8.13, 4.28 -1.35, 19.5 0" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(148 244.5) rotate(0 110 10)"><text x="110" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">(async waterfall)</text></g><g stroke-linecap="round" transform="translate(54 371) rotate(0 203.5 39)"><path d="M19.5 0 C92.2 -2.31, 166.93 -0.42, 387.5 0 M19.5 0 C133.53 2.29, 248.4 1.52, 387.5 0 M387.5 0 C400.22 1.72, 405.27 7.47, 407 19.5 M387.5 0 C400.35 1.91, 405.27 7.77, 407 19.5 M407 19.5 C406.39 27.6, 408.58 36.61, 407 58.5 M407 19.5 C406.88 32.06, 407.78 45.69, 407 58.5 M407 58.5 C405.69 72.18, 401.38 78.83, 387.5 78 M407 58.5 C404.82 72.31, 402.22 78.09, 387.5 78 M387.5 78 C287.69 80.14, 187.43 80.14, 19.5 78 M387.5 78 C276.47 80.09, 166.45 79.87, 19.5 78 M19.5 78 C6.68 79.66, -0.45 72.92, 0 58.5 M19.5 78 C4.2 76.85, -2.22 69.66, 0 58.5 M0 58.5 C1.06 48.96, 1.41 40.2, 0 19.5 M0 58.5 C0.55 43.75, -0.67 28.23, 0 19.5 M0 19.5 C-0.56 7.8, 8.4 1.66, 19.5 0 M0 19.5 C0.32 7.66, 5.09 1.5, 19.5 0" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(54 412.5) rotate(0 203.5 10)"><text x="203.5" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Update / Delete / Undelete / Count</text></g><g stroke-linecap="round" transform="translate(159 539) rotate(0 98.5 28)"><path d="M14 0 C46.73 -3.27, 83.44 -1.76, 183 0 M14 0 C55.72 0.82, 97.6 1.06, 183 0 M183 0 C193.72 0.44, 196.47 6.27, 197 14 M183 0 C190.8 -0.44, 198.44 4.44, 197 14 M197 14 C197.28 24.52, 198.22 33.25, 197 42 M197 14 C197.35 23.54, 197.88 31.93, 197 42 M197 42 C196.5 49.53, 194.32 56.42, 183 56 M197 42 C196.12 49.43, 193.28 56.16, 183 56 M183 56 C146.1 57.73, 113.45 58.08, 14 56 M183 56 C136.76 55.73, 90.6 56.06, 14 56 M14 56 C4.94 54.43, 0.12 51.14, 0 42 M14 56 C3.59 58.01, 0.07 49.3, 0 42 M0 42 C1.04 34.34, -0.58 23.81, 0 14 M0 42 C-0.87 35.68, -0.6 28.7, 0 14 M0 14 C-1.71 5.21, 6.1 1.08, 14 0 M0 14 C-0.71 3.98, 5.27 0.24, 14 0" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(167 554.5) rotate(0 90.5 12.5)"><text x="90.5" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Database Result</text></g><g stroke-linecap="round" transform="translate(60 685) rotate(0 198 39)"><path d="M19.5 0 C90.78 -0.55, 163.64 -0.09, 376.5 0 M19.5 0 C157.66 -2.15, 296.61 -2.35, 376.5 0 M376.5 0 C389.53 1.03, 396.93 4.9, 396 19.5 M376.5 0 C390.11 0.93, 397.99 5.19, 396 19.5 M396 19.5 C396.28 29.45, 395.95 37.57, 396 58.5 M396 19.5 C396.89 27.97, 397.03 35.68, 396 58.5 M396 58.5 C394.41 72.9, 387.57 79.92, 376.5 78 M396 58.5 C394.11 70.89, 389.77 79.47, 376.5 78 M376.5 78 C251.22 76.89, 126.22 78.17, 19.5 78 M376.5 78 C286.65 79.91, 196.27 79.75, 19.5 78 M19.5 78 C6.12 78.8, 1.44 71.46, 0 58.5 M19.5 78 C4.21 77.44, -2.03 70.82, 0 58.5 M0 58.5 C-0.67 45.72, -1.45 32.64, 0 19.5 M0 58.5 C-0.97 50.29, -1.25 40.87, 0 19.5 M0 19.5 C1.04 6.06, 8.16 0.8, 19.5 0 M0 19.5 C-0.04 4.81, 5 1.81, 19.5 0" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(60 726.5) rotate(0 198 10)"><text x="198" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">(marshalRecordFromSourceToObject)</text></g><g stroke-linecap="round" transform="translate(104 853) rotate(0 153.5 39)"><path d="M19.5 0 C75.05 1.96, 127.66 0.66, 287.5 0 M19.5 0 C84.42 1.49, 150.54 1.76, 287.5 0 M287.5 0 C299.99 1.51, 306.23 8.27, 307 19.5 M287.5 0 C299.98 -0.66, 304.8 7.16, 307 19.5 M307 19.5 C307.38 31.92, 305.81 44.61, 307 58.5 M307 19.5 C306.75 34.05, 307.92 47.71, 307 58.5 M307 58.5 C306.46 72.02, 301.4 77.37, 287.5 78 M307 58.5 C305.55 72.23, 302.71 78.74, 287.5 78 M287.5 78 C198.52 77.36, 106.66 78.1, 19.5 78 M287.5 78 C225.11 76.45, 164.72 75.88, 19.5 78 M19.5 78 C8.24 77.75, -1.42 72.02, 0 58.5 M19.5 78 C5.61 78.35, 0.68 70.42, 0 58.5 M0 58.5 C1.48 48.8, 1.67 41.01, 0 19.5 M0 58.5 C0.65 48.1, -0.97 39.78, 0 19.5 M0 19.5 C-1.63 6.25, 4.84 0.81, 19.5 0 M0 19.5 C0.02 6.71, 7.49 -1.35, 19.5 0" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(104 894.5) rotate(0 153.5 10)"><text x="153.5" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">(pError, pQuery, pRecord)</text></g><g stroke-linecap="round"><g transform="translate(257.5 113) rotate(0 0.1131895403317742 45)"><path d="M0 0 C1.18 2.21, -1.4 7.17, 0 16 M0 0 C0.02 3.89, -0.32 8.14, 0 16 M0 16 C0.32 17.38, -0.35 18.77, 0 19.88 M0 16 C0.02 17.26, 0 18.31, 0 19.88 M0 19.88 C-0.01 21.08, 0.17 22.45, 0.02 23.52 M0 19.88 C0.1 21.32, -0.02 22.44, 0.02 23.52 M0.02 23.52 C0.22 24.41, -0.2 25.45, 0.04 26.96 M0.02 23.52 C0.07 24.38, 0.07 25.39, 0.04 26.96 M0.04 26.96 C0.12 27.49, -0.15 28.07, 0.06 30.23 M0.04 26.96 C0.02 28.05, -0.03 29.42, 0.06 30.23 M0.06 30.23 C-0.12 30.6, -0.15 31.81, 0.09 33.36 M0.06 30.23 C-0.05 31.23, 0.26 32.23, 0.09 33.36 M0.09 33.36 C-0.11 34.32, 0.36 35.71, 0.13 36.37 M0.09 33.36 C0.03 34.13, 0.09 34.88, 0.13 36.37 M0.13 36.37 C0.43 36.75, 0.07 37.68, 0.17 39.29 M0.13 36.37 C0.11 37.09, 0.1 38.12, 0.17 39.29 M0.17 39.29 C0.17 39.64, 0.34 40.44, 0.21 42.16 M0.17 39.29 C0.11 40.14, 0.33 41.12, 0.21 42.16 M0.21 42.16 C0.02 43.08, 0.12 43.95, 0.25 45 M0.21 42.16 C0.2 42.97, 0.16 43.72, 0.25 45 M0.25 45 C0.19 45.84, 0.05 46.43, 0.29 47.84 M0.25 45 C0.19 45.9, 0.33 46.78, 0.29 47.84 M0.29 47.84 C0.14 48.84, 0.08 49.64, 0.33 50.71 M0.29 47.84 C0.4 49.01, 0.3 50.25, 0.33 50.71 M0.33 50.71 C0.19 51.92, 0.55 52.86, 0.37 53.63 M0.33 50.71 C0.33 51.63, 0.42 52.73, 0.37 53.63 M0.37 53.63 C0.22 54.48, 0.24 55.3, 0.41 56.64 M0.37 53.63 C0.43 54.33, 0.51 54.96, 0.41 56.64 M0.41 56.64 C0.43 58.08, 0.7 58.76, 0.44 59.77 M0.41 56.64 C0.58 57.64, 0.34 58.68, 0.44 59.77 M0.44 59.77 C0.36 61.15, 0.46 61.91, 0.46 63.04 M0.44 59.77 C0.45 60.73, 0.36 61.51, 0.46 63.04 M0.46 63.04 C0.35 64.59, 0.16 65.97, 0.48 66.48 M0.46 63.04 C0.6 64.01, 0.33 65.3, 0.48 66.48 M0.48 66.48 C0.6 67.55, 0.44 69.12, 0.5 70.12 M0.48 66.48 C0.45 67.47, 0.45 68.74, 0.5 70.12 M0.5 70.12 C0.4 70.97, 0.43 72.1, 0.5 74 M0.5 70.12 C0.37 71.65, 0.47 73.09, 0.5 74 M0.5 74 C-0.27 77.99, 1.09 81.77, 0.5 90 M0.5 74 C0.05 79.89, 0.12 87.21, 0.5 90" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g><g transform="translate(257.5 113) rotate(0 0.1131895403317742 45)"><path d="M-2.76 82.69 C-1.51 83.65, -2.15 85.99, 0.5 90 M-2.76 82.69 C-1.89 84.48, -1.21 86.43, 0.5 90" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g><g transform="translate(257.5 113) rotate(0 0.1131895403317742 45)"><path d="M2.7 82.31 C2.85 83.36, 1.11 85.78, 0.5 90 M2.7 82.31 C2.14 84.15, 1.39 86.2, 0.5 90" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(258 281) rotate(0 -0.12341064880163799 45)"><path d="M0 0 C-0.23 2.56, 0.01 6.03, 0 16 M0 0 C0.66 5.7, -0.77 11.79, 0 16 M0 16 C0.15 17.03, 0.21 18.32, 0 19.88 M0 16 C0.11 16.94, 0.01 17.58, 0 19.88 M0 19.88 C0.06 21.06, -0.1 22.25, -0.02 23.52 M0 19.88 C-0.16 20.57, 0.11 21.48, -0.02 23.52 M-0.02 23.52 C-0.3 24.11, 0.16 25.25, -0.04 26.96 M-0.02 23.52 C-0.22 24.69, 0.09 25.77, -0.04 26.96 M-0.04 26.96 C-0.02 28.02, -0.29 29.05, -0.06 30.23 M-0.04 26.96 C0.08 27.87, 0.01 28.63, -0.06 30.23 M-0.06 30.23 C-0.22 31.25, -0.35 32.4, -0.09 33.36 M-0.06 30.23 C-0.18 30.94, -0.08 31.82, -0.09 33.36 M-0.09 33.36 C-0.11 34.27, -0.19 35.35, -0.13 36.37 M-0.09 33.36 C-0.23 34.34, -0.14 35.49, -0.13 36.37 M-0.13 36.37 C0.09 37.28, -0.03 37.96, -0.17 39.29 M-0.13 36.37 C-0.07 37.03, -0.05 37.93, -0.17 39.29 M-0.17 39.29 C0.05 40.11, 0 40.88, -0.21 42.16 M-0.17 39.29 C-0.18 40.08, -0.03 40.73, -0.21 42.16 M-0.21 42.16 C-0.07 43.27, -0.08 43.73, -0.25 45 M-0.21 42.16 C-0.19 42.75, -0.09 43.31, -0.25 45 M-0.25 45 C-0.11 46.05, -0.06 46.88, -0.29 47.84 M-0.25 45 C-0.28 46.19, -0.39 47.16, -0.29 47.84 M-0.29 47.84 C-0.52 48.69, -0.09 49.31, -0.33 50.71 M-0.29 47.84 C-0.26 48.93, -0.48 49.83, -0.33 50.71 M-0.33 50.71 C-0.16 51.66, -0.29 52.6, -0.37 53.63 M-0.33 50.71 C-0.35 51.57, -0.44 52.65, -0.37 53.63 M-0.37 53.63 C-0.35 54.36, -0.1 54.69, -0.41 56.64 M-0.37 53.63 C-0.46 54.55, -0.45 55.38, -0.41 56.64 M-0.41 56.64 C-0.19 57.92, -0.66 58.77, -0.44 59.77 M-0.41 56.64 C-0.32 57.51, -0.34 58.53, -0.44 59.77 M-0.44 59.77 C-0.26 60.79, -0.7 61.36, -0.46 63.04 M-0.44 59.77 C-0.43 61.01, -0.51 61.93, -0.46 63.04 M-0.46 63.04 C-0.61 64.19, -0.66 64.57, -0.48 66.48 M-0.46 63.04 C-0.39 63.68, -0.56 64.64, -0.48 66.48 M-0.48 66.48 C-0.13 68.2, -0.26 68.91, -0.5 70.12 M-0.48 66.48 C-0.61 67.39, -0.36 68.38, -0.5 70.12 M-0.5 70.12 C-0.48 71.31, -0.41 72.99, -0.5 74 M-0.5 70.12 C-0.41 71.65, -0.6 73.02, -0.5 74 M-0.5 74 C0.21 79.58, 0.99 85.89, -0.5 90 M-0.5 74 C0.16 78.8, -0.05 83.1, -0.5 90" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g><g transform="translate(258 281) rotate(0 -0.12341064880163799 45)"><path d="M-2.8 82.34 C-2.44 83.55, -1.86 85.22, -0.5 90 M-2.8 82.34 C-1.63 85.07, -1.51 87.99, -0.5 90" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g><g transform="translate(258 281) rotate(0 -0.12341064880163799 45)"><path d="M2.67 82.65 C1.91 83.79, 1.39 85.39, -0.5 90 M2.67 82.65 C1.85 85.26, -0.02 88.06, -0.5 90" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(257.5 449) rotate(0 -0.23111533922730132 45)"><path d="M0 0 C-1.2 1.63, -0.21 6.59, 0 16 M0 0 C0.07 4.74, -0.67 9.93, 0 16 M0 16 C-0.3 16.9, 0.04 18.17, 0 19.88 M0 16 C0.11 17.54, 0.08 18.94, 0 19.88 M0 19.88 C-0.05 20.94, 0.03 21.32, 0 23.52 M0 19.88 C-0.12 21.17, -0.16 22.67, 0 23.52 M0 23.52 C-0.11 24.39, -0.08 25.49, 0 26.96 M0 23.52 C0.16 24.54, 0.04 25.45, 0 26.96 M0 26.96 C-0.27 27.98, 0.16 28.87, 0 30.23 M0 26.96 C-0.11 28.09, 0.06 29.13, 0 30.23 M0 30.23 C0.23 31.53, -0.23 32.53, 0 33.36 M0 30.23 C-0.12 31.46, -0.11 32.53, 0 33.36 M0 33.36 C-0.29 33.9, 0.3 35.01, 0 36.37 M0 33.36 C0.07 34.06, 0.07 35.01, 0 36.37 M0 36.37 C-0.13 37.6, -0.3 38.53, 0 39.29 M0 36.37 C0 37.13, 0.09 37.82, 0 39.29 M0 39.29 C-0.09 40.09, 0.02 41.04, 0 42.16 M0 39.29 C0.04 40.35, 0.07 41.2, 0 42.16 M0 42.16 C-0.27 43.1, -0.3 43.95, 0 45 M0 42.16 C-0.06 43.2, 0.11 44.32, 0 45 M0 45 C0.22 45.97, -0.15 46.79, 0 47.84 M0 45 C-0.12 45.49, -0.01 46.29, 0 47.84 M0 47.84 C-0.27 48.89, 0.04 50.1, 0 50.71 M0 47.84 C-0.04 48.54, 0 49.37, 0 50.71 M0 50.71 C-0.12 51.53, 0.19 51.92, 0 53.63 M0 50.71 C-0.1 51.74, 0.09 52.89, 0 53.63 M0 53.63 C0.13 54.57, 0.18 55.87, 0 56.64 M0 53.63 C0.11 54.57, 0.11 55.54, 0 56.64 M0 56.64 C-0.01 57.14, -0.12 58.25, 0 59.77 M0 56.64 C0.1 57.84, -0.06 59.07, 0 59.77 M0 59.77 C-0.18 60.8, -0.08 61.63, 0 63.04 M0 59.77 C-0.16 60.65, -0.01 61.59, 0 63.04 M0 63.04 C-0.27 63.75, -0.07 64.5, 0 66.48 M0 63.04 C-0.02 63.82, -0.17 64.67, 0 66.48 M0 66.48 C-0.14 67.54, 0.09 68.22, 0 70.12 M0 66.48 C-0.06 67.51, 0.17 68.33, 0 70.12 M0 70.12 C-0.02 71.73, 0.02 72.37, 0 74 M0 70.12 C0.07 71.36, -0.09 73.07, 0 74 M0 74 C-1.01 78.92, -0.5 80.9, 0 90 M0 74 C0.24 77.26, -0.28 80.19, 0 90" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g><g transform="translate(257.5 449) rotate(0 -0.23111533922730132 45)"><path d="M-2.82 82.51 C-2.85 83.22, -1.79 85.59, 0 90 M-2.82 82.51 C-1.93 84.75, -1.45 87.19, 0 90" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g><g transform="translate(257.5 449) rotate(0 -0.23111533922730132 45)"><path d="M2.65 82.45 C1.52 83.18, 1.48 85.57, 0 90 M2.65 82.45 C1.89 84.67, 0.72 87.12, 0 90" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(257.5 595) rotate(0 0.5006577995190469 45)"><path d="M0 0 C-0.74 3.31, -0.58 5.62, 0 16 M0 0 C0.23 5.67, -0.2 9.19, 0 16 M0 16 C0.24 16.82, 0.03 17.42, 0 19.88 M0 16 C0.02 17.34, -0.17 18.54, 0 19.88 M0 19.88 C-0.08 20.79, 0.07 21.82, 0.02 23.52 M0 19.88 C-0.14 21.01, 0.17 22.1, 0.02 23.52 M0.02 23.52 C0.19 24.72, 0.06 26.17, 0.04 26.96 M0.02 23.52 C0.05 24.82, 0.16 25.88, 0.04 26.96 M0.04 26.96 C-0.06 27.56, -0.01 28.47, 0.06 30.23 M0.04 26.96 C0 27.84, 0.06 28.45, 0.06 30.23 M0.06 30.23 C0.07 30.81, -0.01 31.57, 0.09 33.36 M0.06 30.23 C-0.06 30.96, 0.12 31.76, 0.09 33.36 M0.09 33.36 C-0.17 34.07, -0.01 34.79, 0.13 36.37 M0.09 33.36 C0.18 34.16, 0.26 35.23, 0.13 36.37 M0.13 36.37 C0.43 37.46, 0.17 38.51, 0.17 39.29 M0.13 36.37 C0.06 37.35, 0.28 38.53, 0.17 39.29 M0.17 39.29 C0.04 40.13, 0.21 41.02, 0.21 42.16 M0.17 39.29 C0.31 40.44, 0.15 41.45, 0.21 42.16 M0.21 42.16 C0.39 43.37, 0.02 44.25, 0.25 45 M0.21 42.16 C0.17 43.17, 0.25 44.02, 0.25 45 M0.25 45 C0.47 45.79, 0.34 47.11, 0.29 47.84 M0.25 45 C0.22 45.94, 0.26 46.77, 0.29 47.84 M0.29 47.84 C0.46 48.69, 0.38 50.06, 0.33 50.71 M0.29 47.84 C0.29 48.8, 0.17 49.5, 0.33 50.71 M0.33 50.71 C0.15 51.83, 0.27 52.65, 0.37 53.63 M0.33 50.71 C0.4 51.82, 0.36 52.64, 0.37 53.63 M0.37 53.63 C0.26 54.22, 0.64 55.04, 0.41 56.64 M0.37 53.63 C0.27 54.8, 0.3 56.05, 0.41 56.64 M0.41 56.64 C0.66 57.39, 0.16 58.58, 0.44 59.77 M0.41 56.64 C0.54 57.69, 0.55 58.89, 0.44 59.77 M0.44 59.77 C0.71 61, 0.21 62.03, 0.46 63.04 M0.44 59.77 C0.43 60.65, 0.51 61.59, 0.46 63.04 M0.46 63.04 C0.29 64.15, 0.5 64.86, 0.48 66.48 M0.46 63.04 C0.58 63.87, 0.59 64.39, 0.48 66.48 M0.48 66.48 C0.62 67.75, 0.78 67.98, 0.5 70.12 M0.48 66.48 C0.38 67.63, 0.55 68.66, 0.5 70.12 M0.5 70.12 C0.42 71.56, 0.47 72.43, 0.5 74 M0.5 70.12 C0.5 71.72, 0.64 73.28, 0.5 74 M0.5 74 C1.56 78.25, 2.08 81.39, 0.5 90 M0.5 74 C0.73 77.47, 1.12 82.47, 0.5 90" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g><g transform="translate(257.5 595) rotate(0 0.5006577995190469 45)"><path d="M-1.84 82.35 C-1.74 83.94, -1.18 85.03, 0.5 90 M-1.84 82.35 C-1.01 85.07, -0.49 86.73, 0.5 90" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g><g transform="translate(257.5 595) rotate(0 0.5006577995190469 45)"><path d="M3.62 82.63 C2.62 84.14, 2.07 85.17, 0.5 90 M3.62 82.63 C2.77 85.28, 1.59 86.84, 0.5 90" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(258 763) rotate(0 -0.39530339036579676 45)"><path d="M0 0 C-0.73 1.79, -0.59 5.31, 0 16 M0 0 C-0.69 3.62, -0.37 9.25, 0 16 M0 16 C-0.33 16.93, -0.23 18.33, 0 19.88 M0 16 C0.02 17.24, -0.03 18.73, 0 19.88 M0 19.88 C0.33 21.02, -0.37 21.69, -0.02 23.52 M0 19.88 C-0.11 20.88, -0.17 21.96, -0.02 23.52 M-0.02 23.52 C-0.03 24.99, -0.04 25.68, -0.04 26.96 M-0.02 23.52 C0.11 24.29, -0.12 25.12, -0.04 26.96 M-0.04 26.96 C-0.26 27.43, 0.16 28.44, -0.06 30.23 M-0.04 26.96 C0.07 28.2, -0.12 29.38, -0.06 30.23 M-0.06 30.23 C0.07 31.5, -0.22 32.25, -0.09 33.36 M-0.06 30.23 C-0.03 30.85, -0.18 31.85, -0.09 33.36 M-0.09 33.36 C-0.3 34.14, 0.14 35.15, -0.13 36.37 M-0.09 33.36 C0 34.12, -0.05 35.14, -0.13 36.37 M-0.13 36.37 C-0.15 37.46, -0.11 38.61, -0.17 39.29 M-0.13 36.37 C-0.16 37.45, -0.17 38.5, -0.17 39.29 M-0.17 39.29 C0.05 40.32, 0.02 41.54, -0.21 42.16 M-0.17 39.29 C-0.28 40.18, -0.2 41.2, -0.21 42.16 M-0.21 42.16 C0.07 42.94, -0.16 43.89, -0.25 45 M-0.21 42.16 C-0.3 43.33, -0.16 44.46, -0.25 45 M-0.25 45 C-0.28 46.04, -0.46 46.77, -0.29 47.84 M-0.25 45 C-0.31 45.81, -0.26 46.86, -0.29 47.84 M-0.29 47.84 C-0.25 48.91, -0.33 49.55, -0.33 50.71 M-0.29 47.84 C-0.36 49.06, -0.3 50.04, -0.33 50.71 M-0.33 50.71 C-0.15 51.43, -0.09 52.38, -0.37 53.63 M-0.33 50.71 C-0.41 51.63, -0.33 52.73, -0.37 53.63 M-0.37 53.63 C-0.65 54.47, -0.42 54.97, -0.41 56.64 M-0.37 53.63 C-0.45 54.42, -0.34 55.29, -0.41 56.64 M-0.41 56.64 C-0.39 57.91, -0.36 59.27, -0.44 59.77 M-0.41 56.64 C-0.24 57.18, -0.43 58.08, -0.44 59.77 M-0.44 59.77 C-0.62 60.86, -0.35 62, -0.46 63.04 M-0.44 59.77 C-0.46 60.39, -0.3 61.1, -0.46 63.04 M-0.46 63.04 C-0.68 63.95, -0.55 65.4, -0.48 66.48 M-0.46 63.04 C-0.34 63.73, -0.43 64.67, -0.48 66.48 M-0.48 66.48 C-0.43 67.24, -0.44 68.4, -0.5 70.12 M-0.48 66.48 C-0.51 67.36, -0.36 68.38, -0.5 70.12 M-0.5 70.12 C-0.34 71.28, -0.44 72.93, -0.5 74 M-0.5 70.12 C-0.66 70.9, -0.37 72.11, -0.5 74 M-0.5 74 C-0.72 79.01, -1.23 83.72, -0.5 90 M-0.5 74 C0.09 78, -1.21 83.29, -0.5 90" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g><g transform="translate(258 763) rotate(0 -0.39530339036579676 45)"><path d="M-3.5 82.59 C-3.25 83.37, -2.57 85.01, -0.5 90 M-3.5 82.59 C-3.02 84.26, -2.04 86.92, -0.5 90" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g><g transform="translate(258 763) rotate(0 -0.39530339036579676 45)"><path d="M1.97 82.39 C1.1 83.19, 0.67 84.87, -0.5 90 M1.97 82.39 C0.95 84.07, 0.43 86.78, -0.5 90" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g></g><mask/><g transform="translate(10 29) rotate(0 247.5 12.5)"><text x="247.5" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Application calls</text></g><g transform="translate(148 219.5) rotate(0 110 12.5)"><text x="110" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Behavior Module</text></g><g transform="translate(54 387.5) rotate(0 203.5 12.5)"><text x="203.5" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Provider.Create / Read /</text></g><g transform="translate(60 701.5) rotate(0 198 12.5)"><text x="198" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Marshal Record</text></g><g transform="translate(104 869.5) rotate(0 153.5 12.5)"><text x="153.5" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Callback</text></g></svg>