--- excalidraw-plugin: parsed tags: - excalidraw excalidraw-open-md: true aliases: - EJB --- up:: [[java enterprise edition]] #s/informatique/langage/java ```breadcrumbs title: "Sous-notes" type: tree collapse: false show-attributes: [field] field-groups: [downs] depth: [0, 0] ``` `$= "![[" + dv.current().file.name + ".svg|700]]" ` > [!example]- Exemple - code approximatif pour le Session Bean `CreateUser` > ```java > @Stateful > public void create_user(HttpRequest req, HttpResponse resp) { > String name = req.getXXXXX().name; > String password = req.getXXXX().password; > > UsersSingleton users_singleton = UsersSingleton(); > Users users = users_singleton.get_users(); > > users.insert(name, password); > > resp.send(); > } > ``` %% # Excalidraw Data ## Text Elements couche présentation ^UKAzpsKY couche données ^IAwSSBD9 pages web ^LWMJbbv2 Servlet ^HH1KZLM7 application java ^uv6k0nya Session Bean ^LdyUrmYS Session Bean CreateUser ^yeGV6qh2 create_user ^TekpZABG couche business ^aKh6XdIv Users ID int Nom Varchar ^3if7Nszl Entity Bean Users ^aI2t4J9P ## Drawing ```compressed-json N4KAkARALgngDgUwgLgAQQQDwMYEMA2AlgCYBOuA7hADTgQBuCpAzoQPYB2KqATLZMzYBXUtiRoIACyhQ4zZAHoFAc0JRJQgEYA6bGwC2CgF7N6hbEcK4OCtptbErHALRY8RMpWdx8Q1TdIEfARcZgRmBShcZQUebQBWbQBGGjoghH0EDihmbgBtcDBQMBLoeHF0QOwojmVg1JLIRhZ2LjR4gBY+QqamVk4AOU4xbh4ABk6AdkmxscnuxohCDmIs bghcMYbSwmYAEXSoBGJuADMCMP4dk4kATQAZAEl7gHF8ADZJZUeADgBrKBJGDEJIUAD6AAkfttIKdCPh8ABlWD1CSCDwwiDMKCkNh/BAAdRI6lGVwEOLxCGRMFR6HRJExuL8kg44VyaCSZIgbDguGwahg3CSsy51jqFTGXMw3GcAGYeABObQ/JIdOY8d5zBXveZcwVoZxJd7ad48FWzMYdeI8SYKyY/LnY3H4gDCbHwbFI6wAxEkEH6/ZjNHy/so mSs3R6vRIcdZmLzAtlMRRiZJuJMOsaxj94tMFbKfoqFqVJAhCMppKMzcl4pqurbTQqxrL3o6EMduLm80XJT0IGHhHBHsR2ag8gBdLmnciZYfcDhCBFc8PEVnMUfFRawRDcWU9AC+XM0whWAFFgplsqOCo0ij1rutcABpSTvAAaxEe9BhpW3FWgWBQBA977j0k59kIcDELgRw3KgSSTLKBYtohpoTFyRAcH886LvgGFsNg+Jwec+BhIUh6FJukB/u sRyYEBXLNP0bS8DmjF9K0QwcCMHKZkk8r8e8Dp9ssqzShIuApFyuwHMEsFnBcCDSXBGwvu+n7flO8JIii/70icjoUviRLECSaDFuSzpUrp6z6YywgVmuo6cn2PJ8gKQoin2Yq0r2iziagco8B0yqquqmoNrqfb6oFSRJCaZrCrMVo2nawmLE6lKRp6PoBv6SBHiGA5CBG7o5TG5AcPGuCJgxfYpqZaYcta2hjAqCo/JqPzym18RJPEXKluWlbmQN fZhB2HIzAWPwdAq1pcsVQ4jvk4GLNOuCznBC5Ln2K5OThu2LMeJXEOeGRZDkq1cpB0HyVNSHdTqZrvMKGHLNhaA7XhfYeoRk2oCRlx9qcnBQIihBGBU4xTmDABim3wjFLlboB6x6EI2ClqgmhCKwB3LpQAAqaMSBjWMIDjePLGymJ0VAACCRDKCxEDBKcdWLM0UDmAQTPlqzUA8piejZLgNOkHOdxPK8HxfL8AJAiC4JQpinrlssBAk/R6PCBTVP 47TopCELABK4SQxUOJCEpv00xCZYVkBHLaDw8TkVcVFlDuEhVDU4qYkxrSdmMrZ9kHgzDBUtaykkHUdGq0krGsEk8JiMmHADQO24sDISBQ9yykIpswBCfw8FAACqmA/AACnNFCm6b9ym5icIItStJYu6DKGVZJlmbwfeUp3ek9wZe0OSytMclybn8rAnl+aUPkSlKMrykqKpqvMEXalFiwxXKsqJAhNrBYhSRu9vw+umV0boL6+WBoVhHFaVUa0Z V1W1cmqbpi1a+PB+JjCSD8OYc1BqOxGvBU02h5g5hPj8ZB7V4gKjbADcY7w0FgPeNqRaTJlrXjWqUDaW1Do/UWPtGeqAqLUXKLuA8R4TxnQvJda8946H0J9ugemP5IB53QJXJ8DMjByCfLcYCt5QKNBIZAW6MEAYIUeihF6b07ZYQofhf6xFFIe0on2GiMY0bsRaJwXc6Fw4cUjtxCoLYjTxD6gqCySxk4BQ2LKdO+xM66NIjnB8EhhGiPEZIrSH cbJonHpiTKxl/7mVvtZGkY8MTLingdWerleQL2Rl5RYq9uDL0gAFIKIVt7hS1M9PUG9ZRjGSPMeYHRL7X1VAk7KD8IBPzykGIqK42lfzjAmS6f9GpCnmtodqHUjQ/AVFaWObsoHDWdrwMaGV2xwU1K9OOqoOgEMHMOYhU4ZwIClqgb6qTTrpNObhZhp1zqXiumgCcN0oKKLgso5Cz1OrqMWJhT6VyjqlD+kRBSfjYbZAhlDUYhSICg2yAjfQSMhR cj4WTPW2M4CkAAJdhDFjzcxhMKDayWRAcm6KsU4qiHirgyLAL8xZusdmnNSjc15vgOlgthZclFlECWJyIAFyLiXMuFdq51wbk3FuatSAaw4FrUm6BSWUwxdiy6MFg7GzNhbSFaBrb+MgJhBADtFlCldu7EoFESheyMZUBA1R8mmOYkKeUDrOJRydfKNBaFoWiRTugXAHQvGyQQPdQGillLrDhsQWuAArJIT4nz3GYJgR4hA/hwDGAgAAjjwAkfwA BSbdtKj1slEhJA8mpD3GkZRJXc7LnMcjQlGpR54eQ5LkletRfLrwNEaWUCROqykac2QsiFJhVINGaPtjjczYITqaDU6Cq1WT6RITp+Vulv16fffpVVBlJi5A1QeCp4rxEHfmDqQlwEdG6gsp23AczaA6Ge7qqp4iWllJMMOqyAaNPlLaAsOy+xLX2ddEGRyTlnMnhcmhdDvZ2KYX2E6Z42FXnyJw+8AiVL3AJAAWTzZoTQ9A05kl/Aw4xOsQIka4 UsFSYwABa+BTj3FwEIU4zAiYACEM2EAVAARVPB0PYzBTj8Lg4+UguIqAgTAs8u6SjEIfPeDU+aKzAUfS0b9AiwK0DZ30ZawxZHeEmKsWYliV9ZQupsTxXgsxX2IVmknMSj54iBp8SC4GucsO4fw4R4jIMi0RLpKWpdlJy2khC/iYtkSUlQYbeuJFmT3KLzbdC/JaBoXFNfY++0OY0LIJ1OOwKGpEjdRHQWUdliMrVpXY/PKL9EM9JYTV6A3891Ms gIeitjjtCx1QYWNq7VX2qcgENO97RoUTTefNDMmor7QuAytR5ciYXge2tcqDKxLmQeOiwu57DQOLAUSG95T0lO9WG2zdTX11s/K01nMNIMwYQuhtC2FUB4WIoyajHWEheTKHCAAHQ4BQBAmhGTE3lRAP74RUAg7BzS+i7L0aXSYIHJgPN3BI4kAi4gxB6hcrBuLVkksVKRpjXGhNSaU1pozdm3NBa57Sv8HKn76BofMFh6DzELHNWsG1agXV71WR GrG/BU1em7xbkMxAP29qTOOrQCfFxEcOBcWs3FOKbV+ILREm4x87xXNyXu6CkSKkBhwwVI8Oj0aOMcbfDAaNjxlDRuUBCRELMaSFvCUkktMWqv9ziZW/3I9Avdz96UJkcXnJzyya2+C7bIBpdQBl9M8VhSDs6G+i0mfCvODNCFGZXRsGvUVIWJTrTt2rrqwVBrm6muV94a1mqQyD2B6vkqNURo5oTAvt1Fxo2YEPqfXNF9Vp32fowXBDMx7My5d2 ZBEDS3DmbWOWtgFkBqHxbQLB61e5GgWtKEh1hF1UOPPQ7ebh/4+Ekcw+sIQ9B3h/DGBwGAuApH76oxhmjDL9BE2wDASYW4MEB3W4J8U4D4UgAYU8MEfAKgG/MTCSCTNgKTaRGTCCF5Y7BTU7RUT9FxX5DTW7HRdzBACXK1aXa/eXYOcyUOSzVXN1doFTVKK+RzX1DYd4AANUN2DWNw8wCXQHv0f2f1fy9x0h92i17gi0JEDxcRiRrWSQkKoTSUbR jySxyVS07TXj7AClmngXfTNGmB4EShaWihlA1EmFdjMIzEtEtC6gr0/ir2fhr2Oka1Oma1jF3Wb33XqjbzGDiDjnalmDfVtAXUA0WAHyWTfUnyFEmGFGmXeFei/VKAWwOTAxXwgxuwjxYS2wyMgCPz21PzHGWyO3kxUTwRmWQQu3wOu3XzZju18V4NhCe0tihTBXe0RnwGRgR2JVwDgB8F5ipSB2jVwHoDfwJSJUfF6KIDwCpVQCGJGLplpWZlZj EGyFR1MQxz5iWPWBxzxycNKG5SJyYD5XN0t2t1t3t0d2d1d3dxf3wClRlRZ26MmP6NaFmOGNGO8hNjYHNj5ytlIBtiF0NWgSWXijdlIIMx4Rl1tX9nx0oPMXaGCloLVwqEzEaSfWPRcR9XcVwGhGkm8SN3qL1W/wkBeA4z+FwAGBgGcHoCJkwHYOAVPHYIQDhgoDgAoDoxEKiyC3D0slC2kISS5LDwUMyOZEuSbUgBbWS3j3UIDnS27SKyNEfRbA XRqVemcWYJMMVz8J4CQkz2cXiHAVnTsPKlq0cI3VDC3XsMbwGU8Pa35Tb01FdnlA6GFGvWwSNH72BO4B1FdlmgNKEmvlAXSlKEmyhSQh1CbHAXnyIQO1IVWwIJFM2xg3vAQNQD33NRuWQxPweTHHP1vGJPQHuGIBgErlIH0FuERFE2tQAgo2kU/wvwLIgBgCgFPGjQoDGERA4wJAdj2CEEeBwzgB+F42OUzSrOlxqkk3f3NTQMOwwJKMU3iOHSFz +W20BTqOIPBKl0hIoK5msRYjPSRPoPgmmBL2Sm9T1wkgVC4JDWznDQkCLJLLLIrM5NDzrUkLC3iUkMFLfMUNFOUMS2ySXlFA0IKXlLz1mFdiSiSln3GAzEK1PVdmL2vUCOvX6gu1kOazXXq2cLr1cIbxaxtN/lbxGQ5BtHgVtGmTjh1GmEHVCJLC9NGiiI5G1E6mcRiJcWSNjNhHjOqMoUTNXBoVXNyN2xQxzKeXQLkzeSwJbHiM1ALGXITP1XXJ 0we3WiaP5xhkezhXaM6MMUh0RDZFeI4xCGpT2gh1ZwgAMvXCMpMoWMRy2LJhRy9HWNZSx3QB2NhMWAON5RUlJPJMpOpNpPpKSEZOZNZPZPuOZ3wHGIkCsuYlQGMusG5y+J+OaJ1X+KJINRFxgVBLNTAAPzIMhNlxAtoO4ATmVz3ORKFGvXGBtDmkSIEQvL9QZmvJ4KJMERJXYNlGjTzT2A6BeDgCSCEH0HwCfHYNrmHJ4CIBfLEO5OFN5NiRIqDx DOrW/OC1/KjwS0WElLUOAtlOTzAvGB+GVHtANKvn6iosQlz3OpOpwOzBiJmXqWNPaSwr2NyJcI/hNIIo8KIu8KWqNFqR1OCldM6j6lNFvRgR9Pz39MLANKDKYvgmClmHeDmk0sWE4qX1SPIV4vOSTK31oRTN3wQx21uVEo4VvGo2rJ3PzI6ohAhDjTo3uBw0mCnPyvrJptowYyYxYzY0424z4wEyExE3gOrInOQNZoP30wbI6ubNbPbM7O7IQF7P 7MHOHMeFHJFvHKQJQP3xnNKGKKktKPiNHXFMu00Rxs0yIJUr8U3NI23OM13NM1GAnzhLoNsShQmGmV8KjN1ycwkg41asJLvPQDpoZqZpZrCVENrXWpWoDyWpkNWtfJjo3yUPxtNp2qAu8hArlK0JlF7QSGcSQm1FrF8NDjHU1NiggsQjLozDQRsPkskMwur3NPfmIDcKb1+sWE629KVGwXahtBbBVBRpoL7HCNGHQrWQ9rnSDLosgAxsKOX2xv+T 4pTug3xqEogDyLJq4ogANuiKNp1A/VNqqOXu0W01DRNzUvBTSps1aI+w6K2t/H0qYHoDknB0JWftIFfuDTssZgcoVScrR1IA2LZX/ogA8repJUJx8vRi6p6r6oGqGpGrGomoQCmsIEis1mis/u/rtJ52+K1T+IBI0SBONRdjBIzIMS3P/DFrgNdtGQuxVyqtIp1PzE/WQRYOxJdEDuIODogHo0Y2Y1Y3Yy4zLAFsE2Exmujp5KxGrQ/OWoWrkN93 mpl1TujwArjySj2q7Vzp7XGGVEaXmiUyfU/RquuqbGSFgsLBqTihfXLuDzvitI6WbtfgtPrycfcJ/hbz+sHhCgjJVCvnszii6FnqkAYtQEdN72CaLCQXmgRoeu1BtBdvRsIUXwXqxtX0UtUbXo3EJsMx4GJsPxEuzJSNnMkv3oLCCJU0zAUotsIPPtvKrRqigA41EmWGUG4Fg3SHuT5TJ1jXjUTWTVTXTSzRzXzR/BhQIjxlApTOUB6PvRIxhUIE wGOFrjYGWCWW+kKcgCyGIFaZWHac6ZTO6cuj5WwDgd6v6sGuGtGvGsmumsWdBmwGmZzvzLmbgAWZTLhBWajXWaTF4u2bZlCCgDdH0ARRkFWb+c2ZyNkeaYZm1tLFwDXxXowBWHhck0RZUlocxDgChfJsaBvFvEKRKDGHvDkTAEJcaGcD8YorigHoCZCZv0icaQZZiYNPmjJb1p2fwGPBB0JNtsv3E0nNKsV36kPPdtIrwRmDtDRp2Cao2D2B4eto aMbNlrbI7K7J7L7IHKHJHKkfkIngcakPjoFKTpkcj2njTpUMApS20c0P8jzpqRNHy3mAQkMZL1z0zH7VKzVD4itFROetyjNNcdbvbsIu8a7sDz7RtAG06FhpRpRpPghqWRmHgTinsyUx+F3n4gRs6jaiRtrGjLSfEvWh4tPo2wEvxp33ycBa3pKZ3r3oekqa1EcRqY0RXJhaBTasMmaf2ccFqCOfzJOeyDOYuYQeueQbubQYea+amdHGJf7HmbQG DNIWWchY2YoUBd2b7cOe32OdEr5T8opKpJpLpIZKZJZLZI5MebnZmbeaXdQBXdhDXd+Y3YBY/1+mBdBfBdgjWbffLaqzhYRZCGRa5F2fReQMxaFfFq5FxY2fxZKEpZJZv1JdvHJaQ7ADlFdmlfmhqtrFRKTYw1TZiOUQHSzY1H4k5dkTA55eQLaoFdTKhLtRKvobQCbEYcqqPNVA6nYdPQatcT9r9VPCVYvpVY6s0AhFlSFkmF43wErheEriSEzT 6KSFNlPGwH1eUcNdjr5JNa/LNZUYtbFOtc0YTw2GzoOt0Zs2OtOscR1DwWnRXabKFDiFlDtGCe6ktGtDicbvwtepbstK+s8ba2GUHgBqdOBstFBo9OTe9PMOhs6lhvATAVzaU1HUmB1xSb2UW3SdLbSNA4rcuWrZ4XTLZsQ2KfuQQ8lw5vWBgAQBeHYPeEzUkD8wbKprRkozzM81q5bPVYVq1ZVt1fVrHMhOxc64pq/w6vwF/3/0AOAOjVAPAPeE gOgNgJG5oe1olvZu64kEeE0ERDzUwHeDYDGHuAZjBEmDBFelrgoE4HwFCS/1Fs2+k2o4kteQqZzDATmnmmPquwA7XKttE5IMoalrtqvwduZT3PTBdPFfVzjm6hqQ1FCaxMfDhhE8aZ2/QDq4a6a5a80/EO08UfkYTqsjWvNbUcfolNjylK0azv2pT3MjdlalsYBrNDYoQkK2AVajc7VELCfRPgA3sZ08ca+v85DcC/aWC9tNC4rUCfIo6mPX3hoo Tli/G3ibMKRqc/npLbjPy6yc31HA3rrcq4bbnMNsqa+9QV+/Nv+6UsB4x9IXUpezvp0sp5rOJTipsusCBxdECEUUrjCGcrMo/oss984ASpMp9796OAD7WL0vsoFmR1WKD8dpAbcvAZIF2JFmgeJz5Qk6k7YBk7k4U6U5U7U408ZweOwdD8MvD8So4Cj5CBj8D+St5xvsFxIeypBPFxB+q8FcQOFdY8fbFdduYfgkHSR4LBRs4cfBeHR9Ur4LZhm4 AKAJALAIgKgJgLofWgC1mqFMJ9kbjsHhJ5Dz35/JFM2q+2bWp92rp50YdY5GwX7U70tB1OvT6guyPi2QSHzb54jJmiF6KMm6wbWvG4zwoeMO6EbUoN3TbTxQZgoCK0K9FmhxwMuqveCGMibBKYZWHUNzmAhkKT0OQOYJHr4VCba9lsZCTJnU34pFc8mPCAph+xJpZkTeZ+Cbm13IIQ9MeEAEmGmjowMwOMc/F7iUCKJm8PufUWaKgjwJ/cN6XbIO k02AY7sB2e7IdgezNwW4rcNuO3A7idwu43cHuO4je2ebztFm7zT5vmW+brt/my9LdisAUEdMlBiwYdlADz6ScYIhfWTvJ0U7KciAqndThMyeYvNLO97D5su0eYvs/2lgrZgwMBRfsDAP7CwdCxqLYggOGLEDlk3A7AckW0HbfqUDg4FEkOGHYlmAFQ6vdbwGHYUHANsyICvuKA4bCUDjiJBMBbneYDgOPSFgqOQgmjry3o699Cq4PHWCK3ghOcmG XHDUB+jmDgJzygnDYA13n6X1F+3AuALwP4H485qB/WQsT1NZn9k62TS/vBBM408zOSeBnvBANIJASOLpYBJ1Byz8cv+bURCgnAn4zI0uHPXzk4zF6gDQ2+FKXp3WgFt5gopqDqFmwLA6lkEcUNAfMnGgEDUAziJsBrmSZJFUmOXHXtxT15UDV6eNQ3jC2N77ZMaZTd7k2zmivozQZnE+tIOUpA9Wiz2FolpTaIIoH6V/aiJDmwDR8EAYIPGHHyoT mViUzIpvqyPZEp8n6CfelI5WT5AM0+YDCBtnzFgwMJA03P/Cv3m6LcN+q3bIRKSZxYMYqCqFkWyJb4aoCGvxbgB3x+T2xwmuVBjtWWKoBwBhV8a9LDxRIxFawkyfjijwkgQhZhYnFSEYFNgdA4YHAfQC8D2AcB3gzgZgLKCpDRp40iIDgJwUjpk8VG6w/kvpy2Hk8/yVrDRgcJlL39SgxSJCL6SBpzRMwtoYUJ/08hxAAyXQI0JsiEgN0jWwArpO L3cZBdIBXhSNv9UibOkQa7pcGqPXCZQ0/SiXQMil0hEAxt4WCPBPxzIGL1KBtvbJhiMHbUNGEUQ4SqTXrYsDGg1GDqrgEeAVwOgeaBULXHW60QOudZLrovzVby1NWStbVqrT1aa1Ruz3E8awJq6yjl+c3NfktxW5b9DxA/cWuN3XGTcVIe3A7kdxO5ncLuV3JIDdzu4Pc2B94ycn+NB6cCkg7BeIEYHGr3AAA8rXB4A4YiY7Bf0WMDfAfBHgzgb8 X6gfG60Sh+tEQU20+6lZpki6Y0TbzJH289EPQiEn0LtIq4hQrpO0buDVBzAwakw1gluPdHtUsW24qALuP3ErD9+0SORomKNZxiD+Rnf8ttRv6Z08kFnY4YaHij5Zsw8oXAe1C6AuJkYcUHrBfH6gQJQ4bFQNg4XrEfCJeO6Lxi2N+H/UEISpfujMBiJIRFQFmHsWQ1QCRFhxbyN2DqHASFsgMiI0prryXob0DeWTbEXkOEHlNaJYgmaO1FqYziZB vDGkVSOoIu86Rulb7MSlPDZABQEfb3hwFj4sB36moiAGVJ5iwBKpDfaqYH1yBdF0+KxI4AKN6DANXKEozPp5X2I58jino70b6P9GBjgxoY8MZGOjGYNZU1fUqeVOan18gcNUjqZ8Tb784jRamYXKaJ75ldEJjHbFtaOsJ8Tl2UrLAc4hn4SQGcIkfEtwVkGcCgJh3Y7qd3O6Xdrut3DgPd1knn8ieik4XkowJ72RUx6jdSaoU0kdp6e8pcYLUls6 1hP0KmA0oVltDKhQ4UrDqAaTzCADD+WUPzi40cmNjJezYu0jAIiYlYT4jSK+KXlVL8cx6o0CwrCNaGGFtQqofAfJk87TpbpUU7LjFJRFxSYWCU+wWD1GC1sKuOI3LtRNSnHlHoYg77pl32kdsaiOU5VkSSSHyC2miggmsoOzLOCC+RfDwaX28Hl8/Bt7V5ujQfZPslmPzcIQkPwDWC9mOsuwXrIcEqD1gXon0X6IDFBiQxYYxEBGKfBRiYxs7QwX e2tnBDH2oQ+2VC03ZLigW2Ib9moF/bxy0RsLYBhBwoBQcM56QlIZkJ/GqioceLNDKUIwyFDihHQ+8Bh2cBP9uoUwOmTgKxk34me7M0BGzMVCvQug7QsAMtiCBdD+W7Ehcb7GhJy5HaCuCJnBVH5cdOg2oJTABjul+onwYkvhtGjBBJBlA6gG7lABeA/AEAp3CEAMAoDMAbQGtfzN7mkbxiFJenJSQZxUkU8GR3IDSbazv72tsxG8RUKFB3gagKkB 8UoDFB1J6SkBtYISKHHAQzI7JppByThTAGfUyZ4bVyR1kDwZc4gs0VCi6UBEqh8ZTMk4Q0PMzWhxxZ6UJqGWYr5ZnEiJfmQviRHkCy28UrIsmXzJE1E5SUsSqeNvy7cGYFAREJ2T2BXk7xnEiWly13o0T5ZzbW0NOmhSkjO25I3TMPPFnkYuJUPNAJgsum8B9Cw9SKbnHla4B7gq803OsEeBcKeFHGPhQDO2EJjb5IM5SeDN2Hp0X50pO1pHKKSf zSkYUXeH/NMmjAWwyoEBfEUNIQKSF1WImSANgWfCIBiCimW3mvQF0Fe/EeqohBtDgiJ6SiU0ESK0UIiBZO9CgekRqKiyZxrCwWSIrlknYqmkirKSxIaYL9Gi19DSq9nhiu8n5KKBVGikpjEBOAHATFOEDqlMjWlqAdpRwE6XdLOpYDRlGKIGmJ8YwnKPsN5Vz4qR15m87eRQF3n7zD5x80+ZMHPnbV1RS0+qYqn6UdKulW0vJClUIaGiMqgJLvia gobHS++jHS0cNL6mTzDCFVUzGP01x9QUIfM7RVMNwA4Z9FnAujM4CJhwwGYvGSuKeHuA/AYAyyu0AgEkCIgwQ2AUibGPvnySj+FaE/pFjRX1pLWkM6/tDNflaS4ZVnQ0G53GRPCvkfUOqvaE561hkgT6WYIOjPjTJ/JtYkJTAsPwfU26Xw8mTL2qrGgugr/OaI4jc6Gk0BmuBGkaGFDGNGkHFaKdkroUiyGFVbWgfBhYVSy8h7CxjtTU4GyhCApw SYAMGYBGA7iCEvvov2QmoT0JWEnCXhIIlET3gJEsiRsAonTkqJ8iURaUuzBgIfJFSmRaxJtryL++RmfoUPwXRqLYihhYfD7R+UiSBgAKxfvqsNXGrTV5imRpYuP6bCr5D8iGW7wzpErYZWYlxXo3MJ2gHhwUTPLaHxmALEIJoRlc2BdIIJ8wUC5xqEq5W4V4FzkkLsRTC6GEestoY9Bly9S2g0BqAkKUKDQRNCs28IuegqtxGxTpx9CnJolM1ViU Up+IsRTmB9VZsc27bLJurIpF5Sb6srGpbSM+x7D4+xKTaUDkeB7BUAGzIHEMH0CoB2CNULGDVB6UWUb1HAO9Q+uyBPqDAr699ZIE/UjLJlADUUS5UxyDTccjyqBtKLmXrAgVIKsFRCqhUwqoAcKhFUipRWuQdljxdYD+r/WPq6CL6t9aIFA29SNgpyg0elWIZMTSGouM0cGtOmbdzpvhNRdMEcSpRMSOijCYmo4XoArVaE2uJhOwm4T8JLwQicRL w079L5BrdFbpyzVJic1tivFfmocW09iVxaiAAFCZ4gJVQ5HWOMjOzCFYEIZanULMFmisUZgLw9lW8OJlhKnJFUSJfysVzGhcwp6AsMlCtANIx1tSBCGghmT5hmwWyFJW8lYp/9p+VCmMguqFlLrlVK6sWSGvoG99lxTA6WciOKWbrSlYCAsE2CkVSCA1VSuYeSF7auz5xpQRwXym9mTS/ZM0wOcHNDkWyI5VspIjbNjnxCE56W1Fi7IOa6yumnsi QChtBXgrIV0K2FZMHhWIrkVrWgIQuxMEhCvmYQ9OVYMTn4AYhYLVOd1ozlazGYGQgrg4LRaHashOLUuWuMQ4VyUOZLEjLXJ8VebHovm3MJQovypsgtxk0Lb1n6i9z+5tHPlhuXdVrQNgvRZEIonnHQBSwmQdYNBFIDYQrgDAQgAgAoAcZuVmFU4Bjsx3bASUIgWqI8COD6BkQy6DleugR3PMJMpzAnajs7U8qIlP1KATjop0jsCdcMXfmprJ247K dGQIncpsxUc6mdTggnTzuxXJjhSjOvHQTtNiPzL1+xTnczoyAYStN7acXVzv0BwwGlRUzsPzol0ZB1dtS53oUBV3y7f8ixCDWzAQAcxsd5OnXYTqiBZzTtVAo3YLoyBlTiA2c3OeRMH6y6Bd+OjINnKJjS4Vw2O5gMyPdD4A3w3pFUOMmzB4J8tCcG9IbpD24gEQkiLUkqE1wUVFQ7UeInRQgBGA2ABgKrQwAIA2wCkFK2dHlQPxO7fd+gKXclsq AsJsdYYEgPlNvqG7m9xAZEAgGjmqZ+w0qYgDhjYCrAypuATQMEBelzqSANWL2BxndAqRSAygYMAAApgEY6XgBz3X1r7ak8QAAJSYhzYygRcJ+t9iL7cAK+mpNQF4AX6r9koZPAkD30S4ndwuhAIrqpSYiAUK2FfObGTjSpBtfYLIKPvH3nKGN+xIgNHL2mQBZU0O+jUSWEBQADUwB4Hrcu5CaBo00JZgFGJ6KD7h9sqMfd20N18geYjAImAXruJi zGOYQYINUHVQzK8YQsX/IZkqX4GfkwLBmNQeIOkGetMiC1Es2CAbhQI+4IAA ``` %%