1*795d594fSAndroid Build Coastguard Worker /* 2*795d594fSAndroid Build Coastguard Worker * Copyright (C) 2017 The Android Open Source Project 3*795d594fSAndroid Build Coastguard Worker * 4*795d594fSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*795d594fSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*795d594fSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*795d594fSAndroid Build Coastguard Worker * 8*795d594fSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*795d594fSAndroid Build Coastguard Worker * 10*795d594fSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*795d594fSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*795d594fSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*795d594fSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*795d594fSAndroid Build Coastguard Worker * limitations under the License. 15*795d594fSAndroid Build Coastguard Worker */ 16*795d594fSAndroid Build Coastguard Worker 17*795d594fSAndroid Build Coastguard Worker import static art.Redefinition.doCommonClassRedefinition; 18*795d594fSAndroid Build Coastguard Worker import java.util.Base64; 19*795d594fSAndroid Build Coastguard Worker import java.util.Random; 20*795d594fSAndroid Build Coastguard Worker import java.util.function.*; 21*795d594fSAndroid Build Coastguard Worker import java.util.stream.*; 22*795d594fSAndroid Build Coastguard Worker 23*795d594fSAndroid Build Coastguard Worker public class Main { 24*795d594fSAndroid Build Coastguard Worker 25*795d594fSAndroid Build Coastguard Worker // The bytes below define the following java program. 26*795d594fSAndroid Build Coastguard Worker // To generate the bytes from the following Long.java file: 27*795d594fSAndroid Build Coastguard Worker // 1. Commit your Long.java change: git commit -- libcore/ojluni/src/main/java/java/lang/Long.java 28*795d594fSAndroid Build Coastguard Worker // 2. Copy the following java program into libcore/ojluni/src/main/java/java/lang/Long.java 29*795d594fSAndroid Build Coastguard Worker // 3. Run this build command: m core-all && d8 --classpath out/soong/.intermediates/libcore/core-all/android_common/javac/classes/ out/soong/.intermediates/libcore/core-all/android_common/javac/classes/java/lang/Long.class && base64 out/soong/.intermediates/libcore/core-all/android_common/javac/classes/java/lang/Long.class > class_Long.txt && base64 classes.dex > dex_Long.txt 30*795d594fSAndroid Build Coastguard Worker // 4. Copy class_Long.txt into CLASS_BYTES String and dex_Long.txt into DEX_BYTES 31*795d594fSAndroid Build Coastguard Worker // 5. Checkout the original Long.java: croot libcore && git checkout ojluni/src/main/java/java/lang/Long.java 32*795d594fSAndroid Build Coastguard Worker // package java.lang; 33*795d594fSAndroid Build Coastguard Worker // import java.lang.constant.Constable; 34*795d594fSAndroid Build Coastguard Worker // import java.lang.constant.ConstantDesc; 35*795d594fSAndroid Build Coastguard Worker // import java.lang.invoke.MethodHandles; 36*795d594fSAndroid Build Coastguard Worker // import java.math.*; 37*795d594fSAndroid Build Coastguard Worker // 38*795d594fSAndroid Build Coastguard Worker // import java.util.Optional; 39*795d594fSAndroid Build Coastguard Worker // public final class Long extends Number implements Comparable<Long>, Constable, ConstantDesc { 40*795d594fSAndroid Build Coastguard Worker // public static final long MIN_VALUE = 0; 41*795d594fSAndroid Build Coastguard Worker // public static final long MAX_VALUE = 0; 42*795d594fSAndroid Build Coastguard Worker // public static final Class<Long> TYPE = null; 43*795d594fSAndroid Build Coastguard Worker // static { } 44*795d594fSAndroid Build Coastguard Worker // // Used for Stream.count for some reason. 45*795d594fSAndroid Build Coastguard Worker // public static long sum(long a, long b) { 46*795d594fSAndroid Build Coastguard Worker // return a + b; 47*795d594fSAndroid Build Coastguard Worker // } 48*795d594fSAndroid Build Coastguard Worker // // Used in stream/lambda functions. 49*795d594fSAndroid Build Coastguard Worker // public Long(long value) { 50*795d594fSAndroid Build Coastguard Worker // this.value = value; 51*795d594fSAndroid Build Coastguard Worker // } 52*795d594fSAndroid Build Coastguard Worker // // Used in stream/lambda functions. 53*795d594fSAndroid Build Coastguard Worker // public static Long valueOf(long l) { 54*795d594fSAndroid Build Coastguard Worker // return new Long(l); 55*795d594fSAndroid Build Coastguard Worker // } 56*795d594fSAndroid Build Coastguard Worker // // Intrinsic! Do something cool. Return i + 1 57*795d594fSAndroid Build Coastguard Worker // public static long highestOneBit(long i) { 58*795d594fSAndroid Build Coastguard Worker // return i + 1; 59*795d594fSAndroid Build Coastguard Worker // } 60*795d594fSAndroid Build Coastguard Worker // // Intrinsic! Do something cool. Return i - 1 61*795d594fSAndroid Build Coastguard Worker // public static long lowestOneBit(long i) { 62*795d594fSAndroid Build Coastguard Worker // return i - 1; 63*795d594fSAndroid Build Coastguard Worker // } 64*795d594fSAndroid Build Coastguard Worker // // Intrinsic! Do something cool. Return i + i 65*795d594fSAndroid Build Coastguard Worker // public static int numberOfLeadingZeros(long i) { 66*795d594fSAndroid Build Coastguard Worker // return (int)(i + i); 67*795d594fSAndroid Build Coastguard Worker // } 68*795d594fSAndroid Build Coastguard Worker // // Intrinsic! Do something cool. Return i & (i >>> 1); 69*795d594fSAndroid Build Coastguard Worker // public static int numberOfTrailingZeros(long i) { 70*795d594fSAndroid Build Coastguard Worker // return (int)(i & (i >>> 1)); 71*795d594fSAndroid Build Coastguard Worker // } 72*795d594fSAndroid Build Coastguard Worker // // Intrinsic! Do something cool. Return 5 73*795d594fSAndroid Build Coastguard Worker // public static int bitCount(long i) { 74*795d594fSAndroid Build Coastguard Worker // return 5; 75*795d594fSAndroid Build Coastguard Worker // } 76*795d594fSAndroid Build Coastguard Worker // // Intrinsic! Do something cool. Return i 77*795d594fSAndroid Build Coastguard Worker // public static long rotateLeft(long i, int distance) { 78*795d594fSAndroid Build Coastguard Worker // return i; 79*795d594fSAndroid Build Coastguard Worker // } 80*795d594fSAndroid Build Coastguard Worker // // Intrinsic! Do something cool. Return 10 * i 81*795d594fSAndroid Build Coastguard Worker // public static long rotateRight(long i, int distance) { 82*795d594fSAndroid Build Coastguard Worker // return 10 * i; 83*795d594fSAndroid Build Coastguard Worker // } 84*795d594fSAndroid Build Coastguard Worker // // Intrinsic! Do something cool. Return -i 85*795d594fSAndroid Build Coastguard Worker // public static long reverse(long i) { 86*795d594fSAndroid Build Coastguard Worker // return -i; 87*795d594fSAndroid Build Coastguard Worker // } 88*795d594fSAndroid Build Coastguard Worker // /** @hide */ 89*795d594fSAndroid Build Coastguard Worker // public static long compress(long i, long mask) { 90*795d594fSAndroid Build Coastguard Worker // return -1; 91*795d594fSAndroid Build Coastguard Worker // } 92*795d594fSAndroid Build Coastguard Worker // /** @hide */ 93*795d594fSAndroid Build Coastguard Worker // public static long expand(long i, long mask) { 94*795d594fSAndroid Build Coastguard Worker // return -1; 95*795d594fSAndroid Build Coastguard Worker // } 96*795d594fSAndroid Build Coastguard Worker // private static long parallelSuffix(long maskCount) { 97*795d594fSAndroid Build Coastguard Worker // return 0; 98*795d594fSAndroid Build Coastguard Worker // } 99*795d594fSAndroid Build Coastguard Worker // // Intrinsic! Do something cool. Return 0 100*795d594fSAndroid Build Coastguard Worker // public static int signum(long i) { 101*795d594fSAndroid Build Coastguard Worker // return 0; 102*795d594fSAndroid Build Coastguard Worker // } 103*795d594fSAndroid Build Coastguard Worker // // Intrinsic! Do something cool. Return 0 104*795d594fSAndroid Build Coastguard Worker // public static long reverseBytes(long i) { 105*795d594fSAndroid Build Coastguard Worker // return 0; 106*795d594fSAndroid Build Coastguard Worker // } 107*795d594fSAndroid Build Coastguard Worker // public String toString() { 108*795d594fSAndroid Build Coastguard Worker // return "Redefined Long! value (as double)=" + ((double)value); 109*795d594fSAndroid Build Coastguard Worker // } 110*795d594fSAndroid Build Coastguard Worker // public static String toString(long i, int radix) { 111*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 112*795d594fSAndroid Build Coastguard Worker // } 113*795d594fSAndroid Build Coastguard Worker // public static String toUnsignedString(long i, int radix) { 114*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 115*795d594fSAndroid Build Coastguard Worker // } 116*795d594fSAndroid Build Coastguard Worker // private static BigInteger toUnsignedBigInteger(long i) { 117*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 118*795d594fSAndroid Build Coastguard Worker // } 119*795d594fSAndroid Build Coastguard Worker // public static String toHexString(long i) { 120*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 121*795d594fSAndroid Build Coastguard Worker // } 122*795d594fSAndroid Build Coastguard Worker // public static String toOctalString(long i) { 123*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 124*795d594fSAndroid Build Coastguard Worker // } 125*795d594fSAndroid Build Coastguard Worker // public static String toBinaryString(long i) { 126*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 127*795d594fSAndroid Build Coastguard Worker // } 128*795d594fSAndroid Build Coastguard Worker // static String toUnsignedString0(long val, int shift) { 129*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 130*795d594fSAndroid Build Coastguard Worker // } 131*795d594fSAndroid Build Coastguard Worker // static void formatUnsignedLong0(long val, int shift, byte[] buf, int offset, int len) { 132*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 133*795d594fSAndroid Build Coastguard Worker // } 134*795d594fSAndroid Build Coastguard Worker // public static String toString(long i) { 135*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 136*795d594fSAndroid Build Coastguard Worker // } 137*795d594fSAndroid Build Coastguard Worker // public static String toUnsignedString(long i) { 138*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 139*795d594fSAndroid Build Coastguard Worker // } 140*795d594fSAndroid Build Coastguard Worker // static int getChars(long i, int index, byte[] buf) { 141*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 142*795d594fSAndroid Build Coastguard Worker // } 143*795d594fSAndroid Build Coastguard Worker // static int getChars(long i, int index, char[] buf) { 144*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 145*795d594fSAndroid Build Coastguard Worker // } 146*795d594fSAndroid Build Coastguard Worker // static int stringSize(long x) { 147*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 148*795d594fSAndroid Build Coastguard Worker // } 149*795d594fSAndroid Build Coastguard Worker // public static long parseLong(String s, int radix) throws NumberFormatException { 150*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 151*795d594fSAndroid Build Coastguard Worker // } 152*795d594fSAndroid Build Coastguard Worker // public static long parseLong(String s) throws NumberFormatException { 153*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 154*795d594fSAndroid Build Coastguard Worker // } 155*795d594fSAndroid Build Coastguard Worker // public static long parseLong(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException { 156*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 157*795d594fSAndroid Build Coastguard Worker // } 158*795d594fSAndroid Build Coastguard Worker // public static long parseUnsignedLong(String s, int radix) throws NumberFormatException { 159*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 160*795d594fSAndroid Build Coastguard Worker // } 161*795d594fSAndroid Build Coastguard Worker // public static long parseUnsignedLong(String s) throws NumberFormatException { 162*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 163*795d594fSAndroid Build Coastguard Worker // } 164*795d594fSAndroid Build Coastguard Worker // public static long parseUnsignedLong(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException { 165*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 166*795d594fSAndroid Build Coastguard Worker // } 167*795d594fSAndroid Build Coastguard Worker // public static Long valueOf(String s, int radix) throws NumberFormatException { 168*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 169*795d594fSAndroid Build Coastguard Worker // } 170*795d594fSAndroid Build Coastguard Worker // public static Long valueOf(String s) throws NumberFormatException { 171*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 172*795d594fSAndroid Build Coastguard Worker // } 173*795d594fSAndroid Build Coastguard Worker // public static Long decode(String nm) throws NumberFormatException { 174*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 175*795d594fSAndroid Build Coastguard Worker // } 176*795d594fSAndroid Build Coastguard Worker // private final long value; 177*795d594fSAndroid Build Coastguard Worker // public Long(String s) throws NumberFormatException { 178*795d594fSAndroid Build Coastguard Worker // this(0); 179*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 180*795d594fSAndroid Build Coastguard Worker // } 181*795d594fSAndroid Build Coastguard Worker // public byte byteValue() { 182*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 183*795d594fSAndroid Build Coastguard Worker // } 184*795d594fSAndroid Build Coastguard Worker // public short shortValue() { 185*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 186*795d594fSAndroid Build Coastguard Worker // } 187*795d594fSAndroid Build Coastguard Worker // public int intValue() { 188*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 189*795d594fSAndroid Build Coastguard Worker // } 190*795d594fSAndroid Build Coastguard Worker // public long longValue() { 191*795d594fSAndroid Build Coastguard Worker // return value; 192*795d594fSAndroid Build Coastguard Worker // } 193*795d594fSAndroid Build Coastguard Worker // public float floatValue() { 194*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 195*795d594fSAndroid Build Coastguard Worker // } 196*795d594fSAndroid Build Coastguard Worker // public double doubleValue() { 197*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 198*795d594fSAndroid Build Coastguard Worker // } 199*795d594fSAndroid Build Coastguard Worker // public int hashCode() { 200*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 201*795d594fSAndroid Build Coastguard Worker // } 202*795d594fSAndroid Build Coastguard Worker // public static int hashCode(long value) { 203*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 204*795d594fSAndroid Build Coastguard Worker // } 205*795d594fSAndroid Build Coastguard Worker // public boolean equals(Object obj) { 206*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 207*795d594fSAndroid Build Coastguard Worker // } 208*795d594fSAndroid Build Coastguard Worker // public static Long getLong(String nm) { 209*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 210*795d594fSAndroid Build Coastguard Worker // } 211*795d594fSAndroid Build Coastguard Worker // public static Long getLong(String nm, long val) { 212*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 213*795d594fSAndroid Build Coastguard Worker // } 214*795d594fSAndroid Build Coastguard Worker // public static Long getLong(String nm, Long val) { 215*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 216*795d594fSAndroid Build Coastguard Worker // } 217*795d594fSAndroid Build Coastguard Worker // public int compareTo(Long anotherLong) { 218*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 219*795d594fSAndroid Build Coastguard Worker // } 220*795d594fSAndroid Build Coastguard Worker // public static int compare(long x, long y) { 221*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 222*795d594fSAndroid Build Coastguard Worker // } 223*795d594fSAndroid Build Coastguard Worker // public static int compareUnsigned(long x, long y) { 224*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 225*795d594fSAndroid Build Coastguard Worker // } 226*795d594fSAndroid Build Coastguard Worker // public static long divideUnsigned(long dividend, long divisor) { 227*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 228*795d594fSAndroid Build Coastguard Worker // } 229*795d594fSAndroid Build Coastguard Worker // public static long remainderUnsigned(long dividend, long divisor) { 230*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 231*795d594fSAndroid Build Coastguard Worker // } 232*795d594fSAndroid Build Coastguard Worker // public static final int SIZE = 64; 233*795d594fSAndroid Build Coastguard Worker // public static final int BYTES = SIZE / Byte.SIZE; 234*795d594fSAndroid Build Coastguard Worker // public static long max(long a, long b) { 235*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 236*795d594fSAndroid Build Coastguard Worker // } 237*795d594fSAndroid Build Coastguard Worker // public static long min(long a, long b) { 238*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 239*795d594fSAndroid Build Coastguard Worker // } 240*795d594fSAndroid Build Coastguard Worker // private static final long serialVersionUID = 0; 241*795d594fSAndroid Build Coastguard Worker // 242*795d594fSAndroid Build Coastguard Worker // /** @hide */ 243*795d594fSAndroid Build Coastguard Worker // @Override 244*795d594fSAndroid Build Coastguard Worker // public Optional<? extends ConstantDesc> describeConstable() { 245*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 246*795d594fSAndroid Build Coastguard Worker // } 247*795d594fSAndroid Build Coastguard Worker // 248*795d594fSAndroid Build Coastguard Worker // /** @hide */ 249*795d594fSAndroid Build Coastguard Worker // @Override 250*795d594fSAndroid Build Coastguard Worker // public Long resolveConstantDesc(MethodHandles.Lookup lookup) { 251*795d594fSAndroid Build Coastguard Worker // throw new Error("Method redefined away!"); 252*795d594fSAndroid Build Coastguard Worker // } 253*795d594fSAndroid Build Coastguard Worker // } 254*795d594fSAndroid Build Coastguard Worker private static final byte[] CLASS_BYTES = Base64.getDecoder().decode( 255*795d594fSAndroid Build Coastguard Worker "yv66vgAAAEEAyQcAAgEADmphdmEvbGFuZy9Mb25nBwAEAQAOamF2YS9sYW5nL0J5dGUKAAYABwcA" + 256*795d594fSAndroid Build Coastguard Worker "CAwACQAKAQAQamF2YS9sYW5nL051bWJlcgEABjxpbml0PgEAAygpVgkAAQAMDAANAA4BAAV2YWx1" + 257*795d594fSAndroid Build Coastguard Worker "ZQEAAUoKAAEAEAwACQARAQAEKEopVgUAAAAAAAAACgX//////////wcAFwEAF2phdmEvbGFuZy9T" + 258*795d594fSAndroid Build Coastguard Worker "dHJpbmdCdWlsZGVyCgAWAAcIABoBACJSZWRlZmluZWQgTG9uZyEgdmFsdWUgKGFzIGRvdWJsZSk9" + 259*795d594fSAndroid Build Coastguard Worker "CgAWABwMAB0AHgEABmFwcGVuZAEALShMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJp" + 260*795d594fSAndroid Build Coastguard Worker "bmdCdWlsZGVyOwoAFgAgDAAdACEBABwoRClMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7CgAWACMM" + 261*795d594fSAndroid Build Coastguard Worker "ACQAJQEACHRvU3RyaW5nAQAUKClMamF2YS9sYW5nL1N0cmluZzsHACcBAA9qYXZhL2xhbmcvRXJy" + 262*795d594fSAndroid Build Coastguard Worker "b3IIACkBABZNZXRob2QgcmVkZWZpbmVkIGF3YXkhCgAmACsMAAkALAEAFShMamF2YS9sYW5nL1N0" + 263*795d594fSAndroid Build Coastguard Worker "cmluZzspVgoAAQAuDAAvADABAAljb21wYXJlVG8BABMoTGphdmEvbGFuZy9Mb25nOylJCgABADIM" + 264*795d594fSAndroid Build Coastguard Worker "ADMANAEAE3Jlc29sdmVDb25zdGFudERlc2MBADkoTGphdmEvbGFuZy9pbnZva2UvTWV0aG9kSGFu" + 265*795d594fSAndroid Build Coastguard Worker "ZGxlcyRMb29rdXA7KUxqYXZhL2xhbmcvTG9uZzsJAAEANgwANwA4AQAEVFlQRQEAEUxqYXZhL2xh" + 266*795d594fSAndroid Build Coastguard Worker "bmcvQ2xhc3M7BwA6AQAUamF2YS9sYW5nL0NvbXBhcmFibGUHADwBABxqYXZhL2xhbmcvY29uc3Rh" + 267*795d594fSAndroid Build Coastguard Worker "bnQvQ29uc3RhYmxlBwA+AQAfamF2YS9sYW5nL2NvbnN0YW50L0NvbnN0YW50RGVzYwEACU1JTl9W" + 268*795d594fSAndroid Build Coastguard Worker "QUxVRQEADUNvbnN0YW50VmFsdWUFAAAAAAAAAAABAAlNQVhfVkFMVUUBAAlTaWduYXR1cmUBACNM" + 269*795d594fSAndroid Build Coastguard Worker "amF2YS9sYW5nL0NsYXNzPExqYXZhL2xhbmcvTG9uZzs+OwEABFNJWkUBAAFJAwAAAEABAAVCWVRF" + 270*795d594fSAndroid Build Coastguard Worker "UwMAAAAIAQAQc2VyaWFsVmVyc2lvblVJRAEAA3N1bQEABShKSilKAQAEQ29kZQEAD0xpbmVOdW1i" + 271*795d594fSAndroid Build Coastguard Worker "ZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEAAWEBAAFiAQAEdGhpcwEAEExqYXZhL2xhbmcv" + 272*795d594fSAndroid Build Coastguard Worker "TG9uZzsBAAd2YWx1ZU9mAQATKEopTGphdmEvbGFuZy9Mb25nOwEAAWwBAA1oaWdoZXN0T25lQml0" + 273*795d594fSAndroid Build Coastguard Worker "AQAEKEopSgEAAWkBAAxsb3dlc3RPbmVCaXQBABRudW1iZXJPZkxlYWRpbmdaZXJvcwEABChKKUkB" + 274*795d594fSAndroid Build Coastguard Worker "ABVudW1iZXJPZlRyYWlsaW5nWmVyb3MBAAhiaXRDb3VudAEACnJvdGF0ZUxlZnQBAAUoSkkpSgEA" + 275*795d594fSAndroid Build Coastguard Worker "CGRpc3RhbmNlAQALcm90YXRlUmlnaHQBAAdyZXZlcnNlAQAIY29tcHJlc3MBAARtYXNrAQAGZXhw" + 276*795d594fSAndroid Build Coastguard Worker "YW5kAQAOcGFyYWxsZWxTdWZmaXgBAAltYXNrQ291bnQBAAZzaWdudW0BAAxyZXZlcnNlQnl0ZXMB" + 277*795d594fSAndroid Build Coastguard Worker "ABYoSkkpTGphdmEvbGFuZy9TdHJpbmc7AQAFcmFkaXgBABB0b1Vuc2lnbmVkU3RyaW5nAQAUdG9V" + 278*795d594fSAndroid Build Coastguard Worker "bnNpZ25lZEJpZ0ludGVnZXIBABkoSilMamF2YS9tYXRoL0JpZ0ludGVnZXI7AQALdG9IZXhTdHJp" + 279*795d594fSAndroid Build Coastguard Worker "bmcBABUoSilMamF2YS9sYW5nL1N0cmluZzsBAA10b09jdGFsU3RyaW5nAQAOdG9CaW5hcnlTdHJp" + 280*795d594fSAndroid Build Coastguard Worker "bmcBABF0b1Vuc2lnbmVkU3RyaW5nMAEAA3ZhbAEABXNoaWZ0AQATZm9ybWF0VW5zaWduZWRMb25n" + 281*795d594fSAndroid Build Coastguard Worker "MAEACShKSVtCSUkpVgEAA2J1ZgEAAltCAQAGb2Zmc2V0AQADbGVuAQAIZ2V0Q2hhcnMBAAcoSklb" + 282*795d594fSAndroid Build Coastguard Worker "QilJAQAFaW5kZXgBAAcoSklbQylJAQACW0MBAApzdHJpbmdTaXplAQABeAEACXBhcnNlTG9uZwEA" + 283*795d594fSAndroid Build Coastguard Worker "FihMamF2YS9sYW5nL1N0cmluZztJKUoBAAFzAQASTGphdmEvbGFuZy9TdHJpbmc7AQAKRXhjZXB0" + 284*795d594fSAndroid Build Coastguard Worker "aW9ucwcAiwEAH2phdmEvbGFuZy9OdW1iZXJGb3JtYXRFeGNlcHRpb24BABUoTGphdmEvbGFuZy9T" + 285*795d594fSAndroid Build Coastguard Worker "dHJpbmc7KUoBAB4oTGphdmEvbGFuZy9DaGFyU2VxdWVuY2U7SUlJKUoBABhMamF2YS9sYW5nL0No" + 286*795d594fSAndroid Build Coastguard Worker "YXJTZXF1ZW5jZTsBAApiZWdpbkluZGV4AQAIZW5kSW5kZXgBABFwYXJzZVVuc2lnbmVkTG9uZwEA" + 287*795d594fSAndroid Build Coastguard Worker "JShMamF2YS9sYW5nL1N0cmluZztJKUxqYXZhL2xhbmcvTG9uZzsBACQoTGphdmEvbGFuZy9TdHJp" + 288*795d594fSAndroid Build Coastguard Worker "bmc7KUxqYXZhL2xhbmcvTG9uZzsBAAZkZWNvZGUBAAJubQEACWJ5dGVWYWx1ZQEAAygpQgEACnNo" + 289*795d594fSAndroid Build Coastguard Worker "b3J0VmFsdWUBAAMoKVMBAAhpbnRWYWx1ZQEAAygpSQEACWxvbmdWYWx1ZQEAAygpSgEACmZsb2F0" + 290*795d594fSAndroid Build Coastguard Worker "VmFsdWUBAAMoKUYBAAtkb3VibGVWYWx1ZQEAAygpRAEACGhhc2hDb2RlAQAGZXF1YWxzAQAVKExq" + 291*795d594fSAndroid Build Coastguard Worker "YXZhL2xhbmcvT2JqZWN0OylaAQADb2JqAQASTGphdmEvbGFuZy9PYmplY3Q7AQAHZ2V0TG9uZwEA" + 292*795d594fSAndroid Build Coastguard Worker "JShMamF2YS9sYW5nL1N0cmluZztKKUxqYXZhL2xhbmcvTG9uZzsBADQoTGphdmEvbGFuZy9TdHJp" + 293*795d594fSAndroid Build Coastguard Worker "bmc7TGphdmEvbGFuZy9Mb25nOylMamF2YS9sYW5nL0xvbmc7AQALYW5vdGhlckxvbmcBAAdjb21w" + 294*795d594fSAndroid Build Coastguard Worker "YXJlAQAFKEpKKUkBAAF5AQAPY29tcGFyZVVuc2lnbmVkAQAOZGl2aWRlVW5zaWduZWQBAAhkaXZp" + 295*795d594fSAndroid Build Coastguard Worker "ZGVuZAEAB2Rpdmlzb3IBABFyZW1haW5kZXJVbnNpZ25lZAEAA21heAEAA21pbgEAEWRlc2NyaWJl" + 296*795d594fSAndroid Build Coastguard Worker "Q29uc3RhYmxlAQAWKClMamF2YS91dGlsL09wdGlvbmFsOwEAOigpTGphdmEvdXRpbC9PcHRpb25h" + 297*795d594fSAndroid Build Coastguard Worker "bDwrTGphdmEvbGFuZy9jb25zdGFudC9Db25zdGFudERlc2M7PjsBAAZsb29rdXABACdMamF2YS9s" + 298*795d594fSAndroid Build Coastguard Worker "YW5nL2ludm9rZS9NZXRob2RIYW5kbGVzJExvb2t1cDsBABUoTGphdmEvbGFuZy9PYmplY3Q7KUkB" + 299*795d594fSAndroid Build Coastguard Worker "ABBNZXRob2RQYXJhbWV0ZXJzAQA7KExqYXZhL2xhbmcvaW52b2tlL01ldGhvZEhhbmRsZXMkTG9v" + 300*795d594fSAndroid Build Coastguard Worker "a3VwOylMamF2YS9sYW5nL09iamVjdDsHAL4BACZqYXZhL2xhbmcvUmVmbGVjdGl2ZU9wZXJhdGlv" + 301*795d594fSAndroid Build Coastguard Worker "bkV4Y2VwdGlvbgEACDxjbGluaXQ+AQB5TGphdmEvbGFuZy9OdW1iZXI7TGphdmEvbGFuZy9Db21w" + 302*795d594fSAndroid Build Coastguard Worker "YXJhYmxlPExqYXZhL2xhbmcvTG9uZzs+O0xqYXZhL2xhbmcvY29uc3RhbnQvQ29uc3RhYmxlO0xq" + 303*795d594fSAndroid Build Coastguard Worker "YXZhL2xhbmcvY29uc3RhbnQvQ29uc3RhbnREZXNjOwEAClNvdXJjZUZpbGUBAAlMb25nLmphdmEB" + 304*795d594fSAndroid Build Coastguard Worker "AAxJbm5lckNsYXNzZXMHAMUBACVqYXZhL2xhbmcvaW52b2tlL01ldGhvZEhhbmRsZXMkTG9va3Vw" + 305*795d594fSAndroid Build Coastguard Worker "BwDHAQAeamF2YS9sYW5nL2ludm9rZS9NZXRob2RIYW5kbGVzAQAGTG9va3VwADEAAQAGAAMAOQA7" + 306*795d594fSAndroid Build Coastguard Worker "AD0ABwAZAD8ADgABAEAAAAACAEEAGQBDAA4AAQBAAAAAAgBBABkANwA4AAEARAAAAAIARQASAA0A" + 307*795d594fSAndroid Build Coastguard Worker "DgAAABkARgBHAAEAQAAAAAIASAAZAEkARwABAEAAAAACAEoAGgBLAA4AAQBAAAAAAgBBAEAACQBM" + 308*795d594fSAndroid Build Coastguard Worker "AE0AAQBOAAAAOAAEAAQAAAAEHiBhrQAAAAIATwAAAAYAAQAAAA8AUAAAABYAAgAAAAQAUQAOAAAA" + 309*795d594fSAndroid Build Coastguard Worker "AAAEAFIADgACAAEACQARAAEATgAAAEYAAwADAAAACiq3AAUqH7UAC7EAAAACAE8AAAAOAAMAAAAS" + 310*795d594fSAndroid Build Coastguard Worker "AAQAEwAJABQAUAAAABYAAgAAAAoAUwBUAAAAAAAKAA0ADgABAAkAVQBWAAEATgAAADMABAACAAAA" + 311*795d594fSAndroid Build Coastguard Worker "CbsAAVketwAPsAAAAAIATwAAAAYAAQAAABcAUAAAAAwAAQAAAAkAVwAOAAAACQBYAFkAAQBOAAAA" + 312*795d594fSAndroid Build Coastguard Worker "LgAEAAIAAAAEHgphrQAAAAIATwAAAAYAAQAAABsAUAAAAAwAAQAAAAQAWgAOAAAACQBbAFkAAQBO" + 313*795d594fSAndroid Build Coastguard Worker "AAAALgAEAAIAAAAEHgplrQAAAAIATwAAAAYAAQAAAB8AUAAAAAwAAQAAAAQAWgAOAAAACQBcAF0A" + 314*795d594fSAndroid Build Coastguard Worker "AQBOAAAALwAEAAIAAAAFHh5hiKwAAAACAE8AAAAGAAEAAAAjAFAAAAAMAAEAAAAFAFoADgAAAAkA" + 315*795d594fSAndroid Build Coastguard Worker "XgBdAAEATgAAADEABQACAAAABx4eBH1/iKwAAAACAE8AAAAGAAEAAAAnAFAAAAAMAAEAAAAHAFoA" + 316*795d594fSAndroid Build Coastguard Worker "DgAAAAkAXwBdAAEATgAAACwAAQACAAAAAgisAAAAAgBPAAAABgABAAAAKwBQAAAADAABAAAAAgBa" + 317*795d594fSAndroid Build Coastguard Worker "AA4AAAAJAGAAYQABAE4AAAA2AAIAAwAAAAIerQAAAAIATwAAAAYAAQAAAC8AUAAAABYAAgAAAAIA" + 318*795d594fSAndroid Build Coastguard Worker "WgAOAAAAAAACAGIARwACAAkAYwBhAAEATgAAADoABAADAAAABhQAEh5prQAAAAIATwAAAAYAAQAA" + 319*795d594fSAndroid Build Coastguard Worker "ADMAUAAAABYAAgAAAAYAWgAOAAAAAAAGAGIARwACAAkAZABZAAEATgAAAC0AAgACAAAAAx51rQAA" + 320*795d594fSAndroid Build Coastguard Worker "AAIATwAAAAYAAQAAADcAUAAAAAwAAQAAAAMAWgAOAAAACQBlAE0AAQBOAAAAOAACAAQAAAAEFAAU" + 321*795d594fSAndroid Build Coastguard Worker "rQAAAAIATwAAAAYAAQAAADsAUAAAABYAAgAAAAQAWgAOAAAAAAAEAGYADgACAAkAZwBNAAEATgAA" + 322*795d594fSAndroid Build Coastguard Worker "ADgAAgAEAAAABBQAFK0AAAACAE8AAAAGAAEAAAA/AFAAAAAWAAIAAAAEAFoADgAAAAAABABmAA4A" + 323*795d594fSAndroid Build Coastguard Worker "AgAKAGgAWQABAE4AAAAsAAIAAgAAAAIJrQAAAAIATwAAAAYAAQAAAEIAUAAAAAwAAQAAAAIAaQAO" + 324*795d594fSAndroid Build Coastguard Worker "AAAACQBqAF0AAQBOAAAALAABAAIAAAACA6wAAAACAE8AAAAGAAEAAABGAFAAAAAMAAEAAAACAFoA" + 325*795d594fSAndroid Build Coastguard Worker "DgAAAAkAawBZAAEATgAAACwAAgACAAAAAgmtAAAAAgBPAAAABgABAAAASgBQAAAADAABAAAAAgBa" + 326*795d594fSAndroid Build Coastguard Worker "AA4AAAABACQAJQABAE4AAABCAAMAAQAAABi7ABZZtwAYEhm2ABsqtAALirYAH7YAIrAAAAACAE8A" + 327*795d594fSAndroid Build Coastguard Worker "AAAGAAEAAABNAFAAAAAMAAEAAAAYAFMAVAAAAAkAJABsAAEATgAAAD4AAwADAAAACrsAJlkSKLcA" + 328*795d594fSAndroid Build Coastguard Worker "Kr8AAAACAE8AAAAGAAEAAABQAFAAAAAWAAIAAAAKAFoADgAAAAAACgBtAEcAAgAJAG4AbAABAE4A" + 329*795d594fSAndroid Build Coastguard Worker "AAA+AAMAAwAAAAq7ACZZEii3ACq/AAAAAgBPAAAABgABAAAAUwBQAAAAFgACAAAACgBaAA4AAAAA" + 330*795d594fSAndroid Build Coastguard Worker "AAoAbQBHAAIACgBvAHAAAQBOAAAANAADAAIAAAAKuwAmWRIotwAqvwAAAAIATwAAAAYAAQAAAFYA" + 331*795d594fSAndroid Build Coastguard Worker "UAAAAAwAAQAAAAoAWgAOAAAACQBxAHIAAQBOAAAANAADAAIAAAAKuwAmWRIotwAqvwAAAAIATwAA" + 332*795d594fSAndroid Build Coastguard Worker "AAYAAQAAAFkAUAAAAAwAAQAAAAoAWgAOAAAACQBzAHIAAQBOAAAANAADAAIAAAAKuwAmWRIotwAq" + 333*795d594fSAndroid Build Coastguard Worker "vwAAAAIATwAAAAYAAQAAAFwAUAAAAAwAAQAAAAoAWgAOAAAACQB0AHIAAQBOAAAANAADAAIAAAAK" + 334*795d594fSAndroid Build Coastguard Worker "uwAmWRIotwAqvwAAAAIATwAAAAYAAQAAAF8AUAAAAAwAAQAAAAoAWgAOAAAACAB1AGwAAQBOAAAA" + 335*795d594fSAndroid Build Coastguard Worker "PgADAAMAAAAKuwAmWRIotwAqvwAAAAIATwAAAAYAAQAAAGIAUAAAABYAAgAAAAoAdgAOAAAAAAAK" + 336*795d594fSAndroid Build Coastguard Worker "AHcARwACAAgAeAB5AAEATgAAAFwAAwAGAAAACrsAJlkSKLcAKr8AAAACAE8AAAAGAAEAAABlAFAA" + 337*795d594fSAndroid Build Coastguard Worker "AAA0AAUAAAAKAHYADgAAAAAACgB3AEcAAgAAAAoAegB7AAMAAAAKAHwARwAEAAAACgB9AEcABQAJ" + 338*795d594fSAndroid Build Coastguard Worker "ACQAcgABAE4AAAA0AAMAAgAAAAq7ACZZEii3ACq/AAAAAgBPAAAABgABAAAAaABQAAAADAABAAAA" + 339*795d594fSAndroid Build Coastguard Worker "CgBaAA4AAAAJAG4AcgABAE4AAAA0AAMAAgAAAAq7ACZZEii3ACq/AAAAAgBPAAAABgABAAAAawBQ" + 340*795d594fSAndroid Build Coastguard Worker "AAAADAABAAAACgBaAA4AAAAIAH4AfwABAE4AAABIAAMABAAAAAq7ACZZEii3ACq/AAAAAgBPAAAA" + 341*795d594fSAndroid Build Coastguard Worker "BgABAAAAbgBQAAAAIAADAAAACgBaAA4AAAAAAAoAgABHAAIAAAAKAHoAewADAAgAfgCBAAEATgAA" + 342*795d594fSAndroid Build Coastguard Worker "AEgAAwAEAAAACrsAJlkSKLcAKr8AAAACAE8AAAAGAAEAAABxAFAAAAAgAAMAAAAKAFoADgAAAAAA" + 343*795d594fSAndroid Build Coastguard Worker "CgCAAEcAAgAAAAoAegCCAAMACACDAF0AAQBOAAAANAADAAIAAAAKuwAmWRIotwAqvwAAAAIATwAA" + 344*795d594fSAndroid Build Coastguard Worker "AAYAAQAAAHQAUAAAAAwAAQAAAAoAhAAOAAAACQCFAIYAAgBOAAAAPgADAAIAAAAKuwAmWRIotwAq" + 345*795d594fSAndroid Build Coastguard Worker "vwAAAAIATwAAAAYAAQAAAHcAUAAAABYAAgAAAAoAhwCIAAAAAAAKAG0ARwABAIkAAAAEAAEAigAJ" + 346*795d594fSAndroid Build Coastguard Worker "AIUAjAACAE4AAAA0AAMAAQAAAAq7ACZZEii3ACq/AAAAAgBPAAAABgABAAAAegBQAAAADAABAAAA" + 347*795d594fSAndroid Build Coastguard Worker "CgCHAIgAAACJAAAABAABAIoACQCFAI0AAgBOAAAAUgADAAQAAAAKuwAmWRIotwAqvwAAAAIATwAA" + 348*795d594fSAndroid Build Coastguard Worker "AAYAAQAAAH0AUAAAACoABAAAAAoAhwCOAAAAAAAKAI8ARwABAAAACgCQAEcAAgAAAAoAbQBHAAMA" + 349*795d594fSAndroid Build Coastguard Worker "iQAAAAQAAQCKAAkAkQCGAAIATgAAAD4AAwACAAAACrsAJlkSKLcAKr8AAAACAE8AAAAGAAEAAACA" + 350*795d594fSAndroid Build Coastguard Worker "AFAAAAAWAAIAAAAKAIcAiAAAAAAACgBtAEcAAQCJAAAABAABAIoACQCRAIwAAgBOAAAANAADAAEA" + 351*795d594fSAndroid Build Coastguard Worker "AAAKuwAmWRIotwAqvwAAAAIATwAAAAYAAQAAAIMAUAAAAAwAAQAAAAoAhwCIAAAAiQAAAAQAAQCK" + 352*795d594fSAndroid Build Coastguard Worker "AAkAkQCNAAIATgAAAFIAAwAEAAAACrsAJlkSKLcAKr8AAAACAE8AAAAGAAEAAACGAFAAAAAqAAQA" + 353*795d594fSAndroid Build Coastguard Worker "AAAKAIcAjgAAAAAACgCPAEcAAQAAAAoAkABHAAIAAAAKAG0ARwADAIkAAAAEAAEAigAJAFUAkgAC" + 354*795d594fSAndroid Build Coastguard Worker "AE4AAAA+AAMAAgAAAAq7ACZZEii3ACq/AAAAAgBPAAAABgABAAAAiQBQAAAAFgACAAAACgCHAIgA" + 355*795d594fSAndroid Build Coastguard Worker "AAAAAAoAbQBHAAEAiQAAAAQAAQCKAAkAVQCTAAIATgAAADQAAwABAAAACrsAJlkSKLcAKr8AAAAC" + 356*795d594fSAndroid Build Coastguard Worker "AE8AAAAGAAEAAACMAFAAAAAMAAEAAAAKAIcAiAAAAIkAAAAEAAEAigAJAJQAkwACAE4AAAA0AAMA" + 357*795d594fSAndroid Build Coastguard Worker "AQAAAAq7ACZZEii3ACq/AAAAAgBPAAAABgABAAAAjwBQAAAADAABAAAACgCVAIgAAACJAAAABAAB" + 358*795d594fSAndroid Build Coastguard Worker "AIoAAQAJACwAAgBOAAAARwADAAIAAAAPKgm3AA+7ACZZEii3ACq/AAAAAgBPAAAACgACAAAAkwAF" + 359*795d594fSAndroid Build Coastguard Worker "AJQAUAAAABYAAgAAAA8AUwBUAAAAAAAPAIcAiAABAIkAAAAEAAEAigABAJYAlwABAE4AAAA0AAMA" + 360*795d594fSAndroid Build Coastguard Worker "AQAAAAq7ACZZEii3ACq/AAAAAgBPAAAABgABAAAAlwBQAAAADAABAAAACgBTAFQAAAABAJgAmQAB" + 361*795d594fSAndroid Build Coastguard Worker "AE4AAAA0AAMAAQAAAAq7ACZZEii3ACq/AAAAAgBPAAAABgABAAAAmgBQAAAADAABAAAACgBTAFQA" + 362*795d594fSAndroid Build Coastguard Worker "AAABAJoAmwABAE4AAAA0AAMAAQAAAAq7ACZZEii3ACq/AAAAAgBPAAAABgABAAAAnQBQAAAADAAB" + 363*795d594fSAndroid Build Coastguard Worker "AAAACgBTAFQAAAABAJwAnQABAE4AAAAvAAIAAQAAAAUqtAALrQAAAAIATwAAAAYAAQAAAKAAUAAA" + 364*795d594fSAndroid Build Coastguard Worker "AAwAAQAAAAUAUwBUAAAAAQCeAJ8AAQBOAAAANAADAAEAAAAKuwAmWRIotwAqvwAAAAIATwAAAAYA" + 365*795d594fSAndroid Build Coastguard Worker "AQAAAKMAUAAAAAwAAQAAAAoAUwBUAAAAAQCgAKEAAQBOAAAANAADAAEAAAAKuwAmWRIotwAqvwAA" + 366*795d594fSAndroid Build Coastguard Worker "AAIATwAAAAYAAQAAAKYAUAAAAAwAAQAAAAoAUwBUAAAAAQCiAJsAAQBOAAAANAADAAEAAAAKuwAm" + 367*795d594fSAndroid Build Coastguard Worker "WRIotwAqvwAAAAIATwAAAAYAAQAAAKkAUAAAAAwAAQAAAAoAUwBUAAAACQCiAF0AAQBOAAAANAAD" + 368*795d594fSAndroid Build Coastguard Worker "AAIAAAAKuwAmWRIotwAqvwAAAAIATwAAAAYAAQAAAKwAUAAAAAwAAQAAAAoADQAOAAAAAQCjAKQA" + 369*795d594fSAndroid Build Coastguard Worker "AQBOAAAAPgADAAIAAAAKuwAmWRIotwAqvwAAAAIATwAAAAYAAQAAAK8AUAAAABYAAgAAAAoAUwBU" + 370*795d594fSAndroid Build Coastguard Worker "AAAAAAAKAKUApgABAAkApwCTAAEATgAAADQAAwABAAAACrsAJlkSKLcAKr8AAAACAE8AAAAGAAEA" + 371*795d594fSAndroid Build Coastguard Worker "AACyAFAAAAAMAAEAAAAKAJUAiAAAAAkApwCoAAEATgAAAD4AAwADAAAACrsAJlkSKLcAKr8AAAAC" + 372*795d594fSAndroid Build Coastguard Worker "AE8AAAAGAAEAAAC1AFAAAAAWAAIAAAAKAJUAiAAAAAAACgB2AA4AAQAJAKcAqQABAE4AAAA+AAMA" + 373*795d594fSAndroid Build Coastguard Worker "AgAAAAq7ACZZEii3ACq/AAAAAgBPAAAABgABAAAAuABQAAAAFgACAAAACgCVAIgAAAAAAAoAdgBU" + 374*795d594fSAndroid Build Coastguard Worker "AAEAAQAvADAAAQBOAAAAPgADAAIAAAAKuwAmWRIotwAqvwAAAAIATwAAAAYAAQAAALsAUAAAABYA" + 375*795d594fSAndroid Build Coastguard Worker "AgAAAAoAUwBUAAAAAAAKAKoAVAABAAkAqwCsAAEATgAAAD4AAwAEAAAACrsAJlkSKLcAKr8AAAAC" + 376*795d594fSAndroid Build Coastguard Worker "AE8AAAAGAAEAAAC+AFAAAAAWAAIAAAAKAIQADgAAAAAACgCtAA4AAgAJAK4ArAABAE4AAAA+AAMA" + 377*795d594fSAndroid Build Coastguard Worker "BAAAAAq7ACZZEii3ACq/AAAAAgBPAAAABgABAAAAwQBQAAAAFgACAAAACgCEAA4AAAAAAAoArQAO" + 378*795d594fSAndroid Build Coastguard Worker "AAIACQCvAE0AAQBOAAAAPgADAAQAAAAKuwAmWRIotwAqvwAAAAIATwAAAAYAAQAAAMQAUAAAABYA" + 379*795d594fSAndroid Build Coastguard Worker "AgAAAAoAsAAOAAAAAAAKALEADgACAAkAsgBNAAEATgAAAD4AAwAEAAAACrsAJlkSKLcAKr8AAAAC" + 380*795d594fSAndroid Build Coastguard Worker "AE8AAAAGAAEAAADHAFAAAAAWAAIAAAAKALAADgAAAAAACgCxAA4AAgAJALMATQABAE4AAAA+AAMA" + 381*795d594fSAndroid Build Coastguard Worker "BAAAAAq7ACZZEii3ACq/AAAAAgBPAAAABgABAAAAzABQAAAAFgACAAAACgBRAA4AAAAAAAoAUgAO" + 382*795d594fSAndroid Build Coastguard Worker "AAIACQC0AE0AAQBOAAAAPgADAAQAAAAKuwAmWRIotwAqvwAAAAIATwAAAAYAAQAAAM8AUAAAABYA" + 383*795d594fSAndroid Build Coastguard Worker "AgAAAAoAUQAOAAAAAAAKAFIADgACAAEAtQC2AAIATgAAADQAAwABAAAACrsAJlkSKLcAKr8AAAAC" + 384*795d594fSAndroid Build Coastguard Worker "AE8AAAAGAAEAAADWAFAAAAAMAAEAAAAKAFMAVAAAAEQAAAACALcAAQAzADQAAQBOAAAAPgADAAIA" + 385*795d594fSAndroid Build Coastguard Worker "AAAKuwAmWRIotwAqvwAAAAIATwAAAAYAAQAAANwAUAAAABYAAgAAAAoAUwBUAAAAAAAKALgAuQAB" + 386*795d594fSAndroid Build Coastguard Worker "EEEALwC6AAIATgAAADMAAgACAAAACSorwAABtgAtrAAAAAIATwAAAAYAAQAAAAgAUAAAAAwAAQAA" + 387*795d594fSAndroid Build Coastguard Worker "AAkAUwBUAAAAuwAAAAUBAAAQABBBADMAvAADAE4AAAAwAAIAAgAAAAYqK7YAMbAAAAACAE8AAAAG" + 388*795d594fSAndroid Build Coastguard Worker "AAEAAAAIAFAAAAAMAAEAAAAGAFMAVAAAAIkAAAAEAAEAvQC7AAAABQEAABAAAAgAvwAKAAEATgAA" + 389*795d594fSAndroid Build Coastguard Worker "ACEAAQAAAAAABQGzADWxAAAAAQBPAAAACgACAAAACwAEAAwAAwBEAAAAAgDAAMEAAAACAMIAwwAA" + 390*795d594fSAndroid Build Coastguard Worker "AAoAAQDEAMYAyAAZ"); 391*795d594fSAndroid Build Coastguard Worker 392*795d594fSAndroid Build Coastguard Worker private static final byte[] DEX_BYTES = Base64.getDecoder().decode( 393*795d594fSAndroid Build Coastguard Worker "ZGV4CjAzNQCwD214dMo0Mvrm3e2vDCfqFcx5GioGfBxEGwAAcAAAAHhWNBIAAAAAAAAAAHQaAACQ" + 394*795d594fSAndroid Build Coastguard Worker "AAAAcAAAAB0AAACwAgAAJQAAACQDAAAHAAAA4AQAAEYAAAAYBQAAAQAAAEgHAADcEwAAaAcAABoR" + 395*795d594fSAndroid Build Coastguard Worker "AAAeEQAAIREAACsRAAAzEQAANxEAADoRAABBEQAARBEAAEcRAABKEQAAThEAAFQRAABZEQAAXREA" + 396*795d594fSAndroid Build Coastguard Worker "AGARAABkEQAAaREAAG4RAAByEQAAdxEAAH4RAACBEQAAhREAAIkRAACOEQAAkhEAAJcRAACcEQAA" + 397*795d594fSAndroid Build Coastguard Worker "oREAAMcRAADmEQAAAhIAABwSAAAvEgAAQhIAAFoSAAByEgAAhRIAAJcSAACrEgAAzhIAAOISAAAM" + 398*795d594fSAndroid Build Coastguard Worker "EwAAIBMAADsTAABbEwAAfhMAAKcTAAC/EwAA1RMAAOsTAAD2EwAAARQAAAwUAAAkFAAASBQAAEsU" + 399*795d594fSAndroid Build Coastguard Worker "AABRFAAAVxQAAFoUAABeFAAAZhQAAGoUAABtFAAAcRQAAHUUAAB5FAAAfBQAAIkUAACWFAAAnhQA" + 400*795d594fSAndroid Build Coastguard Worker "AKEUAACtFAAAtxQAALwUAADHFAAA0BQAANsUAADsFAAA9hQAAP4UAAARFQAAGxUAACsVAAA1FQAA" + 401*795d594fSAndroid Build Coastguard Worker "PhUAAEsVAABVFQAAXRUAAGUVAABxFQAAhhUAAJAVAACZFQAAoxUAALIVAAC1FQAAvBUAAMYVAADJ" + 402*795d594fSAndroid Build Coastguard Worker "FQAAzhUAANkVAADhFQAA7xUAAPUVAAAAFgAABRYAAAoWAAARFgAAFRYAACsWAABCFgAARxYAAE8W" + 403*795d594fSAndroid Build Coastguard Worker "AABfFgAAahYAAH0WAACEFgAAlxYAAKwWAAC1FgAAwxYAAM8WAADcFgAA3xYAAPEWAAD4FgAABBcA" + 404*795d594fSAndroid Build Coastguard Worker "AAwXAAAYFwAAHRcAAC0XAAA6FwAASRcAAFMXAABpFwAAexcAAI4XAACTFwAAmhcAAKMXAACmFwAA" + 405*795d594fSAndroid Build Coastguard Worker "qRcAAAUAAAAHAAAACAAAAAkAAAAOAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAjAAAAJQAAACYAAAAn" + 406*795d594fSAndroid Build Coastguard Worker "AAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAC8AAAAwAAAAMQAAADgAAAA7AAAAPwAAAEEA" + 407*795d594fSAndroid Build Coastguard Worker "AABCAAAABQAAAAAAAAAAAAAABwAAAAEAAAAAAAAACAAAAAIAAAAAAAAACQAAAAMAAAAAAAAACgAA" + 408*795d594fSAndroid Build Coastguard Worker "AAMAAACQEAAACwAAAAMAAACYEAAACwAAAAMAAACkEAAADAAAAAMAAACwEAAADQAAAAMAAAC4EAAA" + 409*795d594fSAndroid Build Coastguard Worker "DQAAAAMAAADAEAAADgAAAAQAAAAAAAAADwAAAAQAAACQEAAAEAAAAAQAAADIEAAAEQAAAAQAAACw" + 410*795d594fSAndroid Build Coastguard Worker "EAAAFAAAAAQAAADQEAAAEgAAAAQAAADcEAAAEwAAAAQAAADkEAAAFwAAAAwAAACQEAAAGQAAAAwA" + 411*795d594fSAndroid Build Coastguard Worker "AADcEAAAGgAAAAwAAADkEAAAGwAAAAwAAADsEAAAHAAAAAwAAAD0EAAAGQAAAAwAAAD8EAAAGQAA" + 412*795d594fSAndroid Build Coastguard Worker "AA8AAAD8EAAAFQAAABEAAAAAAAAAFwAAABEAAACQEAAAGAAAABEAAADIEAAAFgAAABIAAAAEEQAA" + 413*795d594fSAndroid Build Coastguard Worker "GQAAABIAAADcEAAAFwAAABYAAACQEAAAFQAAABcAAAAAAAAAOAAAABgAAAAAAAAAOwAAABkAAAAA" + 414*795d594fSAndroid Build Coastguard Worker "AAAAPAAAABkAAACQEAAAPQAAABkAAAAMEQAAPgAAABkAAADcEAAAQAAAABoAAADAEAAADAADAAYA" + 415*795d594fSAndroid Build Coastguard Worker "AAAMAAQANAAAAAwABAA1AAAADAADADkAAAAMAAkAOgAAAAwABAB9AAAADAAEAIsAAAALACMAAwAA" + 416*795d594fSAndroid Build Coastguard Worker "AAwAIAACAAAADAAhAAMAAAAMACMAAwAAAAwABABJAAAADAAAAEsAAAAMAAcATAAAAAwACABNAAAA" + 417*795d594fSAndroid Build Coastguard Worker "DAAJAE0AAAAMAAcATgAAAAwADQBPAAAADAASAFAAAAAMAB4AUQAAAAwADQBTAAAADAABAFYAAAAM" + 418*795d594fSAndroid Build Coastguard Worker "ACQAWAAAAAwADQBZAAAADAACAFoAAAAMACIAWwAAAAwABQBcAAAADAAGAFwAAAAMABIAXQAAAAwA" + 419*795d594fSAndroid Build Coastguard Worker "FABdAAAADAAVAF0AAAAMAAMAXgAAAAwABABeAAAADAALAF8AAAAMAAMAYgAAAAwACgBlAAAADAAL" + 420*795d594fSAndroid Build Coastguard Worker "AGcAAAAMAA0AagAAAAwADQBrAAAADAAEAG4AAAAMAAQAbwAAAAwACwByAAAADAAOAHMAAAAMAA8A" + 421*795d594fSAndroid Build Coastguard Worker "cwAAAAwAEABzAAAADAAOAHQAAAAMAA8AdAAAAAwAEAB0AAAADAANAHYAAAAMABYAdwAAAAwAFwB3" + 422*795d594fSAndroid Build Coastguard Worker "AAAADAALAHgAAAAMAAsAeQAAAAwADAB6AAAADAAMAHsAAAAMAB8AfwAAAAwABACAAAAADAAEAIEA" + 423*795d594fSAndroid Build Coastguard Worker "AAAMAA0AggAAAAwAGQCDAAAADAAZAIQAAAAMABkAhQAAAAwAGACGAAAADAAZAIYAAAAMABoAhgAA" + 424*795d594fSAndroid Build Coastguard Worker "AAwAHQCHAAAADAAZAIgAAAAMABoAiAAAAAwAGgCJAAAADAARAIwAAAAMABIAjAAAAAwAEwCMAAAA" + 425*795d594fSAndroid Build Coastguard Worker "DQAgAAMAAAASACAAAwAAABIAGwBGAAAAEgAcAEYAAAASABgAhgAAAAwAAAARAAAADQAAAIQQAAAz" + 426*795d594fSAndroid Build Coastguard Worker "AAAA9BkAAJcYAACxGQAABAACAAIAAAAEDwAACAAAACIACwAaATYAcCAAABAAJwADAAEAAgAAAAoP" + 427*795d594fSAndroid Build Coastguard Worker "AAAIAAAAIgALABoBNgBwIAAAEAAnAAMAAQACAAAADw8AAAgAAAAiAAsAGgE2AHAgAAAQACcAAwAB" + 428*795d594fSAndroid Build Coastguard Worker "AAIAAAAUDwAACAAAACIACwAaATYAcCAAABAAJwADAAIAAAAAABkPAAACAAAAElAPAAYABAACAAAA" + 429*795d594fSAndroid Build Coastguard Worker "Hg8AAAgAAAAiAAsAGgE2AHAgAAAQACcABAACAAIAAAAnDwAACAAAACIACwAaATYAcCAAABAAJwAC" + 430*795d594fSAndroid Build Coastguard Worker "AAIAAgAAAC0PAAAHAAAAHwEMAG4gBwAQAAoBDwEAAAYABAACAAAAMg8AAAgAAAAiAAsAGgE2AHAg" + 431*795d594fSAndroid Build Coastguard Worker "AAAQACcABgAEAAIAAAA7DwAACAAAACIACwAaATYAcCAAABAAJwAGAAQAAgAAAEIPAAAIAAAAIgAL" + 432*795d594fSAndroid Build Coastguard Worker "ABoBNgBwIAAAEAAnAAMAAQACAAAASQ8AAAgAAAAiAAsAGgE2AHAgAAAQACcABAACAAIAAABODwAA" + 433*795d594fSAndroid Build Coastguard Worker "CAAAACIACwAaATYAcCAAABAAJwADAAEAAgAAAFUPAAAIAAAAIgALABoBNgBwIAAAEAAnAAQAAgAA" + 434*795d594fSAndroid Build Coastguard Worker "AAAAWg8AAAQAAACbAAIChAEPAQQAAgAAAAAAXw8AAAYAAAASEKUAAgDAIIQBDwEDAAIAAAAAAGQP" + 435*795d594fSAndroid Build Coastguard Worker "AAACAAAAEgAPAAQAAgACAAAAaQ8AAAgAAAAiAAsAGgE2AHAgAAAQACcAAwABAAIAAABvDwAACAAA" + 436*795d594fSAndroid Build Coastguard Worker "ACIACwAaATYAcCAAABAAJwADAAEAAgAAAHUPAAAIAAAAIgALABoBNgBwIAAAEAAnAAQAAgACAAAA" + 437*795d594fSAndroid Build Coastguard Worker "ew8AAAgAAAAiAAsAGgE2AHAgAAAQACcABQADAAIAAACDDwAACAAAACIACwAaATYAcCAAABAAJwAE" + 438*795d594fSAndroid Build Coastguard Worker "AAIAAgAAAIsPAAAIAAAAIgALABoBNgBwIAAAEAAnAAMAAQACAAAAkQ8AAAgAAAAiAAsAGgE2AHAg" + 439*795d594fSAndroid Build Coastguard Worker "AAAQACcABAACAAIAAACXDwAACAAAACIACwAaATYAcCAAABAAJwADAAIAAwAAAJ4PAAAGAAAAIgAM" + 440*795d594fSAndroid Build Coastguard Worker "AHAwAgAQAhEAAgACAAIAAAAtDwAABQAAAG4gKgAQAAwBEQEAAAQAAgACAAAAow8AAAgAAAAiAAsA" + 441*795d594fSAndroid Build Coastguard Worker "GgE2AHAgAAAQACcABAACAAIAAACoDwAACAAAACIACwAaATYAcCAAABAAJwAEAAIAAgAAAK0PAAAI" + 442*795d594fSAndroid Build Coastguard Worker "AAAAIgALABoBNgBwIAAAEAAnAAQAAQADAAAAsg8AABcAAAAiABIAcBBCAAAAGgE3AG4gRAAQAAwA" + 443*795d594fSAndroid Build Coastguard Worker "UzEGAIYRbjBDABACDABuEEUAAAAMABEAAAAEAAIAAgAAALYPAAAIAAAAIgALABoBNgBwIAAAEAAn" + 444*795d594fSAndroid Build Coastguard Worker "AAUAAwACAAAAuw8AAAgAAAAiAAsAGgE2AHAgAAAQACcABAACAAIAAADBDwAACAAAACIACwAaATYA" + 445*795d594fSAndroid Build Coastguard Worker "cCAAABAAJwAFAAMAAgAAAMYPAAAIAAAAIgALABoBNgBwIAAAEAAnAAUAAwACAAAAzA8AAAgAAAAi" + 446*795d594fSAndroid Build Coastguard Worker "AAsAGgE2AHAgAAAQACcABAACAAIAAADTDwAACAAAACIACwAaATYAcCAAABAAJwADAAEAAgAAANgP" + 447*795d594fSAndroid Build Coastguard Worker "AAAIAAAAIgALABoBNgBwIAAAEAAnAAYABAAAAAAA3Q8AAAMAAAAWAP//EAAAAAYABAACAAAA4w8A" + 448*795d594fSAndroid Build Coastguard Worker "AAgAAAAiAAsAGgE2AHAgAAAQACcABgAEAAAAAADqDwAAAwAAABYA//8QAAAABAACAAAAAADwDwAA" + 449*795d594fSAndroid Build Coastguard Worker "BAAAABYAAQC7IBAAAwABAAAAAAD1DwAAAwAAAFMgBgAQAAAABAACAAAAAAD6DwAABQAAABYAAQCc" + 450*795d594fSAndroid Build Coastguard Worker "AAIAEAAAAAYABAACAAAA/w8AAAgAAAAiAAsAGgE2AHAgAAAQACcABgAEAAIAAAAGEAAACAAAACIA" + 451*795d594fSAndroid Build Coastguard Worker "CwAaATYAcCAAABAAJwAEAAIAAAAAAA0QAAADAAAAFgAAABAAAAAGAAQAAgAAABIQAAAIAAAAIgAL" + 452*795d594fSAndroid Build Coastguard Worker "ABoBNgBwIAAAEAAnAAMAAQACAAAAGhAAAAgAAAAiAAsAGgE2AHAgAAAQACcABAACAAIAAAAfEAAA" + 453*795d594fSAndroid Build Coastguard Worker "CAAAACIACwAaATYAcCAAABAAJwAGAAQAAgAAACUQAAAIAAAAIgALABoBNgBwIAAAEAAnAAMAAQAC" + 454*795d594fSAndroid Build Coastguard Worker "AAAALhAAAAgAAAAiAAsAGgE2AHAgAAAQACcABAACAAIAAAA0EAAACAAAACIACwAaATYAcCAAABAA" + 455*795d594fSAndroid Build Coastguard Worker "JwAGAAQAAgAAADsQAAAIAAAAIgALABoBNgBwIAAAEAAnAAQAAgAAAAAAQhAAAAIAAAB9IBAABAAC" + 456*795d594fSAndroid Build Coastguard Worker "AAAAAABHEAAAAwAAABYAAAAQAAAAAwADAAAAAABMEAAAAQAAABAAAAAFAAMAAAAAAFIQAAAFAAAA" + 457*795d594fSAndroid Build Coastguard Worker "FgAKAJ0AAAIQAAAABgAEAAAAAABYEAAAAwAAAJsAAgQQAAAAAwABAAIAAABeEAAACAAAACIACwAa" + 458*795d594fSAndroid Build Coastguard Worker "ATYAcCAAABAAJwABAAAAAAAAAGMQAAAEAAAAEgBpAAQADgAEAAIAAwAAAGgQAAANAAAAFgAAAHAw" + 459*795d594fSAndroid Build Coastguard Worker "AgACASIACwAaATYAcCAAABAAJwAAAAMAAwABAAAAbxAAAAYAAABwEEEAAABaAQYADgAIAAYAAgAA" + 460*795d594fSAndroid Build Coastguard Worker "AHcQAAAIAAAAIgALABoBNgBwIAAAEAAnAK8BAXEOAJcBAA4ApgEADgCjAQAOACsBYQ4AvgECjgGP" + 461*795d594fSAndroid Build Coastguard Worker "AQ4AuwEBRg4ACAEADgDBAQKOAY8BDgBuA2FiSw4AcQNhYksOAKkBAA4ArAEBjAEOAJ0BAA4AIwFh" + 462*795d594fSAndroid Build Coastguard Worker "DgAnAWEOAEYBYQ4AdAGOAQ4AjwEBbg4AsgEBbg4AuAECbosBDgC1AQJuiwEOANwBAWcOAIwBAX0O" + 463*795d594fSAndroid Build Coastguard Worker "AIkBAn12DgAXAWQOAF8BYQ4AWQFhDgBcAWEOAE0ADgBoAWEOAFACYXYOAGsBYQ4AUwJhdg4AYgKL" + 464*795d594fSAndroid Build Coastguard Worker "AX8OAFYBYQ4A1gEADgA7AmFpDgDEAQJVVg4APwJhaQ4AGwFhDgCgAQAOAB8BYQ4AzAECREgOAM8B" + 465*795d594fSAndroid Build Coastguard Worker "AkRIDgBCAWoOAH0EfUlYdg4AegF9DgB3An12DgCGAQR9SVh2DgCDAQF9DgCAAQJ9dg4AxwECVVYO" + 466*795d594fSAndroid Build Coastguard Worker "ADcBYQ4ASgFhDgAvAmFTDgAzAmFTDgAPAkRIDgCaAQAOAAsADjwAkwEBfQ5aABIBjAEOPC0AZQWL" + 467*795d594fSAndroid Build Coastguard Worker "AX9LcmUOAAAAAAMAAAAKABMAFAAAAAEAAAAEAAAAAwAAAAQAAwAbAAAAAwAAAAQAAwAcAAAAAgAA" + 468*795d594fSAndroid Build Coastguard Worker "AAQABAABAAAADAAAAAEAAAAPAAAAAgAAAAQAAwAEAAAACAADAAMAAwABAAAAEQAAAAIAAAARAAMA" + 469*795d594fSAndroid Build Coastguard Worker "AgAAABEABAACAAAAEQAMAAEAAAAVAAAAAQAAAAEAAAAFAAAABAADABsAAwADAAIoKQABKwAIPGNs" + 470*795d594fSAndroid Build Coastguard Worker "aW5pdD4ABjxpbml0PgACPjsAAUIABUJZVEVTAAFEAAFGAAFJAAJJSgAESUpJTAADSUpKAAJJTAAB" + 471*795d594fSAndroid Build Coastguard Worker "SgACSkoAA0pKSQADSkpKAAJKTAADSkxJAAVKTElJSQABTAACTEQAAkxKAANMSkkAAkxMAANMTEkA" + 472*795d594fSAndroid Build Coastguard Worker "A0xMSgADTExMACRMZGFsdmlrL2Fubm90YXRpb24vTWV0aG9kUGFyYW1ldGVyczsAHUxkYWx2aWsv" + 473*795d594fSAndroid Build Coastguard Worker "YW5ub3RhdGlvbi9TaWduYXR1cmU7ABpMZGFsdmlrL2Fubm90YXRpb24vVGhyb3dzOwAYTGphdmEv" + 474*795d594fSAndroid Build Coastguard Worker "bGFuZy9DaGFyU2VxdWVuY2U7ABFMamF2YS9sYW5nL0NsYXNzOwARTGphdmEvbGFuZy9DbGFzczwA" + 475*795d594fSAndroid Build Coastguard Worker "FkxqYXZhL2xhbmcvQ29tcGFyYWJsZTsAFkxqYXZhL2xhbmcvQ29tcGFyYWJsZTwAEUxqYXZhL2xh" + 476*795d594fSAndroid Build Coastguard Worker "bmcvRXJyb3I7ABBMamF2YS9sYW5nL0xvbmc7ABJMamF2YS9sYW5nL051bWJlcjsAIUxqYXZhL2xh" + 477*795d594fSAndroid Build Coastguard Worker "bmcvTnVtYmVyRm9ybWF0RXhjZXB0aW9uOwASTGphdmEvbGFuZy9PYmplY3Q7AChMamF2YS9sYW5n" + 478*795d594fSAndroid Build Coastguard Worker "L1JlZmxlY3RpdmVPcGVyYXRpb25FeGNlcHRpb247ABJMamF2YS9sYW5nL1N0cmluZzsAGUxqYXZh" + 479*795d594fSAndroid Build Coastguard Worker "L2xhbmcvU3RyaW5nQnVpbGRlcjsAHkxqYXZhL2xhbmcvY29uc3RhbnQvQ29uc3RhYmxlOwAhTGph" + 480*795d594fSAndroid Build Coastguard Worker "dmEvbGFuZy9jb25zdGFudC9Db25zdGFudERlc2M7ACdMamF2YS9sYW5nL2ludm9rZS9NZXRob2RI" + 481*795d594fSAndroid Build Coastguard Worker "YW5kbGVzJExvb2t1cDsAFkxqYXZhL21hdGgvQmlnSW50ZWdlcjsAFExqYXZhL3V0aWwvT3B0aW9u" + 482*795d594fSAndroid Build Coastguard Worker "YWw7ABRMamF2YS91dGlsL09wdGlvbmFsPAAJTG9uZy5qYXZhAAlNQVhfVkFMVUUACU1JTl9WQUxV" + 483*795d594fSAndroid Build Coastguard Worker "RQAWTWV0aG9kIHJlZGVmaW5lZCBhd2F5IQAiUmVkZWZpbmVkIExvbmchIHZhbHVlIChhcyBkb3Vi" + 484*795d594fSAndroid Build Coastguard Worker "bGUpPQABUwAEU0laRQAEVFlQRQABVgACVkoABlZKSUxJSQACVkwAAVoAAlpMAAJbQgACW0MAAWEA" + 485*795d594fSAndroid Build Coastguard Worker "C2FjY2Vzc0ZsYWdzAAthbm90aGVyTG9uZwAGYXBwZW5kAAFiAApiZWdpbkluZGV4AAhiaXRDb3Vu" + 486*795d594fSAndroid Build Coastguard Worker "dAADYnVmAAlieXRlVmFsdWUAB2NvbXBhcmUACWNvbXBhcmVUbwAPY29tcGFyZVVuc2lnbmVkAAhj" + 487*795d594fSAndroid Build Coastguard Worker "b21wcmVzcwAGZGVjb2RlABFkZXNjcmliZUNvbnN0YWJsZQAIZGlzdGFuY2UADmRpdmlkZVVuc2ln" + 488*795d594fSAndroid Build Coastguard Worker "bmVkAAhkaXZpZGVuZAAHZGl2aXNvcgALZG91YmxlVmFsdWUACGVuZEluZGV4AAZlcXVhbHMABmV4" + 489*795d594fSAndroid Build Coastguard Worker "cGFuZAAKZmxvYXRWYWx1ZQATZm9ybWF0VW5zaWduZWRMb25nMAAIZ2V0Q2hhcnMAB2dldExvbmcA" + 490*795d594fSAndroid Build Coastguard Worker "CGhhc2hDb2RlAA1oaWdoZXN0T25lQml0AAFpAAVpbmRleAAIaW50VmFsdWUAAWwAA2xlbgAJbG9u" + 491*795d594fSAndroid Build Coastguard Worker "Z1ZhbHVlAAZsb29rdXAADGxvd2VzdE9uZUJpdAAEbWFzawAJbWFza0NvdW50AANtYXgAA21pbgAF" + 492*795d594fSAndroid Build Coastguard Worker "bmFtZXMAAm5tABRudW1iZXJPZkxlYWRpbmdaZXJvcwAVbnVtYmVyT2ZUcmFpbGluZ1plcm9zAANv" + 493*795d594fSAndroid Build Coastguard Worker "YmoABm9mZnNldAAOcGFyYWxsZWxTdWZmaXgACXBhcnNlTG9uZwARcGFyc2VVbnNpZ25lZExvbmcA" + 494*795d594fSAndroid Build Coastguard Worker "BXJhZGl4ABFyZW1haW5kZXJVbnNpZ25lZAATcmVzb2x2ZUNvbnN0YW50RGVzYwAHcmV2ZXJzZQAM" + 495*795d594fSAndroid Build Coastguard Worker "cmV2ZXJzZUJ5dGVzAApyb3RhdGVMZWZ0AAtyb3RhdGVSaWdodAABcwAQc2VyaWFsVmVyc2lvblVJ" + 496*795d594fSAndroid Build Coastguard Worker "RAAFc2hpZnQACnNob3J0VmFsdWUABnNpZ251bQAKc3RyaW5nU2l6ZQADc3VtAA50b0JpbmFyeVN0" + 497*795d594fSAndroid Build Coastguard Worker "cmluZwALdG9IZXhTdHJpbmcADXRvT2N0YWxTdHJpbmcACHRvU3RyaW5nABR0b1Vuc2lnbmVkQmln" + 498*795d594fSAndroid Build Coastguard Worker "SW50ZWdlcgAQdG9VbnNpZ25lZFN0cmluZwARdG9VbnNpZ25lZFN0cmluZzAAA3ZhbAAFdmFsdWUA" + 499*795d594fSAndroid Build Coastguard Worker "B3ZhbHVlT2YAAXgAAXkAmwF+fkQ4eyJiYWNrZW5kIjoiZGV4IiwiY29tcGlsYXRpb24tbW9kZSI6" + 500*795d594fSAndroid Build Coastguard Worker "ImRlYnVnIiwiaGFzLWNoZWNrc3VtcyI6ZmFsc2UsIm1pbi1hcGkiOjEsInNoYS0xIjoiZWFlNDNh" + 501*795d594fSAndroid Build Coastguard Worker "MzAyODgyMjQ4ZmExYzU4NDUzZjJjZGViMjNiMGZkZDU1MCIsInZlcnNpb24iOiI4LjkuMS1kZXYi" + 502*795d594fSAndroid Build Coastguard Worker "fQACBwGLARwBGA4CBgGLARwFFwAXMhcBFy4XBAIFAkQcASQAEGwcAR4CBwGLARwBGBACBgGLARwD" + 503*795d594fSAndroid Build Coastguard Worker "FyIXJhcEAgYBiwEcBhcnFyQXJhcEFy0XLgYBMg4AGQEZARkBGQEZARoGEgGIgASEHQGBgATIHQGB" + 504*795d594fSAndroid Build Coastguard Worker "gAScHQEJ6A8CCfwPAwncEAEJnBgBCYQTAgm0GAMJ1BgCCOQdAQj8EAEInBEBCaQTAQnkEwEJxBMC" + 505*795d594fSAndroid Build Coastguard Worker "CdwRAQnsGAMJnBkBCbgZAQnYGQEJnBIBCbQSAQr4GQEJkBoBCbAaAQnQGgEJ8BoBCZAbAQmwGwEJ" + 506*795d594fSAndroid Build Coastguard Worker "0BsDCfAbAQmEHAEJnBwBCbAcAgnQEgEI5BIBCcwcAQmcFQEJvBUBCdwVAgm8FgEJ3BYBCtwXAQn8" + 507*795d594fSAndroid Build Coastguard Worker "FgEJnBcBCLwXAQnkFAEJpBQBCcQUBQGIDwIBnBABwSC8EAQB/BcCAagPAQHoDgIByA8HAbwRAwH8" + 508*795d594fSAndroid Build Coastguard Worker "EQEBhBkOAYQUAcEggBUFAeQcBwH8FQQECAYABgAEQAAAAAAAAAEAAABHGAAAAQAAAFAYAAABAAAA" + 509*795d594fSAndroid Build Coastguard Worker "YRgAAAIAAABhGAAAbhgAAAEAAAB3GAAAAQAAAIQYAADsGQAAAQAAAA0AAAAAAAAABAAAAOQZAAAD" + 510*795d594fSAndroid Build Coastguard Worker "AAAAwBkAAAgAAADQGQAACwAAAMAZAAAMAAAAyBkAACMAAADAGQAAJAAAAMAZAAAlAAAAwBkAACYA" + 511*795d594fSAndroid Build Coastguard Worker "AADAGQAAJwAAAMAZAAAoAAAAwBkAACsAAADYGQAAPwAAAMAZAABAAAAAwBkAABEAAAAAAAAAAQAA" + 512*795d594fSAndroid Build Coastguard Worker "AAAAAAABAAAAkAAAAHAAAAACAAAAHQAAALACAAADAAAAJQAAACQDAAAEAAAABwAAAOAEAAAFAAAA" + 513*795d594fSAndroid Build Coastguard Worker "RgAAABgFAAAGAAAAAQAAAEgHAAABIAAAQAAAAGgHAAADIAAAPwAAAAQPAAABEAAAEAAAAIQQAAAC" + 514*795d594fSAndroid Build Coastguard Worker "IAAAkAAAABoRAAAEIAAABgAAAEcYAAAAIAAAAQAAAJcYAAAFIAAAAQAAALEZAAADEAAABwAAALwZ" + 515*795d594fSAndroid Build Coastguard Worker "AAAGIAAAAQAAAPQZAAAAEAAAAQAAAHQaAAA="); 516*795d594fSAndroid Build Coastguard Worker 517*795d594fSAndroid Build Coastguard Worker static class FuncCmp implements LongPredicate { 518*795d594fSAndroid Build Coastguard Worker final String name; 519*795d594fSAndroid Build Coastguard Worker final LongPredicate p; FuncCmp(String name, LongPredicate p)520*795d594fSAndroid Build Coastguard Worker public FuncCmp(String name, LongPredicate p) { 521*795d594fSAndroid Build Coastguard Worker this.name = name; 522*795d594fSAndroid Build Coastguard Worker this.p = p; 523*795d594fSAndroid Build Coastguard Worker } 524*795d594fSAndroid Build Coastguard Worker test(long l)525*795d594fSAndroid Build Coastguard Worker public boolean test(long l) { 526*795d594fSAndroid Build Coastguard Worker return p.test(l); 527*795d594fSAndroid Build Coastguard Worker } 528*795d594fSAndroid Build Coastguard Worker } l2l(String name, final LongUnaryOperator a, final LongUnaryOperator b)529*795d594fSAndroid Build Coastguard Worker static FuncCmp l2l(String name, final LongUnaryOperator a, final LongUnaryOperator b) { 530*795d594fSAndroid Build Coastguard Worker return new FuncCmp(name, (v) -> a.applyAsLong(v) == b.applyAsLong(v)); 531*795d594fSAndroid Build Coastguard Worker } l2i(String name, final LongToIntFunction a, final LongToIntFunction b)532*795d594fSAndroid Build Coastguard Worker static FuncCmp l2i(String name, final LongToIntFunction a, final LongToIntFunction b) { 533*795d594fSAndroid Build Coastguard Worker return new FuncCmp(name, (v) -> a.applyAsInt(v) == b.applyAsInt(v)); 534*795d594fSAndroid Build Coastguard Worker } 535*795d594fSAndroid Build Coastguard Worker 536*795d594fSAndroid Build Coastguard Worker /** Interface for a long, int -> long function. */ applyToLongInt(long a, int b)537*795d594fSAndroid Build Coastguard Worker static interface LI2IFunction { public long applyToLongInt(long a, int b); } 538*795d594fSAndroid Build Coastguard Worker li2l(String name, final Random r, final LI2IFunction a, final LI2IFunction b)539*795d594fSAndroid Build Coastguard Worker static FuncCmp li2l(String name, final Random r, final LI2IFunction a, final LI2IFunction b) { 540*795d594fSAndroid Build Coastguard Worker return new FuncCmp(name, new LongPredicate() { 541*795d594fSAndroid Build Coastguard Worker public boolean test(long v) { 542*795d594fSAndroid Build Coastguard Worker int i = r.nextInt(); 543*795d594fSAndroid Build Coastguard Worker return a.applyToLongInt(v, i) == b.applyToLongInt(v, i); 544*795d594fSAndroid Build Coastguard Worker } 545*795d594fSAndroid Build Coastguard Worker }); 546*795d594fSAndroid Build Coastguard Worker } 547*795d594fSAndroid Build Coastguard Worker 548*795d594fSAndroid Build Coastguard Worker public static void main(String[] args) { 549*795d594fSAndroid Build Coastguard Worker doTest(10000); 550*795d594fSAndroid Build Coastguard Worker } 551*795d594fSAndroid Build Coastguard Worker 552*795d594fSAndroid Build Coastguard Worker public static void doTest(int iters) { 553*795d594fSAndroid Build Coastguard Worker // Just transform immediately. 554*795d594fSAndroid Build Coastguard Worker doCommonClassRedefinition(Long.class, CLASS_BYTES, DEX_BYTES); 555*795d594fSAndroid Build Coastguard Worker final Random r = new Random(); 556*795d594fSAndroid Build Coastguard Worker FuncCmp[] comps = new FuncCmp[] { 557*795d594fSAndroid Build Coastguard Worker l2l("highestOneBit", Long::highestOneBit, RedefinedLongIntrinsics::highestOneBit), 558*795d594fSAndroid Build Coastguard Worker l2l("lowestOneBit", Long::lowestOneBit, RedefinedLongIntrinsics::lowestOneBit), 559*795d594fSAndroid Build Coastguard Worker l2i("numberOfLeadingZeros", 560*795d594fSAndroid Build Coastguard Worker Long::numberOfLeadingZeros, 561*795d594fSAndroid Build Coastguard Worker RedefinedLongIntrinsics::numberOfLeadingZeros), 562*795d594fSAndroid Build Coastguard Worker l2i("numberOfTrailingZeros", 563*795d594fSAndroid Build Coastguard Worker Long::numberOfTrailingZeros, 564*795d594fSAndroid Build Coastguard Worker RedefinedLongIntrinsics::numberOfTrailingZeros), 565*795d594fSAndroid Build Coastguard Worker l2i("bitCount", Long::bitCount, RedefinedLongIntrinsics::bitCount), 566*795d594fSAndroid Build Coastguard Worker li2l("rotateLeft", r, Long::rotateLeft, RedefinedLongIntrinsics::rotateLeft), 567*795d594fSAndroid Build Coastguard Worker li2l("rotateRight", r, Long::rotateRight, RedefinedLongIntrinsics::rotateRight), 568*795d594fSAndroid Build Coastguard Worker l2l("reverse", Long::reverse, RedefinedLongIntrinsics::reverse), 569*795d594fSAndroid Build Coastguard Worker l2i("signum", Long::signum, RedefinedLongIntrinsics::signum), 570*795d594fSAndroid Build Coastguard Worker l2l("reverseBytes", Long::reverseBytes, RedefinedLongIntrinsics::reverseBytes), 571*795d594fSAndroid Build Coastguard Worker }; 572*795d594fSAndroid Build Coastguard Worker for (FuncCmp f : comps) { 573*795d594fSAndroid Build Coastguard Worker // Just actually use ints so we can cast them back int the tests to print them (since we 574*795d594fSAndroid Build Coastguard Worker // deleted a bunch of the Long methods needed for printing longs)! 575*795d594fSAndroid Build Coastguard Worker int failures = (int)r.ints(iters) 576*795d594fSAndroid Build Coastguard Worker .mapToLong((v) -> (long)v) 577*795d594fSAndroid Build Coastguard Worker .filter(f.negate()) // Get all the test cases that failed. 578*795d594fSAndroid Build Coastguard Worker .count(); 579*795d594fSAndroid Build Coastguard Worker if (failures != 0) { 580*795d594fSAndroid Build Coastguard Worker double percent = 100.0d*((double)failures/(double)iters); 581*795d594fSAndroid Build Coastguard Worker System.out.println("for intrinsic " + f.name + " " + failures + "/" + iters 582*795d594fSAndroid Build Coastguard Worker + " (" + Double.toString(percent) + "%) tests failed!"); 583*795d594fSAndroid Build Coastguard Worker } 584*795d594fSAndroid Build Coastguard Worker } 585*795d594fSAndroid Build Coastguard Worker System.out.println("Finished!"); 586*795d594fSAndroid Build Coastguard Worker } 587*795d594fSAndroid Build Coastguard Worker } 588