public class GenData {
    static int tabIndex;
    static int rowCnt;

    static void badArg() {
        System.err.println("Bad argument!");
        System.err.println("Usage: java GenData <rowCnt>");
        System.exit(-1);
    }

    static void appendString(StringBuffer sb, String str) {
        sb.append("'").append(str).append("',");
    }

    static void printRow(int index) {
        long seed = (1 << 16) + index;
        int small = index % 32;
        StringBuffer sb = new StringBuffer();

        sb.append(seed).append(","); // time
        sb.append(seed * 2).append(",");
        sb.append(seed - 100).append(",");
        sb.append(seed - 40).append(",");
        sb.append(0).append(",");
        sb.append(1).append(",");
        sb.append(seed - 30).append(",");
        sb.append(seed - 10).append(",");
        sb.append(index).append(",");
        sb.append(small + 1).append(","); // lac
        sb.append(small + 2).append(",");
        sb.append(small + 3).append(",");
        sb.append(seed).append(",");
        sb.append(seed + 1).append(",");
        appendString(sb, "asdgasdhasd");
        appendString(sb, "afgdfsdfjkg");
        sb.append(seed & 0xffff).append(",");  // imsibcd
        sb.append(seed + 30).append(",");
        appendString(sb, "basdeasdt");
        appendString(sb, "bdghdhfdsfg");
        sb.append(seed + 40).append(",");
        sb.append(seed + 50).append(",");
        sb.append(seed + 60).append(",");
        sb.append(seed + 70).append(",");
        sb.append(seed + 61).append(",");
        sb.append(seed + 90).append(","); // downlink_end
        sb.append(small + 1).append(","); 
        sb.append(small + 2).append(","); 
        sb.append(small + 3).append(","); 
        sb.append(small + 4).append(","); 
        sb.append(small + 5).append(","); 
        sb.append(small + 6).append(","); 
        appendString(sb, "ipv6host");
        appendString(sb, "ipv6mobile");
        sb.append(seed + 100).append(","); // uplink_port
        sb.append(seed + 101).append(",");
        sb.append(small +1).append(","); 
        sb.append(seed + 102).append(",");
        sb.append(seed + 103).append(",");
        sb.append(small * 3).append(","); 
        sb.append(small * 4).append(","); 
        sb.append(small * 5).append(","); 
        sb.append(small * 6).append(","); 
        sb.append(small * 7).append(",");
        sb.append(0).append(",");
        sb.append(0).append(","); // downlink_fragmentation
        sb.append(small + 1).append(","); 
        sb.append(small + 2).append(","); 
        sb.append(small + 3).append(","); 
        sb.append(small + 4).append(","); 
        sb.append(seed).append(","); // ulpackets
        sb.append(seed+1).append(","); 
        sb.append(seed+2).append(","); 
        sb.append(seed+3).append(","); 
        sb.append(seed+4).append(","); 
        sb.append(seed+5).append(","); 
        sb.append(seed+6).append(","); 
        sb.append(seed+7).append(",");
        sb.append(seed+8).append(","); 
        sb.append(seed+9).append(","); 
        sb.append(seed+10).append(","); 
        sb.append(seed+11).append(","); 
        appendString(sb, "queryname");
        sb.append(small + 4).append(","); 
        sb.append(seed+201).append(","); 
        sb.append(seed+202).append(",");
        sb.append(seed+203).append(","); // tacid_
        sb.append(seed+204).append(",");
        sb.append(seed+205).append(",");
        sb.append(seed+206).append(",");
        sb.append(seed+207).append(",");
        sb.append(seed+208).append(",");
        sb.append(small + 4).append(","); // traffic_category
        sb.append(seed+303).append(","); 
        sb.append(seed+304).append(",");
        sb.append(seed+305).append(",");
        sb.append(seed+306).append(",");
        sb.append(seed+307).append(",");
        sb.append(seed+308).append(",");
        sb.append(small + 5).append(","); // tcp_control
        sb.append(seed+403).append(","); 
        sb.append(seed+404).append(",");
        sb.append(seed+405).append(",");
        sb.append(seed+406).append(",");
        sb.append(seed+407).append(",");
        sb.append(small + 6).append(","); // service
        sb.append(seed+503).append(","); 
        sb.append(seed+504).append(",");
        sb.append(seed+505).append(",");
        sb.append(seed+506).append(",");
        sb.append(seed+507).append(",");
        sb.append(0).append(","); // udp_attempts
        sb.append(1).append(","); 
        sb.append(1).append(","); 
        sb.append(0).append(","); 
        sb.append(1).append(","); 
        sb.append(seed+603).append(","); 
        sb.append(seed+604).append(",");
        sb.append(seed+605).append(",");
        sb.append(seed+606).append(",");
        sb.append(seed+607).append(",");
        sb.append(1).append(","); // tcpNormalClose
        sb.append(1).append(","); 
        sb.append(0).append(","); 
        sb.append(seed).append(","); 
        sb.append(0).append(","); 
        sb.append(0).append(","); 
        sb.append(seed+701).append(","); 
        sb.append(seed+702).append(","); 
        sb.append(1).append(","); // vipfilter
        sb.append(seed+801).append(","); 
        sb.append(seed+802).append(","); 
        sb.append(seed+803).append(","); 
        sb.append(seed+804).append(","); 
        sb.append(seed+805).append(","); 
        appendString(sb, "application_stack");
        sb.append(0).append(","); 
        sb.append(0).append(","); 
        sb.append(seed+901).append(","); 
        sb.append(seed+902).append(","); 
        sb.append(seed+903);

        System.out.println(sb.toString());
    }

    public static void main(String[] args) {
        if (args.length < 1) {
            badArg();
        }
        try {
            rowCnt = Integer.valueOf(args[0]);
        } catch (Exception e) {
            badArg();
        }

        for (int ii = 0; ii < rowCnt; ii++) {
            printRow(ii);
        }
    }
}
        
