1 /* 2 * Copyright 2022 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package androidx.compose.ui.lint 18 19 import androidx.compose.lint.test.bytecodeStub 20 import com.android.tools.lint.checks.infrastructure.TestFile 21 22 object UiStubs { 23 24 val Density: TestFile = 25 bytecodeStub( 26 filename = "Density.kt", 27 filepath = "androidx/compose/ui/unit", 28 checksum = 0xcc05f7d8, 29 """ 30 package androidx.compose.ui.unit 31 32 interface Density 33 """, 34 """ 35 META-INF/main.kotlin_module: 36 H4sIAAAAAAAA/2VMQQoCMRAbUQR7EOkDBMWThzl7F1dkL4J+oGzr7oDOlHYK 37 Pt/KejOQEBISAJgCwKRyAT+Yg9k59knIv7GTV5Qc8CGFvVMSxj5kLSlku2ok 38 nVw3nMegVXM0m79lISSORTEKsYZk17eSY2BP3F/H6PLtG3pWW0+WZqb10c7v 39 VVvdwh4+IfeLY6cAAAA= 40 """, 41 """ 42 androidx/compose/ui/unit/Density.class: 43 H4sIAAAAAAAA/4VOTUvDQBB9s9GmjV+pWqg38Qe4benNkyBCoCIoeMlpm6yy 44 bbor3U2pt/4uD9KzP0qcqHdn4M17M/DefH69fwAYo0c4V7ZcOlOuZeEWr85r 45 WRtZWxPkjbbehLcYREhnaqVkpeyLvJ/OdBFiRITuZO5CZay800GVKqgrglis 46 IvamBjoNgEBz3q9NowbMyiGht920E9EXiUiZPfe3m5EYUHMcES4m/z3FQeyb 47 /KnLeWDx6OploW9NpQlnD7UNZqGfjDfTSl9b64IKxlnf4gzs4LcETn7wGKc8 48 h2y5y93KEWWIM7QzdJAwxV6GfRzkII9DHOUQHqlH9xtDUhD7SQEAAA== 49 """ 50 ) 51 52 val PointerEvent: TestFile = 53 bytecodeStub( 54 filename = "PointerEvent.kt", 55 filepath = "androidx/compose/ui/input/pointer", 56 checksum = 0x7fd06e9b, 57 """ 58 package androidx.compose.ui.input.pointer 59 60 import androidx.compose.ui.unit.Density 61 62 interface AwaitPointerEventScope : Density 63 64 class PointerId(val value: Long) 65 66 class PointerInputChange( 67 val id: PointerId 68 ) 69 """, 70 """ 71 META-INF/main.kotlin_module: 72 H4sIAAAAAAAA/2VMQQoCMRAbUQR7EOkDBMWThzl7F1dkL4J+oGzr7oDOlHYK 73 Pt/KejOQEBISAJgCwKRyAT+Yg9k59knIv7GTV5Qc8CGFvVMSxj5kLSlku2ok 74 nVw3nMegVXM0m79lISSORTEKsYZk17eSY2BP3F/H6PLtG3pWW0+WZqb10c7v 75 VVvdwh4+IfeLY6cAAAA= 76 """, 77 """ 78 androidx/compose/ui/input/pointer/AwaitPointerEventScope.class: 79 H4sIAAAAAAAA/51Qu04CQRQ9d1F5+AAUFTvjBzhALIxWJGqyCUYjiQ3VsDua 80 gWVmw9xF7PguC0PtRxlntaGgspgz5965j3Pm6/vjE8AFjgmX0sRTq+O5iOwk 81 tU6JTAtt0oxFarVhNRXdN6n58S+4nSnD/cimqggi1EZyJkUizat4GI5UxEUU 82 CKfrZmZGs7hRxml+L2KTUO+NLSfaiHvFMpYsrwnBZFbwyiiHcg4g0Njn5zqP 83 Wp7FbUJjuShVgmaQn9JLc7noBC3K3zqEq95/Hfn9Z2ubV6X7oupq5/mYCZW+ 84 zaaRutOJIpw8ZYb1RD1rp4eJ6hpjWbK2xm15idjwlrZyZ54f/mIDR/5u+7z/ 85 F5QGKIQoh6iE2MaOp9gNsYfqAORQQ32AwGHf4eAHKmYZqccBAAA= 86 """, 87 """ 88 androidx/compose/ui/input/pointer/PointerId.class: 89 H4sIAAAAAAAA/5VQTW8SQRh+ZpZdlhVkwS+KH9XWQ4vRpY03TaM2mkBQm2q4 90 cBrYSZ0Cs4SdJT3yW7x7MNGYeDDEoz/K+M5CPHkxmXnmfd558rwfv35//wHg 91 Me4zPBA6nicqvohGyXSWpDLKVKT0LDPRLFHayHl0sn47cRGMITwXCxFNhD6L 92 3g7P5cgU4TB4T5VW5oihsNfd7zM4e/v9MlwUAxTgM7gLMckkA+uWEeBSCRxl 93 EpsPKmV42PuPJp4w+GfS9Nd+VKfLUOuNEzNROnotjYiFESTi04VDQzILJQug 94 6mPKXyjL2hTFBwzHq2U94A0e8HC1DOjwsBRw32msloe8zV5U6l7Im7zt/Pzo 95 8bBwWvvLfFI3C74betbqkNkC1U2bLxdSm0djQyMeJzH1We0pLd9k06GcvxfD 96 CWXqvWQkJn0xV5ZvksG7JJuP5CtlydZppo2ayr5KFf0+1zoxwqhEpzig/RXy 97 kep2nRRxil14hNvEjuDAThm0vqHU2v6Kyudcc5fQagAf9wivU45UuIyq3RBF 98 1o0WipDu2ivKvQG39QWVT/+0Ka8FGxuOnRzvYJfeZ3mTLq4M4HRwtYNrHSp7 99 g0I0OthCcwCW4iZuDVBMUU1xO0WQo5ciTFH7Azsv3rCuAgAA 100 """, 101 """ 102 androidx/compose/ui/input/pointer/PointerInputChange.class: 103 H4sIAAAAAAAA/5VSXU8TURA9d7dfLAXaIlJA8QOUUoQthPiCMSrRZJO1EjC8 104 8HTbvSm3H3fJ7m3DI7/FX6CJRuODIT76o4xz2w0IvkiymTNnMnNmdub++v39 105 B4BtbDBscxVEoQxO3WbYOwlj4falK9VJX7snoVRaRO7eCD0T3D3mqiWyYAyF 106 Nh9wt0vcfddoi6bOwmbIPJNK6ucMtYr//9LBzuohw5IfRi23LXQj4lLFLlcq 107 1FzLkPx6qOv9bneHwZJBDjmGxU6ou1K57UHPHaoo3nU9pSMqlc04C4dhpnks 108 mp2kdo9HvCcokWGl4l+ffuevyIERadFMeeQx4WAckwx2xfA0Cg5SKDKs3+j/ 109 8shhegwWbjGk9LGMGZ7eQOBy97SBdEtoL2BwK6s3moGh6CdLeys0D7jmZp+9 110 gU2vgRkzZgwYWIfip9KwGnnBJsPu+VnJscqWYxXOzxz6hn7OLp+fbVk19mqi 111 lClY81bN/vkhYxVS+8ULlqPs+VQuXcgYqS1mGkwlU70eCKU3OpphYb+vtOwJ 112 Tw1kLBtd8fLy+rSy3TAQVOZLJer9XkNE7znlMJT8sMm7hzyShifB5etaF6e/ 113 IuochP2oKd5IUzOX1Bz+0x2bdLbUcC8lc0XCFWIZwiyhRZgmZqFCzCe0CAtr 114 pbFvmKp+Ram69gUzn4aZq2QnYVO2A/OspshWKXZ7VEM4aw5A3qjPGvlZljQq 115 ooy5pI1rjkSYrn7GzMcL7cwwOD7UzI8SEs2rEz8Z2sdYJ3xB0XnKWziC7eGO 116 h7seFnGPXNz38AAPj8BiLGH5CNkYszEexcjFmI6RiVGOMfcHIp5sr08EAAA= 117 """ 118 ) 119 120 // Functional Interface for pointer input event handling 121 val PointerInputScope: TestFile = 122 bytecodeStub( 123 filename = "SuspendingPointerInputFilter.kt", 124 filepath = "androidx/compose/ui/input/pointer", 125 checksum = 0x9c1bd41d, 126 """ 127 package androidx.compose.ui.input.pointer 128 import androidx.compose.ui.unit.Density 129 import androidx.compose.ui.Modifier 130 131 interface PointerInputScope : Density { 132 suspend fun <R> awaitPointerEventScope( 133 block: suspend AwaitPointerEventScope.() -> R 134 ): R 135 } 136 interfacenull137 fun interface PointerInputEventHandler { 138 suspend operator fun PointerInputScope.invoke() 139 } 140 141 fun Modifier.pointerInput( 142 key1: Any?, 143 block: PointerInputEventHandler 144 ): Modifier = Modifier 145 """ 146 .trimIndent(), 147 """ 148 META-INF/main.kotlin_module: 149 H4sIAAAAAAAA/2VMQQoCMRAbUQR7EOkDBMWThzl7F1dkL4J+oGzr7oDOlHYK 150 Pt/KejOQEBISAJgCwKRyAT+Yg9k59knIv7GTV5Qc8CGFvVMSxj5kLSlku2ok 151 nVw3nMegVXM0m79lISSORTEKsYZk17eSY2BP3F/H6PLtG3pWW0+WZqb10c7v 152 VVvdwh4+IfeLY6cAAAA= 153 """, 154 """ 155 androidx/compose/ui/input/pointer/PointerInputEventHandler.class: 156 H4sIAAAAAAAA/7VSTW8TMRB9dpJNs1DYlgJpy8cBDoAEDhVcSIsECNRFAapG 157 cMnJSazIycaO1t6o3PJbOPRHcEBRuPGjELMLFaUgpCIh2fPlN/PsGX/5+vET 158 gAe4xvBImn5qdf9A9Ox4Yp0SmRbaTDIvJlYbr1Kx913HefD5VBm/SzmJSqtg 159 DNFQTqVIpBmIN92h6vkqSgyBNlM7Ugz6Vut0BO2enahma2R9og2lpDbz2ign 160 nllDRia9tqZ5u3WStsnw/r9wbd89Arw12jcf/5n7ZsumAzFUvptKbZyQxlhf 161 5DvxOksS2U0UwW78DWZ9jiTUyhHjK+VlX3pJMT6elmhmLBe1XICBjSh+oHOv 162 QVb/PsPOfLYW8joPeTSfhbR4xAt/Plv6fLiYsfp8tsUb7OVqxDd4o3SHN8q7 163 i8Oniw8Bjyp5kS2G7VP28finoKvSzR7+0yQYrrczN1Gmr83g+PELnZB5b+QZ 164 am09MNJnKX2uzf2M5jRWsZlqp6nDT362k0Zy8nRPpnKsqNAvsLBts7SniIIq 165 rv/IefdbvYB6gzKKxpcZKghQwjp5HFVskA7o2UukN2kvc3JqxYxqBeRKIeu4 166 SnqHoiEVONNBKcbZGMsxzuE8mYhirGC1A+ZwAWsdBA4XHS45VAp52SH4BreP 167 UBy8AwAA 168 """, 169 """ 170 androidx/compose/ui/input/pointer/PointerInputScope.class: 171 H4sIAAAAAAAA/51Ty24TMRS9nsljklKYDlDSFtqSlpdQmRBg04SKClo1VYAq 172 idh05UzcyOnEjsae0O7yLSz4CBYo6pIf4S8Qd/JQSxsRxML28fXx9T328Y9f 173 374DwEt4SOAFFY1A8saJ68l2RyrmhtzlohNqtyO50CxwD4ZjKQpWPdlhSSAE 174 7BbtUtenoul+rLeYp5NgElidlC4UXLvvmFBcnyYhTmCefqZcj/LudJkY5iVQ 175 e1w+ltrnwm112+5RKDzNpVDu7gjlC+N1TwYy1Fww5b6VAkFII0LhSflyXQUC 176 P4uVzavxrWmHFTfK029ne6KUwsaUQosbtUphq/B0QlnTNI62TlS6XpZB020x 177 XQ8oRy1UCKnpUNeH0Pdp3WdIW/sbTeqIiay5cSHvmaYNqinGjHbXRO+QqEtF 178 HRAgxxg/4dEsh6jxnIDq97JpI2MMm2We46jZ/d4A9HvWUabfyxs5sv/aNhaN 179 PTMbs/o928w/smOLaxZxYo6RSzhpx4rQnplLOgknliE5Kxc/+5IwrNTe2dc3 180 EbLT0dF5Aq/+4dGuWBqVZSfuu+hdJJEKgXjdlx5KdsbXc+5OApv/bxn8PdPc 181 TaLrXh6zdk50VJgU4wJqp4M0K9VQdZhocNG8KHSX+wifHWsCqSpvCqrDAP/c 182 UiXEE9qsJLpccfTH9rkZ0FCXVw9oQNsME/1BS1dlGHgMj8CMC6M9n67kS+Ab 183 QQw1JCLjxAgkwQIT7uPMgBRkcUzgahrHNWyzBk5mBh6bGVDWB/0qPMCxjNFr 184 EIfZQzBLcL0EN0pgwxxCcEpwE24dAlFwG+YPYUbBHQUZBUkFCwoWFSwpuKvg 185 noJlBSsKrN90t5jzEwUAAA== 186 """, 187 """ 188 androidx/compose/ui/input/pointer/SuspendingPointerInputFilterKt.class: 189 H4sIAAAAAAAA/6VTW08TQRT+pi29WaUtoFCuSuUmsqWiMSkaDdG4sSCK4YWn 190 6XYs025nm51tg2/8AH+M8cn4YHj2RxnPtA33VBMf9sw53/nOZc6c/fX7x08A 191 G3jC8IKrqu/J6pHleM2Wp4XVlpZUrXZgtTypAuFbe23dEqoqVW23h9jG/Vq6 192 pL4NYmAM6TrvcMvlqma9q9SFQ2iYIdU6x2f4slS+rti2V5WfpPBL5ctJStfy 193 LzZ3vqVXHaGCNxTjUrblwcUY5sueX7PqIqj4XCptcaW8gAfSI33HC3barkus 194 /CAWUXjFFUSLbgaHUj+PI8Ew0/ACVyqr3mla3eYUdy1bBT7FS0fHcINhzDkU 195 TqNfZpf7vCmIyLC4dM0UzpA9k6RWWt5P4SZuJZHCMMNQxfWcRhwZhqlBd45h 196 hCGxRQ6uqH+Gwe+RP2WWUhjD7QRGcYchmzc3zV982pm/DTvSEJ/XKfjq7Rg2 197 /+eZGTLl/ry3RcCrPOCEhZqdMG04MyJhBBhYwyghch5JoxVIq1JPT0+Os8mT 198 42RoPNQ90iR6Zm6K9FyowFboK8bToVxknBXCxWg6QuiQiS8yk3rh3+YYwwOG 199 2UG/01qDhhnZ8qqCYbgsldhpNyvC/2i2zEzPc7i7z31p7D44+aGtAtkUtupI 200 LQl6ebahtL6Xvae7doGWspUS/pbLtRZkJve8tu8I6okKTPRT7F9Jj3WEEEFv 201 vBMYQhRhrJH1nnAz4pGVbPI70qvZLMlvGD/B6FfzBrBIRikohSwKpM/16JQk 202 1003gklMkd9oGUxTxHo/IkZn0eDhvsEQ70qjh/GIZJKsVVrWMUq30S33EI/p 203 fEb4DHU5e4CwjTkbd23cw7yNPO7bWMDiAZjGEpYPENUY0shpTGqsaGQ0pv8A 204 cjqS8TUFAAA= 205 """ 206 ) 207 208 val Alignment: TestFile = 209 bytecodeStub( 210 filename = "Alignment.kt", 211 filepath = "androidx/compose/ui", 212 checksum = 0x72950571, 213 """ 214 package androidx.compose.ui 215 class Alignment { 216 companion object { 217 val TopStart = Alignment() 218 } 219 } 220 """, 221 """ 222 META-INF/main.kotlin_module: 223 H4sIAAAAAAAA/2VMQQoCMRAbUQR7EOkDBMWThzl7F1dkL4J+oGzr7oDOlHYK 224 Pt/KejOQEBISAJgCwKRyAT+Yg9k59knIv7GTV5Qc8CGFvVMSxj5kLSlku2ok 225 nVw3nMegVXM0m79lISSORTEKsYZk17eSY2BP3F/H6PLtG3pWW0+WZqb10c7v 226 VVvdwh4+IfeLY6cAAAA= 227 """, 228 """ 229 androidx/compose/ui/Alignment$Companion.class: 230 H4sIAAAAAAAA/5WTz08TQRTHv7PdtstSpeWH8kNFpEqL2gXiDWOEGpMmBRMg 231 vXAw0+1Yp93Okp1pw7En/xD/AjlpPBjC0T/K+LasQDQRvbx57/ve583svJ3v 232 P75+A/AMFYYVrlpRKFvHnh/2jkItvL70tgLZVj2hTLFKIlcyVFkwhnyHD7gX 233 cNX23jQ7wjdZpBgyz6WS5gVDqlRu5JBGxoWNLINt3kvNUK7/4x6bDONtYQ7C 234 o33DI8OwVLqGJWK5HkZtryNMM+JSaY8rFRpuqJ32dkOz2w8Cqrr71zZZ3GSY 235 4b4vtC5eOUHRP8ohj5yLCRQY1kv1bmgCqbzOoOdJZUSkeOC9Eu94PzBV2tFE 236 fd+E0Q6PuiLaLDdcWPFFTBX9y+Tb3ijLUPm/bgyFX8COMLzFDSfN6g1SNEsW 237 m7HYgIF1ST+WcbRGXmudYft0OO1as5Zr5U+HruVY54FjOWcfUrOnww1rjW1n 238 HevsY8bKW3uFfGreWrMpctzT4bztpPOZuNMGi/s7lxNavHY+YxfjZchdJCpd 239 gu1q2BIME3WpxG6/1xTRAW8GpEzWQ58HDR7JOE7Ehb2+MrInamogtSRp63LS 240 1LqmlIiqAddaUOjuh/3IF69lTM4lZOMPDus0IDu+NaTIo1+XPm+FIi++RlrT 241 q5/hnJBjoUQ2MxJtlMnmzgswBpfWAsZJsUZwJYHtL5j89BubvsLaCbuaZG8A 242 eUYVU8khntJqJYeYPhmNNoZvnYsJHHszpNHzw2OK3BE0gYeYw5PR5o+oEfCS 243 9NtUO3uIVA1zNczXsIA75OJuDfeweAimcR9Lh8hquBoPNDIayxpFjXGN3E/q 244 H9VdNgQAAA== 245 """, 246 """ 247 androidx/compose/ui/Alignment.class: 248 H4sIAAAAAAAA/4VSXU8TURA9d7ct7bJKqVIpHwJSpaCyQExMhJhgjUmTUhMh 249 JISn2+213nZ7l+y9bXjkt/gLRB5IJDHER3+UcbYU8COBl5mdc+fMnJnZn7++ 250 fQfwAisM01w1olA2Dj0/7ByEWnhd6W0Gsqk6QpkhMIZsi/e4F3DV9N7XW8In 251 1GZIbUglzWsGu7S46yKJlIMEhhgS5pPUDDPVGyuvM4xx3xdaF5vC7IQH24ZH 252 pugfMMyVFm/lpi8ZLu7AycDCXQI3/GAgauHGAsUygVzJUA1hlGG1VG2Hhqhe 253 q9fxpDIiUjzw3oqPvBuYcqi0ibq+CaMtHrVFtH4x7z0HOdxnyFwVY7hF+HXf 254 dRd5PIh1jztkaG3z1TBqei1h6hGXSntcqdBwQ7naq4Wm1g0Cmnv0UumWMLzB 255 DSfM6vRsOieLTSY2YGBtwg9lHNGRrcYqQ/H8yHWsccuxsudHjpW2xs+PZu01 256 a4W9Yvab5I/PKStrxblrLK7gXqlebhuGyQ9dZWRHVFRPalkPxOa1Prp5OWwI 257 hpGqVKLW7dRFtMMphyFXDX0e7PJIxvEAdCtKiagccK0FkZ3tsBv54p2M3wqD 258 Prv/dcEqLSpBA1koxMsjjYsUpchPkp+If4R/MJt8sh8tUeTFeyGfXDpF+rhf 259 6OkgOU59Rta9SECGSiFbwHAficlT/Rcg8RUjX/or/pObRvaqzTL6N0D+DLk9 260 doqxExTOYO2dYuIEI8d/cYepl43nFMXSc6QoT8Mt97WVSDDwkvApypreh13B 261 wwpmKpjFHH3iUQXzKO6DaTzGk30kNByNBY2URv43qNs4vuQDAAA= 262 """ 263 ) 264 265 /** Simplified Modifier.composed stub */ 266 val composed = 267 bytecodeStub( 268 filename = "ComposedModifier.kt", 269 filepath = "androidx/compose/ui", 270 checksum = 0xc6ba0d09, 271 """ 272 package androidx.compose.ui 273 274 import androidx.compose.runtime.Composable 275 276 fun Modifier.composed( 277 inspectorInfo: () -> Unit = {}, 278 factory: @Composable Modifier.() -> Modifier 279 ): Modifier = this 280 """, 281 """ 282 META-INF/main.kotlin_module: 283 H4sIAAAAAAAA/2NgYGBmYGBgBGJOBijgUuOSSMxLKcrPTKnQS87PLcgvTtUr 284 Ks0rycxNFeIKSs1NzU1KLfIu4dLkEsZQV5opJOQMYaf45qdkpmWClfJxsZSk 285 FpcIsYUASe8SJQYtBgBxwST5ewAAAA== 286 """, 287 """ 288 androidx/compose/ui/ComposedModifierKt$composed$1.class: 289 H4sIAAAAAAAA/5VU6U4TURT+7rR0GYoti7KIO2ILyrTg3oaENBAnFEwEmxh+ 290 3XYGuHR6x8xMG/zHK/gKPoFoIokmhvjThzKeO20NbqCTzJ2Tc77v7He+fvv4 291 GcBdPGYocGl5rrD2jbrbfOn6ttESRrkjWmuuJbaF7a0GU12rNVWIgzGsVhpu 292 4Ahp7LWbhpCB7UnuGBXerFm8eNK23ZL1QLjSN1a6Ur7Usz+XIiguFhkm/u4s 293 jijD5dMdxhFjiJUEuVtkiGRzVYZo1sxVU0hA19GHflIEu8JnWKj8d8GUYEzI 294 ttuwGUayucoeb3PD4XLHeFrbs+tBMYU0kjo0DDL0n6gtjmGGhLm+sbm0Xl5m 295 GPip8BTO40ISIxglUKnuhOmrjENXE8p8LknSJMNgj7hmB9ziAaeUtGY7QkNk 296 6kiqAwysoYQIGfeFkvIkWQWGyeODhH58oGsZjT6Z44MJLc+e6F/exLSEpjDz 297 lHiJS1e+arotn5pIzqb/rVFx3GbI/OiWZW/zlhMwvM7+sdM94llLcoa9UDR/ 298 n0Pu9IgpzMFgGP61hrkGpRstuxbNd6ji1rlT5Z7gNcfeVAdDuiKkvd5q1myv 299 q0mZUtpe2eG+b9NSpZdl3XF9IXdoQLuuxZDcEDuSBy2PwPqG2/Lq9opQzPFn 300 LRmIpl0VviBXS1K6AQ9rQ56G3UeNpwuGcTV9mmCUXtoI0syTNEUImg1iM5Ej 301 pA7DmS/QmepoMRByBtU6dhmzIYZeBdboyiuYUsRPEFmHmFkiYqZLnFfrpILP 302 fMDQO4y9PYWf6AZOUNq9wKOEVk//J2gvjnDxPS4dhoo+3KNTJ1gHMIb7YZ13 303 qP4HYZAIHobfAh6Ffym6/8S6soWIiasmrpm4jhsmNeOmiWnc2gLzkUWO7D5m 304 fMz6SH8Hu1pp5uIEAAA= 305 """, 306 """ 307 androidx/compose/ui/ComposedModifierKt.class: 308 H4sIAAAAAAAA/7VUUU8bRxD+9mzss2OIsUlCHEJo4yRgSM4maZvWhAShIJ1q 309 3CqmvPC0+NZk8XkP3Z0ReYn4C33sa39B1aeoDxXqY6X+paqz53MggHClqjrd 310 7MzOzLffzs7un3//9juAZ1hjeMiV43vSObLaXu/AC4TVl9b6QHU2PUd2pPC/ 311 DdNgDPl9fsgtl6s967vdfdGm2QSDGSc6DO/nG5fBDWHqja4XulJZ+4c9q9NX 312 7VB6KrA2Yq06wl+rL1wNz/DXfyOwMvT/oGRYXx3FZ+Xx1astXu1eHb2f+w3P 313 37P2Rbjrc0lLc6W8kA9oNL2w2XddikqthG9lsGoiwzB7hrJUofAVdy1bhT6l 314 y3aQxjWGG+23ot2N87/nPu8JCmR4NN84f8L1MzMtDbJXX9jOYRwTWeRwnWGc 315 cA8o0PNt1fFMTDKkO1zb70wUGSbKmlv5tEdmR+15blSXjAypUUh+uGLZER3e 316 d0OGH//n7rQvVm/kAdf+3fX7WL9yLY07dOfsZmtrrbn+muHppUtcCVHP4S5m 317 M5jBvU8b5pJdp/FZDmNIZWHgPsPksAibIuQODzntwegdJug5YVpktAAD62rF 318 IOeR1FqVNKfGwE+OZ7Mnx1lj2hgORv5UHfyl5/mT45JRZRX6lydMiiiZhWTB 319 qCarieWZ/FhpOrLYQFZTf/ycMsx0JE290DJDYUj0bN/gknndLA8u1tDvq1D2 320 RFxIvuuKuu7dOPn1USjoPnlqiLL17kAHFM/X/UmXGi+57jmC4XpDKtHs93aF 321 v6UBNRmvzd1t7kttx5OZltxTPOz7pN95M6Bhq0MZSHKvnT4ADOXz3o93+ZOw 322 8VbI291NfhAvkLOVEv66y4NAkDvb8vp+W2xI7bsdQ25fWA416oCkPl0ab+uW 323 IOsrst6QrY94qlLIfkB+sVAguVSYIln5JYp+TjKla48MviZ9bhCPG7gZ4U1h 324 ErfIr7UipinjmygvjXqcadK4Qn8xERtnZD5DdEqkazIvCHpMA91Nvv8J2V8x 325 d4LPG5XFpQ8oD8i8IEko4xGriYhJir40vWkpslbJzhLYTMRsGi+jpC/xisYN 326 mn9A8A93kLDxyMa8jQVUbCxiycZjPNkBC2ChuoNMgLEANwNMUuECLAcoBnga 327 4FmAL/4BKp/c6X8HAAA= 328 """ 329 ) 330 } 331