a.smali

.class public Lcn/jiguang/am/a;
.super Ljava/lang/Object;


# instance fields
.field protected a:Landroid/location/Location;

.field public b:Landroid/content/Context;

.field public c:Lcn/jiguang/am/f;

.field public d:J

.field public e:J

.field public f:I

.field private g:Landroid/location/LocationManager;

.field private h:Z

.field private i:Landroid/location/GpsStatus$Listener;


# direct methods
.method public constructor <init>(Landroid/content/Context;)V
    .registers 4
    .annotation build Landroid/annotation/SuppressLint;
        value = {
            "MissingPermission"
        }
    .end annotation

    const-wide/16 v0, 0x0

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    iput-wide v0, p0, Lcn/jiguang/am/a;->d:J

    iput-wide v0, p0, Lcn/jiguang/am/a;->e:J

    const/4 v0, 0x0

    iput v0, p0, Lcn/jiguang/am/a;->f:I

    invoke-static {p1}, Lcn/jiguang/api/JCoreManager;->getAppContext(Landroid/content/Context;)Landroid/content/Context;

    move-result-object v0

    iput-object v0, p0, Lcn/jiguang/am/a;->b:Landroid/content/Context;

    const-string v0, "location"

    invoke-virtual {p1, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Landroid/location/LocationManager;

    iput-object v0, p0, Lcn/jiguang/am/a;->g:Landroid/location/LocationManager;

    new-instance v0, Lcn/jiguang/am/i;

    invoke-direct {v0, p0}, Lcn/jiguang/am/i;-><init>(Lcn/jiguang/am/a;)V

    iput-object v0, p0, Lcn/jiguang/am/a;->i:Landroid/location/GpsStatus$Listener;

    return-void
.end method

.method static synthetic a(Lcn/jiguang/am/a;)Landroid/location/GpsStatus$Listener;
    .registers 2

    iget-object v0, p0, Lcn/jiguang/am/a;->i:Landroid/location/GpsStatus$Listener;

    return-object v0
.end method

.method private a(Landroid/content/Context;Ljava/lang/String;)Z
    .registers 6

    const/4 v0, 0x0

    :try_start_1
    invoke-virtual {p1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;

    move-result-object v1

    invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v1, p2, v2}, Landroid/content/pm/PackageManager;->checkPermission(Ljava/lang/String;Ljava/lang/String;)I
    :try_end_c
    .catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_c} :catch_12

    move-result v1

    if-eqz v1, :cond_10

    :goto_f
    return v0

    :cond_10
    const/4 v0, 0x1

    goto :goto_f

    :catch_12
    move-exception v1

    goto :goto_f
.end method

.method private a(Landroid/location/Location;)Z
    .registers 8

    const/4 v0, 0x0

    const-wide/16 v4, 0x0

    if-nez p1, :cond_6

    :cond_5
    :goto_5
    return v0

    :cond_6
    invoke-virtual {p1}, Landroid/location/Location;->getLatitude()D

    move-result-wide v2

    cmpl-double v1, v2, v4

    if-nez v1, :cond_26

    invoke-virtual {p1}, Landroid/location/Location;->getLongitude()D

    move-result-wide v2

    cmpl-double v1, v2, v4

    if-nez v1, :cond_26

    invoke-virtual {p1}, Landroid/location/Location;->getTime()J

    move-result-wide v2

    const-wide/16 v4, 0x0

    cmp-long v1, v2, v4

    if-nez v1, :cond_26

    invoke-virtual {p1}, Landroid/location/Location;->hasAccuracy()Z

    move-result v1

    if-eqz v1, :cond_5

    :cond_26
    const/4 v0, 0x1

    goto :goto_5
.end method

.method static synthetic b(Lcn/jiguang/am/a;)Landroid/location/LocationManager;
    .registers 2

    iget-object v0, p0, Lcn/jiguang/am/a;->g:Landroid/location/LocationManager;

    return-object v0
