1 line
26 KiB
XML
1 line
26 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1011px" height="432px" viewBox="-0.5 -0.5 1011 432" content="<mxfile><diagram id="uT8Tchsw5Tc3nh4peha0" name="Page-1">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</diagram></mxfile>"><defs><clipPath id="mx-clip-750-310-55-30-0"><rect x="750" y="310" width="55" height="30"/></clipPath></defs><g><rect x="370" y="70" width="120" height="320" fill="#ffcc99" stroke="#000000" transform="rotate(180,430,230)" pointer-events="none"/><g transform="translate(-0.5 -0.5)rotate(-90 430 230)"><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: 318px; height: 1px; padding-top: 230px; margin-left: 271px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">RPC Relay<br />(per frontend connection)</div></div></div></foreignObject><text x="430" y="234" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">RPC Relay...</text></switch></g><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: 45px; margin-left: 376px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Backend</div></div></div></foreignObject><text x="430" y="49" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Backend</text></switch></g><ellipse cx="430" cy="150" rx="5" ry="5" fill="#000000" stroke="#000000" pointer-events="none"/><ellipse cx="430" cy="310" rx="5" ry="5" fill="#000000" stroke="#000000" pointer-events="none"/><path d="M 425 150 L 236.37 150" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 231.12 150 L 238.12 146.5 L 236.37 150 L 238.12 153.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><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: 1px; height: 1px; padding-top: 141px; margin-left: 301px;"><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: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;">register(handle, DTO)</div></div></div></foreignObject><text x="301" y="144" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">register(handle, DTO)</text></switch></g><path d="M 560 430 L 560 30" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><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: 15px; margin-left: 521px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">RPC</div></div></div></foreignObject><text x="560" y="19" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">RPC</text></switch></g><rect x="0" y="70" width="175" height="320" fill="#ffcc99" stroke="rgb(0, 0, 0)" pointer-events="none"/><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: 45px; margin-left: 52px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Frontend</div></div></div></foreignObject><text x="106" y="49" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Frontend</text></switch></g><rect x="175" y="70" width="55" height="160" fill="#00cc00" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)rotate(-90 202.5 145)"><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: 174px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Main API</div></div></div></foreignObject><text x="203" y="149" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Main API</text></switch></g><rect x="30" y="210" width="100" height="40" fill="#66ffff" stroke="rgb(0, 0, 0)" pointer-events="none"/><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: 230px; margin-left: 31px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Main Impl</div></div></div></foreignObject><text x="80" y="234" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Main Impl</text></switch></g><path d="M 175 150 L 80 150 L 80 203.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 80 208.88 L 76.5 201.88 L 80 203.63 L 83.5 201.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 175 150 L 80 150 L 80 203.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 80 208.88 L 76.5 201.88 L 80 203.63 L 83.5 201.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><rect x="175" y="230" width="55" height="160" fill="#00cc00" stroke="rgb(0, 0, 0)" pointer-events="none"/><path d="M 80 250 L 80 310 L 168.63 310" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 173.88 310 L 166.88 313.5 L 168.63 310 L 166.88 306.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)rotate(-90 200 305)"><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: 305px; margin-left: 171px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Ext Proxy</div></div></div></foreignObject><text x="200" y="309" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Ext Proxy</text></switch></g><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: 85px; margin-left: 77px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Browser</div></div></div></foreignObject><text x="106" y="89" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Browser</text></switch></g><rect x="860" y="70" width="150" height="320" fill="#ff9933" stroke="rgb(0, 0, 0)" pointer-events="none"/><rect x="630" y="70" width="55" height="160" fill="#00cc00" stroke="#000000" pointer-events="none"/><rect x="630" y="230" width="55" height="160" fill="#00cc00" stroke="rgb(0, 0, 0)" pointer-events="none"/><rect x="685" y="70" width="175" height="320" fill="#ffcc99" stroke="rgb(0, 0, 0)" pointer-events="none"/><rect x="717.25" y="115" width="120" height="230" fill="#66ffff" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)rotate(-90 657.5 145)"><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: 145px; margin-left: 614px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Main Proxy</div></div></div></foreignObject><text x="658" y="149" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Main Proxy</text></switch></g><g transform="translate(-0.5 -0.5)rotate(-90 657.5 310)"><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: 310px; margin-left: 629px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Ext API</div></div></div></foreignObject><text x="658" y="314" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Ext API</text></switch></g><rect x="717.25" y="190" width="32.5" height="80" fill="#66b2ff" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)rotate(-90 732.5 230)"><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: 230px; margin-left: 704px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Registry</div></div></div></foreignObject><text x="733" y="234" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Registry</text></switch></g><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: 85px; margin-left: 748px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Plugin API</div></div></div></foreignObject><text x="777" y="89" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Plugin API</text></switch></g><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: 45px; margin-left: 781px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Plugin Host</div></div></div></foreignObject><text x="835" y="49" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Plugin Host</text></switch></g><path d="M 717.25 149.96 L 691.37 149.99" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 686.12 150 L 693.11 146.49 L 691.37 149.99 L 693.12 153.49 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 685 310 L 710.64 309.85" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 715.89 309.82 L 708.91 313.36 L 710.64 309.85 L 708.87 306.36 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 931 172.5 L 931 151.8 L 842.54 151.8" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 837.29 151.8 L 844.29 148.3 L 842.54 151.8 L 844.29 155.3 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><rect x="881" y="172.5" width="100" height="115" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><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: 230px; margin-left: 882px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Contribution<br />(e.g. a code action provider)</div></div></div></foreignObject><text x="931" y="234" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Contribution...</text></switch></g><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: 95px; margin-left: 906px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Plugin / Extension</div></div></div></foreignObject><text x="935" y="99" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Plugin / E...</text></switch></g><path d="M 838.21 151.11 L 734 150 L 733.58 183.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 733.51 188.88 L 730.1 181.84 L 733.58 183.63 L 737.1 181.93 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 836.17 307.74 L 931 307.7 L 931 293.87" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 931 288.62 L 934.5 295.62 L 931 293.87 L 927.5 295.62 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 749.75 230 L 874.63 230" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 879.88 230 L 872.88 233.5 L 874.63 230 L 872.88 226.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-750-310-55-30-0)" font-size="12px"><text x="751.37" y="329.5">Ext Impl</text></g><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: 871px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">register</div></div></div></foreignObject><text x="900" y="149" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">register</text></switch></g><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: 315px; margin-left: 871px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">provideItems</div></div></div></foreignObject><text x="900" y="319" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">provideIte...</text></switch></g><path d="M 310 430 L 310 30" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><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: 15px; margin-left: 271px;"><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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">RPC</div></div></div></foreignObject><text x="310" y="19" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">RPC</text></switch></g><path d="M 435 310 L 623.63 310" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 628.88 310 L 621.88 313.5 L 623.63 310 L 621.88 306.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><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: 1px; height: 1px; padding-top: 301px; margin-left: 561px;"><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: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;">provideItems(handle, args)</div></div></div></foreignObject><text x="561" y="304" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">provideItems(handle, args)</text></switch></g><path d="M 435 150 L 630 150" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 425 310 L 230 310" fill="none" stroke="rgb(0, 0, 0)" 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> |