{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "cloudy-liver",
   "metadata": {},
   "source": [
    "# Graphs\n",
    "\n",
    "This SageMath notebook plots numerical calculations for the paper *A theory of the dark matter*.\n",
    "\n",
    "The section numbering follows the paper.  Equation numbers refer to equations in the paper."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "digital-target",
   "metadata": {},
   "source": [
    "## Preamble"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "gentle-public",
   "metadata": {},
   "outputs": [],
   "source": [
    "%display latex\n",
    "LE = lambda latex_string: LatexExpr(latex_string);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "secondary-constitutional",
   "metadata": {},
   "outputs": [],
   "source": [
    "from mpmath import mp\n",
    "from mpmath import mpf,mpc\n",
    "import sage.libs.mpmath.all as a\n",
    "mp.pretty = True\n",
    "mp.dps=400\n",
    "#\n",
    "binary_precision=mp.prec\n",
    "Reals = RealField(binary_precision+10)\n",
    "RealNumber = Reals\n",
    "myR = Reals"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "novel-small",
   "metadata": {},
   "outputs": [],
   "source": [
    "lambdaH = var('lambdaH',latex_name=r\"\\lambda_H\")\n",
    "gsq = var('gsq',latex_name=r\"g^2\")\n",
    "K_EW = var('K_EW',latex_name=r\"K_{\\mathrm{EW}}\")\n",
    "ahat_EW = var('ahat_EW',latex_name=r\"\\hat a_{\\mathrm{EW}}\")\n",
    "m = var('m')\n",
    "#m = var('m',latex_name=r\"k^2\")\n",
    "K = var('K')\n",
    "EoverK = var('EoverK',latex_name=r\"\\frac{E}{K}\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "charged-torture",
   "metadata": {},
   "outputs": [],
   "source": [
    "lambdaH_val = 0.5080829235055462\n",
    "gsq_val= 0.4262847210445738\n",
    "K_EW_val =  myR(mp.ellipk(mpf(1/2)))\n",
    "ahat_EW_val = myR(sqrt(6*pi)/(4*K_EW_val))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "separated-mason",
   "metadata": {},
   "outputs": [],
   "source": [
    "Kdot = K*(EoverK/(1-m) -1)/2\n",
    "EoverKdot = EoverK -1/2 -EoverK^2/(2*(1-m))\n",
    "def dot(fn):\n",
    "    return m*fn.derivative(m) + Kdot*fn.derivative(K) + EoverKdot*fn.derivative(EoverK)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "measured-advancement",
   "metadata": {},
   "outputs": [],
   "source": [
    "#\n",
    "latex_name={}\n",
    "latex_name['alpha']   = r\"\\alpha\"\n",
    "latex_name['bsq']     = r\"\\langle b^2\\rangle\"\n",
    "latex_name['musq']   = r\"\\mu^2\"\n",
    "latex_name['ECGF']   = r\"E_{\\mathrm{EW}}\"\n",
    "latex_name['ahatsq']   = r\"\\hat a^2\"\n",
    "latex_name['rhohat']   = r\"\\hat \\rho\"\n",
    "latex_name['ahat']   = r\"\\hat a\"\n",
    "latex_name['phat'] = r\"\\hat p\"\n",
    "latex_name['ahat_norm']   = r\"\\frac{\\hat a}{\\hat a_{\\mathrm{EW}}}\"\n",
    "latex_name['phisq_norm']   = r\"\\frac{(\\phi^\\dagger\\phi)_0}{v^2/2}\"\n",
    "latex_name['w'] = r\"w\"\n",
    "for vstr,form in latex_name.items():\n",
    "    var(vstr,latex_name=latex_name[vstr])\n",
    "#"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "viral-syria",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\alpha \\phantom{\\verb!x!}\\verb|=| 2^{\\frac{1}{3}} \\left(\\frac{{\\left({\\frac{E}{K}} {\\left(2 \\, m - 1\\right)} - m + 1\\right)} K}{{K_{\\mathrm{EW}}}}\\right)^{\\frac{1}{3}}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\alpha \\phantom{\\verb!x!}\\verb|=| 2^{\\frac{1}{3}} \\left(\\frac{{\\left({\\frac{E}{K}} {\\left(2 \\, m - 1\\right)} - m + 1\\right)} K}{{K_{\\mathrm{EW}}}}\\right)^{\\frac{1}{3}}$$"
      ],
      "text/plain": [
       "\\alpha ' = ' 2^(1/3)*((EoverK*(2*m - 1) - m + 1)*K/K_EW)^(1/3)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\langle b^2\\rangle \\phantom{\\verb!x!}\\verb|=| \\frac{{\\frac{E}{K}} + m - 1}{{\\alpha}^{2}}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\langle b^2\\rangle \\phantom{\\verb!x!}\\verb|=| \\frac{{\\frac{E}{K}} + m - 1}{{\\alpha}^{2}}$$"
      ],
      "text/plain": [
       "\\langle b^2\\rangle ' = ' (EoverK + m - 1)/alpha^2"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\mu^2 \\phantom{\\verb!x!}\\verb|=| -\\frac{2 \\, m - 1}{{\\alpha}^{2}}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\mu^2 \\phantom{\\verb!x!}\\verb|=| -\\frac{2 \\, m - 1}{{\\alpha}^{2}}$$"
      ],
      "text/plain": [
       "\\mu^2 ' = ' -(2*m - 1)/alpha^2"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}E_{\\mathrm{EW}} \\phantom{\\verb!x!}\\verb|=| -\\frac{{\\left(m - 1\\right)} m}{2 \\, {\\alpha}^{4}}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}E_{\\mathrm{EW}} \\phantom{\\verb!x!}\\verb|=| -\\frac{{\\left(m - 1\\right)} m}{2 \\, {\\alpha}^{4}}$$"
      ],
      "text/plain": [
       "E_{\\mathrm{EW}} ' = ' -1/2*(m - 1)*m/alpha^4"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\hat a^2 \\phantom{\\verb!x!}\\verb|=| \\frac{4 \\, {\\lambda_H}^{2} {\\mu^2}}{{g^2}} + \\frac{3}{2} \\, {\\langle b^2\\rangle}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\hat a^2 \\phantom{\\verb!x!}\\verb|=| \\frac{4 \\, {\\lambda_H}^{2} {\\mu^2}}{{g^2}} + \\frac{3}{2} \\, {\\langle b^2\\rangle}$$"
      ],
      "text/plain": [
       "\\hat a^2 ' = ' 4*lambdaH^2*musq/gsq + 3/2*bsq"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\hat \\rho \\phantom{\\verb!x!}\\verb|=| \\frac{3 \\, {\\left(\\frac{32 \\, {E_{\\mathrm{EW}}}}{{g^2}} + \\frac{3 \\, {\\langle b^2\\rangle}^{2}}{{\\lambda_H}^{2}}\\right)}}{32 \\, {\\hat a^2}^{2}}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\hat \\rho \\phantom{\\verb!x!}\\verb|=| \\frac{3 \\, {\\left(\\frac{32 \\, {E_{\\mathrm{EW}}}}{{g^2}} + \\frac{3 \\, {\\langle b^2\\rangle}^{2}}{{\\lambda_H}^{2}}\\right)}}{32 \\, {\\hat a^2}^{2}}$$"
      ],
      "text/plain": [
       "\\hat \\rho ' = ' 3/32*(32*ECGF/gsq + 3*bsq^2/lambdaH^2)/ahatsq^2"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\hat p \\phantom{\\verb!x!}\\verb|=| -\\frac{\\frac{32 \\, {\\left({\\langle b^2\\rangle} {\\mu^2} - {E_{\\mathrm{EW}}}\\right)}}{{g^2}} + \\frac{9 \\, {\\langle b^2\\rangle}^{2}}{{\\lambda_H}^{2}}}{32 \\, {\\hat a^2}^{2}}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\hat p \\phantom{\\verb!x!}\\verb|=| -\\frac{\\frac{32 \\, {\\left({\\langle b^2\\rangle} {\\mu^2} - {E_{\\mathrm{EW}}}\\right)}}{{g^2}} + \\frac{9 \\, {\\langle b^2\\rangle}^{2}}{{\\lambda_H}^{2}}}{32 \\, {\\hat a^2}^{2}}$$"
      ],
      "text/plain": [
       "\\hat p ' = ' -1/32*(32*(bsq*musq - ECGF)/gsq + 9*bsq^2/lambdaH^2)/ahatsq^2"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}w \\phantom{\\verb!x!}\\verb|=| \\frac{{\\hat p}}{{\\hat \\rho}}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}w \\phantom{\\verb!x!}\\verb|=| \\frac{{\\hat p}}{{\\hat \\rho}}$$"
      ],
      "text/plain": [
       "w ' = ' phat/rhohat"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\hat a \\phantom{\\verb!x!}\\verb|=| \\sqrt{{\\hat a^2}}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\hat a \\phantom{\\verb!x!}\\verb|=| \\sqrt{{\\hat a^2}}$$"
      ],
      "text/plain": [
       "\\hat a ' = ' sqrt(ahatsq)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\frac{\\hat a}{\\hat a_{\\mathrm{EW}}} \\phantom{\\verb!x!}\\verb|=| \\frac{{\\hat a}}{{\\hat a_{\\mathrm{EW}}}}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\frac{\\hat a}{\\hat a_{\\mathrm{EW}}} \\phantom{\\verb!x!}\\verb|=| \\frac{{\\hat a}}{{\\hat a_{\\mathrm{EW}}}}$$"
      ],
      "text/plain": [
       "\\frac{\\hat a}{\\hat a_{\\mathrm{EW}}} ' = ' ahat/ahat_EW"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\frac{(\\phi^\\dagger\\phi)_0}{v^2/2} \\phantom{\\verb!x!}\\verb|=| -\\frac{3 \\, {\\langle b^2\\rangle}}{2 \\, {\\hat a^2}} + 1\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\frac{(\\phi^\\dagger\\phi)_0}{v^2/2} \\phantom{\\verb!x!}\\verb|=| -\\frac{3 \\, {\\langle b^2\\rangle}}{2 \\, {\\hat a^2}} + 1$$"
      ],
      "text/plain": [
       "\\frac{(\\phi^\\dagger\\phi)_0}{v^2/2} ' = ' -3/2*bsq/ahatsq + 1"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    }
   ],
   "source": [
    "formula={}\n",
    "formula['alpha']      = ((K/K_EW)*2*(1-m+(2*m-1)*EoverK))^(1/3)\n",
    "formula['bsq']        = (m-1+EoverK)/alpha^2\n",
    "formula['musq']       = (1-2*m)/alpha^2\n",
    "formula['ECGF']       = (m*(1-m)/2)/alpha^4\n",
    "formula['ahatsq']     = 3*bsq/2 + (4*lambdaH^2/gsq)*musq\n",
    "formula['rhohat']     = ((3/gsq)*ECGF+(9/(32*lambdaH^2))*bsq^2)/ahatsq^2\n",
    "formula['phat']     = ((1/gsq)*(ECGF-musq*bsq)-(9/(32*lambdaH^2))*bsq^2)/ahatsq^2\n",
    "formula['w']         = phat/rhohat\n",
    "formula['ahat']       = (ahatsq)^(1/2)\n",
    "formula['ahat_norm']  = ahat/ahat_EW\n",
    "formula['phisq_norm'] = 1 - (3/2)*bsq/ahatsq\n",
    "for vstr,form in formula.items():\n",
    "    pretty_print(LE(latex_name[vstr]),' = ', formula[vstr], hold= True)\n",
    "    print('\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "gross-civilization",
   "metadata": {},
   "outputs": [],
   "source": [
    "alpha      = ((K/K_EW)*2*(1-m+(2*m-1)*EoverK))^(1/3)\n",
    "bsq        = (m-1+EoverK)/alpha^2\n",
    "musq       = (1-2*m)/alpha^2\n",
    "ECGF       = (m*(1-m)/2)/alpha^4\n",
    "ahatsq     = 3*bsq/2 + (4*lambdaH^2/gsq)*musq\n",
    "rhohat     = ((3/gsq)*ECGF+(9/(32*lambdaH^2))*bsq^2)/ahatsq^2\n",
    "phat     = ((1/gsq)*(ECGF-bsq*musq)-(9/(32*lambdaH^2))*bsq^2)/ahatsq^2\n",
    "w           = phat/rhohat\n",
    "ahat       = (ahatsq)^(1/2)\n",
    "ahat_norm  = ahat/ahat_EW\n",
    "phisq_norm = 1 - (3/2)*bsq/ahatsq"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "aggregate-illness",
   "metadata": {},
   "outputs": [],
   "source": [
    "def paramsub(vstr):\n",
    "    temp = eval(vstr).subs(lambdaH=lambdaH_val,gsq=gsq_val,ahat_EW=ahat_EW_val,K_EW=K_EW_val)\n",
    "    return temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "killing-principal",
   "metadata": {},
   "outputs": [],
   "source": [
    "#\n",
    "alphan      = paramsub('alpha')\n",
    "bsqn        = paramsub('bsq')\n",
    "musqn       = paramsub('musq')\n",
    "ECGFn       = paramsub('ECGF')\n",
    "ahatsqn     = paramsub('ahatsq')\n",
    "rhohatn     = paramsub('rhohat')\n",
    "phatn     = paramsub('phat')\n",
    "wn     = paramsub('w')\n",
    "ahatn       = paramsub('ahat')\n",
    "ahat_normn  = paramsub('ahat_norm')\n",
    "phisq_normn = paramsub('phisq_norm')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "loose-tomorrow",
   "metadata": {},
   "outputs": [],
   "source": [
    "def msub(v,m_val):\n",
    "    # v is one of the physical variables, m is a Sage real\n",
    "#    m_mpf = mpf(m_val)\n",
    "    m_R = myR(m_val)\n",
    "    K_val = myR(elliptic_kc(m_R))\n",
    "    E_val = myR(elliptic_ec(m_R))\n",
    "    EoverK_val = E_val/K_val\n",
    "#    print(RDF(m_R),RDF(EoverK_val-1), RDF(E_val-K_val),RDF(K_val-myR(pi)/2))\n",
    "    temp = v.subs({EoverK:EoverK_val,m:m_R,K:K_val})\n",
    "    return myR(temp)\n",
    "def fn(v):\n",
    "    return lambda marg: msub(v,marg)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "adjacent-internet",
   "metadata": {},
   "outputs": [],
   "source": [
    "t = var('t')\n",
    "ahat_t = lambda t: fn(ahat_normn)(10^(-t)/2)\n",
    "w_t   = lambda t: fn(wn)(10^(-t)/2)\n",
    "phisq_t   = lambda t: fn(phisq_normn)(10^(-t)/2)\n",
    "#\n",
    "plt1 = parametric_plot([ahat_t ,w_t],(t,0,56),scale=\"semilogx\")\n",
    "plt2 = parametric_plot([ahat_t,phisq_t],(t,0,56),scale=\"semilogx\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "otherwise-edwards",
   "metadata": {},
   "outputs": [],
   "source": [
    "anorm=var('anorm')\n",
    "coeff_low = ahat_EW_val^4 * gsq_val/(lambdaH_val^2)\n",
    "w_low = lambda anorm: -1+4/(3+anorm^4*coeff_low)\n",
    "plt3=plot(w_low,(anorm,1e-2,1),scale='semilogx')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "prospective-chuck",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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jj/e1+N1+HD0ahIREZHwUPCKsoJnNYKvx2v/fvj++6iVJCIiImGi4BVlJfV4gXY3ioiIxCIFrygreFYjQJMm0LSpgpeIiEgsUvCKsqI9XuDb3agzG0VERGKPgleUlRS8jj9ePV4iIiKxSMEryooeXA++Hq8tW2D37qiUJCIiImGi4BVlwXY1gnY3ioiIxBoFrygrKXh16OAbxX7NmujUJCIiIuGh4BVlRc9qBIiLg65d1eMlIiISaxS8oqykHi+AE07QAfYiIiKxRsEryoIFr27d4Kuv4MCBiJckIiIiYaLgFWWl9Xjl5cG6dZGvSURERMJDwSvKDh3yHdNVo8hvomtXX5sOsBcREYkdCl5RduhQ8d4ugNq14eijSz/OKysri6uuuopx48Zx6qmnkpGRUWj6oEGDePjhhwOPb7nlFtq0aUN2dnYlVS8iIiLloeAVZQcPlhy84MgH2E+ZMoVbbrmFp59+msWLF/PMM88Epn377bcsXbqUAwUOEtuwYQM//vgjX375ZSVVLyIiIuURH+0CqrtgPV7gC17//rfvWK+4uMLTfvzxRxISEmjbti0LFiwAIC0tLTD9gw8+AHy9Xn6PP/44ixYtok6dOoG2tWvX8tBDD1GjRg0aNGiAc47hw4dz8OBBdu3axYUXXljoeT/77LPA/I0aNaJmzZqcc8457N69mz179nDhhReyePFiZs2axcsvv0zz5s05//zzcc5x4MABVqxYwcqVK1m5ciU9e/asyEsnIiJS9ZiZJ29ACmBASgjLVxl3323WtGnJ0957zwzM1q0rPm358uW2fv16MzMbM2aM1atXz/bv3x+YPmHCBEtOTrbc3NxCyw0ePNgOHjxoZmYzZ860o446yr744otC8zz11FPWqFEj+8c//lGoPdj8f//7361+/frF5m/Tpo1NmDChWO233HKL/etf/yp5o0VEpDqLev4I9027GqOstB6v7t199ytXFp/Wu3dvOnToQEZGBq+//joXXHABtWvXDkz/4IMPOOWUU4gr0lWWnp5OQkICH3/8MVdddRUvv/wyxx57bKF5rrjiCk4++eRCbaXNf8kllzBgwIAybjFcc801bN26tczzi4iIxAoFrygrLXilpkLHjiUHL7933nmHAwcOMGbMmEDbtm3b+P777xk4cGCheb/88ku6dOkC+I4P69WrFz169ChxvZdddlmh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fyKl6devH3Xr1g087t69O+np6cyZM6fQfE2aNCE7O5sFCxYUat+2bRsnnHBCCFsgIiJeVtbvmezsbJ5++mlGjhwZmGfEiBE888wzEatVykbBK0S5ubn85z//oVWrVrRv377QtKVLl9K1a1caNmxY6jqeeuopNm3aBECvXr0KTRs1ahSvv/46eXl5gbatW7dy3HHHMXfu3EDbgQMHqFWrVgW3RkREvKY83zPffPMNv/76K23atAnM06ZNG95//33/XiTxCAWvEO3evZu8vLxiPU3Z2dmsWLGCgQMHAvDqq6+SlZVV4jpWrFgR+LnofzOjRo3i559/ZtmyZYDvjJaUlBRGjRrFm2++SU5ODgALFy7ktNNOq6StEhERryjP98xPP/0EQJ06dQLz1alTh6ysLDIzMyNWsxyZgleI0tLSqFOnTrFerZdffpmDBw9y8sknA/D6668X2o24YsUKrr/+ekaOHMmsWbOCrr9Pnz60aNEisLtx/vz5nHnmmYwaNYrMzEwWLVoEwLp16zj22GMre/NERCTKyvM9k5GRQVxcHPHxvw1WULNmTYCg//xLdCh4hcg5x+WXX87q1asD3biLFi3ilVdeAaB58+Z8++23xU71PfHEE5k2bRpz587l9ttvD7Tv2bOHn3/+udD6R4wYwbx58zAzvv/+e4466ii6dOlCx44dmTNnDrm5uYEPloiIxJbyfM8kJycXW94fuBo0aBC5ouWINI5XBdx7771MnDiRs88+m2bNmtGxY0fefPNNpkyZwpQpU2jSpAmPPfZY0OVvvPHGQG/Ye++9xwknnECjRo0C00eNGsVjjz3GkiVLCh3HNWrUKJ588knGjBkT6GoWEZHYU9bvme+++468vDyys7MD3xeZmZnUq1ePpKSkKG+FFOS8etCdcy4F2AekmllGORf35Ealp6czcOBAZs+eXWzazTffzP33309cXFygLS8vj2bNmtG4cWNee+01OnfuDMDq1avp0aMHZ555Jm+99VakyhcREY/Kzc2lUaNGfPjhh3Tp0gWAe+65h8WLFwfGg6wiXLQLCDftavSAjRs3smzZskKhCyAuLo5zzz0XMwuELvANN9G2bVs6deoU6VJFRMSD4uPjGTVqFM899xzgG6Nz7ty5XH311VGuTIrSrsYIeO+995g1axabN29myZIl3HjjjdSoUYPc3Fy2bt3K22+/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\n",
      "text/plain": [
       "Graphics object consisting of 9 graphics primitives"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt=plt1+plt2+plt3\n",
    "#  +line([(1e-2,1),(100,1)],linestyle=\":\")\\\n",
    "plt = plt\\\n",
    "+text(r\"$w_{\\mathrm{CGF}}$\",(6e1,.1),fontsize=16,color='black')\\\n",
    "+text(r\"$\\frac{\\phi^\\dagger\\phi}{v^2/2}$\",(5e1,.75),fontsize=16,color='black')\\\n",
    "+text(r\"the Standard Model epoch\",(10^3,-.3),fontsize=16,color='black',\\\n",
    "      horizontal_alignment='left',fontweight=300)\\\n",
    "+text(r\"$a_0$\",(4.54e18,-.14),fontsize=16,color='black')\\\n",
    "+text(r\"$a_{\\mathrm{EW}}$\",(1,-.14),fontsize=16,color='black')\n",
    "#plt.set_aspect_ratio(1)\n",
    "plt.set_axes_range(xmin=10^(-2),xmax=10^(22),ymin=0)\n",
    "plt = plt+ arrow((.1,-.2),(10^21,-.2),width=1,arrowsize=2,color='black')\n",
    "plt.axes_labels([r\"$\\frac{a}{a_{\\mathrm{EW}}}$\",\"\"])\n",
    "plt.axes_labels_size(2)\n",
    "#plt.axes_labels([\"\",\"\"])\n",
    "show(plt,title=\"Figure 1\",\\\n",
    "     ticks=[[10^(-2),1,10^2,10^4,10^6,10^8,10^(10),10^(12),10^(14),10^(16),10^(18),RDF(1.0e20)],[0,1/2,1]],\\\n",
    "     tick_formatter='latex')\n",
    "plt.save('plots/SMepoch.pdf',dpi=600,\\\n",
    "    ticks=[[10^(-2),1,10^2,10^4,10^6,10^8,10^(10),10^(12),10^(14),10^(16),10^(18),RDF(1.0e20)],[0,1/2,1]],\\\n",
    "     tick_formatter='latex')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "designing-yemen",
   "metadata": {},
   "source": [
    "### 4.3 $a$ as a function of $k^2$\n",
    "\n",
    "Figure 1 showing that $a$ increases monotonically from $a_{\\mathrm{EW}}$ to $\\infty$ as $k^2$ decreases from $\\frac12$ to 0."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "spiritual-landscape",
   "metadata": {},
   "outputs": [],
   "source": [
    "y=-(dot(ahatsq)/ahatsq)\n",
    "yn = paramsub('y')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "animated-locator",
   "metadata": {},
   "outputs": [],
   "source": [
    "plt=plot(fn(yn),m,1e-8,0.5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "sharp-secret",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "Graphics object consisting of 1 graphics primitive"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.set_axes_range(ymin=0)\n",
    "plt.set_aspect_ratio(0.1)\n",
    "plt.axes_labels([r\"$k^2$\",r\"$-\\frac{d \\ln a}{d\\ln k}$\"])\n",
    "plt.axes_labels_size(2)\n",
    "show(plt,title=\"Figure 2a\")\n",
    "plt.save('plots/aofkmonotonic.pdf',dpi=600)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "static-postcard",
   "metadata": {},
   "outputs": [],
   "source": [
    "plt = parametric_plot([fn(ahat_normn),m],(m,1e-5,0.5),scale=\"loglog\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "assumed-biology",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "Graphics object consisting of 1 graphics primitive"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.set_aspect_ratio(0.5)\n",
    "plt.set_axes_range(xmin=1,xmax=100,ymax=0.5)\n",
    "plt.axes_labels([r\"$\\frac{a}{a_{\\mathrm{EW}}}  $\",r\"$k^2$\"])\n",
    "plt.axes_labels_size(2)\n",
    "plt.show(title=\"Figure 2b\")\n",
    "plt.save('plots/ksqofa.pdf',dpi=600)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "unnecessary-gravity",
   "metadata": {},
   "source": [
    "### 5.2 w_CGF=0\n",
    "\n",
    "Figure 2 shows $w_{\\mathrm{CGF}}$ and the progress of the electroweak transition in the first 2 ten-folds of expansion after $a_{\\mathrm{EW}}$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "minimal-property",
   "metadata": {},
   "outputs": [],
   "source": [
    "plt1 = parametric_plot([fn(ahat_normn),fn(wn)],(m,1e-6,0.5),scale=\"semilogx\")\n",
    "plt2 = parametric_plot([fn(ahat_normn),fn(phisq_normn)],(m,1e-6,0.5),scale=\"semilogx\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "certain-dubai",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "Graphics object consisting of 5 graphics primitives"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt=plt1+plt2\\\n",
    "+line([(1,1),(100,1)],linestyle=\":\")\\\n",
    "+text(r\"$w_{\\mathrm{CGF}}$\",(2.2,.2),fontsize=16,color='black')\\\n",
    "+text(r\"$\\frac{(\\phi^\\dagger\\phi)_0}{v^2/2}$\",(2.8,.7),fontsize=16,color='black')\n",
    "plt.set_aspect_ratio(1)\n",
    "plt.set_axes_range(xmin=1,xmax=100)\n",
    "plt.axes_labels([r\"$\\frac{a}{a_{\\mathrm{EW}}}$\",\"\"])\n",
    "plt.axes_labels_size(2)\n",
    "show(plt,title=\"Figure 3\")\n",
    "plt.save('plots/wandphisq.pdf',dpi=600)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "electrical-seafood",
   "metadata": {},
   "source": [
    "### 5.4 CGF equation of state"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "macro-castle",
   "metadata": {},
   "outputs": [],
   "source": [
    "y=(dot(rhohat)/rhohat)\n",
    "yn = paramsub('y')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "eligible-programming",
   "metadata": {},
   "outputs": [],
   "source": [
    "plt=plot(fn(yn),m,1e-8,0.5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "genetic-preference",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "Graphics object consisting of 1 graphics primitive"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.set_axes_range(ymin=0)\n",
    "plt.set_aspect_ratio(0.05)\n",
    "plt.axes_labels([r\"$k^2$\",r\"$\\frac{d \\ln \\hat\\rho_{CGF}}{d\\ln k}$\"])\n",
    "plt.axes_labels_size(2)\n",
    "show(plt,title=\"Figure 4\")\n",
    "plt.save('plots/rhoofkmonotonic.pdf',dpi=600)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "victorian-amsterdam",
   "metadata": {},
   "source": [
    "### 5.5 Adiabatic condition for $a\\ge a_{\\mathrm{EW}}$\n",
    "\n",
    "Figure 4 showing a bound on the ratio of time scales, verifying the adiabatic condition."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "promotional-apparel",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}r_{\\mathrm{gH}}=\\frac{t_{\\mathrm{grav}}^2}{t_{\\mathrm{Higgs}}^2}= 2.6387686437244608 \\times 10^{-33} \\qquad r_{\\mathrm{HH}}=\\frac{t_{\\mathrm{Higgs}}^2}{t_{\\mathrm{Hubble}}^2}= 1.3207956122976951 \\times 10^{-88} \\qquad \\Omega_\\Lambda= 0.685\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}r_{\\mathrm{gH}}=\\frac{t_{\\mathrm{grav}}^2}{t_{\\mathrm{Higgs}}^2}= 2.6387686437244608 \\times 10^{-33} \\qquad r_{\\mathrm{HH}}=\\frac{t_{\\mathrm{Higgs}}^2}{t_{\\mathrm{Hubble}}^2}= 1.3207956122976951 \\times 10^{-88} \\qquad \\Omega_\\Lambda= 0.685$$"
      ],
      "text/plain": [
       "r_{\\mathrm{gH}}=\\frac{t_{\\mathrm{grav}}^2}{t_{\\mathrm{Higgs}}^2}= 2.6387686437244608e-33 \\qquad r_{\\mathrm{HH}}=\\frac{t_{\\mathrm{Higgs}}^2}{t_{\\mathrm{Hubble}}^2}= 1.3207956122976951e-88 \\qquad \\Omega_\\Lambda= 0.685"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "r_gH= 2.6387686437244608e-33\n",
    "r_HH= 1.3207956122976951e-88\n",
    "Omega_Lambda = 0.685\n",
    "pretty_print(LE(r\"r_{\\mathrm{gH}}=\\frac{t_{\\mathrm{grav}}^2}{t_{\\mathrm{Higgs}}^2}=\"),\\\n",
    "             RDF(r_gH),LE(r\"\\qquad r_{\\mathrm{HH}}=\\frac{t_{\\mathrm{Higgs}}^2}{t_{\\mathrm{Hubble}}^2}=\"),RDF(r_HH),\\\n",
    "            LE(r\"\\qquad \\Omega_\\Lambda=\"),RDF(Omega_Lambda))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "utility-importance",
   "metadata": {},
   "outputs": [],
   "source": [
    "bound = 4*K*alpha*sqrt(r_gH*ahatsq*rhohat/3 + r_HH*Omega_Lambda*ahatsq)\n",
    "boundn = paramsub('bound')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "monthly-reserve",
   "metadata": {},
   "outputs": [],
   "source": [
    "plt= parametric_plot((fn(ahat_normn),fn(boundn)),(m,5e-7,0.5),scale=\"loglog\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "million-glance",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAewAAAGTCAYAAADqXiF0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAvL0lEQVR4nO3dd5hdZbX48e8KBNTQhQBSBEWaogm9JSRApHMBC4oKWK5KEULvRXozIIpYsES8IlcRpIUe6VcgNBHkp1KkdwEVQsn6/fGekWE4k8xMZmafs+f7eZ79TGaffc5eZ7tlzbv2WyIzkSRJrW1Y1QFIkqRZM2FLktQGTNiSJLUBE7YkSW3AhC1JUhswYUuS1AZM2JIktQETtiRJbcCELUlSGzBhS5LUBkzYkiS1ARO2JEltwIQtSVIbMGFLktQGTNiSJLUBE7YkSW3AhC1JUhswYUuS1AZqk7AjYlREXB0R/xcR10bEsk2OGRkRD0TE4VXEKElSX9UiYUfEwsAZwOcyc23gI8B3mhy6PbAssNIghidJ0myrRcIGjgYOz8wnI2IhYH5g0SbHjWv8nDpYgUmS1B/aPmFHxDzARzPz6sau7YE5gCu7HBfABo1frxq8CCVJmn2RmVXHMFsiYgSwfGbe0fj9bkpJfLnMfKDTcR8D7gQezMwPVBGrJEl9NWfVAcyuzPwX0JGsVwdWAa7unKwbxjd+2rqWJLWdti+Jd7FD4+cvm7xmwpYkta22L4l3FhF3AKOAJTLz8U77hwHPUTqjjczMZ6uJUJKkvqlbC3s54KXOybphFLAAcKfJWpLUjtr+GXYXr3azf/fGT8vhkqS2VLcW9i+AhSNiA4CIeFdETAJ2arxuwpYktaW6tbAPAKYDP4qIZ4A3KR3QXgcSuL7C2KRei4jfUx7lTKw4FEkVq1ULOzNfy8wDM3P5zFwvM8dSEvjcwHmZ+UrFIUrvEBE/i4hssi0HbAccVnWM3ekm9v+rOi6pjmrRwo6IFYGLKMl5tcyc3tg/J7Av5dn2MdVFKM3SZcAXu+x7JjPfHOgTN2YBnCMz3+jjR3SN/bXZj0pSV3VpYe9C6SG+AqU13eFgykIfu2fmn6sITOqh6Zn5ZJftzYj4fUSc1nFQRCweEZdExCsR8WBE7BARD0XExMbryzRauaM6vWeBxr5xjd/HNX7fJCJuo/yhOyaK/Rsr2r0SEXdFxCf7EPvz/XdZJHWoRQsb+CvwDHBwZr4UEXNRnmfvB3w5M39aaXRS//k5sDBlIZvXgUnAyD5+1kmUCtQDwD8oVajtKH8A/wUYC/wiIp7JzGtn8jnjIuLpxmdcCxySmU/3MSZJ3ahLwj6DMs5684j4PDACuJGyKMiDVQYm9dCWEfHPTr9PycxPdT6g8ehnY2CNzLytse8rlOTaF4dn5pWNzxkB7A1smJk3N15/ICLWB75GScTNTAF+DTxMWbr2aOCaiPjPoylJ/aMWCTszZ1D+QyG1q6mUlm2HfzU5ZgXgDeD2jh2Z+deIeKGP57yt079XBt4FXFkeaf/HXDTm6m8mM8/t9Os9jRL7w8AWwG/7GJekJmqRsKUa+Fdm/nUWx0QP9s9osm94d+fs9O+O/ixbAI91Oa7HLeXMfCIiHgY+1NP3SOoZE7bUPv5M+f/saGAaQGPo1wKdjnmm8XNx3moZj+rBZ99LScxLz+J59UxFxHuBpYAn+voZkpozYUttIjP/HBFXAT+MiF0onc6+BbxCmRiIzHylMQ76wIh4iNJBbZZDGjPz5Yg4BTi1sVjODcB8wLrAPzNzctf3RMQ8wJHAeZQEvQxwHPAscP5sfVlJ71CXYV3SULEj8BRwHSUp/gh4mbfPo/8lShn8NuDbwKE9/OzDgKOAg4D7gMuBrYDuOm6+SVl//nfA/wMmN36uk5kv9/gbSeqRWi2vKQ01EbEk8AiwcWZeXXU8kgaOCVtqIxGxITAP8EfKc+qTgCWA5TPz9SpjkzSwfIYttZfhlOfEH6CUwm8CPmeylurPFrYkSW3ATmeSJLWBlkjYEXF+RLwQEb/psv+NiLizsZ1VVXySJFWtJUriETGe0pFmp8z8ZKf9z2bmwtVFJklSa2iJFnZmTqV0oOk3jaUC54suEyNLktSOep2wI2JsRFwUEY831tTdpskxuzbW6n01IqZFxJg+xjdf4/03RMQGvXzvvMCLjZ+9lW5ubm5ubbXVXl9a2COAu4Ddm70YEdsDpwHHUuY8vh6YEhFL9+Fcy2TmasDXgZ9HxHx9+AxJktperxN2Zk7JzEMzs7ul8/YGfpyZZ2XmfZk5kTIT0y4AEbFHp45kc83iXI83ft5DWZxg+e6OjYi5GyXw+RqJvS8ta0mSWlK/PsNuJODVgCu6vHQFZREBMvP0zBzV2F6byWctGBFzN/69JGW93gdmcvqDKCXwju3RPn8RSZJaTH/PdLYwMAdlcYLOngIW6+5NEXE5sCowIiIeBbalzOj0g4iYQXk+sWdmPj+Tcx8PTOr0+7yYtCVJNTFQU5N27QAQTfa9dXDmJt28tEqPT5g5nbKebzmhncMlSTXS38O6nqUsude1NT2Sd7a6B0RE7BYR9wK3DMb5JEkaDP2asBvPpKcBE7q8NIGySMGAy8wzMnNlYM3BOJ8kSYOh1yXxiJgHWK7TrmUjYhTwfGb+nfIc+eyIuA24GfgqsDTw/dkPV5Kkoakvz7BXB6Z2+r2jo9dkYOfMPDci3gscTlmv9x5g88x8eLYilSRpCGuJucT7U0TsBuxGKfevAMyfmS/18mPqdVEkqf5q39O4dgm7Q2PylBcxYUvSUFD7hN0Si39IkqSZM2FLktQGapewHYctSaojn2E3V8+LIkn15TNsSZJUPRO2JEltwIQtSVIbqF3CttOZJKmO7HTWXD0viiTVl53OJElS9UzYkiS1ARO2JEltwIQtSVIbqF3Ctpe4JKmO7CXeXD0viiTVl73EJUlS9UzYkiS1ARO2JEltwIQtSVIbMGFLktQGapewHdYlSaojh3U1V8+LIkn15bAuFY88Al/7Gjz8cNWRSJKGIhN2D91/P5x/PnzoQ7DbbvDYY1VHJEkaSkzYPbTxxvDAA3DUUfCrX8EHPwh77QVPPll1ZJKkocBn2M3N9KK89BKcdhpMmgSvvQa77w777w8LL9zXaCVJs6n2z7BN2M316KK88AJ861vw7W+X3/fcE/bZBxZcsJdnkyTNLhN2uxrMXuLPPgsnnwzf+Q7MNRfsvTdMnAjzzdfLs0qS+sqE3a6qGNb11FNwwglw5pkwYgTst18pl88zT18+TZLUC7VP2LXrdFblxCmLLgqnngp/+xt85jNw+OHwgQ+U592vvjrY0UiS6sQWdnP9clEefhiOPhp+9jNYfHE44gjYeWeYc87++HRJUie2sNV3738/nHUW/OlPsN568N//DSuvXIaFzZhRdXSSpHZiwh4EK6xQkvQdd8Dyy8NnPwujR8PFF0NNCxySpH5mwh5Eo0aVJH3DDbDAArDVVqXl/fvfVxyYJKnlmbAr0JGkL7+8TLwyfjx8/ONw661VRyZJalUm7IpEvJWkzzsPHn0U1lwTttuuPPOWJKkzE3bFIkqS/uMfYfLk8px7lVVgxx3L3OWSJIEJu2XMMUdJ0vffD9/9Llx5Jay4Ypnu9Jlnqo5OklQ1x2E3V/lF+fe/yxzlJ5xQepIfcECZ7nTEiKojk6SWVPtx2Cbs5lrmojz7LBx7LJxxRlkN7Mgj4UtfcvIVSeqi9gnbkniLW3jhMt3p/feX3uRf+1p5xn3BBY7hlqShxITdJpZdFv7nf+D222GppWDbbWH99eHGG6uOTJI0GGqXsKtc/GMwjB4NV1xRtldeKUl7m23gvvuqjkySNJB8ht1cW1yUGTPgnHPg0EPhkUdKufyb3yxldEkaYnyGrdY1bBh87nPw5z/DiSeWkvlyy8Epp8D06VVHJ0nqTybsGph7bthnH/jLX+Dzn4cDD4QPfxh++1s7pklSXZiwa2SRRcqkK3ffXVYF+8QnYNw4mDat6sgkSbPLhF1DK68Ml14Kl10Gzz0Hq68OO+0Ejz1WdWSSpL4yYdfYJpvAnXfCmWfClCml1X3kkWUWNUlSezFh19ycc8LXv16eb+++Oxx/PKy0ks+3JandmLCHiPnnLz3J//SnMlPaJz5Rlvd0/LYktQcT9hCz3HJw8cVw0UXw4IPw0Y/CvvvCS70dqS5JGlQm7CFqyy3hnnvKRCtnngkrrABnn22ZXJJalQl7CHvXu+Dgg8vEK2PHlvW4118f7rij6sgkSV2ZsMVSS8G558I118CLL8Jqq8Guu8I//lF1ZJKkDiZs/cf48aV1PWkS/OIXsOKKZa5yy+SSVD0Ttt5m+HCYOLH0Hh8zBnbYoYzn/utfq45MkoY2E7aaWmIJ+PWv4ZJLyhjuj3wEjj7aRUUkqSombM3U5puXsdt77w1HHQUf+xhMnVp1VJI09LREwo6I8yPihYj4TZf9y0bE1Ii4NyL+GBEjqopxKHvPe+C448o0p4ssAhtuWOYmf+aZqiOTpKGjJRI2cDqwY5P9PwMOz8yVgQ0AC7IV+vCH4dpr4cc/LpOvrLiiY7clabC0RMLOzKnAy533RcSHgdcz8/rGMc9n5htVxKe3DBsGX/pSGbu92WZl7Pbmm8PDD1cdmSTVW68TdkSMjYiLIuLxiMiI2KbJMbtGxIMR8WpETIuIMX2I7UPAPyPiwoi4PSIO7sNnaIAsskgZ+nXxxWXGtI98BM44A2bMqDoySaqnvrSwRwB3Abs3ezEitgdOA44FRgPXA1MiYulenmc4MAbYDVgHmBARE/oQrwbQFluUTmlf+EJZDWzs2NL6liT1r14n7MyckpmHZuZvuzlkb+DHmXlWZt6XmROBR4BdACJij4i4s7HNNZNTPQrcmpmPZOZ04FJgVHcHR8TcETFfxwbM29vvpr6Zbz743vfK8+2nny49yY87Dl5/verIJKk++vUZdiMBrwZc0eWlK4B1ATLz9Mwc1dhem8nH3QosGhELRsQwYCwws8UgDwJe7LQ92sevoT4aOxbuuqsMATv8cFhjDZg2reqoJKke+rvT2cLAHMBTXfY/BSzW3Zsi4nLg18DmEfFoRKzR6GB2MHAdcDfwl8y8eCbnPh6Yv9O2ZJ+/hfrs3e+G44+HW26BCFhrLTjoICdckaTZNecAfW7XgT7RZN9bB2du0s3+KcCUHp2wlM3/kxYioidv0wBZddWStE8+GY48sqy/PXlyWVhEktR7/d3CfhZ4k3e2pkfyzlb3gIiI3SLiXuCWwTifujd8eFm+c9o0mGuu0to+4gh4bWYPQiRJTfVrwm48k54GdO3NPQG4qT/PNZMYzmhMtLLmYJxPs7bKKvCHP8Chh5bOaGutBXffXXVUktRe+jIOe56IGBURoxq7lm383jFsaxLwlYj4UkSsFBGnAksD3++fkNWOhg8vpfE//AHeeANWXx2OPbb8W5I0a5G9nFcyIsYBzZZ/mJyZOzeO2RXYH1gcuAfYKzOvm51Ae6sxtOtFYP7MfKmXb3eyzQE0fTp885tw4onlmfbkybDSSlVHJanN1b7jUq8TdquLiN0ok60MA1bAhN2y/vCHsojIQw/BMcfAXnvBHHNUHZWkNmXCble2sNvDK6+UZ9unngrrrAM//zl88INVRyWpDdU+YbfE4h8aut79bvjWt8osaU8+WWZJO+ssVwCTpK5M2GoJY8aU9ba33x7++79h221db1uSOqtdwnYcdvuad96y1vb558MNN5ThYJdeWnVUktQafIbdXD0vSht54gn48pdhyhTYZRc45RR4z3uqjkpSC/MZtlSFxReHSy4pa2z/7GcwejTcdlvVUUlSdUzYalkRsOuucPvtpVy+zjpl+JeTrUgaikzYankrrgg33wwHHFDmIh87Fv72t6qjkqTBVbuEbaezeho+vLSur7uuDP8aNQp+8hOHf0kaOux01lw9L0pNvPwy7Lkn/PSnsN128KMfwUILVR2VpIrZ6UxqNfPOW1rX550HU6eWyVauvbbqqCRpYJmw1ba22w7uuqtMZTp+PBx2GLz+etVRSdLAMGGrrS21FFx9NRx9NBx/fOmQ9uCDVUclSf3PhK22N8cccMghcP31b3VIO+ecqqOSpP5Vu4RtL/Gha511ynzkW24JO+wAO+9cOqhJUh3YS7y5el6UISITzj4bdtsNFlsMfvlLWGONqqOSNMDsJS61mwjYcUe44w5YYAFYd1046SSYMaPqyCSp70zYqq3lloMbb4R99oEDD4SPfxwef7zqqCSpb0zYqrW55oITToArr4R77y1jti+6qOqoJKn3TNgaEjbaCO6+u3RM23pr+MY34JVXqo5KknrOhK0hY+GF4Xe/g+9+t0xnuuaa8Kc/VR2VJPVM7RK2w7o0MxGl9/htt5Xe5GusUZJ3TQdLSKoRh3U1V8+Lord55RWYOBF++EPYfvvyc775qo5KUh85rEuqq3e/G37wAzj3XJgyBUaPLi1vSWpFJmwNeZ/+dBmz/d73ljHbp55qiVxS6zFhS8AHPgA33AB77AF77116kj/3XNVRSdJbfIbdXD0vinrkkktgp53gXe8qi4iMGVN1RJJ6wGfY0lCzxRZlEZEPfhDGjStLd775ZtVRSRrqTNhSE0suCddcA4cdBkccUaY1feKJqqOSNJSZsKVuzDEHHHlkSdz33VemNb3ssqqjkjRU1S5hO3GK+tu4cXDXXbD66rDZZnDAAfD661VHJWmosdNZc/W8KJotM2bApElw0EGw2mrwq1/BMstUHZWkBjudSSqGDYN99y3Dv556CkaNgvPOqzoqSUOFCVvqpbXWKhOtTJgAn/wk7LorvPpq1VFJqjsTttQHCywA//u/cOaZ8JOfwNprw/33Vx2VpDozYUt9FAFf/zrccgtMn16ea0+eXHVUkurKhC3Npo9+tCwa8qlPwc47w447wj//WXVUkurGhC31gxEj4Kc/hbPPhvPPL63tO++sOipJdWLClvrR5z8P06aVBL722nDGGa78Jal/mLClfrb88nDzzfDVr8Luu5ee5P/4R9VRSWp3JmxpAMw9N5x+eimPX3MNrLoq3Hpr1VFJamcmbGkAbbNNGbO9yCKw3noliVsil9QXJmxpgC2zDFx/fSmP77knfOITlsgl9V7tEraLf6gVzTVXmYf8/PNh6lQYPdoSuaTeqV3CzswzMnNlYM2qY5G66iiRjxxZSuTf/rYlckk9U7uELbW6jhL5N74BEyfCdtvBCy9UHZWkVufyms3V86Ko5fzud2V2tAUWgHPPhTWtC0l95fKakgbOf/3XWyXy9de3RC6peyZsqWKWyCX1hCXx5up5UdTyLrywlMjnn98SudRLlsQlDZ6tty4l8kUXLSXy006zRC6pMGFLLeb974frroM99oC99oJtt7VELsmSeHfqeVHUdjpK5PPNB//7v5bIpZmwJC6pOh0l8sUWKxOtnHqqJXJpqDJhSy2uo0S+556w995ltjRL5NLQY0m8uXpeFLW9iy6CnXYqJfJzz4W11qo6IqllWBKX1Dq22qqUyBdfvPQinzTJErk0VJiwpTbTUSKfOBH22aeUyJ9/vuqoJA00S+LN1fOiqHY6SuTzzltK5GuvXXVEUmUsiUtqXVttBXfeCe97H4wZY4lcqrOWSNgRcX5EvBARv+m0b4WIuLPT9kpEbFNhmFJLWnrpUiLfay9L5FKdtURJPCLGA/MAO2XmJ5u8Pg/wEPD+zPxXDz/TkriGnIsvLiXyeeaxRK4hx5L4YMjMqcDLMzlka+DqniZraajacsvSi3yJJUqJ/FvfskQu1UWvE3ZEjI2IiyLi8YjIZmXqiNg1Ih6MiFcjYlpEjJnNOD8NnDubnyENCUsvDddeWyZZ2Xffsua2JXKp/fWlhT0CuAvYvdmLEbE9cBpwLDAauB6YEhFL9yXARml7PeDSvrxfGoqGD4cTTywl8htvhNGj4eabq45K0uzodcLOzCmZeWhm/rabQ/YGfpyZZ2XmfZk5EXgE2AUgIvbo1JFsrh6c8r+AyzPz1ZkdFBFzR8R8HRswb8+/lVRPW2xRepEvuSSMHWuJXGpn/foMu5GAVwOu6PLSFcC6AJl5emaOamyv9eBje1oOP4jSyaxje7THgUs1ttRS8Pvfv1Ui33preO65qqOS1Fv93elsYWAO4Kku+58CFuvuTRFxOfBrYPOIeDQi1mjsnx9YE7i8B+c+Hpi/07Zkr6OXaqpzifymmyyRS+1ooHqJdy26RZN9bx2cuUlmLpKZ78nMJTPz1sb+FzNz0Z60xDNzema+1LEx817n0pDUUSJfaqlSIj/lFJgxo+qoJPVEfyfsZ4E3eWdreiTvbHUPiIjYLSLuBW4ZjPNJ7aajRL7PPrDffqUXuSVyqfX1a8JutISnARO6vDQBuKk/zzWTGM7IzJUppXRJTQwfDiecAJdcUkrjlsil1teXcdjzRMSoiBjV2LVs4/eOYVuTgK9ExJciYqWIOBVYGvh+/4Qsqb9svnmZaGXppUuJ/OSTLZFLrarXU5NGxDhgapOXJmfmzo1jdgX2BxYH7gH2yszrZifQ3nJqUqnnXn8dDj+8tLq32AImT4b3vrfqqKReqf3UpC0xl3h/iojdgN0o1YMVMGFLPXbppbDjjvDud5e5yNddt+qIpB6rfcJuibnE+5PPsKW+23zz0ov8/e+3RC61mtolbEmzZ8klYerU0oN8//3LmtvPPlt1VJJqVxLv4DNsafZNmQJf+EIpkf/qV7DeelVHJHXLkni7cRy21H8226yUyJdZBjbYAE46yRK5VBVb2M3V86JIffTGG6UX+fHHlyT+85/DwgtXHZX0NrVvYZuwm6vnRZFm02WXlRL53HOXXuSWyNVCap+wa1cSlzRwNt20TLSy7LKlRH7iiZbIpcFiwpbUKx29yPffHw48ELbc0l7k0mCoXcK205k08OacE447rvQiv/VWGDUKbrih6qikeqtdwnbiFGnwbLpp6UX+gQ/AuHFlalNL5NLAqF3CljS4llgCrrkGDjgADjqozEVuiVzqf/YSb66eF0UaYJdfDp//fOlF/qtfwfrrVx2RhhB7iUtST22yiSVyaaCYsCX1q44S+YEHwsEHlxL5M89UHZXU/mqXsO0lLlVvzjnhmGNKL/LbboPRo+H666uOSmpvtUvY9hKXWkdHifyDH4Tx48vUppbIpb6pXcKW1FqWWAKuvrr0ID/kkLLmtiVyqffsJd5cPS+KVLErrii9yIcPL73Ix4ypOiLViL3EJam/fPzjpUT+oQ+VXuSWyKWeM2FLGlTvex9cdVXpQW6JXOo5S+LN1fOiSC2mc4n8nHNg7NiqI1IbsyTebhzWJbWPziXy8ePLgiKWyKXmbGE3V8+LIrWoN96Ao44qY7cnTICzz4aRI6uOSm2m9i1sE3Zz9bwoUou78kr43OfKxCvnnAMbbFB1RGojtU/YtSuJS2pfEyaUEvkKK8CGG8Kxx1oilzqYsCW1lI5e5IceCocdBpttBk8/XXVUUvUsiTdXz4sitZmrriol8jnmsESuWbIkLklV2Xjjt5fIjznGErmGLhO2pJa2+OJvlcgPPxw23dQSuYYmS+LN1fOiSG2uc4n8l78s05tKDZbE240Tp0j11VEiX3FF2GijUiJ/882qo5IGhy3s5up5UaSaePNNOProMtnKRhvBL34Biy5adVSqWO1b2Cbs5up5UaSaufrqUiKPKL3ILZEPabVP2LUriUsaOjbaqJTIV1qp/Pvooy2Rq75M2JLa2mKLlSlNDzsMjjii9CJ/6qmqo5L6nyXx5up5UaSa61wi/+UvywpgGjIsiUtSu+goka+8culRftRRlshVHyZsSbWy2GJwxRVlkpUjj4RNNrFErnqwJN5cPS+KNMRccw3ssIMl8iHCkrgktasNN7RErvowYUuqtY4S+RFHlBL5xz8OTz5ZdVRS71kSb66eF0Ua4jpK5FBK5BtuWG086leWxCWpLjpK5B/5SCmRf/OblsjVPmqXsF38Q9LMLLYYXH55SdZHHWWJXO3Dknhz9bwokt5m6tRSIs+0RF4DlsQlqa7Gjy8l8lVWKSXyI4+0RK7WZcKWNKQtuihcdlkpkR99NEyYYIlcrcmSeHP1vCiSZqpzifx//qdMdaq2YUlckoaKziXyCRPK2G1L5GoVJmxJ6qSjRH7UUXDMMSVxP/FE1VFJlsS7U8+LIqlXfv97+OxnYcaMUiLfeOOqI9JMWBKXpKFq3LhSIv/Yx8p4bUvkqpIJW5JmoqNEfvTRpUS+8caWyFUNE7YkzcKwYXDIIWUu8vvvh1Gj4Kqrqo5KQ40JW5J6aIMN3l4iP/xwS+QaPCZsSeqFkSPfKpEfe6wlcg0eE7Yk9VKzEvmVV1YdlerOhC1JfdRRIh81CjbZxBK5BpYJW5Jmw8iRMGVK6UF+7LFlOtPHH686KtWRCVuSZtOwYXDwwWUu8r/8pbS4r7ii6qhUNy2RsCPi/Ih4ISJ+02X/XhHxp4i4NyJOj4jaz2QjqX2NHQt33AGjR8Omm8Jhh8Ebb1QdleqiJRI2cDqwY+cdEbEIsDuwGrBK4+fagx+aJPVc5xL5cceVXuSWyNUfWiJhZ+ZU4OUmL80JvAsY3tieHsy4JKkvLJFrIPQ6YUfE2Ii4KCIej4iMiG2aHLNrRDwYEa9GxLSIGNPb82TmM8ApwN+Bx4GrMvNvvf0cSarK2LGlF/mqq5YS+aGHWiJX3/WlhT0CuItSrn6HiNgeOA04FhgNXA9MiYile3OSiFgQ2BJYBlgCWDcixs7k+LkjYr6ODZi3N+eTpIGwyCJw6aWlB/nxx9uLXH3X64SdmVMy89DM/G03h+wN/Dgzz8rM+zJzIvAIsAtAROwREXc2trlmcqqNgb9m5vOZ+QpwCTN/hn0QZTnNju3R3n0zSRoYw4bBQQeV5Tr/+ldL5Oqbfn2G3UjAqwFdb8UrgHUBMvP0zBzV2F6bycc9QmlVvysi5gDGAffP5Pjjgfk7bUv27VtI0sAYM8YSufquvzudLQzMATzVZf9TwGLdvSkiLgd+DWweEY9GxBqZ+X/ApcAdwN3A34ALu/uMzJyemS91bDTvxCZJleookR93HJxwAmy4ITz2WNVRqR0MVC/x7PJ7NNn31sGZm2TmIpn5nsxcMjNvbew/JDNXyswPZ+YemdntZ0hSuxg2DA48sPQif+CBUiK//PKqo1Kr6++E/SzwJu9sTY/kna3uARERu0XEvcAtg3E+SeqrMWPKRCurr15K5IccYolc3evXhN14Jj0NmNDlpQnATf15rpnEcEZmrgysORjnk6TZscgicMklpTx+4omWyNW9vozDniciRkXEqMauZRu/dwzbmgR8JSK+FBErRcSpwNLA9/snZEmql2HD4IADSi/yjhL5ZZdVHZVaTV9a2KtTOoLd0fh9UuPfRwFk5rnAROBw4E5gLLB5Zj48m7FKUq2tv37pRb7GGrDZZmW2NEvk6hB168cVEbsBu1H+GFkBmL/Ra7w36nVRJLWVGTPg5JPLM+111oFzzoElHag6K7VfHKp2CbtDY7azFzFhS2pTN94I228P06fD2WeXjmnqVu0Tdkss/iFJeqf11isl8jXXLCXygw6yRD6UmbAlqYUtvDBcdFHpQX7yyTB+PDzqxMtDUu0StuOwJdXNsGGw//5w7bXw0EOlF/mUKVVHpcFWu4TtOGxJdbXeemWilbXWgs03t0Q+1NQuYUtSnXWUyE86qZTIx42zRD5UmLAlqc0MGwb77VdK5A8/bIl8qDBhS1Kb6uhFvvbapUR+4IHw+utVR6WBUruEbaczSUPJe98LF15YSuSnnFJ6kT/ySNVRaSA4cUpz9bwokmrtppvgM5+Bf/8bfv7z0uoeQpw4RZLUHtZdt/QiX3tt2GKLsqCIJfL6MGFLUo10lMhPPhm+9a3Si9wSeT2YsCWpZoYNg333heuuK8l61Kiy5rbamwlbkmqqo0S+zjqw5ZaWyNtd7RK2vcQl6S2dS+STJlkib2f2Em+unhdF0pB2881luc5//QsmTy6t7hqxl7gkqR7WWadMtLLuurDVVmVBEUvk7cOELUlDyEILlRL5KafAqafCBhvA3/9edVTqCRO2JA0xEbDPPqUX+aOPwujRcPHFVUelWTFhS9IQ1VEiX2+9UiLfbz9L5K3MhC1JQ9hCC8HvflcmWTntNEvkrax2CdthXZLUOxGw995w/fXw2GNlopWLLqo6KnXlsK7m6nlRJGkWnn8edt65JOx994XjjoPhw6uOqkcc1iVJGjo6SuSTJpUS+dix8PDDVUclMGFLkrqIgL32ghtugMcfL73ILZFXz4QtSWpqrbXKXORjxsDWW5cSub3Iq2PCliR1a6GF4IILSon829+2RF4lE7YkaaY6l8ifeMISeVVM2JKkHukokY8dW0rk++wDr71WdVRDhwlbktRjCy4I559f5iE//XRL5IOpdgnbiVMkaWBFwMSJpUT+5JNlopULL6w6qvpz4pTm6nlRJKmfvfACfPGLZez23nvD8cfDXHNVEooTp0iS1J2OEvlpp8F3vlOGgD30UNVR1ZMJW5I0WyJgzz1Lifzpp0sv8t/9ruqo6seELUnqF2uuCbffDuPGwTbblBK5vcj7jwlbktRvFlwQfvvbUiL/7nctkfcnE7YkqV91lMhvvNESeX8yYUuSBsQaa5SJVsaPLyXyvfayRD47TNiSpAGzwAJw3nllHvIzzoD117dE3lcmbEnSgIqAPfYoJfJnnikl8gsuqDqq9mPCliQNis4l8m23LbOlWSLvORO2JGnQdC6Rf+97pUT+4INVR9UeTNiSpEHVuUT+7LOlRH7++VVH1fpql7Bd/EOS2sMaa5SJVjbaCLbbzhL5rLj4R3P1vCiS1IIyyyQr++xTVv4691xYdtlef4yLf0iSNJAi4BvfgJtuskQ+MyZsSVJLWH31UiLfeONSIt9zT5g+veqoWocJW5LUMhZYAH7967JU5/e/X3qRP/BA1VG1BhO2JKmlRMDuu5de5M89B6uuWhYUGepM2JKkltS5RP6JT1giN2FLklpWR4n8u98tJfIDDqg6ouo4rKu5el4USWpj06bBkkvCoos2fbn2w7pM2M3V86JIUn3VPmFbEpckqQ2YsCVJagMmbEmS2oAJW5KkNmDCliSpDZiwJUlqAyZsSZLaQEsk7Ig4PyJeiIjfdNm/b0T8KSLuiYjPVxWfJElVa4mEDZwO7Nh5R0SsAuwArAasDuwSEQsMfmiSJFWvJRJ2Zk4FXu6yeyXgpsx8NTNfBe4ENh3s2CRJagW9TtgRMTYiLoqIxyMiI2KbJsfsGhEPRsSrETEtIsb0IbZ7gPERsUCjZb0hsEQfPkeSpH4TEVtFxLkRcXJEnBgRB0bEpIE+75x9eM8I4C7gp8B5XV+MiO2B04BdgRuBrwFTImLlzPx7T0+SmfdGxOnANZQ5wW8F3uju+IiYG5i70655e3ouSZJ6IiL2APYFRmXm8xGxIXAZ8OOBPnevW9iZOSUzD83M7pYT3xv4cWaelZn3ZeZE4BFgFyhfNiLubGxzzeJcP8jMVTNzPPAa8NeZHH4QJbF3bI/27ptJktS9iFgNOBX4WmY+39h9FzAcuHagz9+vz7AbCXg14IouL10BrAuQmadn5qjG9tosPm9k4+cKwJrA5TM5/Hhg/k7bkn36EpIkNXcM8DilRd1h3cbP6wb65H0pic/MwsAcwFNd9j8FLNbdmyLicmBVYEREPApsm5m3Ahc0nl//C/hiZnZbEs/M6cD0Tp/Z1+8gSdLbRMSCwARgcr59XeqxwF8y8/GBjqG/E3aHrutJR5N9bx2cuUk3+9dttl+SpEG2HKVBenOX/WNolMMjYpnMfGigAujvhP0s8CbvbE2P5J2t7gEREbsBuzF75X6b55Kkzl5q/PxP5+mIWIRSHf5e45HwHpR+XAOiX59hN55JT6OUDTqbANzUn+eaSQxnZObKlHHc8/PO8d2SJPXW/6MMN14GICJGUCb9Ggb8Dfg4cPVABtDrFnZEzEMpDXRYNiJGAc83hm1NAs6OiNsopYOvAksD35/9cHuu8YzhpVkeKEnSLGRmRsSngZMjYiVKJXZf4G5gP0rLe+JAxhBvf3begzdEjAOmNnlpcmbu3DhmV2B/YHHKXyR7ZeaA96CTJKmuep2wJUnS4GuJucQlSdLMmbAlSWoDJmxJktrAQE2cIklSy4qIlurAlZmznP/DTmeSJLUBS+KSJLUBS+KSpCEtIrYCPk+Z/GQG8AIwMjMHbJrRvjBhS5KGrIjYgzJj2ajMfD4iNqQsn/njaiN7JxN2F1HW5Zy36jgkSb32cvaiY1ZErAacCmyZmc83dt8FDKexAlcrMWG/07zAi1UHIUnqtfnp3RoSxwCPU1rUHTqWdb4OICLGA18GPgd8D3iEkjuXAD4DrA+sCRxKyR8nZOakiPgicFAjphMy89SIWJTyB8J44MjM/EFvvpy9xLtotLDvo/wP0Nm8wKPAkrTXCmC38M7v0srnmZ3P6c17e3psT46b1THNXvd+Gpzz1O1+6u4176eixy3siFgQeIayDsaXO+0/GfivzFy+075lgAeBZTuvdx0RmwJzZubFjYVBfgAs2li5koj4FPBDYLHMnN7Ytyyl/H5+b7+cLewuGiuyzMjMt/2VVvI4UG6ItlkFrNl3aeXzzM7n9Oa9PT22J8fN6hjvp+rOU7f7qbvXvJ/6ZDlgDsqqkp2NoVEOj4hlOifoDhGxIiXZXwXs2Nh9EeW596bAhY19CwEJbAZc0Ng3AfhZXwJ2WFdzZ1QdQD8arO/SX+eZnc/pzXt7emxPjpvVMd5P1Z2nbvdTne4lqPb7dPyh8PeOHRGxCLAqcH1EzAXs0c17xwPzZuYbmfkTgMx8hZKUP9vpuOHAb4EdOu/raIH3liXxHoqI+SjPtudvp79g1Zq8n9SfvJ96r/H4827gO5n5w4gYAZwFfArYAFiQUnS9pFNJ/CTgdeDrwOpdW98RsTnwa2AksDSwGKVhfBGwKPA+4H2Z2WyJ6lmyJN5z04FvNn5Ks8v7Sf3J+6mXGo8/Pw2cHBErAUEZ3nU3sB+l5T2xy9vOzMyHIuLOjh0RsUpm/rHx6xXAv4GtKZ3NftjY/yKwDfAuZmO4mC1sSZJmortOZ43X9sjM0zv9fialB/mUzDyzse90yjPzCzLzh/SRz7AlSeqDiFieUuru7BxgS+C2Lvs2Be6YnfNZEpckqRuNcdhfbPy6f0T8ndLYXRz4NHBgl7dcD1yRmbd27MjMmyNiSud9fYrFkrgkSa3PkrgkSW3AhC1JUhswYfeTiNgyIu6PiL9ExFeqjkftLSLOj4gXIuI3Vcei9hYRS0XE7yPi3oi4uzFdptqQz7D7QUTMCdxLmf3mJeB2YK1Oq79IvdLo6DIPsFNmfrLqeNS+ImJxyvzWd0bESMp/n1bIzH9VHJp6yRZ2/1gT+FNmPpaZLwOXAptUHJPaWGMmpHZaxEEtKjOfyMw7G/9+GnieMse12owJG4iIsRFxUUQ8HhEZEds0OWbXiHgwIl6NiGkRMabTy+8DHuv0+6OUgfMagvrhfpL+oz/vp4hYHRiWmY8MdNzqfybsYgRl0fLdm70YEdsDpwHHAqMp4+ymRMTSHYc0eZvPGoau2b2fpM765X6KiPcCPwe+OpDBauD4DLuLiEhg28y8oNO+PwC3Z+YunfbdR5lm7qCIWBfYLzO3bbz2beAPmfnLwY1eraYv91OnfeOA3X2GrQ59vZ8iYm7gSuBHmXn24Eat/mILexYaS6ytRpnUvbMrgHUb/74F+EhELBER8wKbA5cPXpRqFz28n6Qe6cn91FiV6mfANSbr9ubUpLO2MGWR86e67H+KsnQamflGROwDTKX8EXRSZj43qFGqXczyfgKIiMsp6/KOiIhHKa2q2ZrWULXUk/tpPWB74O5Oz7+/0GmFKbUJE3bPdX12EJ33ZeaFwIWDGpHa2azuJ0cZqDe6vZ8y8wasptaC/yPO2rPAm3Rq/TSM5J1/1Uqz4v2k/uT9NISYsGchM18DpgETurw0Abhp8CNSO/N+Un/yfhpaLIkDETEPZXHxDstGxCjg+cz8OzAJODsibgNupgyLWBr4/mDHqtbn/aT+5P2kDg7r4j/DZ6Y2eWlyZu7cOGZXYH/KGqj3AHtl5nWDFKLaiPeT+pP3kzqYsCVJagM+w5YkqQ2YsCVJagMmbEmS2oAJW5KkNmDCliSpDZiwJUlqAyZsSZLagAlbkqQ2YMKWJKkNmLAlSWoDJmxJktqACVuSpDbw/wEy87Tdc/UpdgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "Graphics object consisting of 1 graphics primitive"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.set_aspect_ratio(.5)\n",
    "plt.set_axes_range(ymax=1e-15,ymin=1e-19)\n",
    "plt.axes_labels([r\"$\\frac{a}{a_{\\mathrm{EW}}}  $\",r\"$y$\"])\n",
    "plt.axes_labels_size(2)\n",
    "show(plt,title=\"Figure 5\")\n",
    "plt.save('plots/adiabaticbound.pdf',dpi=600)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "downtown-housing",
   "metadata": {},
   "source": [
    "### 6.4 Temperature after $a_{\\mathrm{EW}}$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "narrow-tolerance",
   "metadata": {},
   "source": [
    "CGF temperature  $\\qquad k_{\\mathrm{B}} T_{\\mathrm{CGF}} = \\frac{\\hbar}{4 K' \\alpha a}= \\frac{m_{\\mathrm{Higgs}}}{4 K' \\alpha \\hat a}$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "painful-sterling",
   "metadata": {},
   "source": [
    "redshifted to the present $\\qquad k_{\\mathrm{B}} T_{\\mathrm{rs}}=\\frac{a}{a_0} k_B T_{\\mathrm{CGF}} = \\frac{m_{\\mathrm{Higgs}}}{4 K' \\alpha \\hat a_0}$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "blond-construction",
   "metadata": {},
   "source": [
    "use numbers from the Arithmetic notebook and from above"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "super-column",
   "metadata": {},
   "outputs": [],
   "source": [
    "T_CMB = mpf(2.7255) # K\n",
    "K_EW_mpf = mp.ellipk(1/2)\n",
    "m_Higgs_mpf= mpf(125.1)    # GeV\n",
    "kB_mpf = mpf(8.61733326214518e-14)  # GeV/K\n",
    "ahat0_mpf = mpf(2.6592893046343716e18)   # s\n",
    "ahat_EW_mpf = mpf(0.5854143283037644)   # s\n",
    "lambda_mpf = mpf(lambdaH_val)\n",
    "gsq_mpf = mpf(gsq_val)      # g^2"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "broad-tiffany",
   "metadata": {},
   "source": [
    "define functions in mpmath"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "little-homework",
   "metadata": {},
   "outputs": [],
   "source": [
    "def kT_CGF(ma):\n",
    "    m=mpf(ma)\n",
    "    K = mp.ellipk(m)\n",
    "    Kp = mp.ellipk(1-m)\n",
    "    E = mp.ellipe(m) \n",
    "    EoverK = E/K\n",
    "    alpha = mp.power( (K/K_EW_mpf)*2*(1-m+(2*m-1)*EoverK) ,1/3)\n",
    "    ahatsq = ((3/2)*(m-1+EoverK)+(4*lambda_mpf^2/gsq_mpf)*(1-2*m))/alpha^2\n",
    "    ahat = mp.sqrt(ahatsq)\n",
    "    return m_Higgs_mpf/(4*Kp*alpha*ahat)\n",
    "def T_rs(ma):\n",
    "    m=mpf(ma)\n",
    "    K = mp.ellipk(m)\n",
    "    Kp = mp.ellipk(1-m)\n",
    "    E = mp.ellipe(m) \n",
    "    EoverK = E/K\n",
    "    alpha = mp.power( (K/K_EW_mpf)*2*(1-m+(2*m-1)*EoverK) ,1/3)\n",
    "    return m_Higgs_mpf/(4*Kp*alpha*ahat0_mpf*kB_mpf)\n",
    "def ahat_over_ahat0_mp(ma):\n",
    "    m=mpf(ma)\n",
    "    K = mp.ellipk(m)\n",
    "    E = mp.ellipe(m) \n",
    "    EoverK = E/K\n",
    "    alpha = mp.power( (K/K_EW_mpf)*2*(1-m+(2*m-1)*EoverK) ,1/3)\n",
    "    ahatsq = ((3/2)*(m-1+EoverK)+(4*lambda_mpf^2/gsq_mpf)*(1-2*m))/alpha^2\n",
    "    ahat = mp.sqrt(ahatsq)\n",
    "    return ahat/ahat_EW_mpf\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "sunset-publication",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "Graphics object consisting of 4 graphics primitives"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt=parametric_plot((ahat_over_ahat0_mp,kT_CGF),(m,1e-21,0.5),scale=\"semilogx\")\n",
    "plt.set_aspect_ratio(.1)\n",
    "plt.set_axes_range(ymin=0,ymax=30,xmin=1,xmax=1e7)\n",
    "yaxis_label = Graphics()+text(r\"$ k_\\mathrm{B} T_{\\mathrm{CGF}}$\",(-0.15,0.80),axis_coords=True,fontsize=12,color='black')\n",
    "yaxis_label += text(r\"$ (\\mathrm{GeV})$\",(-0.15,0.70),axis_coords=True,fontsize=11,color='black')\n",
    "xaxis_label = Graphics()+text(r\"$\\frac{a}{a_{\\mathrm{EW}}}  $\",(1.05,-0.04),axis_coords=True,fontsize=18,color='black')\n",
    "plt2 =  plt+yaxis_label+xaxis_label\n",
    "plt.axes_labels_size(2)\n",
    "show(plt2,title=\"Figure 6\",figsize=[8,20],ymax=30,xmin=1)\n",
    "plt2.save('plots/kT_after_a_EW.pdf',figsize=[8,20],ymax=30,xmin=1,dpi=600)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "furnished-software",
   "metadata": {},
   "source": [
    "Solve $T_{\\mathrm{rs}}(k^2) = T_{\\mathrm{CMB}}$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "united-dominican",
   "metadata": {},
   "outputs": [],
   "source": [
    "m_dc=mp.findroot(lambda ma: T_rs(ma)-T_CMB,1e-17,solver='anewton')\n",
    "T_rs_dc=T_rs(m_dc)\n",
    "ahatnorm_dc = ahat_over_ahat0_mp(m_dc)\n",
    "kT_dc = kT_CGF(m_dc)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "fifteen-capital",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}k^2 =   5.1168 \\times 10^{-18} \\qquad \\frac{a}{a_0} k_B T_{\\mathrm{CGF}} =  2.7255 \\,\\mathrm{K} \\qquad \\frac{a}{a_0} =   1.1305 \\times 10^{6} \\qquad k_B T_{\\mathrm{CGF}} =   0.94371 \\,\\mathrm{GeV}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}k^2 =   5.1168 \\times 10^{-18} \\qquad \\frac{a}{a_0} k_B T_{\\mathrm{CGF}} =  2.7255 \\,\\mathrm{K} \\qquad \\frac{a}{a_0} =   1.1305 \\times 10^{6} \\qquad k_B T_{\\mathrm{CGF}} =   0.94371 \\,\\mathrm{GeV}$$"
      ],
      "text/plain": [
       "k^2 =   5.1168e-18 \\qquad \\frac{a}{a_0} k_B T_{\\mathrm{CGF}} =  2.7255 \\,\\mathrm{K} \\qquad \\frac{a}{a_0} =   1.1305e6 \\qquad k_B T_{\\mathrm{CGF}} =   0.94371 \\,\\mathrm{GeV}"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pretty_print(\\\n",
    "    LE(r\"k^2 =  \"), RDF(m_dc).n(prec=20),\\\n",
    "    LE(r\"\\qquad \\frac{a}{a_0} k_B T_{\\mathrm{CGF}} = \"),RDF(T_rs_dc).n(prec=20),LE(r\"\\,\\mathrm{K}\"),\\\n",
    "    LE(r\"\\qquad \\frac{a}{a_0} =  \"),RDF(ahatnorm_dc).n(prec=20),\\\n",
    "    LE(r\"\\qquad k_B T_{\\mathrm{CGF}} =  \"),RDF(kT_dc).n(prec=20),LE(r\"\\,\\mathrm{GeV}\"))\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "SageMath 9.4",
   "language": "sage",
   "name": "sagemath"
  },
  "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.9.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