.end method

.method private c()Z
    .registers 5
    .annotation build Landroid/annotation/SuppressLint;
        value = {
            "MissingPermission"
        }
    .end annotation

    const/4 v1, 0x1

    const/4 v0, 0x0

    :try_start_2
    invoke-direct {p0}, Lcn/jiguang/am/a;->d()Z

    move-result v2

    if-nez v2, :cond_9

    :cond_8
    :goto_8
    return v0

    :cond_9
    iget-object v2, p0, Lcn/jiguang/am/a;->b:Landroid/content/Context;

    const-string v3, "com.huawei.android.hwouc"

    invoke-static {v2, v3}, Lcn/jiguang/f/a;->h(Landroid/content/Context;Ljava/lang/String;)Z

    move-result v2

    if-eqz v2, :cond_15

    move v0, v1

    goto :goto_8

    :cond_15
    iget-object v2, p0, Lcn/jiguang/am/a;->g:Landroid/location/LocationManager;

    if-eqz v2, :cond_8

    iget-object v2, p0, Lcn/jiguang/am/a;->g:Landroid/location/LocationManager;

    const-string v3, "network"

    invoke-virtual {v2, v3}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;

    move-result-object v2

    invoke-direct {p0, v2}, Lcn/jiguang/am/a;->a(Landroid/location/Location;)Z
    :try_end_24
    .catch Ljava/lang/Throwable; {:try_start_2 .. :try_end_24} :catch_29

    move-result v2

    if-eqz v2, :cond_8

    move v0, v1

    goto :goto_8

    :catch_29
    move-exception v1

    goto :goto_8
.end method

