{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "96d7d6bd",
   "metadata": {},
   "source": [
    "# rs701_BayesianCalculator\n",
    "Bayesian calculator: basic example\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "**Author:**  Artem Busorgin, Gregory Schott (C++ version)  \n",
    "<i><small>This notebook tutorial was automatically generated with <a href= \"https://github.com/root-project/root/blob/master/documentation/doxygen/converttonotebook.py\">ROOTBOOK-izer</a> from the macro found in the ROOT repository  on Tuesday, May 19, 2026 at 08:36 PM.</small></i>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "7605f134",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:36:03.577982Z",
     "iopub.status.busy": "2026-05-19T20:36:03.577869Z",
     "iopub.status.idle": "2026-05-19T20:36:04.767842Z",
     "shell.execute_reply": "2026-05-19T20:36:04.767145Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<cppyy.gbl.RooRealVar object at 0x555c1b27dc10>"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import ROOT\n",
    "\n",
    "useBkg = True\n",
    "confLevel = 0.90\n",
    "\n",
    "w = ROOT.RooWorkspace(\"w\")\n",
    "w.factory(\"SUM::pdf(s[0.001,15]*Uniform(x[0,1]),b[1,0,2]*Uniform(x))\")\n",
    "w.factory(\"Gaussian::prior_b(b,1,1)\")\n",
    "model = w.factory(\"PROD::model(pdf,prior_b)\")  # pdf*priorNuisance\n",
    "nuisanceParameters = ROOT.RooArgSet(w[\"b\"])\n",
    "\n",
    "POI = w[\"s\"]\n",
    "priorPOI = w.factory(\"Uniform::priorPOI(s)\")\n",
    "priorPOI2 = w.factory(\"GenericPdf::priorPOI2('1/sqrt(@0)',s)\")\n",
    "\n",
    "w.factory(\"n[3]\")  # observed number of events"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "805c828c",
   "metadata": {},
   "source": [
    "create a data set with n observed events"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "50a9f5f9",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:36:04.771676Z",
     "iopub.status.busy": "2026-05-19T20:36:04.771529Z",
     "iopub.status.idle": "2026-05-19T20:36:04.961281Z",
     "shell.execute_reply": "2026-05-19T20:36:04.956639Z"
    }
   },
   "outputs": [],
   "source": [
    "data = ROOT.RooDataSet(\"data\", \"\", {w[\"x\"], w[\"n\"]}, WeightVar=\"n\")\n",
    "data.add({w[\"x\"]}, w[\"n\"].getVal())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1fd59d71",
   "metadata": {},
   "source": [
    "to suppress messages when pdf goes to zero"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "1296b168",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:36:04.963837Z",
     "iopub.status.busy": "2026-05-19T20:36:04.963701Z",
     "iopub.status.idle": "2026-05-19T20:36:05.490853Z",
     "shell.execute_reply": "2026-05-19T20:36:05.490439Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Bayesian Result using a Flat prior \n",
      "0.9% CL central interval: [ 0.5060595505871569 - 6.893261312862889 ] or 0.95% CL limits\n",
      "\n",
      "\n",
      "Bayesian Result using a 1/sqrt(s) prior  \n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9% CL central interval: [ 0.07462937796837057 - 5.8542450825237555 ] or 0.95% CL limits\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "<div id=\"root_plot_1779222965480\" style=\"width: 700px; height: 500px; position: relative\">\n",
       "</div>\n",
       "\n",
       "</div>\n",
       "<script>\n",
       "   function process_root_plot_1779222965480() {\n",
       "      function execCode(Core) {\n",
       "         Core.settings.HandleKeys = false;\n",
       "         \n",
       "Core.unzipJSON(43686,'WkwI6DoApqoAeAHtnWuTZEWOpv8KljYfD8ck+VVxPhW3pXehKQN6KLa3DYuqioRYsjJrM7OgmLX+72uP/ERkZF0amKHbpndo6yxCfi4uv8kluV6d/3v2ze1Pz3eX22e7s83Zl+9vL3/Y3ny1e/zF5fb5zXdXt2fT2fmfLvf/58XuDx+cbWQ6O39vf3szfn32+H/vntxSfsZtnz2/3V9drsT/2F8+Pduk6ez8+KbN/31TXW+rIKVsKefp7PyT/eXu/auLq+uzja7kF7c/XezuyK/2T2+/G+RH+4uL9WaYhTzcLBKP785vP91ef7u/PNvITMnn+2+/e6Xovavb26tn92/78ur5/YJH53uYsOns/Ou7nw/GT1786OZ2e0st7txzj3owKB7+6Hr7bPcq35S90vDjffcbdLz1UHx4JY+f9gyvfO/q+unu+ov9v629d1L46dXT3RjXRzr++/X630c2+vbr9b+Pbq8ePL55uH+5u/h+feL26k3k2aZ6pen3HsgtuuzukfsFZ5t3R8Gf7j3FaP7p7plT8lDNv957YLzkX+8euV9wrObQlNurR2troimvk4ykiOZUW9cqrl6YnnfPf/396Kf1eUjYPJBnm3d5gan2mrPU1rzWmCcXVz/+8YP3104/JR796Xlc4K6vT35/dSz9+PjrweObey968Pjm3rsePL65e+zB45u7J//08lmsBnr4p7ufL59tX44G/emn488vv9vdbs82KRr23X799eDm+e7J7efb2/3VaMUfXzx7vLsev7/cP/n+5d3Pn8bPT66+XQs/ufr2ruzfxtWH26cPt/tLVs90dv7+9dXNzXfb/frCI/nwapVEp9OayTXouxn96dXT/fl+9/Rsc769uNlNZ+f/7Xr/9OV98qc78sHjm/evrq5P7v/w6f52+5j1fnv9ghd8tH+5e3qv3YdXP7zeP9vf7n/Y3bwm8j7Z3yBRD9J2JbfX12ebP/9lOrt6fsuPv05n5x++3D25Odtcvri4mM7O/zjE8xNFWn65v4WPs/e2P+1u9tvLd97fXjx5cbG9vbp+5/PdzYuLENp/fPHs4fZid3t7kJ105B93L29fL/3gD188/OTB12ebs385/JzOzj+4evH4Yvfei/Pzw0B+vrvd7i/pxbUPHt3s/233p5vD9a/vk3H189324mxjVB6XB615tl4a0/qr/eXTqx+/vHrO+jqlvz6lVzl2d8PHO6T2Oj1+PEiA9787W5f5+9vb29e6/8Ht7djgaN+j93a3P+52l6sEv0dFF390ffXsy6vnZxudmVOPnm5vEZBBfH0g2OEeDEL/Op19/+nVD7vPnm//z4vjTPn+8x39cr/w/OP9t999QhPWzSpm7fb2yXeHzv3+i++ufvzwh93l7Re329sXN8fJ+f2DF7dXTI/jnZ/uLl+8t70eNJPnwROm3/GJ889326efXV78dHji/Kv97XdXL25PZ+ph9n68vVnn3qHk9K4/v7KH/2aaApL0rZrCV7vHIQ32l9++TV1gZrx/sb25WZcK9w395LTgOVP1TDZWyrT+LbqRSSZZLEr5lTYSV2XJcc1KWcrxGVnqeiflbb2X333TfTLVqefF+d3zZFoXpcI8rX+L6kbdJu02abNFbdPqFP9fNG1UbFr/Fs0btTatf4uWjZY0rX+L1o22Pq1/i7aNSZ7Wv0X7xsyn9W9R31i2af1bTOJmdZ6XxfQ+aRv1NKnrpLUvljba66QdMi2WR721TFpksbLRnrgyaSmLwdXKZJbF2kZLmTTbpEkW6xtNJRrY62K+0VYmkwonS5KNJpui6pqWpBtNDQ4mrbIk22iSSUufeHFKo57ex7N0lY16SlpS2ai2KZ7PZUl1o5LhIFhObaPiUzyQbEl9o5ajX018SX7X66UsWTbaZIrmui5ZNwxx8JzKkm1jplP0DyRd1QeTSZacN9HFjJrlJZdN9ClsqC+5bniN58nrktuoho7Kbcl9EzVqsLlk32huUzRCbSkSTMQUW4puNNcp5uxSLPphJdLG++F33rR8+F02RQ+/68ba4XfbpMPPzsReX+MbmTITuCxVNjLVPn6zdFzHb9vQqFhWS2UFafJxhUXE7IjHC0Rvg6jUoaOSGisprbVE7bFIdalUH4S1pVF/EJKXBgMQ2mVpcBBEqUs7rGHGt8FBXJG+NDiA6GVpwUApU9WlHVZyaks7VK9pab4ZHE6ydNkMBvmtmxLN4LdtenQDv1nCQ7rI0pmV0Q0QY/lSnyydZVIPBEt3cCVLZ+FGN0CwbKO3J1l8FVypQ+iQSJohhvBSR3x5iitaK0QeRDaIIcWYVLL4EGMeb25xV1PKe/zOjd8evy1NsqjIRlWnXEIoqGjM0GxTtkXFhlBwhlcXlbTpbdKYNVzO0Q4tdUqQZWPWp9SmkheVutEiU2OB+qKCyKhxr1ZexfK0KaXJDJIumSq9qouGbC2sIVtUEWM6JZ0MyqJXEUbVF0W28ps/K4siXBlNOp73ahkcj/msSFfRyX1SkUW1bRBwtEf7okhX5l31SZHovtHuVKyLmmw0I7PypBX5jhwb/dYhbROPSZu6L2ppYynqkUURrb2wLUwsc0W2appClBk311jqpn3wjHQ92QJMdOPKknRdjCFBJI6/xQTZlKb1bzHGRGlP/C0mZchbxPpiDEpPIQJkMWkb1mbTqfHmvrHkgy1ti4lveAphXRZjSJgFPLyY6qbpNB5eTC3k8vr0YgwK9fHwYpp5cjy8mBaeHA8vxngg0bXx9GLaBreHSvuxcVGrB7+HatnuEEeD6cViSOB21MuQjLZqT4vFkERjLeXFLB9bGzUzKGtrYdqQ4ne9au3Q3vFwPzaYh9NhDSPbJC/psIyZTOxbrOR1Fx/0WMxxXWxJrOfD9aBPdIKgx6rm/qJLYmGvtwfZjxpEkMi2oW4UXbLcKUayZBk6AY9D2fFJqDs9BSqznbCjLFnojSG9aF+OxRyyP9qTWczQ7MYlLZmpI3ZsX1YZNNfFloyyBIvsoEEbda3Ny5qCkhz8a/DBrbRGY5Pj4aAOol6WrCHqR7sUUc8jlLPR8IAs2dhnRpNsHZKhMy4ZdWhtEltaZtGuTYomMz/WJo3rSBKLJo/raB9rk+gC64cmjdv90Ka4OwkkFcTNSYMco7bkdNj04tEUu94Y7yWn2HiPD8bOe3yO7ohBWwpTcp0jvKW4Hod60HdDD0fF7wZ/XM+jPaONS2FKjnqC5eIVlseoLcXbgYp3RdtHA5fi0XQosaUKQxC74lJlaOk8U4U2x6AtVWhxDNpSZWjraAzMwrHCgsWK+BorbKV7NHkdtqWyp3B9DNtSQ4TFDBxVMgvHDIwmVbaWWGHjdZridTQRBtlZYhKuN4/+ODRLT82HumrtSD2eHKtjbRy7CrNxdIfFRGDUlsqUPLSP55BYa/uYJRWRNVbYSq8b/zr8NWTWaF90dWjpscJWemxvY4JU80PzqBstfbQuqLE+1zvTnRFV0+gUNJKKds4ai9+jO8bvmBr8bAdBONhe2ioI125fGrNuZbHo0ph0K8nD5djeuHg3/DSvrepNsLC0VcGhprh5tG5c7AcZGNKhIwPXfi26dBmSIAZl6asQDCHR5TjmXFnZGbKnr7Nx5Xfph9kYkqYzF9e5F3UcOxsdc0jkUcU6CbmZG9lKV7HCnSEJ11feCUKurOJoNLezjx4EstjS2UfHtI+b+5GKOo6yCCU3JiDVQ6y7w+idpbOFHuQ6r0VIMtuGMO7IyJXk4VUTXllaZ+PaC0tfZ+OhprFWoWAJm3GtCGV7lV2DKSbj2jaWRcdkXLuIZdHT6KQxb5Z+JyDhOMV+AU/j3lVqrxt1Twf7YNx8J7OjojBRDo/mUxul55DYvCfem0Nij8W39ByW0jpP8kFg0858xw7c5Tt2xmuO7NCwfGRn3HxghxeVAzdBrD00tuilYy6u4xINKcdpFO8tcLRK5z6sxrVDl14GR2uHL73AUVzFFVKCozsSjlb52MOGXPeDXseGNoZt6cOOHIO29DAkV8HZhyE5uF16Hdv7mApLryebLPWHOXn31tE/h1aHRXl8dJiUh2ttdYUcGGrr7ndgqY2JfeiUNib2kNi9jYl9aGgbytCxFxqWzcHC7m1M7ENHYGiOi8yoPib22P56H8N2uLWPURubRu8xZmOX6D10oJUdLM6YW2NwsTlXmRl91MfSP9Qxlv6xjlj6axW+7j3x2CqpDz2wCuq1/lU5iG2qr0J6JYZQPIzmKqOP47nK6MNrjhtQTOhVRseLfBXRK3Enoek3PxHRzGBHSK97sdjiq5getfgqp9eW+EFOr0Ptq5wenemrznCghsawjrSvgnq9uHrXYk7BFOYGHT/+FkdYMo/H3+IWIzj2ULe8KQmzWhOPxjTPmMZtcaubImGBZ4z+tsmOoa6Zl/ZN7hOGZ66Lm29ynYpMmvviSTYZ8Tlp0cWTbnKegpm8eLJNTlOIp7Z4SptsE+Z3xZOQN1kmPG7VFk9lk3wqji9s8VQ3qU91uAg9tU1qEyZyo4a+SWXCAG7U4LhNap201cWzbFKaapu0+eJZN8mw5rGNPdsmhcmnvSye08Z8whbubfGcN9bDSeC4NQpuq1bwFi6OJ61OrU3q1NDwEDSf1KkBY3XqzGRdPPvGbOpDr/Pwo01h+rXFEY4+9YJPanFEY596nUzT4gXvwdT7ZFoWL3mjdXK8V33xEgYhjjDTxZGLZXJbKZZ8uCeMd6Lf4XIZVJjNXgdV0asmbyvFlJkcOx9XDT4DfBGmvnhNUIrjIshgJmZtkGVcTevVOsjhuPDaBkkj++K10ywVWgmJQ3bCNRFkw/U54So1bYs3DRJ3WJC4fCZcQoOMHlK1lcRLPOG9wAXuSMY+afgaIPEuDH9hkG2Q1MtVjPlJ8XLQ20hGSNgoi3cJEk9BkDpI2OAqvutwegwyDRI28uI45LhK8yFxyE5qNB+yDhI2INsgYSMtjoDkZtiA9CATbKTFfXCF70ltcYyojvdxJUdf4W9SXRwpiXcaNiDHCCbYgBwjmGADH1xMKE2wARkzKryrQcaU0sz89sUx6fOkeLEEXxpOO2gmfIfGGYXAONB41SfNuCPietooHug6mTTux4OJR/pAl0H3A41bZtLseMS5vwVdYCdodhXEzmRSuB7uVC3wA62y8XUrDlKDjGMMrtoGZ/rwlahoChJe4moOElYSV8sGlw6cBFkhK4zgccSBhz/xQPYgYSOu+gZvHr2Ci9Ekng3vIKRSEeLM6VMzmOT4w+myUHXD3apOl6Hr2krTJrRdfJBIJ9gOJ95Kw2iou+OYw+EFlxGcI7+CmTH9Q0ZSPQaYc2wzaaf+hMay0tSPEcbRUpxKQONhHD7FDj8JX+xKw0/COBx+UfyTkuJEIPykw5PbELyKe7bTG6kjljm4QYKrIN6pHxp+EPDUP+S9CiKe+qGpHyFP/ewA1J8Tm8XwY9IfObOVDBp+cmGjUeR5o/5c2Ya00+fUnxub1KCj/s4WNk6r6I/sbHCDpj+KsP3F8VuFn6JsjuEWrdRfjI100NS/6sRxxsV4lLwpPM+GTv3oxW3SjuFA/aVu2CODjvrapsIP16O+vmHuBE37i2844sLvG67yKngQB019VTf4rLmeqa/GgeGgqa+mDX3DCV2mvpo3HC0GTX21bKgraOqrNRzdQdO+2jbhtUePiPr6hsM/6HDHV984p3/Q1NeEU6VB079sCwLDyDsqZGPAwIkCagydmS4KiUhB3rCNjALqZHtg0XSPY0IVNgi8rBRY1IpgoVoKolqOBaiWgqiWczvWqMRhmwobhXG0SAEjy1bB1I0CqmWziBNH7mBusV0wGTn5xM8vbBjMRu5QqmXLYPrdFeCT59SSO+h/tg0mWBTAGBtHXvngtEDYOphicQeMsXmgnUUBHXTwwUUBnIYTbu0PhdPwh6z9EZI+NhH6lBMLWI9tZO3TkOVsJDHzuANO2UoQS1EAp2wmQ85w1EgBCsE6thTEIVBIgj4pYjaOgVjaUcCpy+EkKArihIZzh8M7OEphT4mDiD4hTzkNitkMzdlKHD3QtD4hUONAiI7ojYNSjQOhOEBvEwKWEyF15lubELCcCanTrDYhYDkWUs5xoOOUCDcODB3o4akKGobjGIImoeJBY7nAT40TG46GOLXkfgQwZ0McCQcNfxwOxWTuHDIqp0McstAeBC4HRBZzu08d/vClIPE5zqV+vHvrVEfgxhEREt5lQuByShRnztDUj3cPie86NfoLf0osBJ0QuJwSGRIeOurnhJE5bRMCV/HvIeGh6R+cKrFM0oTAVTYYjrY8TeMgzTYWqyZPCFyNDYYJnycErrLBxCJC6YcuG0vMf0wC6LrhDDNo6meDiSVVJwSussFk6qsczKqmEbvAmCJwNcvGYoG1CYGrHMkjwaGpnzP5WG99QgArdkQstz4hgBVLIod1MBXqx5aI1ecTAlixJkJBCRNTFXsi/AwyFfoDiyJomxDIik0RdJoy9WNVBF0mBLIWbFRUizohkLXgJQ0FbEIga8F7iybiU4afwpktiqPG0aoW+INOEwJaObIPOk8IaC3wx/U6IaC1wB904zBbtcAftE8Jfir8Ya3IhLzWCn/QNiGutcIfdJ4S/FT4gy4Twlor/EG3KdEfdfQfc4hDSq3wJ5OhGsNPhT9onZDcWuEPOk0W/MAfNMfmHLXCH3SdENuKSyZorCFo+OM6mjg04+sTcwYhrm2ML7EuCj+trNdZg9B1pdFIoLEXeR6tC5r5B83hLoFE7704J5bsXyJQ7+yji6vtbbKz6ewiosdKmc5+ONv82S1Pbph+dXJDtvTJzSdPMjlHvMkmT2nylCdPZfJUJ0/IqD558smzTJ518myT5zR5zpNnjEdiRJBtffLskxeZvOjkxSYvaSIM1TkDL3XygkzskxefvMrkVSevNnlNk1cCTcrktU5ekaV98uqTN5m86eTNJm9p8pYnb5iidfLWJm/IYZ+8y+RdJ+82eU+T9zx5x0itkyNLQ3775C6TcwbtNrmnyQlw8TK5Y8K2yR25H+fq+GGQxBKeEOEEIjyjwlkMIlhQGwThKwTsCGJXkLWCgBX0akG0CvJUwipGkgriU9CSBcEp6AmCiBQ0YUE4ChJRUA8EWSgIQEHqCcqsIO8EISforoJ4kwhcQpAJGoEgwgS5JaifgsQSppygbQqTTZBKwjSTEbzDE8wqwTEjyBwpPBFeOZRKYY8X3C+CTins8II2KWztgrdF2NMFT4tgkQg7uuBcEbZyQZUU9nDBQBA2b8GFIuiQwtYtaOrCni3o4EIAgaBBCiq1sFULCqSwRwuqo6B7CgqjoAVKbO2hNLAtC8qSsCELeqOwFYvzBGqjsBMLCqMw5ngtUBr4hyAHxnxENTHmOCLY7/kHi58xD0URL4OGhjjiIRjz0A+VMR+BAYx5xEvhGmBX5Z8IpKAOxhy7n+2Rf6iDMQ+FcERkMeahDipjjrHO3sU/PMGYY4SzH+HIoA7GPJQ/DGo2Fv7hCcY8ArZCz8M8ZlvgH55gzMMZqIx5xMdFxIsy5hHghhmLoOYfnmDMI8IurNARGcaYh/oWEXKht4VRGArbCCFhzENdC+ss9LSwu7T1v/z1r3+d/l7RnOVvRXMOnMLfwJWsEZuEb19fcuMh4nmUvHN8wSsACcgTEMSr+Ic7ZIiCx3gdGvLp9vr73fUJ1GQUnLxyLTjCJ77cvbx9cPkt4dgEoEKOizILfRDXL/bfXp7hFRn0yfu5/NEVUe41Ioy3L/evx4w/uL19QDnh20/3P+xv9leXN2ebotTIlZMXfrJ9vDvAX6gv6FFDpoagPzs/v9kFLgU5uxYe2U7B9/7J95/sLr8FVSOzEOQcY3B4NNpCGPqrj91eHMLNj7ccqicw+et/mhbGcP47Wvg//2laeBygXzmG722vT1BF722vD5MiQrDBabFMLx5+MdbEB9fbHwccY9CfPb+9g34MYkV/DGIFgHz2/PaDEW8/kGUEwbOIYhl99vx2FQk04rPntx8FEmu99aP9igt4LYKeG6Lw6f4WONmB/vLq6iIC6CkY0JX3ry5vr15c36zYhQe3KzuvSMwHt7cs4hBSf0MW2K8UBqwVmj8wRzQSCkTEHNSHl08/vL6+WoFcrOwg43aq+ujF5ZNVLHAR8kSKQa5DyFWgMOvNtB9yvZl1D3ky3p/svt1dPj3F28DdKD2RsLzorvBQ9wGBxysOYuF4I/23TsXp7PxjsBC7m1dk+Fr6xfPtE7AAUfcRFnfShiMmbi2Dx+N997k53nooPtz6StVx36vtPim8Axt9vL9hQp7yQxHvW9mpQrMP9x0qHr1zuPVQut74Cjfc9en+cv/sxbP/ubu+uoN6cOEeUjFE/EC9PLzene+u/9snd3eP8pOOGwWnzYTT09K7do7SD3bnH59tijBox5KvzjbtfsmjM84BTm75ei14uD2dfA+39+YWlR+L7mqOotcRmg+3T+81nb57uH36OuLz4fbpG0CfD7dPmeyP7rpnLfn6Xgl744pVosL9k+9XpNLD7fMBrXy0Co1jwddnHE+enX/x5Hq3u/xo+ySkD+wh1k66H5J1cDJtKTodj8NTJ+uHWyDvVg8lhwk0ptW45/oZUvSszjmANBSGzPC+8hIiBuN0sPbVAe/EnR9DaLTj9nr//IPdk/2z7cXNEVQUInnVduyoMpy0Lm54pXlRdto+JkkUnjTwSB+3qqGkoIAMJPDxqaMIjGdGc/x4N+05vJ/mDOFz9YfLy9315zSPO1lq8dqbs82fARK98w7/qL2jGP3v5Hf6ga7v5He0QplwQ15vuaOi6LTc5P7tx2td1mtd3snyTn4nx51R99/pn78gXHbbp7trduvATEW3HamP9rcfHSZNWSdNILEYxeOVmEvRa0+2F/Ewo//fr/aXFB4Ugfe3z0/JL/fPjupk692155AYf3i2/XbHi44C/v3t5dOL3Vff7W++311/vr38dsUuj/L3rl6uZWP0RmlwcgLf/Nf91cX+8lC6whfHre/vr59cvCrt10vgTmH6ZAN8hMr94cvnj07VnkPh16eFX7/pzkPhvTu58dPtyw/23wa2nkn42fXtd1fvb5/trrer9HndXHu4ffqb4e8Ysbfi7x5un77NXsOSoodOJBbkQfisV0/675Wd8XUr7HVx/QZZ/TtA/12de0u9FU1euwsSHMD+uzKbZpMiNStuxbOB369zb/l4OwMTcP7ZrfVcchGp3UFh3kf3tzJr0mrJtVqOfeIE7F/7rI0L0rRzQhuPB+D9bJPqnLqI5S5ecLi8mgjApM+82XtLCc9g3BBPf88WmmYXrvbko+ZDzoCzzbsqZW4A8ZNbwZMc2QEOWPzvzzZ19uLu3nPOiaOXv5U+oNssXUQk4V9ii7ufS8CSzhY3hIcuLh/5tDqXysM47O8unW3effXSgb2RW+Bdm6UWRfal2mu4ANZcAWQieNMAHy6HIWCMZ1XtJp46TN+9P1IRzN4sNy2iObyVd6kIeP3r82R9+yFRgeeSazM8kWKxod/lF5hF6Fx3b63mbiWm3zF1wVzuXWZ0DqkMyIZBZ9FflorGqK+pDd50beQskNmj+0Uk5zacFCOBgcz5tSv3UiG8kdV7yRHewO0xWcKbKj4mT3hT3YdkCqSKeHNCBcT7IaPC3DTVLKmX3oqw/H5lggXq+D3BwjF/za9OsPCKPf/Lnz+mZPjmXlKGJyv9S9Mv/HZw/VWp+Yeg9Zl1b9UWwih+m76AnPht9YXIVrOutnsZa1hnY497bZGdGhy0ZdCrgfm6ovUf1LI++tMf36c/Rk6kv9l3H+sHb+u5Ekk01ml3TjKfb26+KaU80Sc7eVx2WAtDfT/bnD28urndXe+vrt95fn31ePt4f7G//emdq/N3nm958nZ3/c7/Orv5X6HynwzHcEz8BxW4X+9G/+OT3QWGJEdCZ+dvcYOvPvC3JaNaO+Zl+F9PeuKf33GOT/LxHp8/h2dn549Gip51yj8aqXmY7I/GXWSSOf9of32zukE/2R5+kbrLDibws90H+5vnF9uTtDfYZEerjk6M84K7NDSfXj39ZPt4pf+GP/+XDdVPrw7V8+OkPX9x+SSSif1nOvQ4eg6OXoj1rORvHHqcjN3dyMWvQ26lf/ygveWI4pcN2r+9Omj/qYaITg4Pxj/5EL1yqnJy5CIhAj68vL3e459ign158+LZj+uq5udhhfP7kHcrfq8XPt2+xG9MXqPXNsbVp4z1MY5a/nh1/ezgsGTiruciI1/V+RejupA499L/ccTAAn79OPOXa1gj9dSdU/OQiipqe29/iU/yw+vrz0iaBWvQn/2wuz6/uPpx7ZoH19fIt/uhO5WYngjdif2GBE8RwPNqd/z2B+TnLJaf1wI+v7p6/8X1D2/VoYqVdKoMHOXmQWx+c3599eybz6+uPvxhe/GCxGBfXW+fP99df8Nw/vnmL/AR6wRV4fqKNI77q8vQDw4y+GffxTvuqQ6MwdtVB2zAE9+PRwPue394wb9DeXh+tb8kJSVhJGccNLx9uPOI1MLiK+6ltl6ql5QnSqoUL0VKb8RhyFyqe9JSsa+dNCtzTalLKr30ZLUZJd5qK1VSLiWbTzK3qiW3asTVEDEqc7eS1WvqTYS4Lpl7d3OtpSZLTXSS2UvSmmpLnmsm6GcWxcytrqU6USw4KFxaI+9gRLfOmnNr3qx2zQR6zCa9Fm04PBoRJ7M1fCOtmtSIeZpTqskLiQeJ7ZmziJGGsCUpxAPNuWZN3jW7dYJU5mJdVHuyEh4cnYtr76kX0ZaJ3ZlrKa2UHtkMCSKam3q11juNJpppbj1ld5ckmUicueeWmrpJrYV4n9mJzkmeuvVG4NHsrRABU4pHBJTNkrp3+CwpETU4E6+Fe4e4GeBJs9bakon0RtWTzZakSharmbAwm81zblVyFssEFs6p9JS7VK25AVqas5mZSHOrhLLZnHsVN8G9ZkBD5pLdaybERwvBh3PV1FPVZJo6uY/m2loT+q+RIHKyuWUtXbQ2bqTaLiUX047DDVTO3KsnyyZWzUE8zZ4SXWhihZBam92b1G6p9ZarT2mWKp7FSsnecpnSrJa7mrWkRqxbmrX32rO5tGxepzRbsVJqkp5qaTalOWnNxsB677lT0CWJpJxqBEulOeeszVJVwzs3pblIF+ZW76U2qi1NXWvymhsBiWmuqbTeM/6miA6dq3utkpM2K0K1raaSLGdPuTWq7day5FyrNyLg0txdDZ9SLp6Mar0Uzb2ImVZCamdRF5Oi3lPvSkG37lZSy5Wlm2fNtdVcSpGek015NiLmaHmTJp2Clov04pKMOMY8p9RTlyrNi9Upz1nMilVjeidqzbWq5ZqTeicydy7mtK5KN8Li8lxww/Xaes6ppinPtbSWpXqVWhO1NtOqxq7bkSh5br1k1oMmItfy3LOnUlvunnKlVtdk1ltlmWVq9daIiuxZO6GOZZYs3limXczTVGaV3HPu6tlK7RTU3rT21OLCVGZLVjortDLzy2xec5XezDx5ncqcqqRkvbtrbTqVOTNDs0sriVDUMufepVW3ohXfYJkLk7V7xp1MIPVctSA5WYStUWttXt28Mc/KVOaWU6kZMVySUWuXlpGHyVoVau1NkyA4WP3U6qlop33FAtU7I1dKklo1I37rLNXcivTUapM81VmtNm+Einbv0C61uqqLWqlTna3kkvH6xsyc6py0Z01aspUujYJu1os27Z2YyDrnmGfavUgq1FqIYHWTplaBus6lJSqw3LLrVOeaWmss89TYFOrcRGsuhgzLlVpbLUWbtVa1gaSdu3linyiWiXOtc/dkVZNar9ap9U0FyYp2Bqdo5BH9+me2w6P282eZ3bq1hpB0IVJUZmd+5kKEK7yyC1kX727mtcQeIq0ywROSklhMZBHxqGatEhmssza2EJdeGjNDOZ8oyWvJRKGyQxiCJPeKdCdAcjZvnkTYFROBpWxclcDa2sYOkYaoK4W11GIra6la02zISgo4GHA1JljcUDn/0GZdLV6ZvbReJFWLGNy5mKQsOeWaSjSkZM4mqpWUI2JzLlW9aqquTiy9zqW5pNq7mfXY2oqnmntD9hK1rXOV0hOdaanEHVVLtSS9FeuEpHIAIq2XlEoED8/V0BeK9c42zQ1JDS2kSiLIea7JJJllbdQSBdKaW2KJExM6V0NkNfIMJ6JvZ5Zoz8KCLjEk6CjimnqxHKOIhHKUidYzgb1zcZSdzg5TiZqdS8+Z5axFary0NGKjmaXs5NxRqtXq0pI3wnXnksXEecCIGaeLLYY5Wy4EDc9FcmmWrPaUiduecy9aC6uiRzgzGklXUw4yEiHfc86pOFuhWITuztm0uEhqObeYPMk7eoRk9hkYS62UlAiObch2nRlga5KlSkSKz8mQfaXnUqKxSTjSqimxVTNK1hrbgZfuNXrQULRSb2pSQ18zq2Lak7qSaBptTIj+RfeKqO4ZjamVSs+2uEPZNnNqVjQTLz3TUO+mJVf2HJ0F4YjgMSWSXmepXgqaTmt93JFTYRBRJ2M2iIZGWpppsVjDrghhTdlTIw3g7LXm1IuilzbtlCAAPVWtXSpJKGYnw7WId3aqzns4ptJSm3KiVEKxrbUjothkEbYy92y8gV20ke5U5q69F2/oGi136mpeEhpPKY5GSAmdX1NO3goB+jK37KVbpWsrh3syN2vGbBZUj6FoS0ns74wiTZcZbkK1Yt9KhZJqDe2UDi/kiJlrNrWWktSuaHkyV9NVTCRYo0RMUxEtrdFvmALdmrdYHUzeMA6Si2V0f3AoMrOL8ExN6E1xi7WcpfVeU2AH4pypt1RaaokU4pPM2Q2dDosBsUpJQ2bUllJpjUSNcy7epXTLaqka1kLOyXtmI4vdjBLUYeUMqeZhz2RN1dAzaWwMYHJH+ckmLbdM0xPqhuXUqmLVUMKEVkWtQTWkpLTO9mkOEIy6Etpbyb04I0RLU7LUGzMTbTNKDHWtpIwOERMBJsw1i2gCgSAIeZFUqKxYpS4akZDQSNRR0oqZubq4gAeT2Sq7f0+WKmAUYf/u6qmYI68pyIXY+5pkrKvXSmJj/C08FATbXX17vX12TNT9mv/k6Gw5OFRO3STf/ITXLZys/zFD/Jtj2vZv1lTtr24TZ99cXl0/+9ftBYmpf/sjjovfPRun8Z6/rV8jAif/ll+DG0CgvSuzZtcEuip+d2dBcBIts3Imz2JFqodYAZqDtAOnI3MrgHZkRuqz5UkJOA/7WOhL1oqHApJKIH7mbMUB7cwlsFlzaaXHNlZLgIPmhpXBDV0CMjR7wVDCegdMZDOKOlZzFiSUzdhr2NlNACDZ3AtopDQLCLBECxoGIQoVdC4AmBItaNi4rSBYiBpBe820oGGGYdRjBKYCHCrDL+Ya3oewuQh9wbIqqBzYT+gzBe4qdkrGUg8LB9RVgbuK1dQLeKwKd2j07Ipo5UmkYGjkAoSrwl3YGa0ImYbhruSpwV1JU4O7YlODu6JTg7syNbjLPjX6LvepwV1uU4e7XKcOd7lMHe5ynjp9l9PU4S7b1OEOLCHc5cnhDogh3AE3hDugh3AHDBHugCTCXWDdYC+Qb/AXODgYDFQcHILzgsUAzMFjwOdgMoBVcBkwK9hEoxq+JsBOMBqALDgNeBasAtYyeCVfLcxGphW4BdVlsIt+aPCLcm4wzGw0OEZFS3AMHjDBMapigmMUUTwXIM4SHAMpS3AMwAznQkAMMxzjjMpwzKzGAxBgxAzHNDjDMQxmOOaFZGyYtLDoMGxKMM7q+1nTixV7anqVVPEUZcuYiCzT10vQhJXNEF8SK7dV9Fi8wVUAeOFYzCX3hNIqvEb53kgznCWFXRMdU2tKWoq30umu2QxdTLVL7uFGTNobupGhzPKOLCllkIrYIKGlZ+m94AzyxMjNaN7SKyZ1ILPDv4ox1dHswp5IvCOHN5N5NZfS8Lw0NKjVnmgdy6hmDHUskOy59261VdCOc3goMLAIeRumUy0lazbUkbgD06jnai2NtlWrgCu1dFyO8Q7HbdKytwDgYdZYdsEKT8NowREMF435CR/MjN5qanVYbBiITjf3CsxW54z7MjmWZwl7NuEzUu+WGJmwZ70zCmiigDtnbPqSi1cL9RHjwM1R6bBrwhagxCqmXgprQUpl5LBnc2P43Yvj++lFS0h2T9XC8dGkAdaXubcuqFDNczNU7W5YJ+qlEtoVynetYZg3WtRC1eYTN717wroL9bfWrDll3EUF5L/MFQOqFMCeIfZkLk26Ydlrx6amxFrHN5YEXZaS3JslIugK9gqzPNNklOCG9yTu0YSKlyU3rbEhJVRvUXRNtzY00I7ob1IbwYFsaoQ68vriuFLR+dyYcLmjyodxgsu+WPJWFQdm6IUZn1nHOs6VtpsZBqlXdRdebGKtk6DDK6539lGsxNK7FrOcWXWK87tjw0vKsadiemnOjoeNPVJmHMU4rQVLPpRvtRKGsqSKac89aOFec2nFOASQcHNjkBFjCZRbZsGDFhF5LQxcioic7g3HNq4LapPGcrdas+XEtiSz1J4TXkTcjSV2fKnhmkk99OvQ7cfYlJxM8Y7QJUL3uXYjHHCccQi7R1gJuVfOCQUvZHYxxzWNoUxRqqnnQoSiNGCnFFllaeCIQDTLTP8bTgO8cT2cTmI1SS3Yaa2V0FXEUukZ/3RjXBhfoi2Tsndj2Ia1J9rdcJ3gmQ1DSbR6wgnOHmZhmYgWLTnBbWFC8CpNpYjn6i3hrqPESAOStWVOS8ZNgsWolqRkgMToVXzAqeDMxbc+ulmwWHOSVMMRwnRFPXGOLiyOQnLUILVX9KDC6Q3pPrivgvnFxEyace5QVjI+GPyEjq8tyjKnK3hVuDUOmYTZgEc85cZsjtuQhdXxt6a8doikHL6jlBL5DqggIadTKVip4PgpQ5Zpq5m1w3d6oixjUCVELjvDKMOV3TI7UCth57Fje8PqC0c13yqgrPaCESwcrYTcYdd2zres4jcf0zZ8v1pQIHPrY5wFyLIVji5S5UAk3ic5OYdjGeMdxcYKGk3moMTNd++iE5kwafEX4NinrCEFSkocC+DUpazOObXkOJ46nvRfUfZfx5K821X/zpbkg0d/+OKLB59++HaD8l+ud+dnG/XfPE7v8QUfU/tFR/RfPtz+EFAmbn9TSNpviIvgWJwgRwyYLp4RZKUkQj+Id+SAVTgdjfMCwsDje33h6nIpraWSc0RZ8/m+2bVpKiatRY4AXh2fkBteHE8hWTgsjNevlzwpfja8YKlWYjgf2Xqp1lalauY0lcNIYi4PT6Fco0Q3Dp/g9zTukmb94RKsbkREfrd9evXjCYrk/atrQFnbp3u+fcXNR8/JcZzWmL9bIrAYCFBJb4bjHy4OLL5F2Mx9nN1ANIHFv0PKr5ioT64uv90RQ5do+d1HIAd6fn/5Kz/09mrI8fZ29/Jt0wjG11ZGA6Olvy6885d2yqGPTgF7x/wEXFxBjyva8ST0g/F7e+AHff0JX8QbYUQjnodokM+u99/uL4+RWpwWlGyoW02K//X4PTy+gUe2ir+8lq/idwDUvQ+ZvgZ+/f/6C6VvwscEAMrwj3fUXIyNAT5B9L0NAYVZJxzgNbQ4Jvq974j+PRFQKaVZnAgA/kKi332v1G1OUV5czOQUHnW2ebfkOUynHi7+AHTd/2DqbwqAyrX98wGgiAbglDrligHyCv7pDdPkPgCKUzdM2DANNCbGHcDpZ/BPb7r8yxBQnL3H/47oqH8EAupN/P7WGCjwbkmtFC9GgihUpMNHZtEbjpgoq07cTJgaAWD8lZio2N1/0UdnY+e6OuQc+f2js+Ojs68qKL/4o7WrpvJEvwEof4wwPdC/Y6LebCv8/TFRb1p6sScOfT0+cfvqojvV1Vkn/9wYqadJHj/13zFSRHz/jpH6HSNForiTDCu/VWK4MCIjL0vkyMPji4iJohPjPuiT6g/4NpTv4wfoV2QbZf9wYNvvGKn/9EP0D8JI9ZkTDo7Iwl2PA2jk3fqviZF6pTt+x0gBnHor3got+MRRVv+pMFLC4ZeWrp2suONYMVfzNPBDTTiLUoLaC5GYRGpzOAM4w7S6SfHcOP4hA4wCCyDvcRwfJ+HYi/Mu8FZxpFtTJYEz0JeInszEMHCgb1lrnPpkzogtt2a9kc89YiTcO5GjCQAEJZ4563ZNxMfCM75sDx+LpXGkS9wyIY0lV079I5Cig3GqVog84QSsW/HmIJjqev7VCSItpVW83SOwNmtp2lIiDCMa6u6ptu5ESEeG/JmHK2fZLVvEY5ALuIpJ5uSaIAZi/guN7ylF5DUHjIUo/t7I/k3iGYBKtRWSi+ucMmCHnuIcmFiCLIk4AOJgaoQw5IAQaOYMb0RmqxN/IQTcB5aMUwHzXElFTA5ogDscwCpHnET7zCA1TBsn0Yl0zxFcpc1BowBiI6irF81CnMAI6++VQFcOocE4AeMKJEDmyBGQls7emRylxtk+gV/CIV5v2oA+QHsj6KPlUjnpJxKomJONu0onffxsSvA88KbCwafN1qTj4gGtF3iqZL22CETi4BSgF8EcxF1zFB9Ar5yNfEXEywuIqyImoESAEw2gV/EOFE7ciMEF6MXAGxg0a4Sq1VZyqZm4pM4XoeYG9IIYcKkpgtqaA1QhaI54OptBZeTsSuw93/zCfVcZEWBrpNOfvYKuMoLPqxDQJmZGFEYDLQh6iiRF5iXnlHBopZl5bgXMTLeAdTFjifrt2TpfWJ8DvtCJNiFsKIBfagqyq0R6qDSn6kKuc4JCHATWCOLOPSAXBNzlnitIulRZDgC/WEy9ixCXMSLw1AFUNKI2KCgNcB4R7tYI4QNT2RvdnrpFsF4LAJ514IS0rSclAJuwYrLiJ1CS2goAtpadO+KEXvGPGTFxmUPvVjvREIRQUFCNGGTNJAcntk+Ng/jUSK0dgCttnfNl6wDuuMMI5rEaSAgDcUXtDBVgKCohpCIT4JWIkA9kmKcM8JDwaeIJiYsBkMKxf+aOYoQk5AZ7fCQi4scNWCS4pYg9DEANmbd4lmBE1p16Bh8W0YhtBE54rwVsSZ5JdaXI2hahXRl0VCPtvDXQdAQwGiGMBSAHII48E21O/FclnIZQRgI3PHq8E+FIQApxhRI410CKSWCjiLhREFgGmKgRHkE0CQWNGKMC7IFz/DKnlKV5QKpSYLRSxKF3qwqAj/jJ7JWAssSogUcr0jKgVSGGMbBjBIAzzkbOLqBiA71ZMtCbwI4hbWolAXsT7mip12JAYJJFlGZj9YACzCCEiM4EZSJ9IGDfUpBY0p2X/2zEHtjhu4g9YldbAgfraWSUn7u6lVrZnQZiplomg31i2FYxXHtN1tQU9LDOoEsAcXYp8YGVGRiGFhK1e44oOWogsofYRrL9z4nTCnCQrQ+cUyoN3JQQ8sK3E5ivhMSDTjByx88pNwCaxIXyaQcKAPN08Mk95HLKRY2IPo0QMO7IQISVNT9ekcEDgY8ivpPrnS8oJFy57A4JkdqIipKBRU4kXXPtQCjJlz9H9B9Iai8RQwi6CMbA2A6UTmLEKrI6gFEpITiTgIeJ2D1AiwDmqiif1VCCvgC2AOKMLwDMSVFGqnbkQOyVo83JXOMLNzNwukSwY00sRDbXYmyDio4SsB1AGyg3vdRxRzVANx2kRwyBoSMgLq0FpMsIgakGK5GJnyCyziaNGBpwNulq1djVagyrEsjGN+lKzwM019izCMqUzvcYZq0E7gFiSzmAPgqcCSSIZFA8gIWIE0sFbWAUSOvJtXTCOwn9JCyJYwT2TPpLmrhFRBY4kQjxNhAr3UCg8U5J9Ecx4kxXNFFiPY0dFT3NPXlgMkvPgZv3xqghLoGGonGxP1U+P9EAZsZDcQIj2juAZSKHAEkB9CrgItG3HBAHMam9diW+q6MJkFZPh3CSuYNB19ZYaAORlEpqNoDlgh7XleC9nKRZHSFajUg+wtQBbA8gUavos725Eykbge8ErmcH486QC8IFWK7xLRD2EQHU3iIQDnheaIhN+JpGy8UDmoamSahqzCyCn9FPa0XeplSIc4raa67Fkbk11xEBCZazEKMIlj3ezHRslWizlkZYb3HWG5oUOD3U3AbIq5iyZ0ZwI7tFzVarlcBiA0jKjl4eAaIR1kUcVO4Sqi0x0zIXZek30g6syQqyd63NCUT2EUOaCfbq7oQ2Rn/lGshhhDmfnwCgBKjK4D+NkckZtI4EAjvBcLbKm1vhiJ8OBWFLyDF0jSlBuDUhsW6a+AwN8CRmUMrarRP5DzwpgwnOZHwc4XyAPnMzR7up8WaajBAl5K4FpColZyzFlelAuxOjaLmilscsTspOmZThKWFJMHd7RY3vPuwPMGpkCwCES5QzeKWKPmyCYI3oQmuEABMrWViL3FMbkdGglgTdCMBS6613vh7i4CHCQPJEuxvhs8xJTqSrJWKAC/qlzAYsmSA4gN5h/Zil2kDfJ6B18WYtjTjcTrTqeEroOUevlJGNwoiY9GaizUBZYLAhrIGHoAjwnldK/gtEub22n/+do9x+x0v9PfFSP5cHhht+Fi8l6pEwl3hTNP0AWEhpllHvIsaazOKEZGfyFvCTjwZhpd+hrdjz+oA7kmqDS/9eANYBd7XCrQ4oq9/BVWRP+B1c9Tu46pDVi+V9Z6ppmxv2ODkxenxv7NUCEsh01BVUfbwsopbAj2hLfAh7BotAXghw15FtyLKQCgTvDEaXzYKp2viiGN7I8H1Jk1wq+3zgeVrW1h31sa9gJSOgvVYcQpFBABBWAyak7N5hHmK3Vcn4yMLsCp1PHfw43xpDJLQCYLqSSiWsrAJ6Ah8Jn9kblhzeC1RnvquGYZZIjkIelcj5lIYO7bX1Oow7XEYYkwDHw86SJuSWcgm/FEYTqAOhtYXPxZENobdAg4PIogBXJJqtEWYcbs7SgTSgxEZrAW+QH8ewH+BUenb8r6CoeIL76C7ADlgMvSRpuBZdSTYk5EnC+A5zsAeAonfDEow8Ac3CrkiC7UYoUR26NIgo90xKCO8j/UCSRnogMAAWdWFj82ocvHXo5CBzSMWDphz4hfDr4VUUxY8cCnfH001qHh1vxnbPjZxQJAugFWQhKVVRa/HqUZLI9NRLWJA0K3lr3TuWUM2hZiZSO4TmCbQjNONUaDKAuT7gMIyRa6dXLQWww3CZ4ColZUkYZgawoqqpld7iPWR2AlQLHJLPk5ITPPGJQmHJDPiVeiKpFskGJAW0SukUEEYFPD+GDgA0lgipBWqAeEA/USS5kK+MexKnCAmFNJNDiN0SkCG+DY4CYteUlrXiHMOCpzfEMbTwdZBHK7z1JE9JuWasPJZ07MXd4QE0CS6IKAKR2IB/KMYpRTU5FYaHYORfkNJKzlpAZhEnyF0k3MggTVKiORTlmjPmGDgWTrQpAvVV8RN4GagcVmXFoADDFQYqryR/CqPe02ArhUnbG+mDVkQS3sdcSsUPlQen6P/GFOwtPnsYeCdOEYDgtDRGRuhZaaQB4jOQDIQQ3c+sQF5ZZ66IFo4KupF6KwcsUJgRtWIh4XEfD5riCKil1FLjfIN+x5J3zIUVVwbiCT8HQ0ieJt4fwM+SqltOhcVNGemMSOMlSlKYGBDGUNTCjx5Qau6rgnFMIg+MlPFsSfh5csengh+H+/BCpOq1WG44/KIMy5ss9bjeA05IGpgWs8VJ1nIoY7YkMGACsiyeNa89Mk0oAKfBn+Gcwx+vzK3BC/53ENv4f1og+WKldCMzCh/aXPuA8yPEZa4s1piTNJ1cX3jSCK6KesFWskWQ+4/PONIOMoJx7KGBB2WtAHoicxEryklEAjIbNDtOosTpxQA4NQxzfKZkWxr4JhLD4CawChZ2YJl6y5pI10FiwHi0ztIS5ib5ZbzGfaT9yiTR6aQQscyzeW4JRCr7GwjxUaZduzNdSeNklJHpTbpLIzWP9eCFswcQdtyIHc19NiP2gOlWMLijqLAhacPzlct6G+BNsI4pvm/BfTpjh2cEFO7hYE/nkU6lqrknSeO+X1T2X8CofU3R+Tsbtb8UupXtd+jWCt1KYKQaIiFyeP4Mdquy72oW9vH4XMqvx24RBf87dmv9POvv2K1/HHaLpPRfPLnePydVb4DZPt5/+93F/tvvbt+/urzcPbm9+8reR/uXu6cjgvB8e3Gz++v/A7Lmq0E=').then(json => {\n",
       "   const obj = Core.parse(json);\n",
       "   Core.draw('root_plot_1779222965480', obj, '');\n",
       "});\n",
       "\n",
       "      }\n",
       "      const servers = ['/static/', 'https://root.cern/js/7.11.0/', 'https://jsroot.gsi.de/7.11.0/'],\n",
       "            path = 'build/jsroot';\n",
       "      if (typeof JSROOT !== 'undefined')\n",
       "         execCode(JSROOT);\n",
       "      else if (typeof requirejs !== 'undefined') {\n",
       "         servers.forEach((s,i) => { servers[i] = s + path; });\n",
       "         requirejs.config({ paths: { 'jsroot' : servers } })(['jsroot'],  execCode);\n",
       "      } else {\n",
       "         const config = document.getElementById('jupyter-config-data');\n",
       "         if (config)\n",
       "            servers[0] = (JSON.parse(config.innerHTML || '{}')?.baseUrl || '/') + 'static/';\n",
       "         else\n",
       "            servers.shift();\n",
       "         function loadJsroot() {\n",
       "            return !servers.length ? 0 : import(servers.shift() + path + '.js').catch(loadJsroot).then(() => execCode(JSROOT));\n",
       "         }\n",
       "         loadJsroot();\n",
       "      }\n",
       "   }\n",
       "   process_root_plot_1779222965480();\n",
       "</script>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ROOT.RooMsgService.instance().setGlobalKillBelow(ROOT.RooFit.FATAL)\n",
    "\n",
    "nuisPar = 0\n",
    "if useBkg:\n",
    "    nuisPar = nuisanceParameters\n",
    "else:\n",
    "    w[\"b\"].setVal(0)\n",
    "\n",
    "size = 1.0 - confLevel\n",
    "print(\"\\nBayesian Result using a Flat prior \")\n",
    "bcalc = ROOT.RooStats.BayesianCalculator(data, model, {POI}, priorPOI, nuisPar)\n",
    "bcalc.SetTestSize(size)\n",
    "interval = bcalc.GetInterval()\n",
    "cl = bcalc.ConfidenceLevel()\n",
    "print(\n",
    "    \"{}% CL central interval: [ {} - {} ] or {}% CL limits\\n\".format(\n",
    "        cl, interval.LowerLimit(), interval.UpperLimit(), cl + (1.0 - cl) / 2\n",
    "    )\n",
    ")\n",
    "plot = bcalc.GetPosteriorPlot()\n",
    "c1 = ROOT.TCanvas(\"c1\", \"Bayesian Calculator Result\")\n",
    "c1.Divide(1, 2)\n",
    "c1.cd(1)\n",
    "plot.Draw()\n",
    "c1.Update()\n",
    "\n",
    "print(\"\\nBayesian Result using a 1/sqrt(s) prior  \")\n",
    "bcalc2 = ROOT.RooStats.BayesianCalculator(data, model, {POI}, priorPOI2, nuisPar)\n",
    "bcalc2.SetTestSize(size)\n",
    "interval2 = bcalc2.GetInterval()\n",
    "cl = bcalc2.ConfidenceLevel()\n",
    "print(\n",
    "    \"{}% CL central interval: [ {} - {} ] or {}% CL limits\\n\".format(\n",
    "        cl, interval2.LowerLimit(), interval2.UpperLimit(), cl + (1.0 - cl) / 2\n",
    "    )\n",
    ")\n",
    "plot2 = bcalc2.GetPosteriorPlot()\n",
    "c1.cd(2)\n",
    "plot2.Draw()\n",
    "ROOT.gPad.SetLogy()\n",
    "c1.Update()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c8922783",
   "metadata": {},
   "source": [
    "observe one event while expecting one background event -> the 95% CL upper limit on s is 4.10\n",
    "observe one event while expecting zero background event -> the 95% CL upper limit on s is 4.74"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "1c0d53bf",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:36:05.493039Z",
     "iopub.status.busy": "2026-05-19T20:36:05.492907Z",
     "iopub.status.idle": "2026-05-19T20:36:05.643139Z",
     "shell.execute_reply": "2026-05-19T20:36:05.642482Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Info in <TCanvas::Print>: png file rs701_BayesianCalculator.png has been created\n"
     ]
    }
   ],
   "source": [
    "c1.SaveAs(\"rs701_BayesianCalculator.png\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7f523f07",
   "metadata": {},
   "source": [
    "TODO: The BayesianCalculator has to be destructed first. Otherwise, we can get\n",
    "segmentation faults depending on the destruction order, which is random in\n",
    "Python. Probably the issue is that some object has a non-owning pointer to\n",
    "another object, which it uses in its destructor. This should be fixed either\n",
    "in the design of RooStats in C++, or with phythonizations."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "f7505ec3",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:36:05.644552Z",
     "iopub.status.busy": "2026-05-19T20:36:05.644425Z",
     "iopub.status.idle": "2026-05-19T20:36:05.747934Z",
     "shell.execute_reply": "2026-05-19T20:36:05.747420Z"
    }
   },
   "outputs": [],
   "source": [
    "del bcalc, bcalc2"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "322b8258",
   "metadata": {},
   "source": [
    "Draw all canvases "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "854f91e2",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:36:05.753284Z",
     "iopub.status.busy": "2026-05-19T20:36:05.753146Z",
     "iopub.status.idle": "2026-05-19T20:36:05.866334Z",
     "shell.execute_reply": "2026-05-19T20:36:05.865921Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "<div id=\"root_plot_1779222965864\" style=\"width: 700px; height: 500px; position: relative\">\n",
       "</div>\n",
       "\n",
       "</div>\n",
       "<script>\n",
       "   function process_root_plot_1779222965864() {\n",
       "      function execCode(Core) {\n",
       "         Core.settings.HandleKeys = false;\n",
       "         \n",
       "Core.unzipJSON(43686,'WkwI6DoApqoAeAHtnWuTZEWOpv8KljYfD8ck+VVxPhW3pXehKQN6KLa3DYuqioRYsjJrM7OgmLX+72uP/ERkZF0amKHbpndo6yxCfi4uv8kluV6d/3v2ze1Pz3eX22e7s83Zl+9vL3/Y3ny1e/zF5fb5zXdXt2fT2fmfLvf/58XuDx+cbWQ6O39vf3szfn32+H/vntxSfsZtnz2/3V9drsT/2F8+Pduk6ez8+KbN/31TXW+rIKVsKefp7PyT/eXu/auLq+uzja7kF7c/XezuyK/2T2+/G+RH+4uL9WaYhTzcLBKP785vP91ef7u/PNvITMnn+2+/e6Xovavb26tn92/78ur5/YJH53uYsOns/Ou7nw/GT1786OZ2e0st7txzj3owKB7+6Hr7bPcq35S90vDjffcbdLz1UHx4JY+f9gyvfO/q+unu+ov9v629d1L46dXT3RjXRzr++/X630c2+vbr9b+Pbq8ePL55uH+5u/h+feL26k3k2aZ6pen3HsgtuuzukfsFZ5t3R8Gf7j3FaP7p7plT8lDNv957YLzkX+8euV9wrObQlNurR2troimvk4ykiOZUW9cqrl6YnnfPf/396Kf1eUjYPJBnm3d5gan2mrPU1rzWmCcXVz/+8YP3104/JR796Xlc4K6vT35/dSz9+PjrweObey968Pjm3rsePL65e+zB45u7J//08lmsBnr4p7ufL59tX44G/emn488vv9vdbs82KRr23X799eDm+e7J7efb2/3VaMUfXzx7vLsev7/cP/n+5d3Pn8bPT66+XQs/ufr2ruzfxtWH26cPt/tLVs90dv7+9dXNzXfb/frCI/nwapVEp9OayTXouxn96dXT/fl+9/Rsc769uNlNZ+f/7Xr/9OV98qc78sHjm/evrq5P7v/w6f52+5j1fnv9ghd8tH+5e3qv3YdXP7zeP9vf7n/Y3bwm8j7Z3yBRD9J2JbfX12ebP/9lOrt6fsuPv05n5x++3D25Odtcvri4mM7O/zjE8xNFWn65v4WPs/e2P+1u9tvLd97fXjx5cbG9vbp+5/PdzYuLENp/fPHs4fZid3t7kJ105B93L29fL/3gD188/OTB12ebs385/JzOzj+4evH4Yvfei/Pzw0B+vrvd7i/pxbUPHt3s/233p5vD9a/vk3H189324mxjVB6XB615tl4a0/qr/eXTqx+/vHrO+jqlvz6lVzl2d8PHO6T2Oj1+PEiA9787W5f5+9vb29e6/8Ht7djgaN+j93a3P+52l6sEv0dFF390ffXsy6vnZxudmVOPnm5vEZBBfH0g2OEeDEL/Op19/+nVD7vPnm//z4vjTPn+8x39cr/w/OP9t999QhPWzSpm7fb2yXeHzv3+i++ufvzwh93l7Re329sXN8fJ+f2DF7dXTI/jnZ/uLl+8t70eNJPnwROm3/GJ889326efXV78dHji/Kv97XdXL25PZ+ph9n68vVnn3qHk9K4/v7KH/2aaApL0rZrCV7vHIQ32l9++TV1gZrx/sb25WZcK9w395LTgOVP1TDZWyrT+LbqRSSZZLEr5lTYSV2XJcc1KWcrxGVnqeiflbb2X333TfTLVqefF+d3zZFoXpcI8rX+L6kbdJu02abNFbdPqFP9fNG1UbFr/Fs0btTatf4uWjZY0rX+L1o22Pq1/i7aNSZ7Wv0X7xsyn9W9R31i2af1bTOJmdZ6XxfQ+aRv1NKnrpLUvljba66QdMi2WR721TFpksbLRnrgyaSmLwdXKZJbF2kZLmTTbpEkW6xtNJRrY62K+0VYmkwonS5KNJpui6pqWpBtNDQ4mrbIk22iSSUufeHFKo57ex7N0lY16SlpS2ai2KZ7PZUl1o5LhIFhObaPiUzyQbEl9o5ajX018SX7X66UsWTbaZIrmui5ZNwxx8JzKkm1jplP0DyRd1QeTSZacN9HFjJrlJZdN9ClsqC+5bniN58nrktuoho7Kbcl9EzVqsLlk32huUzRCbSkSTMQUW4puNNcp5uxSLPphJdLG++F33rR8+F02RQ+/68ba4XfbpMPPzsReX+MbmTITuCxVNjLVPn6zdFzHb9vQqFhWS2UFafJxhUXE7IjHC0Rvg6jUoaOSGisprbVE7bFIdalUH4S1pVF/EJKXBgMQ2mVpcBBEqUs7rGHGt8FBXJG+NDiA6GVpwUApU9WlHVZyaks7VK9pab4ZHE6ydNkMBvmtmxLN4LdtenQDv1nCQ7rI0pmV0Q0QY/lSnyydZVIPBEt3cCVLZ+FGN0CwbKO3J1l8FVypQ+iQSJohhvBSR3x5iitaK0QeRDaIIcWYVLL4EGMeb25xV1PKe/zOjd8evy1NsqjIRlWnXEIoqGjM0GxTtkXFhlBwhlcXlbTpbdKYNVzO0Q4tdUqQZWPWp9SmkheVutEiU2OB+qKCyKhxr1ZexfK0KaXJDJIumSq9qouGbC2sIVtUEWM6JZ0MyqJXEUbVF0W28ps/K4siXBlNOp73ahkcj/msSFfRyX1SkUW1bRBwtEf7okhX5l31SZHovtHuVKyLmmw0I7PypBX5jhwb/dYhbROPSZu6L2ppYynqkUURrb2wLUwsc0W2appClBk311jqpn3wjHQ92QJMdOPKknRdjCFBJI6/xQTZlKb1bzHGRGlP/C0mZchbxPpiDEpPIQJkMWkb1mbTqfHmvrHkgy1ti4lveAphXRZjSJgFPLyY6qbpNB5eTC3k8vr0YgwK9fHwYpp5cjy8mBaeHA8vxngg0bXx9GLaBreHSvuxcVGrB7+HatnuEEeD6cViSOB21MuQjLZqT4vFkERjLeXFLB9bGzUzKGtrYdqQ4ne9au3Q3vFwPzaYh9NhDSPbJC/psIyZTOxbrOR1Fx/0WMxxXWxJrOfD9aBPdIKgx6rm/qJLYmGvtwfZjxpEkMi2oW4UXbLcKUayZBk6AY9D2fFJqDs9BSqznbCjLFnojSG9aF+OxRyyP9qTWczQ7MYlLZmpI3ZsX1YZNNfFloyyBIvsoEEbda3Ny5qCkhz8a/DBrbRGY5Pj4aAOol6WrCHqR7sUUc8jlLPR8IAs2dhnRpNsHZKhMy4ZdWhtEltaZtGuTYomMz/WJo3rSBKLJo/raB9rk+gC64cmjdv90Ka4OwkkFcTNSYMco7bkdNj04tEUu94Y7yWn2HiPD8bOe3yO7ohBWwpTcp0jvKW4Hod60HdDD0fF7wZ/XM+jPaONS2FKjnqC5eIVlseoLcXbgYp3RdtHA5fi0XQosaUKQxC74lJlaOk8U4U2x6AtVWhxDNpSZWjraAzMwrHCgsWK+BorbKV7NHkdtqWyp3B9DNtSQ4TFDBxVMgvHDIwmVbaWWGHjdZridTQRBtlZYhKuN4/+ODRLT82HumrtSD2eHKtjbRy7CrNxdIfFRGDUlsqUPLSP55BYa/uYJRWRNVbYSq8b/zr8NWTWaF90dWjpscJWemxvY4JU80PzqBstfbQuqLE+1zvTnRFV0+gUNJKKds4ai9+jO8bvmBr8bAdBONhe2ioI125fGrNuZbHo0ph0K8nD5djeuHg3/DSvrepNsLC0VcGhprh5tG5c7AcZGNKhIwPXfi26dBmSIAZl6asQDCHR5TjmXFnZGbKnr7Nx5Xfph9kYkqYzF9e5F3UcOxsdc0jkUcU6CbmZG9lKV7HCnSEJ11feCUKurOJoNLezjx4EstjS2UfHtI+b+5GKOo6yCCU3JiDVQ6y7w+idpbOFHuQ6r0VIMtuGMO7IyJXk4VUTXllaZ+PaC0tfZ+OhprFWoWAJm3GtCGV7lV2DKSbj2jaWRcdkXLuIZdHT6KQxb5Z+JyDhOMV+AU/j3lVqrxt1Twf7YNx8J7OjojBRDo/mUxul55DYvCfem0Nij8W39ByW0jpP8kFg0858xw7c5Tt2xmuO7NCwfGRn3HxghxeVAzdBrD00tuilYy6u4xINKcdpFO8tcLRK5z6sxrVDl14GR2uHL73AUVzFFVKCozsSjlb52MOGXPeDXseGNoZt6cOOHIO29DAkV8HZhyE5uF16Hdv7mApLryebLPWHOXn31tE/h1aHRXl8dJiUh2ttdYUcGGrr7ndgqY2JfeiUNib2kNi9jYl9aGgbytCxFxqWzcHC7m1M7ENHYGiOi8yoPib22P56H8N2uLWPURubRu8xZmOX6D10oJUdLM6YW2NwsTlXmRl91MfSP9Qxlv6xjlj6axW+7j3x2CqpDz2wCuq1/lU5iG2qr0J6JYZQPIzmKqOP47nK6MNrjhtQTOhVRseLfBXRK3Enoek3PxHRzGBHSK97sdjiq5getfgqp9eW+EFOr0Ptq5wenemrznCghsawjrSvgnq9uHrXYk7BFOYGHT/+FkdYMo/H3+IWIzj2ULe8KQmzWhOPxjTPmMZtcaubImGBZ4z+tsmOoa6Zl/ZN7hOGZ66Lm29ynYpMmvviSTYZ8Tlp0cWTbnKegpm8eLJNTlOIp7Z4SptsE+Z3xZOQN1kmPG7VFk9lk3wqji9s8VQ3qU91uAg9tU1qEyZyo4a+SWXCAG7U4LhNap201cWzbFKaapu0+eJZN8mw5rGNPdsmhcmnvSye08Z8whbubfGcN9bDSeC4NQpuq1bwFi6OJ61OrU3q1NDwEDSf1KkBY3XqzGRdPPvGbOpDr/Pwo01h+rXFEY4+9YJPanFEY596nUzT4gXvwdT7ZFoWL3mjdXK8V33xEgYhjjDTxZGLZXJbKZZ8uCeMd6Lf4XIZVJjNXgdV0asmbyvFlJkcOx9XDT4DfBGmvnhNUIrjIshgJmZtkGVcTevVOsjhuPDaBkkj++K10ywVWgmJQ3bCNRFkw/U54So1bYs3DRJ3WJC4fCZcQoOMHlK1lcRLPOG9wAXuSMY+afgaIPEuDH9hkG2Q1MtVjPlJ8XLQ20hGSNgoi3cJEk9BkDpI2OAqvutwegwyDRI28uI45LhK8yFxyE5qNB+yDhI2INsgYSMtjoDkZtiA9CATbKTFfXCF70ltcYyojvdxJUdf4W9SXRwpiXcaNiDHCCbYgBwjmGADH1xMKE2wARkzKryrQcaU0sz89sUx6fOkeLEEXxpOO2gmfIfGGYXAONB41SfNuCPietooHug6mTTux4OJR/pAl0H3A41bZtLseMS5vwVdYCdodhXEzmRSuB7uVC3wA62y8XUrDlKDjGMMrtoGZ/rwlahoChJe4moOElYSV8sGlw6cBFkhK4zgccSBhz/xQPYgYSOu+gZvHr2Ci9Ekng3vIKRSEeLM6VMzmOT4w+myUHXD3apOl6Hr2krTJrRdfJBIJ9gOJ95Kw2iou+OYw+EFlxGcI7+CmTH9Q0ZSPQaYc2wzaaf+hMay0tSPEcbRUpxKQONhHD7FDj8JX+xKw0/COBx+UfyTkuJEIPykw5PbELyKe7bTG6kjljm4QYKrIN6pHxp+EPDUP+S9CiKe+qGpHyFP/ewA1J8Tm8XwY9IfObOVDBp+cmGjUeR5o/5c2Ya00+fUnxub1KCj/s4WNk6r6I/sbHCDpj+KsP3F8VuFn6JsjuEWrdRfjI100NS/6sRxxsV4lLwpPM+GTv3oxW3SjuFA/aVu2CODjvrapsIP16O+vmHuBE37i2844sLvG67yKngQB019VTf4rLmeqa/GgeGgqa+mDX3DCV2mvpo3HC0GTX21bKgraOqrNRzdQdO+2jbhtUePiPr6hsM/6HDHV984p3/Q1NeEU6VB079sCwLDyDsqZGPAwIkCagydmS4KiUhB3rCNjALqZHtg0XSPY0IVNgi8rBRY1IpgoVoKolqOBaiWgqiWczvWqMRhmwobhXG0SAEjy1bB1I0CqmWziBNH7mBusV0wGTn5xM8vbBjMRu5QqmXLYPrdFeCT59SSO+h/tg0mWBTAGBtHXvngtEDYOphicQeMsXmgnUUBHXTwwUUBnIYTbu0PhdPwh6z9EZI+NhH6lBMLWI9tZO3TkOVsJDHzuANO2UoQS1EAp2wmQ85w1EgBCsE6thTEIVBIgj4pYjaOgVjaUcCpy+EkKArihIZzh8M7OEphT4mDiD4hTzkNitkMzdlKHD3QtD4hUONAiI7ojYNSjQOhOEBvEwKWEyF15lubELCcCanTrDYhYDkWUs5xoOOUCDcODB3o4akKGobjGIImoeJBY7nAT40TG46GOLXkfgQwZ0McCQcNfxwOxWTuHDIqp0McstAeBC4HRBZzu08d/vClIPE5zqV+vHvrVEfgxhEREt5lQuByShRnztDUj3cPie86NfoLf0osBJ0QuJwSGRIeOurnhJE5bRMCV/HvIeGh6R+cKrFM0oTAVTYYjrY8TeMgzTYWqyZPCFyNDYYJnycErrLBxCJC6YcuG0vMf0wC6LrhDDNo6meDiSVVJwSussFk6qsczKqmEbvAmCJwNcvGYoG1CYGrHMkjwaGpnzP5WG99QgArdkQstz4hgBVLIod1MBXqx5aI1ecTAlixJkJBCRNTFXsi/AwyFfoDiyJomxDIik0RdJoy9WNVBF0mBLIWbFRUizohkLXgJQ0FbEIga8F7iybiU4afwpktiqPG0aoW+INOEwJaObIPOk8IaC3wx/U6IaC1wB904zBbtcAftE8Jfir8Ya3IhLzWCn/QNiGutcIfdJ4S/FT4gy4Twlor/EG3KdEfdfQfc4hDSq3wJ5OhGsNPhT9onZDcWuEPOk0W/MAfNMfmHLXCH3SdENuKSyZorCFo+OM6mjg04+sTcwYhrm2ML7EuCj+trNdZg9B1pdFIoLEXeR6tC5r5B83hLoFE7704J5bsXyJQ7+yji6vtbbKz6ewiosdKmc5+ONv82S1Pbph+dXJDtvTJzSdPMjlHvMkmT2nylCdPZfJUJ0/IqD558smzTJ518myT5zR5zpNnjEdiRJBtffLskxeZvOjkxSYvaSIM1TkDL3XygkzskxefvMrkVSevNnlNk1cCTcrktU5ekaV98uqTN5m86eTNJm9p8pYnb5iidfLWJm/IYZ+8y+RdJ+82eU+T9zx5x0itkyNLQ3775C6TcwbtNrmnyQlw8TK5Y8K2yR25H+fq+GGQxBKeEOEEIjyjwlkMIlhQGwThKwTsCGJXkLWCgBX0akG0CvJUwipGkgriU9CSBcEp6AmCiBQ0YUE4ChJRUA8EWSgIQEHqCcqsIO8EISforoJ4kwhcQpAJGoEgwgS5JaifgsQSppygbQqTTZBKwjSTEbzDE8wqwTEjyBwpPBFeOZRKYY8X3C+CTins8II2KWztgrdF2NMFT4tgkQg7uuBcEbZyQZUU9nDBQBA2b8GFIuiQwtYtaOrCni3o4EIAgaBBCiq1sFULCqSwRwuqo6B7CgqjoAVKbO2hNLAtC8qSsCELeqOwFYvzBGqjsBMLCqMw5ngtUBr4hyAHxnxENTHmOCLY7/kHi58xD0URL4OGhjjiIRjz0A+VMR+BAYx5xEvhGmBX5Z8IpKAOxhy7n+2Rf6iDMQ+FcERkMeahDipjjrHO3sU/PMGYY4SzH+HIoA7GPJQ/DGo2Fv7hCcY8ArZCz8M8ZlvgH55gzMMZqIx5xMdFxIsy5hHghhmLoOYfnmDMI8IurNARGcaYh/oWEXKht4VRGArbCCFhzENdC+ss9LSwu7T1v/z1r3+d/l7RnOVvRXMOnMLfwJWsEZuEb19fcuMh4nmUvHN8wSsACcgTEMSr+Ic7ZIiCx3gdGvLp9vr73fUJ1GQUnLxyLTjCJ77cvbx9cPkt4dgEoEKOizILfRDXL/bfXp7hFRn0yfu5/NEVUe41Ioy3L/evx4w/uL19QDnh20/3P+xv9leXN2ebotTIlZMXfrJ9vDvAX6gv6FFDpoagPzs/v9kFLgU5uxYe2U7B9/7J95/sLr8FVSOzEOQcY3B4NNpCGPqrj91eHMLNj7ccqicw+et/mhbGcP47Wvg//2laeBygXzmG722vT1BF722vD5MiQrDBabFMLx5+MdbEB9fbHwccY9CfPb+9g34MYkV/DGIFgHz2/PaDEW8/kGUEwbOIYhl99vx2FQk04rPntx8FEmu99aP9igt4LYKeG6Lw6f4WONmB/vLq6iIC6CkY0JX3ry5vr15c36zYhQe3KzuvSMwHt7cs4hBSf0MW2K8UBqwVmj8wRzQSCkTEHNSHl08/vL6+WoFcrOwg43aq+ujF5ZNVLHAR8kSKQa5DyFWgMOvNtB9yvZl1D3ky3p/svt1dPj3F28DdKD2RsLzorvBQ9wGBxysOYuF4I/23TsXp7PxjsBC7m1dk+Fr6xfPtE7AAUfcRFnfShiMmbi2Dx+N997k53nooPtz6StVx36vtPim8Axt9vL9hQp7yQxHvW9mpQrMP9x0qHr1zuPVQut74Cjfc9en+cv/sxbP/ubu+uoN6cOEeUjFE/EC9PLzene+u/9snd3eP8pOOGwWnzYTT09K7do7SD3bnH59tijBox5KvzjbtfsmjM84BTm75ei14uD2dfA+39+YWlR+L7mqOotcRmg+3T+81nb57uH36OuLz4fbpG0CfD7dPmeyP7rpnLfn6Xgl744pVosL9k+9XpNLD7fMBrXy0Co1jwddnHE+enX/x5Hq3u/xo+ySkD+wh1k66H5J1cDJtKTodj8NTJ+uHWyDvVg8lhwk0ptW45/oZUvSszjmANBSGzPC+8hIiBuN0sPbVAe/EnR9DaLTj9nr//IPdk/2z7cXNEVQUInnVduyoMpy0Lm54pXlRdto+JkkUnjTwSB+3qqGkoIAMJPDxqaMIjGdGc/x4N+05vJ/mDOFz9YfLy9315zSPO1lq8dqbs82fARK98w7/qL2jGP3v5Hf6ga7v5He0QplwQ15vuaOi6LTc5P7tx2td1mtd3snyTn4nx51R99/pn78gXHbbp7trduvATEW3HamP9rcfHSZNWSdNILEYxeOVmEvRa0+2F/Ewo//fr/aXFB4Ugfe3z0/JL/fPjupk692155AYf3i2/XbHi44C/v3t5dOL3Vff7W++311/vr38dsUuj/L3rl6uZWP0RmlwcgLf/Nf91cX+8lC6whfHre/vr59cvCrt10vgTmH6ZAN8hMr94cvnj07VnkPh16eFX7/pzkPhvTu58dPtyw/23wa2nkn42fXtd1fvb5/trrer9HndXHu4ffqb4e8Ysbfi7x5un77NXsOSoodOJBbkQfisV0/675Wd8XUr7HVx/QZZ/TtA/12de0u9FU1euwsSHMD+uzKbZpMiNStuxbOB369zb/l4OwMTcP7ZrfVcchGp3UFh3kf3tzJr0mrJtVqOfeIE7F/7rI0L0rRzQhuPB+D9bJPqnLqI5S5ecLi8mgjApM+82XtLCc9g3BBPf88WmmYXrvbko+ZDzoCzzbsqZW4A8ZNbwZMc2QEOWPzvzzZ19uLu3nPOiaOXv5U+oNssXUQk4V9ii7ufS8CSzhY3hIcuLh/5tDqXysM47O8unW3effXSgb2RW+Bdm6UWRfal2mu4ANZcAWQieNMAHy6HIWCMZ1XtJp46TN+9P1IRzN4sNy2iObyVd6kIeP3r82R9+yFRgeeSazM8kWKxod/lF5hF6Fx3b63mbiWm3zF1wVzuXWZ0DqkMyIZBZ9FflorGqK+pDd50beQskNmj+0Uk5zacFCOBgcz5tSv3UiG8kdV7yRHewO0xWcKbKj4mT3hT3YdkCqSKeHNCBcT7IaPC3DTVLKmX3oqw/H5lggXq+D3BwjF/za9OsPCKPf/Lnz+mZPjmXlKGJyv9S9Mv/HZw/VWp+Yeg9Zl1b9UWwih+m76AnPht9YXIVrOutnsZa1hnY497bZGdGhy0ZdCrgfm6ovUf1LI++tMf36c/Rk6kv9l3H+sHb+u5Ekk01ml3TjKfb26+KaU80Sc7eVx2WAtDfT/bnD28urndXe+vrt95fn31ePt4f7G//emdq/N3nm958nZ3/c7/Orv5X6HynwzHcEz8BxW4X+9G/+OT3QWGJEdCZ+dvcYOvPvC3JaNaO+Zl+F9PeuKf33GOT/LxHp8/h2dn549Gip51yj8aqXmY7I/GXWSSOf9of32zukE/2R5+kbrLDibws90H+5vnF9uTtDfYZEerjk6M84K7NDSfXj39ZPt4pf+GP/+XDdVPrw7V8+OkPX9x+SSSif1nOvQ4eg6OXoj1rORvHHqcjN3dyMWvQ26lf/ygveWI4pcN2r+9Omj/qYaITg4Pxj/5EL1yqnJy5CIhAj68vL3e459ign158+LZj+uq5udhhfP7kHcrfq8XPt2+xG9MXqPXNsbVp4z1MY5a/nh1/ezgsGTiruciI1/V+RejupA499L/ccTAAn79OPOXa1gj9dSdU/OQiipqe29/iU/yw+vrz0iaBWvQn/2wuz6/uPpx7ZoH19fIt/uhO5WYngjdif2GBE8RwPNqd/z2B+TnLJaf1wI+v7p6/8X1D2/VoYqVdKoMHOXmQWx+c3599eybz6+uPvxhe/GCxGBfXW+fP99df8Nw/vnmL/AR6wRV4fqKNI77q8vQDw4y+GffxTvuqQ6MwdtVB2zAE9+PRwPue394wb9DeXh+tb8kJSVhJGccNLx9uPOI1MLiK+6ltl6ql5QnSqoUL0VKb8RhyFyqe9JSsa+dNCtzTalLKr30ZLUZJd5qK1VSLiWbTzK3qiW3asTVEDEqc7eS1WvqTYS4Lpl7d3OtpSZLTXSS2UvSmmpLnmsm6GcWxcytrqU6USw4KFxaI+9gRLfOmnNr3qx2zQR6zCa9Fm04PBoRJ7M1fCOtmtSIeZpTqskLiQeJ7ZmziJGGsCUpxAPNuWZN3jW7dYJU5mJdVHuyEh4cnYtr76kX0ZaJ3ZlrKa2UHtkMCSKam3q11juNJpppbj1ld5ckmUicueeWmrpJrYV4n9mJzkmeuvVG4NHsrRABU4pHBJTNkrp3+CwpETU4E6+Fe4e4GeBJs9bakon0RtWTzZakSharmbAwm81zblVyFssEFs6p9JS7VK25AVqas5mZSHOrhLLZnHsVN8G9ZkBD5pLdaybERwvBh3PV1FPVZJo6uY/m2loT+q+RIHKyuWUtXbQ2bqTaLiUX047DDVTO3KsnyyZWzUE8zZ4SXWhihZBam92b1G6p9ZarT2mWKp7FSsnecpnSrJa7mrWkRqxbmrX32rO5tGxepzRbsVJqkp5qaTalOWnNxsB677lT0CWJpJxqBEulOeeszVJVwzs3pblIF+ZW76U2qi1NXWvymhsBiWmuqbTeM/6miA6dq3utkpM2K0K1raaSLGdPuTWq7day5FyrNyLg0txdDZ9SLp6Mar0Uzb2ImVZCamdRF5Oi3lPvSkG37lZSy5Wlm2fNtdVcSpGek015NiLmaHmTJp2Clov04pKMOMY8p9RTlyrNi9Upz1nMilVjeidqzbWq5ZqTeicydy7mtK5KN8Li8lxww/Xaes6ppinPtbSWpXqVWhO1NtOqxq7bkSh5br1k1oMmItfy3LOnUlvunnKlVtdk1ltlmWVq9daIiuxZO6GOZZYs3limXczTVGaV3HPu6tlK7RTU3rT21OLCVGZLVjortDLzy2xec5XezDx5ncqcqqRkvbtrbTqVOTNDs0sriVDUMufepVW3ohXfYJkLk7V7xp1MIPVctSA5WYStUWttXt28Mc/KVOaWU6kZMVySUWuXlpGHyVoVau1NkyA4WP3U6qlop33FAtU7I1dKklo1I37rLNXcivTUapM81VmtNm+Einbv0C61uqqLWqlTna3kkvH6xsyc6py0Z01aspUujYJu1os27Z2YyDrnmGfavUgq1FqIYHWTplaBus6lJSqw3LLrVOeaWmss89TYFOrcRGsuhgzLlVpbLUWbtVa1gaSdu3linyiWiXOtc/dkVZNar9ap9U0FyYp2Bqdo5BH9+me2w6P282eZ3bq1hpB0IVJUZmd+5kKEK7yyC1kX727mtcQeIq0ywROSklhMZBHxqGatEhmssza2EJdeGjNDOZ8oyWvJRKGyQxiCJPeKdCdAcjZvnkTYFROBpWxclcDa2sYOkYaoK4W11GIra6la02zISgo4GHA1JljcUDn/0GZdLV6ZvbReJFWLGNy5mKQsOeWaSjSkZM4mqpWUI2JzLlW9aqquTiy9zqW5pNq7mfXY2oqnmntD9hK1rXOV0hOdaanEHVVLtSS9FeuEpHIAIq2XlEoED8/V0BeK9c42zQ1JDS2kSiLIea7JJJllbdQSBdKaW2KJExM6V0NkNfIMJ6JvZ5Zoz8KCLjEk6CjimnqxHKOIhHKUidYzgb1zcZSdzg5TiZqdS8+Z5axFary0NGKjmaXs5NxRqtXq0pI3wnXnksXEecCIGaeLLYY5Wy4EDc9FcmmWrPaUiduecy9aC6uiRzgzGklXUw4yEiHfc86pOFuhWITuztm0uEhqObeYPMk7eoRk9hkYS62UlAiObch2nRlga5KlSkSKz8mQfaXnUqKxSTjSqimxVTNK1hrbgZfuNXrQULRSb2pSQ18zq2Lak7qSaBptTIj+RfeKqO4ZjamVSs+2uEPZNnNqVjQTLz3TUO+mJVf2HJ0F4YjgMSWSXmepXgqaTmt93JFTYRBRJ2M2iIZGWpppsVjDrghhTdlTIw3g7LXm1IuilzbtlCAAPVWtXSpJKGYnw7WId3aqzns4ptJSm3KiVEKxrbUjothkEbYy92y8gV20ke5U5q69F2/oGi136mpeEhpPKY5GSAmdX1NO3goB+jK37KVbpWsrh3syN2vGbBZUj6FoS0ns74wiTZcZbkK1Yt9KhZJqDe2UDi/kiJlrNrWWktSuaHkyV9NVTCRYo0RMUxEtrdFvmALdmrdYHUzeMA6Si2V0f3AoMrOL8ExN6E1xi7WcpfVeU2AH4pypt1RaaokU4pPM2Q2dDosBsUpJQ2bUllJpjUSNcy7epXTLaqka1kLOyXtmI4vdjBLUYeUMqeZhz2RN1dAzaWwMYHJH+ckmLbdM0xPqhuXUqmLVUMKEVkWtQTWkpLTO9mkOEIy6Etpbyb04I0RLU7LUGzMTbTNKDHWtpIwOERMBJsw1i2gCgSAIeZFUqKxYpS4akZDQSNRR0oqZubq4gAeT2Sq7f0+WKmAUYf/u6qmYI68pyIXY+5pkrKvXSmJj/C08FATbXX17vX12TNT9mv/k6Gw5OFRO3STf/ITXLZys/zFD/Jtj2vZv1lTtr24TZ99cXl0/+9ftBYmpf/sjjovfPRun8Z6/rV8jAif/ll+DG0CgvSuzZtcEuip+d2dBcBIts3Imz2JFqodYAZqDtAOnI3MrgHZkRuqz5UkJOA/7WOhL1oqHApJKIH7mbMUB7cwlsFlzaaXHNlZLgIPmhpXBDV0CMjR7wVDCegdMZDOKOlZzFiSUzdhr2NlNACDZ3AtopDQLCLBECxoGIQoVdC4AmBItaNi4rSBYiBpBe820oGGGYdRjBKYCHCrDL+Ya3oewuQh9wbIqqBzYT+gzBe4qdkrGUg8LB9RVgbuK1dQLeKwKd2j07Ipo5UmkYGjkAoSrwl3YGa0ImYbhruSpwV1JU4O7YlODu6JTg7syNbjLPjX6LvepwV1uU4e7XKcOd7lMHe5ynjp9l9PU4S7b1OEOLCHc5cnhDogh3AE3hDugh3AHDBHugCTCXWDdYC+Qb/AXODgYDFQcHILzgsUAzMFjwOdgMoBVcBkwK9hEoxq+JsBOMBqALDgNeBasAtYyeCVfLcxGphW4BdVlsIt+aPCLcm4wzGw0OEZFS3AMHjDBMapigmMUUTwXIM4SHAMpS3AMwAznQkAMMxzjjMpwzKzGAxBgxAzHNDjDMQxmOOaFZGyYtLDoMGxKMM7q+1nTixV7anqVVPEUZcuYiCzT10vQhJXNEF8SK7dV9Fi8wVUAeOFYzCX3hNIqvEb53kgznCWFXRMdU2tKWoq30umu2QxdTLVL7uFGTNobupGhzPKOLCllkIrYIKGlZ+m94AzyxMjNaN7SKyZ1ILPDv4ox1dHswp5IvCOHN5N5NZfS8Lw0NKjVnmgdy6hmDHUskOy59261VdCOc3goMLAIeRumUy0lazbUkbgD06jnai2NtlWrgCu1dFyO8Q7HbdKytwDgYdZYdsEKT8NowREMF435CR/MjN5qanVYbBiITjf3CsxW54z7MjmWZwl7NuEzUu+WGJmwZ70zCmiigDtnbPqSi1cL9RHjwM1R6bBrwhagxCqmXgprQUpl5LBnc2P43Yvj++lFS0h2T9XC8dGkAdaXubcuqFDNczNU7W5YJ+qlEtoVynetYZg3WtRC1eYTN717wroL9bfWrDll3EUF5L/MFQOqFMCeIfZkLk26Ydlrx6amxFrHN5YEXZaS3JslIugK9gqzPNNklOCG9yTu0YSKlyU3rbEhJVRvUXRNtzY00I7ob1IbwYFsaoQ68vriuFLR+dyYcLmjyodxgsu+WPJWFQdm6IUZn1nHOs6VtpsZBqlXdRdebGKtk6DDK6539lGsxNK7FrOcWXWK87tjw0vKsadiemnOjoeNPVJmHMU4rQVLPpRvtRKGsqSKac89aOFec2nFOASQcHNjkBFjCZRbZsGDFhF5LQxcioic7g3HNq4LapPGcrdas+XEtiSz1J4TXkTcjSV2fKnhmkk99OvQ7cfYlJxM8Y7QJUL3uXYjHHCccQi7R1gJuVfOCQUvZHYxxzWNoUxRqqnnQoSiNGCnFFllaeCIQDTLTP8bTgO8cT2cTmI1SS3Yaa2V0FXEUukZ/3RjXBhfoi2Tsndj2Ia1J9rdcJ3gmQ1DSbR6wgnOHmZhmYgWLTnBbWFC8CpNpYjn6i3hrqPESAOStWVOS8ZNgsWolqRkgMToVXzAqeDMxbc+ulmwWHOSVMMRwnRFPXGOLiyOQnLUILVX9KDC6Q3pPrivgvnFxEyace5QVjI+GPyEjq8tyjKnK3hVuDUOmYTZgEc85cZsjtuQhdXxt6a8doikHL6jlBL5DqggIadTKVip4PgpQ5Zpq5m1w3d6oixjUCVELjvDKMOV3TI7UCth57Fje8PqC0c13yqgrPaCESwcrYTcYdd2zres4jcf0zZ8v1pQIHPrY5wFyLIVji5S5UAk3ic5OYdjGeMdxcYKGk3moMTNd++iE5kwafEX4NinrCEFSkocC+DUpazOObXkOJ46nvRfUfZfx5K821X/zpbkg0d/+OKLB59++HaD8l+ud+dnG/XfPE7v8QUfU/tFR/RfPtz+EFAmbn9TSNpviIvgWJwgRwyYLp4RZKUkQj+Id+SAVTgdjfMCwsDje33h6nIpraWSc0RZ8/m+2bVpKiatRY4AXh2fkBteHE8hWTgsjNevlzwpfja8YKlWYjgf2Xqp1lalauY0lcNIYi4PT6Fco0Q3Dp/g9zTukmb94RKsbkREfrd9evXjCYrk/atrQFnbp3u+fcXNR8/JcZzWmL9bIrAYCFBJb4bjHy4OLL5F2Mx9nN1ANIHFv0PKr5ioT64uv90RQ5do+d1HIAd6fn/5Kz/09mrI8fZ29/Jt0wjG11ZGA6Olvy6885d2yqGPTgF7x/wEXFxBjyva8ST0g/F7e+AHff0JX8QbYUQjnodokM+u99/uL4+RWpwWlGyoW02K//X4PTy+gUe2ir+8lq/idwDUvQ+ZvgZ+/f/6C6VvwscEAMrwj3fUXIyNAT5B9L0NAYVZJxzgNbQ4Jvq974j+PRFQKaVZnAgA/kKi332v1G1OUV5czOQUHnW2ebfkOUynHi7+AHTd/2DqbwqAyrX98wGgiAbglDrligHyCv7pDdPkPgCKUzdM2DANNCbGHcDpZ/BPb7r8yxBQnL3H/47oqH8EAupN/P7WGCjwbkmtFC9GgihUpMNHZtEbjpgoq07cTJgaAWD8lZio2N1/0UdnY+e6OuQc+f2js+Ojs68qKL/4o7WrpvJEvwEof4wwPdC/Y6LebCv8/TFRb1p6sScOfT0+cfvqojvV1Vkn/9wYqadJHj/13zFSRHz/jpH6HSNForiTDCu/VWK4MCIjL0vkyMPji4iJohPjPuiT6g/4NpTv4wfoV2QbZf9wYNvvGKn/9EP0D8JI9ZkTDo7Iwl2PA2jk3fqviZF6pTt+x0gBnHor3got+MRRVv+pMFLC4ZeWrp2suONYMVfzNPBDTTiLUoLaC5GYRGpzOAM4w7S6SfHcOP4hA4wCCyDvcRwfJ+HYi/Mu8FZxpFtTJYEz0JeInszEMHCgb1lrnPpkzogtt2a9kc89YiTcO5GjCQAEJZ4563ZNxMfCM75sDx+LpXGkS9wyIY0lV079I5Cig3GqVog84QSsW/HmIJjqev7VCSItpVW83SOwNmtp2lIiDCMa6u6ptu5ESEeG/JmHK2fZLVvEY5ALuIpJ5uSaIAZi/guN7ylF5DUHjIUo/t7I/k3iGYBKtRWSi+ucMmCHnuIcmFiCLIk4AOJgaoQw5IAQaOYMb0RmqxN/IQTcB5aMUwHzXElFTA5ogDscwCpHnET7zCA1TBsn0Yl0zxFcpc1BowBiI6irF81CnMAI6++VQFcOocE4AeMKJEDmyBGQls7emRylxtk+gV/CIV5v2oA+QHsj6KPlUjnpJxKomJONu0onffxsSvA88KbCwafN1qTj4gGtF3iqZL22CETi4BSgF8EcxF1zFB9Ar5yNfEXEywuIqyImoESAEw2gV/EOFE7ciMEF6MXAGxg0a4Sq1VZyqZm4pM4XoeYG9IIYcKkpgtqaA1QhaI54OptBZeTsSuw93/zCfVcZEWBrpNOfvYKuMoLPqxDQJmZGFEYDLQh6iiRF5iXnlHBopZl5bgXMTLeAdTFjifrt2TpfWJ8DvtCJNiFsKIBfagqyq0R6qDSn6kKuc4JCHATWCOLOPSAXBNzlnitIulRZDgC/WEy9ixCXMSLw1AFUNKI2KCgNcB4R7tYI4QNT2RvdnrpFsF4LAJ514IS0rSclAJuwYrLiJ1CS2goAtpadO+KEXvGPGTFxmUPvVjvREIRQUFCNGGTNJAcntk+Ng/jUSK0dgCttnfNl6wDuuMMI5rEaSAgDcUXtDBVgKCohpCIT4JWIkA9kmKcM8JDwaeIJiYsBkMKxf+aOYoQk5AZ7fCQi4scNWCS4pYg9DEANmbd4lmBE1p16Bh8W0YhtBE54rwVsSZ5JdaXI2hahXRl0VCPtvDXQdAQwGiGMBSAHII48E21O/FclnIZQRgI3PHq8E+FIQApxhRI410CKSWCjiLhREFgGmKgRHkE0CQWNGKMC7IFz/DKnlKV5QKpSYLRSxKF3qwqAj/jJ7JWAssSogUcr0jKgVSGGMbBjBIAzzkbOLqBiA71ZMtCbwI4hbWolAXsT7mip12JAYJJFlGZj9YACzCCEiM4EZSJ9IGDfUpBY0p2X/2zEHtjhu4g9YldbAgfraWSUn7u6lVrZnQZiplomg31i2FYxXHtN1tQU9LDOoEsAcXYp8YGVGRiGFhK1e44oOWogsofYRrL9z4nTCnCQrQ+cUyoN3JQQ8sK3E5ivhMSDTjByx88pNwCaxIXyaQcKAPN08Mk95HLKRY2IPo0QMO7IQISVNT9ekcEDgY8ivpPrnS8oJFy57A4JkdqIipKBRU4kXXPtQCjJlz9H9B9Iai8RQwi6CMbA2A6UTmLEKrI6gFEpITiTgIeJ2D1AiwDmqiif1VCCvgC2AOKMLwDMSVFGqnbkQOyVo83JXOMLNzNwukSwY00sRDbXYmyDio4SsB1AGyg3vdRxRzVANx2kRwyBoSMgLq0FpMsIgakGK5GJnyCyziaNGBpwNulq1djVagyrEsjGN+lKzwM019izCMqUzvcYZq0E7gFiSzmAPgqcCSSIZFA8gIWIE0sFbWAUSOvJtXTCOwn9JCyJYwT2TPpLmrhFRBY4kQjxNhAr3UCg8U5J9Ecx4kxXNFFiPY0dFT3NPXlgMkvPgZv3xqghLoGGonGxP1U+P9EAZsZDcQIj2juAZSKHAEkB9CrgItG3HBAHMam9diW+q6MJkFZPh3CSuYNB19ZYaAORlEpqNoDlgh7XleC9nKRZHSFajUg+wtQBbA8gUavos725Eykbge8ErmcH486QC8IFWK7xLRD2EQHU3iIQDnheaIhN+JpGy8UDmoamSahqzCyCn9FPa0XeplSIc4raa67Fkbk11xEBCZazEKMIlj3ezHRslWizlkZYb3HWG5oUOD3U3AbIq5iyZ0ZwI7tFzVarlcBiA0jKjl4eAaIR1kUcVO4Sqi0x0zIXZek30g6syQqyd63NCUT2EUOaCfbq7oQ2Rn/lGshhhDmfnwCgBKjK4D+NkckZtI4EAjvBcLbKm1vhiJ8OBWFLyDF0jSlBuDUhsW6a+AwN8CRmUMrarRP5DzwpgwnOZHwc4XyAPnMzR7up8WaajBAl5K4FpColZyzFlelAuxOjaLmilscsTspOmZThKWFJMHd7RY3vPuwPMGpkCwCES5QzeKWKPmyCYI3oQmuEABMrWViL3FMbkdGglgTdCMBS6613vh7i4CHCQPJEuxvhs8xJTqSrJWKAC/qlzAYsmSA4gN5h/Zil2kDfJ6B18WYtjTjcTrTqeEroOUevlJGNwoiY9GaizUBZYLAhrIGHoAjwnldK/gtEub22n/+do9x+x0v9PfFSP5cHhht+Fi8l6pEwl3hTNP0AWEhpllHvIsaazOKEZGfyFvCTjwZhpd+hrdjz+oA7kmqDS/9eANYBd7XCrQ4oq9/BVWRP+B1c9Tu46pDVi+V9Z6ppmxv2ODkxenxv7NUCEsh01BVUfbwsopbAj2hLfAh7BotAXghw15FtyLKQCgTvDEaXzYKp2viiGN7I8H1Jk1wq+3zgeVrW1h31sa9gJSOgvVYcQpFBABBWAyak7N5hHmK3Vcn4yMLsCp1PHfw43xpDJLQCYLqSSiWsrAJ6Ah8Jn9kblhzeC1RnvquGYZZIjkIelcj5lIYO7bX1Oow7XEYYkwDHw86SJuSWcgm/FEYTqAOhtYXPxZENobdAg4PIogBXJJqtEWYcbs7SgTSgxEZrAW+QH8ewH+BUenb8r6CoeIL76C7ADlgMvSRpuBZdSTYk5EnC+A5zsAeAonfDEow8Ac3CrkiC7UYoUR26NIgo90xKCO8j/UCSRnogMAAWdWFj82ocvHXo5CBzSMWDphz4hfDr4VUUxY8cCnfH001qHh1vxnbPjZxQJAugFWQhKVVRa/HqUZLI9NRLWJA0K3lr3TuWUM2hZiZSO4TmCbQjNONUaDKAuT7gMIyRa6dXLQWww3CZ4ColZUkYZgawoqqpld7iPWR2AlQLHJLPk5ITPPGJQmHJDPiVeiKpFskGJAW0SukUEEYFPD+GDgA0lgipBWqAeEA/USS5kK+MexKnCAmFNJNDiN0SkCG+DY4CYteUlrXiHMOCpzfEMbTwdZBHK7z1JE9JuWasPJZ07MXd4QE0CS6IKAKR2IB/KMYpRTU5FYaHYORfkNJKzlpAZhEnyF0k3MggTVKiORTlmjPmGDgWTrQpAvVV8RN4GagcVmXFoADDFQYqryR/CqPe02ArhUnbG+mDVkQS3sdcSsUPlQen6P/GFOwtPnsYeCdOEYDgtDRGRuhZaaQB4jOQDIQQ3c+sQF5ZZ66IFo4KupF6KwcsUJgRtWIh4XEfD5riCKil1FLjfIN+x5J3zIUVVwbiCT8HQ0ieJt4fwM+SqltOhcVNGemMSOMlSlKYGBDGUNTCjx5Qau6rgnFMIg+MlPFsSfh5csengh+H+/BCpOq1WG44/KIMy5ss9bjeA05IGpgWs8VJ1nIoY7YkMGACsiyeNa89Mk0oAKfBn+Gcwx+vzK3BC/53ENv4f1og+WKldCMzCh/aXPuA8yPEZa4s1piTNJ1cX3jSCK6KesFWskWQ+4/PONIOMoJx7KGBB2WtAHoicxEryklEAjIbNDtOosTpxQA4NQxzfKZkWxr4JhLD4CawChZ2YJl6y5pI10FiwHi0ztIS5ib5ZbzGfaT9yiTR6aQQscyzeW4JRCr7GwjxUaZduzNdSeNklJHpTbpLIzWP9eCFswcQdtyIHc19NiP2gOlWMLijqLAhacPzlct6G+BNsI4pvm/BfTpjh2cEFO7hYE/nkU6lqrknSeO+X1T2X8CofU3R+Tsbtb8UupXtd+jWCt1KYKQaIiFyeP4Mdquy72oW9vH4XMqvx24RBf87dmv9POvv2K1/HHaLpPRfPLnePydVb4DZPt5/+93F/tvvbt+/urzcPbm9+8reR/uXu6cjgvB8e3Gz++v/A7Lmq0E=').then(json => {\n",
       "   const obj = Core.parse(json);\n",
       "   Core.draw('root_plot_1779222965864', obj, '');\n",
       "});\n",
       "\n",
       "      }\n",
       "      const servers = ['/static/', 'https://root.cern/js/7.11.0/', 'https://jsroot.gsi.de/7.11.0/'],\n",
       "            path = 'build/jsroot';\n",
       "      if (typeof JSROOT !== 'undefined')\n",
       "         execCode(JSROOT);\n",
       "      else if (typeof requirejs !== 'undefined') {\n",
       "         servers.forEach((s,i) => { servers[i] = s + path; });\n",
       "         requirejs.config({ paths: { 'jsroot' : servers } })(['jsroot'],  execCode);\n",
       "      } else {\n",
       "         const config = document.getElementById('jupyter-config-data');\n",
       "         if (config)\n",
       "            servers[0] = (JSON.parse(config.innerHTML || '{}')?.baseUrl || '/') + 'static/';\n",
       "         else\n",
       "            servers.shift();\n",
       "         function loadJsroot() {\n",
       "            return !servers.length ? 0 : import(servers.shift() + path + '.js').catch(loadJsroot).then(() => execCode(JSROOT));\n",
       "         }\n",
       "         loadJsroot();\n",
       "      }\n",
       "   }\n",
       "   process_root_plot_1779222965864();\n",
       "</script>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from ROOT import gROOT \n",
    "gROOT.GetListOfCanvases().Draw()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
