.class final Lokio/Base64; .super Ljava/lang/Object; .source "Base64.java" # static fields .field private static final MAP:[B .field private static final URL_MAP:[B # direct methods .method static constructor ()V .locals 2 .prologue const/16 v1, 0x40 .line 110 new-array v0, v1, [B fill-array-data v0, :array_0 sput-object v0, Lokio/Base64;->MAP:[B .line 117 new-array v0, v1, [B fill-array-data v0, :array_1 sput-object v0, Lokio/Base64;->URL_MAP:[B return-void .line 110 nop :array_0 .array-data 1 0x41t 0x42t 0x43t 0x44t 0x45t 0x46t 0x47t 0x48t 0x49t 0x4at 0x4bt 0x4ct 0x4dt 0x4et 0x4ft 0x50t 0x51t 0x52t 0x53t 0x54t 0x55t 0x56t 0x57t 0x58t 0x59t 0x5at 0x61t 0x62t 0x63t 0x64t 0x65t 0x66t 0x67t 0x68t 0x69t 0x6at 0x6bt 0x6ct 0x6dt 0x6et 0x6ft 0x70t 0x71t 0x72t 0x73t 0x74t 0x75t 0x76t 0x77t 0x78t 0x79t 0x7at 0x30t 0x31t 0x32t 0x33t 0x34t 0x35t 0x36t 0x37t 0x38t 0x39t 0x2bt 0x2ft .end array-data .line 117 :array_1 .array-data 1 0x41t 0x42t 0x43t 0x44t 0x45t 0x46t 0x47t 0x48t 0x49t 0x4at 0x4bt 0x4ct 0x4dt 0x4et 0x4ft 0x50t 0x51t 0x52t 0x53t 0x54t 0x55t 0x56t 0x57t 0x58t 0x59t 0x5at 0x61t 0x62t 0x63t 0x64t 0x65t 0x66t 0x67t 0x68t 0x69t 0x6at 0x6bt 0x6ct 0x6dt 0x6et 0x6ft 0x70t 0x71t 0x72t 0x73t 0x74t 0x75t 0x76t 0x77t 0x78t 0x79t 0x7at 0x30t 0x31t 0x32t 0x33t 0x34t 0x35t 0x36t 0x37t 0x38t 0x39t 0x2dt 0x5ft .end array-data .end method .method private constructor ()V .locals 0 .prologue .line 26 invoke-direct {p0}, Ljava/lang/Object;->()V .line 27 return-void .end method .method public static decode(Ljava/lang/String;)[B .locals 13 .prologue const/16 v12, 0x20 const/16 v11, 0xd const/16 v10, 0xa const/16 v9, 0x9 const/4 v6, 0x0 .line 31 invoke-virtual {p0}, Ljava/lang/String;->length()I move-result v0 move v7, v0 .line 32 :goto_0 if-lez v7, :cond_0 .line 33 add-int/lit8 v0, v7, -0x1 invoke-virtual {p0, v0}, Ljava/lang/String;->charAt(I)C move-result v0 .line 34 const/16 v1, 0x3d if-eq v0, v1, :cond_1 if-eq v0, v10, :cond_1 if-eq v0, v11, :cond_1 if-eq v0, v12, :cond_1 if-eq v0, v9, :cond_1 .line 40 :cond_0 int-to-long v0, v7 const-wide/16 v2, 0x6 mul-long/2addr v0, v2 const-wide/16 v2, 0x8 div-long/2addr v0, v2 long-to-int v0, v0 new-array v4, v0, [B move v5, v6 move v1, v6 move v2, v6 move v3, v6 .line 45 :goto_1 if-ge v5, v7, :cond_a .line 46 invoke-virtual {p0, v5}, Ljava/lang/String;->charAt(I)C move-result v0 .line 49 const/16 v8, 0x41 if-lt v0, v8, :cond_2 const/16 v8, 0x5a if-gt v0, v8, :cond_2 .line 53 add-int/lit8 v0, v0, -0x41 .line 75 :goto_2 shl-int/lit8 v1, v1, 0x6 int-to-byte v0, v0 or-int/2addr v0, v1 .line 78 add-int/lit8 v1, v2, 0x1 .line 79 rem-int/lit8 v2, v1, 0x4 if-nez v2, :cond_f .line 80 add-int/lit8 v2, v3, 0x1 shr-int/lit8 v8, v0, 0x10 int-to-byte v8, v8 aput-byte v8, v4, v3 .line 81 add-int/lit8 v3, v2, 0x1 shr-int/lit8 v8, v0, 0x8 int-to-byte v8, v8 aput-byte v8, v4, v2 .line 82 add-int/lit8 v2, v3, 0x1 int-to-byte v8, v0 aput-byte v8, v4, v3 .line 45 :goto_3 add-int/lit8 v3, v5, 0x1 move v5, v3 move v3, v2 move v2, v1 move v1, v0 goto :goto_1 .line 32 :cond_1 add-int/lit8 v0, v7, -0x1 move v7, v0 goto :goto_0 .line 54 :cond_2 const/16 v8, 0x61 if-lt v0, v8, :cond_3 const/16 v8, 0x7a if-gt v0, v8, :cond_3 .line 58 add-int/lit8 v0, v0, -0x47 goto :goto_2 .line 59 :cond_3 const/16 v8, 0x30 if-lt v0, v8, :cond_4 const/16 v8, 0x39 if-gt v0, v8, :cond_4 .line 63 add-int/lit8 v0, v0, 0x4 goto :goto_2 .line 64 :cond_4 const/16 v8, 0x2b if-eq v0, v8, :cond_5 const/16 v8, 0x2d if-ne v0, v8, :cond_6 .line 65 :cond_5 const/16 v0, 0x3e goto :goto_2 .line 66 :cond_6 const/16 v8, 0x2f if-eq v0, v8, :cond_7 const/16 v8, 0x5f if-ne v0, v8, :cond_8 .line 67 :cond_7 const/16 v0, 0x3f goto :goto_2 .line 68 :cond_8 if-eq v0, v10, :cond_10 if-eq v0, v11, :cond_10 if-eq v0, v12, :cond_10 if-ne v0, v9, :cond_9 move v0, v1 move v1, v2 move v2, v3 .line 69 goto :goto_3 .line 71 :cond_9 const/4 v0, 0x0 .line 107 :goto_4 return-object v0 .line 86 :cond_a rem-int/lit8 v0, v2, 0x4 .line 87 const/4 v2, 0x1 if-ne v0, v2, :cond_b .line 89 const/4 v0, 0x0 goto :goto_4 .line 90 :cond_b const/4 v2, 0x2 if-ne v0, v2, :cond_d .line 92 shl-int/lit8 v1, v1, 0xc .line 93 add-int/lit8 v0, v3, 0x1 shr-int/lit8 v1, v1, 0x10 int-to-byte v1, v1 aput-byte v1, v4, v3 move v3, v0 .line 102 :cond_c :goto_5 array-length v0, v4 if-ne v3, v0, :cond_e move-object v0, v4 goto :goto_4 .line 94 :cond_d const/4 v2, 0x3 if-ne v0, v2, :cond_c .line 96 shl-int/lit8 v0, v1, 0x6 .line 97 add-int/lit8 v1, v3, 0x1 shr-int/lit8 v2, v0, 0x10 int-to-byte v2, v2 aput-byte v2, v4, v3 .line 98 add-int/lit8 v3, v1, 0x1 shr-int/lit8 v0, v0, 0x8 int-to-byte v0, v0 aput-byte v0, v4, v1 goto :goto_5 .line 105 :cond_e new-array v0, v3, [B .line 106 invoke-static {v4, v6, v0, v6, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V goto :goto_4 :cond_f move v2, v3 goto :goto_3 :cond_10 move v0, v1 move v1, v2 move v2, v3 goto :goto_3 .end method .method public static encode([B)Ljava/lang/String; .locals 1 .prologue .line 125 sget-object v0, Lokio/Base64;->MAP:[B invoke-static {p0, v0}, Lokio/Base64;->encode([B[B)Ljava/lang/String; move-result-object v0 return-object v0 .end method .method private static encode([B[B)Ljava/lang/String; .locals 8 .prologue const/16 v7, 0x3d const/4 v0, 0x0 .line 133 array-length v1, p0 add-int/lit8 v1, v1, 0x2 mul-int/lit8 v1, v1, 0x4 div-int/lit8 v1, v1, 0x3 .line 134 new-array v3, v1, [B .line 135 array-length v1, p0 array-length v2, p0 rem-int/lit8 v2, v2, 0x3 sub-int v4, v1, v2 move v1, v0 .line 136 :goto_0 if-ge v1, v4, :cond_0 .line 137 add-int/lit8 v2, v0, 0x1 aget-byte v5, p0, v1 and-int/lit16 v5, v5, 0xff shr-int/lit8 v5, v5, 0x2 aget-byte v5, p1, v5 aput-byte v5, v3, v0 .line 138 add-int/lit8 v0, v2, 0x1 aget-byte v5, p0, v1 and-int/lit8 v5, v5, 0x3 shl-int/lit8 v5, v5, 0x4 add-int/lit8 v6, v1, 0x1 aget-byte v6, p0, v6 and-int/lit16 v6, v6, 0xff shr-int/lit8 v6, v6, 0x4 or-int/2addr v5, v6 aget-byte v5, p1, v5 aput-byte v5, v3, v2 .line 139 add-int/lit8 v5, v0, 0x1 add-int/lit8 v2, v1, 0x1 aget-byte v2, p0, v2 and-int/lit8 v2, v2, 0xf shl-int/lit8 v2, v2, 0x2 add-int/lit8 v6, v1, 0x2 aget-byte v6, p0, v6 and-int/lit16 v6, v6, 0xff shr-int/lit8 v6, v6, 0x6 or-int/2addr v2, v6 aget-byte v2, p1, v2 aput-byte v2, v3, v0 .line 140 add-int/lit8 v2, v5, 0x1 add-int/lit8 v0, v1, 0x2 aget-byte v0, p0, v0 and-int/lit8 v0, v0, 0x3f aget-byte v0, p1, v0 aput-byte v0, v3, v5 .line 136 add-int/lit8 v0, v1, 0x3 move v1, v0 move v0, v2 goto :goto_0 .line 142 :cond_0 array-length v1, p0 rem-int/lit8 v1, v1, 0x3 packed-switch v1, :pswitch_data_0 .line 157 :goto_1 :try_start_0 new-instance v1, Ljava/lang/String; const/4 v2, 0x0 const-string v4, "US-ASCII" invoke-direct {v1, v3, v2, v0, v4}, Ljava/lang/String;->([BIILjava/lang/String;)V :try_end_0 .catch Ljava/io/UnsupportedEncodingException; {:try_start_0 .. :try_end_0} :catch_0 return-object v1 .line 144 :pswitch_0 add-int/lit8 v1, v0, 0x1 aget-byte v2, p0, v4 and-int/lit16 v2, v2, 0xff shr-int/lit8 v2, v2, 0x2 aget-byte v2, p1, v2 aput-byte v2, v3, v0 .line 145 add-int/lit8 v0, v1, 0x1 aget-byte v2, p0, v4 and-int/lit8 v2, v2, 0x3 shl-int/lit8 v2, v2, 0x4 aget-byte v2, p1, v2 aput-byte v2, v3, v1 .line 146 add-int/lit8 v1, v0, 0x1 aput-byte v7, v3, v0 .line 147 add-int/lit8 v0, v1, 0x1 aput-byte v7, v3, v1 goto :goto_1 .line 150 :pswitch_1 add-int/lit8 v1, v0, 0x1 aget-byte v2, p0, v4 and-int/lit16 v2, v2, 0xff shr-int/lit8 v2, v2, 0x2 aget-byte v2, p1, v2 aput-byte v2, v3, v0 .line 151 add-int/lit8 v0, v1, 0x1 aget-byte v2, p0, v4 and-int/lit8 v2, v2, 0x3 shl-int/lit8 v2, v2, 0x4 add-int/lit8 v5, v4, 0x1 aget-byte v5, p0, v5 and-int/lit16 v5, v5, 0xff shr-int/lit8 v5, v5, 0x4 or-int/2addr v2, v5 aget-byte v2, p1, v2 aput-byte v2, v3, v1 .line 152 add-int/lit8 v1, v0, 0x1 add-int/lit8 v2, v4, 0x1 aget-byte v2, p0, v2 and-int/lit8 v2, v2, 0xf shl-int/lit8 v2, v2, 0x2 aget-byte v2, p1, v2 aput-byte v2, v3, v0 .line 153 add-int/lit8 v0, v1, 0x1 aput-byte v7, v3, v1 goto :goto_1 .line 158 :catch_0 move-exception v0 .line 159 new-instance v1, Ljava/lang/AssertionError; invoke-direct {v1, v0}, Ljava/lang/AssertionError;->(Ljava/lang/Object;)V throw v1 .line 142 nop :pswitch_data_0 .packed-switch 0x1 :pswitch_0 :pswitch_1 .end packed-switch .end method .method public static encodeUrl([B)Ljava/lang/String; .locals 1 .prologue .line 129 sget-object v0, Lokio/Base64;->URL_MAP:[B invoke-static {p0, v0}, Lokio/Base64;->encode([B[B)Ljava/lang/String; move-result-object v0 return-object v0 .end method