.method private d()Z
    .registers 3

    iget-object v0, p0, Lcn/jiguang/am/a;->b:Landroid/content/Context;

    const-string v1, "android.permission.ACCESS_FINE_LOCATION"

    invoke-static {v0, v1}, Lcn/jiguang/o/d;->a(Landroid/content/Context;Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_2a

    iget-object v0, p0, Lcn/jiguang/am/a;->b:Landroid/content/Context;

    const-string v1, "android.permission.ACCESS_COARSE_LOCATION"

    invoke-static {v0, v1}, Lcn/jiguang/o/d;->a(Landroid/content/Context;Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_2a

    iget-object v0, p0, Lcn/jiguang/am/a;->b:Landroid/content/Context;

    const-string v1, "android.permission.ACCESS_FINE_LOCATION"

    invoke-direct {p0, v0, v1}, Lcn/jiguang/am/a;->a(Landroid/content/Context;Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_2a

    iget-object v0, p0, Lcn/jiguang/am/a;->b:Landroid/content/Context;

    const-string v1, "android.permission.ACCESS_COARSE_LOCATION"

    invoke-direct {p0, v0, v1}, Lcn/jiguang/am/a;->a(Landroid/content/Context;Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_2a

    const/4 v0, 0x1

    :goto_29
    return v0

    :cond_2a
    const/4 v0, 0x0

    goto :goto_29
.end method

.method private e()Lcn/jiguang/am/b;
    .registers 13
    .annotation build Landroid/annotation/SuppressLint;
        value = {
            "MissingPermission"
        }
    .end annotation

    const/4 v7, 0x0

    const/4 v9, 0x3

    const/4 v4, 0x0

    const-string v5, ""

    const-string v3, ""

    const-string v2, ""

    invoke-direct {p0}, Lcn/jiguang/am/a;->c()Z

    move-result v1

    if-eqz v1, :cond_8a

    iget-object v1, p0, Lcn/jiguang/am/a;->b:Landroid/content/Context;

    const-string v6, "phone"

    invoke-virtual {v1, v6}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Landroid/telephony/TelephonyManager;

    if-eqz v1, :cond_102

    invoke-virtual {v1}, Landroid/telephony/TelephonyManager;->getSimState()I

    move-result v6

    const/4 v8, 0x5

    if-ne v6, v8, :cond_102

    invoke-virtual {v1}, Landroid/telephony/TelephonyManager;->getNetworkOperator()Ljava/lang/String;

    move-result-object v2

    if-eqz v2, :cond_2e

    invoke-virtual {v2}, Ljava/lang/String;->length()I

    move-result v3

    if-ge v3, v9, :cond_8b

    :cond_2e
    move v8, v4

    move v6, v4

    :goto_30
    :try_start_30
    invoke-virtual {v1}, Landroid/telephony/TelephonyManager;->getCellLocation()Landroid/telephony/CellLocation;

    move-result-object v3

    instance-of v2, v3, Landroid/telephony/gsm/GsmCellLocation;

    if-eqz v2, :cond_9c

    move-object v0, v3

    check-cast v0, Landroid/telephony/gsm/GsmCellLocation;

    move-object v2, v0

    invoke-virtual {v2}, Landroid/telephony/gsm/GsmCellLocation;->getLac()I
    :try_end_3f
    .catch Ljava/lang/Throwable; {:try_start_30 .. :try_end_3f} :catch_b9

    move-result v5

    :try_start_40
    check-cast v3, Landroid/telephony/gsm/GsmCellLocation;

    invoke-virtual {v3}, Landroid/telephony/gsm/GsmCellLocation;->getCid()I
    :try_end_45
    .catch Ljava/lang/Throwable; {:try_start_40 .. :try_end_45} :catch_fc

    move-result v2

    move v4, v5

    move v3, v6

    :goto_48
    move v5, v2

    move v6, v4

    move v9, v3

    :goto_4b
    :try_start_4b
    invoke-virtual {v1}, Landroid/telephony/TelephonyManager;->getNeighboringCellInfo()Ljava/util/List;
    :try_end_4e
    .catch Ljava/lang/Throwable; {:try_start_4b .. :try_end_4e} :catch_dc

    move-result-object v2

    :goto_4f
    invoke-virtual {v1}, Landroid/telephony/TelephonyManager;->getNetworkOperatorName()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v1}, Landroid/telephony/TelephonyManager;->getNetworkType()I

    move-result v3

    invoke-static {v3}, Lcn/jiguang/o/d;->a(I)Ljava/lang/String;

    move-result-object v3

    iget-object v7, p0, Lcn/jiguang/am/a;->b:Landroid/content/Context;

    invoke-virtual {v1}, Landroid/telephony/TelephonyManager;->getNetworkType()I

    move-result v1

    invoke-static {v7, v1}, Lcn/jiguang/o/d;->a(Landroid/content/Context;I)Ljava/lang/String;

    move-result-object v1

    move v7, v9

    move-object v11, v4

    move v4, v5

    move v5, v8

    move-object v8, v2

    move-object v2, v3

    move-object v3, v11

    :goto_6c
    new-instance v9, Lcn/jiguang/am/b;

    invoke-direct {v9}, Lcn/jiguang/am/b;-><init>()V

    invoke-virtual {v9, v5}, Lcn/jiguang/am/b;->a(I)V

    invoke-virtual {v9, v6}, Lcn/jiguang/am/b;->b(I)V

    invoke-virtual {v9, v7}, Lcn/jiguang/am/b;->c(I)V

    invoke-virtual {v9, v4}, Lcn/jiguang/am/b;->d(I)V

    invoke-virtual {v9, v8}, Lcn/jiguang/am/b;->a(Ljava/util/List;)V

    invoke-virtual {v9, v3}, Lcn/jiguang/am/b;->a(Ljava/lang/String;)V

    invoke-virtual {v9, v2}, Lcn/jiguang/am/b;->b(Ljava/lang/String;)V

    invoke-virtual {v9, v1}, Lcn/jiguang/am/b;->c(Ljava/lang/String;)V

    move-object v7, v9

    :cond_8a
    return-object v7

    :cond_8b
    invoke-virtual {v2, v4, v9}, Ljava/lang/String;->substring(II)Ljava/lang/String;

    move-result-object v3

    invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I

    move-result v8

    invoke-virtual {v2, v9}, Ljava/lang/String;->substring(I)Ljava/lang/String;

    move-result-object v2

    invoke-static {v2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I

    move-result v6

    goto :goto_30

    :cond_9c
    :try_start_9c
    instance-of v2, v3, Landroid/telephony/cdma/CdmaCellLocation;

    if-eqz v2, :cond_fe

    move-object v0, v3

    check-cast v0, Landroid/telephony/cdma/CdmaCellLocation;

    move-object v2, v0

    invoke-virtual {v2}, Landroid/telephony/cdma/CdmaCellLocation;->getNetworkId()I
    :try_end_a7
    .catch Ljava/lang/Throwable; {:try_start_9c .. :try_end_a7} :catch_b9

    move-result v5

    :try_start_a8
    move-object v0, v3

    check-cast v0, Landroid/telephony/cdma/CdmaCellLocation;

    move-object v2, v0

    invoke-virtual {v2}, Landroid/telephony/cdma/CdmaCellLocation;->getSystemId()I

    move-result v6

    check-cast v3, Landroid/telephony/cdma/CdmaCellLocation;

    invoke-virtual {v3}, Landroid/telephony/cdma/CdmaCellLocation;->getBaseStationId()I
    :try_end_b5
    .catch Ljava/lang/Throwable; {:try_start_a8 .. :try_end_b5} :catch_fc

    move-result v2

    move v4, v5

    move v3, v6

    goto :goto_48

    :catch_b9
    move-exception v2

    move v5, v4

    :goto_bb
    const-string v3, "CellHelper"

    new-instance v9, Ljava/lang/StringBuilder;

    invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V

    const-string v10, "getCellLocation error:"

    invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v9

    invoke-virtual {v2}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v9, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-static {v3, v2}, Lcn/jiguang/an/a;->a(Ljava/lang/String;Ljava/lang/String;)V

    move v9, v6

    move v6, v5

    move v5, v4

    goto/16 :goto_4b

    :catch_dc
    move-exception v2

    const-string v3, "CellHelper"

    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    const-string v10, "getNeighborCell error:"

    invoke-virtual {v4, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    invoke-virtual {v2}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-static {v3, v2}, Lcn/jiguang/an/a;->a(Ljava/lang/String;Ljava/lang/String;)V

    move-object v2, v7

    goto/16 :goto_4f

    :catch_fc
    move-exception v2

    goto :goto_bb

    :cond_fe
    move v2, v4

    move v3, v6

    goto/16 :goto_48

    :cond_102
    move-object v1, v2

    move v6, v4

    move-object v8, v7

    move-object v2, v3

    move v7, v4

    move-object v3, v5

    move v5, v4

    goto/16 :goto_6c
.end method


# virtual methods
.method protected a(Z)Landroid/location/Location;
    .registers 7
    .annotation build Landroid/annotation/SuppressLint;
        value = {
            "MissingPermission"
        }
    .end annotation

    const/4 v0, 0x0

    :try_start_1
    iget-object v1, p0, Lcn/jiguang/am/a;->g:Landroid/location/LocationManager;

    if-eqz v1, :cond_b

    invoke-direct {p0}, Lcn/jiguang/am/a;->c()Z

    move-result v1

    if-nez v1, :cond_c

    :cond_b
    :goto_b
    return-object v0

    :cond_c
    if-eqz p1, :cond_17

    iget-object v1, p0, Lcn/jiguang/am/a;->g:Landroid/location/LocationManager;

    const-string v2, "gps"

    invoke-virtual {v1, v2}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;

    move-result-object v0

    goto :goto_b

    :cond_17
    iget-object v1, p0, Lcn/jiguang/am/a;->g:Landroid/location/LocationManager;

    const-string v2, "network"

    invoke-virtual {v1, v2}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
    :try_end_1e
    .catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_1e} :catch_20

    move-result-object v0

    goto :goto_b

    :catch_20
    move-exception v1

    const-string v2, "CellHelper"

    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    const-string v4, "getLocation error:"

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-static {v2, v1}, Lcn/jiguang/an/a;->a(Ljava/lang/String;Ljava/lang/String;)V

    goto :goto_b
.end method

.method public a()V
    .registers 6
    .annotation build Landroid/annotation/SuppressLint;
        value = {
            "MissingPermission"
        }
    .end annotation

    :try_start_0
    iget-boolean v0, p0, Lcn/jiguang/am/a;->h:Z

    if-eqz v0, :cond_c

    const-string v0, "CellHelper"

    const-string v1, "g is on listening"

    invoke-static {v0, v1}, Lcn/jiguang/an/a;->a(Ljava/lang/String;Ljava/lang/String;)V

    :cond_b
    :goto_b
    return-void

    :cond_c
    invoke-static {}, Lcn/jiguang/am/d;->a()Lcn/jiguang/am/d;

    move-result-object v0

    invoke-virtual {v0}, Lcn/jiguang/am/d;->b()Z

    move-result v0

    invoke-direct {p0}, Lcn/jiguang/am/a;->c()Z

    move-result v1

    const-string v2, "CellHelper"

    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    const-string v4, " init checkSafeStatus = "

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    move-result-object v3

    const-string v4, " , deviceEnv="

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-static {v2, v3}, Lcn/jiguang/an/a;->a(Ljava/lang/String;Ljava/lang/String;)V

    if-eqz v0, :cond_b

    iget-object v0, p0, Lcn/jiguang/am/a;->g:Landroid/location/LocationManager;

    if-eqz v0, :cond_b

    if-eqz v1, :cond_b

    new-instance v0, Landroid/os/Handler;

    invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;

    move-result-object v1

    invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V

    new-instance v1, Lcn/jiguang/am/a$1;

    invoke-direct {v1, p0}, Lcn/jiguang/am/a$1;-><init>(Lcn/jiguang/am/a;)V

    invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z

    const/4 v0, 0x1

    iput-boolean v0, p0, Lcn/jiguang/am/a;->h:Z

    const-string v0, "CellHelper"

    const-string v1, "g is start listening"

    invoke-static {v0, v1}, Lcn/jiguang/an/a;->a(Ljava/lang/String;Ljava/lang/String;)V
    :try_end_5d
    .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_5d} :catch_5e

    goto :goto_b

    :catch_5e
    move-exception v0

    const-string v1, "CellHelper"

    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "init error:"

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-static {v1, v0}, Lcn/jiguang/an/a;->a(Ljava/lang/String;Ljava/lang/String;)V

    const/4 v0, 0x0

    iput-boolean v0, p0, Lcn/jiguang/am/a;->h:Z

    goto :goto_b
.end method

.method public a(Lcn/jiguang/am/f;)V
    .registers 2

    iput-object p1, p0, Lcn/jiguang/am/a;->c:Lcn/jiguang/am/f;

    return-void
.end method

.method public b()V
    .registers 5

    :try_start_0
    invoke-direct {p0}, Lcn/jiguang/am/a;->e()Lcn/jiguang/am/b;

    move-result-object v0

    if-eqz v0, :cond_b

    iget-object v1, p0, Lcn/jiguang/am/a;->c:Lcn/jiguang/am/f;

    invoke-virtual {v1, v0}, Lcn/jiguang/am/f;->a(Lcn/jiguang/am/b;)V
    :try_end_b
    .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_b} :catch_c

    :cond_b
    :goto_b
    return-void

    :catch_c
    move-exception v0

    const-string v1, "CellHelper"

    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "startScanCell error:"

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-static {v1, v0}, Lcn/jiguang/an/a;->d(Ljava/lang/String;Ljava/lang/String;)V

    goto :goto_b
.end method