// Copyright 2011 Google Inc. All Rights Reserved.

class Statics {
    static final boolean s0 = true;
    static final byte s1 = 5;
    static final char s2 = 'a';
    static final short s3 = (short) 65000;
    static final int s4 = 2000000000;
    static final long s5 = 0x1234567890abcdefL;
    static final float s6 = 0.5f;
    static final double s7 = 16777217;
    static final String s8 = "android";

    static boolean getS0() {
        return s0;
    }
    static byte getS1() {
        return s1;
    }
    static char getS2() {
        return s2;
    }
    static short getS3() {
        return s3;
    }
    static int getS4() {
        return s4;
    }
    static long getS5() {
        return s5;
    }
    static float getS6() {
        return s6;
    }
    static double getS7() {
        return s7;
    }
    static String getS8() {
        return s8;
    }
}
