RoundCube Webmail
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

223 lines
16 KiB

Check if attachment is actually(!) referred to (#9585) * Check if "inline" msg part is actually referred to If there's no reference to it in a sibling HTML part then we handle it as a classic attachment (which is shown as downloadable). * Fetch all msg headers also for images to always get Content-Location Previously all headers were only fetched for message/rfc822, or if the Content-Type's "name" parameter was set, or if a Content-ID was set. The RFC doesn't require neither the "name" parameter nor a Content-ID for using Content-Location, though, so we shouldn't depend on those. Instead now all headers are also fetched if the main part of the Content-Type is "image", to catch more cases. * Parse HTML for references only on demand * Typos and comment formatting * Don't skip test anymore We want it tested! * More MR tests with images * Remove early special handling for "inline" images We decide later, which attachment is considered "inline" and which isn't. * Remove early resolving of references in TNEF parts * Testing message rendering of TNEF emails * Don't use image disposition, it's unreliable * Split adding raw parts and attachments * Fix renaming variable * Rename file to make its test be run * Remove outdated script * Annotate test cases with GitHub issue numbers * Fix test case class name * remove comment * Test inline image message rendering * Rename test file to reflect cases better * Reduce image used in test email It doesn't change much, but there's also no sense in decoding big images that we don't use. * Remove unused variable initialisation
6 months ago
  1. MIME-Version: 1.0
  2. From: <xxx@gmail.com>
  3. Date: Wed, 31 Jul 2024 14:33:10 +0300
  4. Message-ID: <yyy@mail.gmail.com>
  5. Subject: test
  6. To: <aaa@bbb.cc>
  7. Content-Type: multipart/mixed; boundary="00000000000038e013061e89768d"
  8. --00000000000038e013061e89768d
  9. Content-Type: text/plain; charset="UTF-8"
  10. --00000000000038e013061e89768d
  11. Content-Type: image/jpeg; name="=?UTF-8?B?0YLQtdGB0YIuanBn?="
  12. Content-Disposition: attachment; filename="=?UTF-8?B?0YLQtdGB0YIuanBn?="
  13. Content-Transfer-Encoding: base64
  14. Content-ID: <f_lz9rq1g10>
  15. X-Attachment-Id: f_lz9rq1g10
  16. /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
  17. HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
  18. MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAG4AcoDASIA
  19. AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
  20. AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
  21. ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
  22. p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
  23. AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
  24. BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
  25. U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
  26. uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDzaiii
  27. tDIKKKKACiiigAooooAKKKKACiiigAr6W+FX/JNdI/7bf+jnr5pr6W+FX/JNdI/7bf8Ao56mRUdz
  28. sqKKKksqan/yD5fw/mKt0yaJZoWjbowxVZXvYVCGBZscBw4XP50wLlFVPtF5/wA+P/kUUfaLz/nx
  29. /wDIopWAt0VU+0Xn/Pj/AORRR9ovP+fH/wAiiiwFuiqn2i8/58f/ACKKPtF5/wA+P/kUUWAt0VU+
  30. 0Xn/AD4/+RRR9ovP+fH/AMiiiwFuiqn2i8/58f8AyKKPtF5/z4/+RRRYC3RVT7Ref8+P/kUUfaLz
  31. /nx/8iiiwFuiqn2i8/58f/Ioo+0Xn/Pj/wCRRRYC3RVT7Ref8+P/AJFFH2i8/wCfH/yKKLAW6Kqf
  32. aLz/AJ8f/Ioo+0Xn/Pj/AORRRYC3RVT7Ref8+P8A5FFH2i8/58f/ACKKLAW6KqfaLz/nx/8AIoo+
  33. 0Xn/AD4/+RRRYC3RVT7Ref8APj/5FFH2i8/58f8AyKKLAW6KqfaLz/nx/wDIoo+0Xn/Pj/5FFFgL
  34. dFVPtF5/z4/+RRR9ovP+fH/yKKLAW6KqfaLz/nx/8iij7Ref8+P/AJFFFgLdFVPtF5/z4/8AkUUf
  35. aLz/AJ8f/IoosBboqp9ovP8Anx/8iij7Ref8+P8A5FFFgLdFVPtF5/z4/wDkUUfaLz/nx/8AIoos
  36. Bboqp9ovP+fH/wAiij7Ref8APj/5FFFgLdFVPtF5/wA+P/kUUfaLz/nx/wDIoosB8hUUUVoZBRRR
  37. QAUUUUAFFFFABRRRQAUUUUAFfS3wq/5JrpH/AG2/9HPXzTX0t8Kv+Sa6R/22/wDRz1Mio7nZUUUV
  38. JYUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA
  39. BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB8b0UUVoZBRRRQAUUUUAFFFFABRRRQAUUUUAFfS
  40. 3wq/5JrpH/bb/wBHPXzTX0t8Kv8Akmukf9tv/Rz1Mio7nZUUUVJYUUUUAFFFFABRRRQAUUUUAFFF
  41. FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
  42. AFFFFABRRRQB8b0UUVoZBRRRQAUUUUAFFFFABRRRQAUUUUAFfS3wq/5JrpH/AG2/9HPXzTX0t8Kv
  43. +Sa6R/22/wDRz1Mio7nZUUUVJYUUVl3HiLSbaUxS3qbxwQqs2PxANVCEpu0VcidWFNXm0vU1KKx/
  44. +Eq0X/n9/wDIT/4Uf8JVov8Az+/+Qn/wrT6vW/kf3My+t4f/AJ+L70bFFY//AAlWi/8AP7/5Cf8A
  45. wo/4SrRf+f3/AMhP/hR9XrfyP7mH1vD/APPxfejYorH/AOEq0X/n9/8AIT/4Uf8ACVaL/wA/v/kJ
  46. /wDCj6vW/kf3MPreH/5+L70bFFY//CVaL/z+/wDkJ/8ACj/hKtF/5/f/ACE/+FH1et/I/uYfW8P/
  47. AM/F96Niisf/AISrRf8An9/8hP8A4Uf8JVov/P7/AOQn/wAKPq9b+R/cw+t4f/n4vvRsUVj/APCV
  48. aL/z+/8AkJ/8KP8AhKtF/wCf3/yE/wDhR9XrfyP7mH1vD/8APxfejYorH/4SrRf+f3/yE/8AhR/w
  49. lWi/8/v/AJCf/Cj6vW/kf3MPreH/AOfi+9GxRWP/AMJVov8Az+/+Qn/wo/4SrRf+f3/yE/8AhR9X
  50. rfyP7mH1vD/8/F96Niisf/hKtF/5/f8AyE/+FH/CVaL/AM/v/kJ/8KPq9b+R/cw+t4f/AJ+L70bF
  51. FY//AAlWi/8AP7/5Cf8Awo/4SrRf+f3/AMhP/hR9XrfyP7mH1vD/APPxfejYorH/AOEq0X/n9/8A
  52. IT/4Uf8ACVaL/wA/v/kJ/wDCj6vW/kf3MPreH/5+L70bFFY//CVaL/z+/wDkJ/8ACj/hKtF/5/f/
  53. ACE/+FH1et/I/uYfW8P/AM/F96Niisf/AISrRf8An9/8hP8A4Uf8JVov/P7/AOQn/wAKPq9b+R/c
  54. w+t4f/n4vvRsUVj/APCVaL/z+/8AkJ/8KB4p0Un/AI/f/IT/AOFH1et/I/uYfW8P/wA/F96Niior
  55. e4huoRNBKskZ6MpyKlrJpp2ZummroKKKKQwooooAKKKKACiiigAooooA+N6KKK0MgooooAKKKKAC
  56. iiigAooooAKKKKACvpb4Vf8AJNdI/wC23/o56+aa+lvhV/yTXSP+23/o56mRUdzsqKKKksy/EVxJ
  57. baBdyxMVfaFBHbJA/rXmNeleKv8AkW7v/gH/AKGtea172VJeyb8/0R8vnbft4ry/VhRRRXpnjBRR
  58. RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB1Xge4kGoX
  59. FvuPltFvx7ggf1ruK4LwR/yGpv8Ar3b/ANCWu9r53Mlau/kfW5Q28Kr92FFFFcB6gUUUUAFFFFAB
  60. RRRQAUUUUAfG9FFFaGQUUUUAFFFFABRRRQAUUUUAFFFFABX0t8Kv+Sa6R/22/wDRz18019LfCr/k
  61. mukf9tv/AEc9TIqO52VFFFSWY/ir/kW7v/gH/oa15rXpXir/AJFu7/4B/wChrXmte/lf8F+v6I+W
  62. zv8A3hen6sKKKK9I8cKKlt7ea6mEUETSSHoqjNddpXgxV2y6k249fJQ8fif8KwrYmnRV5s6cPhKu
  63. Idqa+fQ5nT9KvNUl2W0RYD7znhV+prsrDwnY2UDPef6TJtOc8Kv0H9aty3oFwuk6UiLIo/eOq/JA
  64. v9T7VPqZFjoFztZjshYBmOSSeMk/U15NfF1ajUV7qfTqe9hcBQo3lL3nHd9PRHl7Y3HaMDPApKK0
  65. 9B01dU1WOCTPlKC8mPQdv5V7U5qEXJ7I+bhCVSajHdmfHDLLny43fHXapNNIKkgggjsa37/xLdJc
  66. tBpzLbWsRKosaDnHc1ahceJ9JuRcIn9oWq71lUYLj0P5Vg684pTnGy9dV6nUsNTnJ06cry9NHbs7
  67. /ocrRW1aeG7i8hikjvbEGQAhGlO76Yx1pbrwzcWkMskl7YkxKWKCU7uOwGOtX9YpX5b6mawlZx5u
  68. XQxKK2rfwzdXFlDdfarOKOUZXzZCp/lTbzw7c2Vi94bm1liQgHynLHJOPT3p/WKV+W+ovqlbl5uX
  69. S1/kY9FaNnol3f2L3VuEcLII9mTuJOPbGOfWrM/he/htnmVoJhGMukUm5l/DFDr00+Vy1FHC1pR5
  70. oxdjFoq1Y6fNqEzRwlF2ruZpGChR9auXPh+6gs3ukmtrmJPvm3k3bfrxVSqwjLlb1JjQqTjzRWhk
  71. 0VoaZpE2q+d5UsMYhXc7SsQAPyNS3egXVrZG8Wa2uIFOGeCTcB+lJ1qalyN6jjh6soc6joZVFXF0
  72. 2ZtJbUQ0fkrJ5ZXJ3Z/LHf1qWy0W7vrG4vI9iwwgklyRuwMnHFN1YJXb8hRo1JNJLV6/IzqK17Lw
  73. 9PfW0c0d5ZJ5nRJJSG646Yqafwtc2yuZL2wDIMlfNOfyxUPEUk+VvU0jhK0o8yjoYVFXTpky6Sup
  74. Fo/JaTywuTuz+WP1qlWsZKWxhKEo25lvqFFFFUSdL4I/5DU3/Xu3/oS13tcF4I/5DU3/AF7t/wCh
  75. LXe187mX8d+iPrcn/wB1XqwooorgPUCiiigAooooAKKKKACiiigD43ooorQyCiiigAooooAKKKKA
  76. CiiigAooooAK+lvhV/yTXSP+23/o56+aa+lvhV/yTXSP+23/AKOepkVHc7KiiipLMfxV/wAi3d/8
  77. A/8AQ1rzWvSvFX/It3f/AAD/ANDWvNa9/K/4L9f0R8tnf+8L0/VhV7SLO3vtQSC6uBBERksSBn2y
  78. ao0V6Ek3FpOx5MGoyTauesWOn2mnQeXaxKinq3Ut9T3rA1fxBLc3I0vRzvmc7WlXt64/xrkItRvY
  79. bZ7eO6lWFxgoG4x/Su38LaVDZacl4xDTTpuLH+FfSvFqYdYa9Wq+Z9P+CfRUcZLF2oUFyLr5LyNL
  80. SNLi0qzEKHdI3zSSd2aqHjCbytBdM8yuq/1/pWzBcwXUfmQTJKnqjAiuV8czYis4PVmc/hgf1Nc2
  81. GUqmJjzb3ud2LcKODkobWt9+hxldF4MlVNZeNjgyQsq/XIP9K52nwzSW8yTROUkQ5Vh2NfQVqftK
  82. bh3Pk8PV9lVjU7MdcRPBcyxSAh0YqQfY10XhEeRHqN4/EUcOCT69f6VXl1rTdQIl1LTC1wBgyQyF
  83. d31FV7/XPtFmLGztltLMHJRTkufc1hU9pVh7Nxtfd6W+R10nRoVfbKd0tlrfyv0/Eg0P/kO2X/XZ
  84. f50/xD/yH73/AK6f0qpY3X2K+gudm/ynDbc4zj3pdQu/t+oTXWzZ5rbtuc4/GteR+25ulrfic6qR
  85. +ruHXmv+DNnWP+RW0f8A4FRa/wDIjX3/AF8L/wCy1nXmq/a9Ks7Lydn2bPz7s7s+2OKItU8rQp9N
  86. 8nPmyB/M3dOnGMe3rWKpT5Erfav8r3Oj29P2nNfTkt8+W35mpYSvF4Iv2jcq3ngZBwcHaDUXg5nG
  87. ubVJ2GJt47Y//XVnSbn7L4PvZvKjlAnAKSDKsDtBFUTr8UFtLFp2nR2byjDyCQu2PbPSs+WU1UhG
  88. O73+SNVKEHRqSlblV7a66vbp99hlnpUd7NfXEk3k2VuxLOBkkZOABWrpR0/+x9ZFiLnHkfMZyvPD
  89. YwBWLpOsNpizRPAlxbzDEkTHGfxq5B4kjtzJFFpkCWciFXhVjls9y3WqrU60rxtdaW1XT9ScPVoQ
  90. 5Zt2et9HfW9rdLfiTeFfL+zar5u7y/s/zbeuOc496kKwP4Xuk0dnZAwe5E/+sx7Y4xxWZpesRadJ
  91. ef6F5kNyNvl+aV2rzxnGT1qWXXoY9PmtNP05LRZxiRvMLkj8aU6VR1XJLqn0tp36jpV6UaKjKS0U
  92. ls767W0sXdOtJb7wibaEZeS8AHtwMmr9vdRGDU9PtT/otpaMin++3O5vzrBsfEEun6NNYQxYeRiR
  93. Nv8Au5AHTHt61W03U/7PivE8nzPtERjzuxt9+nNKeHqS5rrrdfhqVSxdKHs7PW1n+On37/Ig07/k
  94. J2n/AF2T+YrQ8Vf8jFdf8B/9BFZdtN9nuoptu7y3D4zjODmp9Vv/AO09Rlu/K8vfj5d2cYAHX8K6
  95. 3B+2Uuln+aOGNSKw8odW0/wZv232L/hC4vt3n+T9oP8AqMbs8+vasvV9Ihs7W2vbSZpbW4+7vGGU
  96. +9PtNbtodJXT7rTvtMauXz5xTn8BVfVNYk1JIYVhSC2hGI4k7fjXPTp1Y1Hba77Wt+Z01atCVFJt
  97. NqKS0d7/AJWM2iiiu4806XwR/wAhqb/r3b/0Ja72uC8Ef8hqb/r3b/0Ja72vncy/jv0R9bk/+6r1
  98. YUUUVwHqBRRRQAUUUUAFFFFABRRRQB8b0UUVoZBRRRQAUUUUAFFFFABRRRQAUUUUAFfS3wq/5Jrp
  99. H/bb/wBHPXzTX0t8Kv8Akmukf9tv/Rz1Mio7nZUUUVJZj+Kv+Rbu/wDgH/oa15rXpXir/kW7v/gH
  100. /oa15rXv5X/Bfr+iPls7/wB4Xp+rCiiivSPHCty48RyyaHDpsMZi2oEkfd94DsPSsOis504zacls
  101. a0606V+R2urEtvcz2sokt5Xicd0OKlvtRutSkWS7lMjKu0HAGB+FVaKrkjfmtqSpyUeVPTsFFFFU
  102. QFFFFABRRRQAUUUUASC4mWBoFmkELHLRhjtJ9SKjoopWSG23uFFFFMQUUUUAFFFFABRRRQAUUUUA
  103. FFFFAHS+CP8AkNTf9e7f+hLXe1wXgj/kNTf9e7f+hLXe187mX8d+iPrcn/3VerCiiiuA9QKKKKAC
  104. iiigAooooAKKKKAPjeiiitDIKKKKACiiigAooooAKKKKACiiigAr6W+FX/JNdI/7bf8Ao56+aa+l
  105. vhV/yTXSP+23/o56mRUdzsqKKKksyfE0bS+HbxUGSFVvwDAn9BXmdewkBgQQCDwQawLjwdpc8pdf
  106. PhzztjYY/UGvTwOMhRi4T9Txszy+piJqpT7WPPaK73/hCNN/573f/fa//E0f8IRpv/Pe7/77X/4m
  107. u/8AtKh5/ceX/Y+K7L7zgqK73/hCNN/573f/AH2v/wATR/whGm/897v/AL7X/wCJo/tKh5/cH9j4
  108. rsvvOCorvf8AhCNN/wCe93/32v8A8TR/whGm/wDPe7/77X/4mj+0qHn9wf2Piuy+84Kiu9/4QjTf
  109. +e93/wB9r/8AE0f8IRpv/Pe7/wC+1/8AiaP7Soef3B/Y+K7L7zgqK73/AIQjTf8Anvd/99r/APE0
  110. f8IRpv8Az3u/++1/+Jo/tKh5/cH9j4rsvvOCorvf+EI03/nvd/8Afa//ABNH/CEab/z3u/8Avtf/
  111. AImj+0qHn9wf2Piuy+84Kiu9/wCEI03/AJ73f/fa/wDxNH/CEab/AM97v/vtf/iaP7Soef3B/Y+K
  112. 7L7zgqK73/hCNN/573f/AH2v/wATR/whGm/897v/AL7X/wCJo/tKh5/cH9j4rsvvOCorvf8AhCNN
  113. /wCe93/32v8A8TR/whGm/wDPe7/77X/4mj+0qHn9wf2Piuy+84Kiu9/4QjTf+e93/wB9r/8AE0f8
  114. IRpv/Pe7/wC+1/8AiaP7Soef3B/Y+K7L7zgqK73/AIQjTf8Anvd/99r/APE0f8IRpv8Az3u/++1/
  115. +Jo/tKh5/cH9j4rsvvOCorvf+EI03/nvd/8Afa//ABNH/CEab/z3u/8Avtf/AImj+0qHn9wf2Piu
  116. y+84Kiu9/wCEI03/AJ73f/fa/wDxNH/CEab/AM97v/vtf/iaP7Soef3B/Y+K7L7zgqK73/hCNN/5
  117. 73f/AH2v/wATSjwTpuf9ddn/AIGv/wATR/aVDz+4P7HxXZfeZHgeNjqtxIB8iwFSfcsMfyNd3VWw
  118. 0+20238m1j2LnJPUsfUmrVeNiqyrVXNbH0WBwzw9FU5PUKKKK5jrCiiigAooooAKKKKACiiigD43
  119. ooorQyCiiigAooooAKKKKACiiigAooooAK+lvhV/yTXSP+23/o56+aa+lvhV/wAk10j/ALbf+jnq
  120. ZFR3OyoooqSwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
  121. ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD43pVUswVQSxOAB1NJXffCLRItW8Z
  122. LPOgeKxjM+COC+QF/U5/CtUrsxbOu8EfCG1jtYtQ8SRmWdwGSzyQsY/28dT7dPrXVeK9U0DwJoPn
  123. JpVn5sh2W9tHCq7298DoO5/xrsq+fvjTeSz+M4rVifKt7Vdg7ZYkk/y/KspSbaRrGKSucHqmoS6r
  124. qc99NHDHJM24pCgRF9gBVSiirStoZt31CiiimAUUUUAFFFFABX0t8Kv+Sa6R/wBtv/Rz18019LfC
  125. r/kmukf9tv8A0c9TIqO52VFFFSWFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
  126. FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfG9eqfA25jj8Q
  127. albMQHltgy++1uf515XWp4c1y48Oa9a6pbctC3zJnh1PDL+IrWO5iz60rxz41eGZ5XtvENtGXjRP
  128. Iudo+6M5VvpyR+VepaHrlh4h0uLUNPmEkLjkfxI3dWHYir8kaTRNFKivG4KsrDIIPYispJp+hsmm
  129. j45or37WfgvoWoXLT2FzPpxY5MaAPGPoDyPzryPxjoWl+HdWXTtP1RtQkjU/aG2BVRv7owTk+vpV
  130. KSIcWjnaKKKokKKKKACiiigAr6W+FX/JNdI/7bf+jnr5pr6W+FX/ACTXSP8Att/6OepkVHc7Kiii
  131. pLCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
  132. AKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPjeiiitDI09F8Qar4eu/tOl3slvIfvBTlXHoyn
  133. g/jXeW/xw16OILPp+nzOP4wHXP1Ga8woo3BaHa658VPE+twvb/aI7KB+GS0UqSPQsST+RFcV1oop
  134. JJA22FFFFMAooooAKKKKACvpb4Vf8k10j/tt/wCjnr5pr6W+FX/JNdI/7bf+jnqZFR3OyoooqSwo
  135. oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
  136. igAooooAKKKKACiiigAooooAKKKKACiiigD43orudE8Ox6r8MNVvLbTXutUjvUSJoUZ5Any5AA7c
  137. mpdM8KtbfD7xJfavo89veQGL7NJcwtGwBbDbc4zVvS/l/wAD/MySvbzOBorutM8Npqfwsur6z0yS
  138. 61RdREavDGzyCPaCRgduaq+AdDiu/Htppms2DFCsnmQToVPCEjI4NO2tv62uJ7X/AK3scpbCFrqJ
  139. bhmSAuBIyDJC55IHriuru/B+m2EF3fTeJNOmsVjZrQW0oeeZv4VKfw++elWPBWj6fqPizWLW8tUm
  140. ghtbh40bOFZSMH8K1Phl4P03UCuoa7CssN0zQWVu+f3jKCzvx2AGPqaV7xv5XKtZ/O33HmdFS3Kh
  141. LqZVGFV2AHtmuw+GukaZrGq6nFqkAlgi0+SUZGShBHzD3AzQndXBqzscVRXpnhy98IeI9Wi8N/8A
  142. CMJbQXAaOC984mcMASGY+px06fUV59qli+l6teWDtua2meIn12kjP6UX1C2lypRRRTEFfS3wq/5J
  143. rpH/AG2/9HPXzTX0t8Kv+Sa6R/22/wDRz1Mio7nZUUUVJYUUUUAFFFFABRRRQAUUUUAFFFFABRRR
  144. QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA
  145. BRRRQB866Hra6b8KNXhttTFrqLXyNGkdxsmK/LkgA5x1qTSfEUl58OPFFvqustPdSGEW8V1dbnYb
  146. udgY5PvivPaKt638/wDgf5GadreR6b4UuBN8MrrTrPxFY6TqTah5itPffZ22BVzyOcf4VvxeJNH/
  147. AOEz8KxT6za3VxYW0qXmpM4WN2KcDecZ5zz7+teJ0U3vf+trC6W/re56F8PL3ToPHWqvfX1vbWs1
  148. vOgmllVFO5h0JOCcVe0LxVYXXxQsHE8NlomnwyW1p5zhEVAhG4k8ZY8/lXl9FJKyS7K35/5jbvfz
  149. f9fkS3RDXczKQQZGII7813vwkVH1nWFkfy4zpcoZ8Z2jK5OO9ee1v+FfEx8MXN9MLQXH2q0e2wZN
  150. m3dj5uhz06UJWi15P8gbvK/n+p1XhfQLDwtrUfiLUvEGlTWFoGkhFrPvknbBAATqDzyO361ytnbw
  151. +LfFly15qVtpiXUkk7T3DAIpJJxkkfSsCijqK+hctbKK41mKxe8ihiecRG5cjYozjeeenfrT9Z0+
  152. HS9XuLKC+hvoomAW5hIKPwDkYJ9fWqFFAGv4h0a20W7ghtdWtdSWSESNJbMCEJJ+U4J5GP1r3/4V
  153. f8k10j/tt/6Oevmmvpb4Vf8AJNdI/wC23/o56TKjudlRRRUlhRRRQAUUUUAFFFFABRRRQAUUUUAF
  154. FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU
  155. UUAFFFFAHxvRRRWhkFFFFABRRRQAUUUUAFFFFABRRRQAV9LfCr/kmukf9tv/AEc9fNNfS3wq/wCS
  156. a6R/22/9HPUyKjudlRRRUlhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
  157. UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHxvRRRWhkFFFFABRRR
  158. QAUUUUAFFFFABRRRQAV9LfCr/kmukf8Abb/0c9fNNfS3wq/5JrpH/bb/ANHPUyKjudlRRRUlhRRR
  159. QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA
  160. BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHxvRRRWhkbPh7wtq/ii7NvpdqZNv+slY7Uj+p/p1rvY/
  161. gXqpgzJrFmsuPuqjFc/Xj+Vdb4C8WeE7LwTGsNzFZG0j3XUUpAkZ8csP72T0x7CsCX4641EiLRN1
  162. iGwC02JCPXpgfT9aUt+VDitOZnn3ibwPrnhRg2oW6tbscLcwndGT6Z6g/UCucr64KWXiTQFEsXmW
  163. V9AG2SDnawyPoea+U9Vsv7N1i9sd277PO8W712sRn9KlNp8rG0rcyKdFFFWSFFFFABRRRQAV9LfC
  164. r/kmukf9tv8A0c9fNNfS3wq/5JrpH/bb/wBHPUyKjudlRRRUlhRRRQAUUUUAFFFFABRRRQAUUUUA
  165. FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU
  166. UUUAFFFFAHxvRRRWhkFe3+BfhNZxWlvqniBftE8iiRLQ/cjB5G7+8fbp9a8RBwQfSvoK38aeMDoC
  167. X6+B2aIRBg4vAGIx94R7d2Pahu0bgleVjb8W+OdI8IWTI8qSX2z9zaR9c443Y+6v1/Cvma5uJLu7
  168. muZm3SzO0jn1JOTS3l1Ne3k11OxaaZy7knJJJzUNRFdXuVKXRbBRRRVkhRRRQAUUUUAFfS3wq/5J
  169. rpH/AG2/9HPXzTX0t8Kv+Sa6R/22/wDRz1Mio7nZUUUVJYUUUUAFFFFABRRRQAUUUUAFFFFABRRR
  170. QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA
  171. BRRRQB8b0UUVoZE1pKkF7BNInmJHIrMn94A5Ir6ji8a+G30camNXtFt9m4gyAOOPu7eufbFfK1FD
  172. 1VgWjuXNWuor3WL26gj8uGad5ET+6pYkCqdFFJKysDd3cKKKKYBRRRQAUUUUAFfS3wq/5JrpH/bb
  173. /wBHPXzTX0t8Kv8Akmukf9tv/Rz1Mio7nZUUUVJYUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
  174. AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB
  175. 8b0V2Vr8L/E11EzCC3jfLBIZZ1V5MHGVHpx1OK5gaZfHVP7MFrKb7zPK8gL82/OMYq07uxk1ZXKl
  176. Fdi/wy8RKjqospbtF3PZx3SNMo/3c1h6J4d1HxBqx0yxiX7UFZikrbMbeuc96AsZVFdndfC/xHaW
  177. k1zKtn5cKGRsXSk4AyeKo6d4D1/VbGyvLS2je3u95SQyABQpwxbP3RQFmc1RXQeIfBmseGYYZ76K
  178. J7aY4S4gkDoT6ZHQ1LpPgbVtWsIb1JLG2t5yRC11dJGZMHBwOvUY6ULUGrHNUVoa1ol/4f1OTT9S
  179. g8q4QA4yCCD0II6is+hO4NWCiiimAV9LfCr/AJJrpH/bb/0c9fNNfS3wq/5JrpH/AG2/9HPUyKju
  180. dlRRRUlhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
  181. AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHy9d3d9P8SZJkmlkuxqe2NixJ4kwB9O1e
  182. mWy2jfHrUTGEMy2ZKf8AXXYufxxmuN1H4g3Nh4gv5E0bR5NQhuJEiv3t/wB6AGIBODgkDvXGw63q
  183. UGtjWY7uQagJTL53cseuf8KcNYxXk/xREtJSf9aM0PDk18PHmnSq0n21r9N553El/mz+ua9I0lIE
  184. +PGsC3wE8iQtjpuKKW/XNcefiVdrO97b6Ho0GquDuv47c+Zk9WAJwG96w9C8U6hoOuSavAIri7lV
  185. 1c3ILBt3UnBBz+NPpbyf4iur381+BjSf61/9416Fr9zPF8G/DMMcrpFLPN5iqcB8M2M+teeMdzEn
  186. uc16lNrz6L8KfDOLSzvYZpZlmtruPejAMSD6gjsRTfwfNAn7/wB5Q0l2b4I64tySYlvYxbbuzZTO
  187. P1/Ws6fwzo2g6Rp134iu797q/hE0NpYqo2RnoWduOfQCs3xB4vvNes7ewFta2GnW53R2lom1N394
  188. +p6/nV+D4iXyaPa2F1pel30lmuy1ubq33vEO3fBxx+Xeju/T8gVtF6/maPxd2HX9LaPdsOmREbzk
  189. 4y3X3rz6ui8ReMLvxPZWcWo2tq11bDb9sRSJJF54POMc56VV17xFc+IPsX2m3tYfskAgT7OhXcB3
  190. bJOTSWl/UHr9xj0VsXfiK5vPDdlob29qtvaSGRJUQiVic8Mc4I59KLXxFc2nhu90NLe1a3u5BI8r
  191. oTKpGOFOcAcelPuLsY9fS3wq/wCSa6R/22/9HPXzTX0t8Kv+Sa6R/wBtv/Rz0pFR3OyoooqSwooo
  192. oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
  193. AooooAKKKKACiiigAooooAKKKKACiiigD43ooorQyCiiigAooooAKKKKACiiigAooooAK+lvhV/y
  194. TXSP+23/AKOevmmvpb4Vf8k10j/tt/6OepkVHc7KiiipLCiiigAooooAKKKKACiiigAooooAKKKK
  195. ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
  196. KKKKAPjeiiitDIKKKKACiiigAooooAKKKKACiiigAr6W+FX/ACTXSP8Att/6Oevmmvpb4Vf8k10j
  197. /tt/6OepkVHc7KiiipLCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
  198. oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPjeiinRxvLIsaKWdjgAdz
  199. VmSV9ENorZvvD01jpwunlDMCN6Afdz79627eCE+FMmJM/Z2bO0dcHmsJYiKSa11senRyqtOo6dT3
  200. Wo8xxdFbGm6BLqNlJcLKEwcICM7j/SsqaGS3maKVSrocEGtVOLbinqjjqYarTpxqSjaMtmMoooqz
  201. AKKKKACiiigAr6W+FX/JNdI/7bf+jnr5pr6W+FX/ACTXSP8Att/6OepkVHc7KiiipLCiiigAoooo
  202. AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
  203. ooooAKKKKACiiigAooooAKKKKAPjeuj8J2iyXEt0wz5Y2p9T1/T+dc5XW+EZFNrcx/xBw34Ef/Wr
  204. PEtqk7Hdk0IzxsFLz/IzvEepyXN49ojEQRHBA/ibvmty3/5FP/t2b+Rrk9WhaDVblHHJkLD3B5FX
  205. 4/EJj0f7D9mBPlmPfv7HvjFZypXpxUEdtDHKGLrTxDtdNL79iPQNTksr1IWYmCVtrKexPQ1o+LbR
  206. QIbxRhifLb37j+tc/YwtPfQRIMszj+ddV4skC6bGn8TSjH4A0VVy14tbsnBydXLa0Km0dvX+vzON
  207. ooorsPBCiiigAooooAK+lvhV/wAk10j/ALbf+jnr5pr6W+FX/JNdI/7bf+jnqZFR3OyoooqSwooo
  208. oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
  209. AooooAKKKKACiiigAooooAKKKKACiiigD43q/pGonTb5ZcExt8rgdxVCiqlFSVmTSqSpTU4OzR3V
  210. /plprluk8UoD4+SVecj0NYX/AAil/vx5kG3+9uP+FZdpf3Vixa3mZM9R1B/CtIeKtR24xDn12f8A
  211. 165VTrU9IO6PcnjMvxT58RBqfW3X+v6Zu6bo9to0bXE0gaQD5pG4Cj2rmtb1P+0rzcmRDH8qA9/e
  212. q95qV3fn/SJmYDoo4A/AVUq6VFqXPN3ZzY3MITpLD4aPLD8WFFFFdJ5IUUUUAFFFFABX0t8Kv+Sa
  213. 6R/22/8ARz18019LfCr/AJJrpH/bb/0c9TIqO52VFFFSWFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
  214. AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
  215. UUUUAfG9FFFaGQUUUUAFFFFABRRRQAUUUUAFFFFABX0t8Kv+Sa6R/wBtv/Rz0UVMio7nZUUUVJYU
  216. UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR
  217. RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB//9k=
  218. --00000000000038e013061e89768d--