@Override
	public void execute() {

//    seq(new EflSelectMonSegment(PIDGEOT).fromOverworld().andFlyTo(-3)); // Cerulean
//    seqEflSkipInput(1);
//
//    seqMetric(new OutputParty());
//    seqMetric(new OutputItems());
//    seqMetric(new OutputBoxMons());
//
//    seq(new EflWalkToSegment(19, 17)); // center
//    {
//      seq(new EflWalkToSegment(13, 4)); // PC // TODO
//      seq(new EflWalkToSegment(13, 3, false)); // PC
//
//      {
//        seqEflButton(A); // use PC
//        seq(new EflSkipTextsSegment(1)); // turned on
//        seqEflButton(A); // someone's PC
//        seq(new EflSkipTextsSegment(2)); // accessed, mon storage
//        seq(new EflDepositMonSegment(IVYSAUR));
//        seq(new EflDepositMonSegment(VILEPLUME));
//        seq(new EflWithdrawMonSegment(SHELLDER));
//        seq(new EflWithdrawMonSegment(STARYU));
//        seq(new EflChangeMonBoxSegment(5)); // box 6
//        seqEflButton(B, MENU); // cancel
//        seqEflButton(B, PRESSED); // cancel
//      }
//
////      {
////        seqEflButton(A); // use PC
////        seq(new EflSkipTextsSegment(1)); // turned on
////        seqEflButton(A); // someone's PC
////        seq(new EflSkipTextsSegment(2)); // accessed, mon storage
////        seq(new EflDepositMonSegment(CLOYSTER));
////        seq(new EflDepositMonSegment(STARMIE));
////        seq(new EflWithdrawMonSegment(IVYSAUR));
////        seq(new EflChangeMonBoxSegment(4)); // box 5
////        seqEflButton(B, MENU); // cancel
////        seqEflButton(B, PRESSED); // cancel
////      }
//    }
//
//    seq(new EflWalkToSegment(4, 6));
//    seq(new EflWalkToSegment(4, 8, false));
//
//    save("cc0");
//    load("cc0");
////    seq(new EflWalkToSegment(13, 15)); // house
////
////    seq(new EflWalkToSegment(1, 4)); // trade
////    seq(new EflWalkToSegment(1, 3)); // trade
////    seqMove(new EflOverworldInteract(2));
////    seq(new EflSkipTextsSegment(1));
////    seq(new EflSkipTextsSegment(1, true)); // trade
////    seq(new EflSelectMonSegment(POLIWHIRL));
////    seq(new EflSkipTextsSegment(1)); // connect cables
////    seq(new EflSkipTextsSegment(3)); // traded x for y, thanks
////    seq(new EflWalkToSegment(2, 6)); // leave
////    seq(new EflWalkToSegment(2, 8, false)); // leave
//
//    seq(new EflSelectItemSegment(WATER_STONE).fromOverworld().andUse());
//    seq(new EflSelectMonSegment(STARYU));
//    seq(new EflEvolutionSegment()); // Starmie
//    seq(new EflSelectItemSegment(WATER_STONE).andUse());
//    seq(new EflSelectMonSegment(SHELLDER));
//    seq(new EflEvolutionSegment()); // Cloyster
//    seq(new EflUseBikeSegment());
//    seq(new EflWalkToSegment(20, -1)); // Route 24
//    seq(new EflWalkToSegment(4, 31)); // water
//    seqUnbounded(new EflSelectMonSegment(DRAGONAIR).fromOverworld().andSurf());
//
//    for(int i=0;i<8;i++)
//      seqMoveUnbounded(new EflWalkStep(DOWN, true));
//    for(int i=0;i<8;i++)
//      seqMoveUnbounded(new EflWalkStep(LEFT, true));
//    for(int i=0;i<8;i++)
//      seqMoveUnbounded(new EflWalkStep(DOWN, true));
//    seqMoveUnbounded(new EflWalkStep(LEFT, true));
//
//    save("tmp");
////    load("tmp");
//
//    seqUnbounded(new EflUseBikeSegment().fromOverworld());
//    seqUnbounded(new EflWalkToSegment(4, 11)); // enter Cerulean Cave
//    seqUnbounded(new EflWalkToSegment(24, 16));
//    seq(new EflEncounterSegment(DODRIO, UP));
//    save("tmp2");
////    load("tmp2");
//    seq(new EflCatchMonSegment().withBufferSize(0));
//    seqUnbounded(new EflWalkToSegment(22, 15));
//    seq(new EflEncounterSegment(HYPNO, LEFT));
//    save("tmp3");
//    load("tmp3");
//    seq(new EflCatchMonSegment().withBufferSize(0));
//    seqUnbounded(new EflWalkToSegment(21, 13));
//    seq(new EflEncounterSegment(KADABRA, UP));
//    save("tmp4");
////    load("tmp4");
//    seq(new EflCatchMonSegment().withBufferSize(0));
//    seqUnbounded(new EflWalkToSegment(23, 8));
//    seq(new EflEncounterSegment(MAGNETON, RIGHT));
//    save("tmp5");
////    load("tmp5");
//    seq(new EflCatchMonSegment().withBufferSize(0));
//    seqUnbounded(new EflWalkToSegment(25, 9)); // water
//    seqUnbounded(new EflSelectMonSegment(DRAGONAIR).fromOverworld().andSurf());
//    for(int i=0;i<3;i++)
//      seqMoveUnbounded(new EflWalkStep(RIGHT, true));
//    for(int i=0;i<5;i++)
//      seqMoveUnbounded(new EflWalkStep(UP, true));
//    for(int i=0;i<14;i++)
//      seqMoveUnbounded(new EflWalkStep(LEFT, true));
//    for(int i=0;i<2;i++)
//      seqMoveUnbounded(new EflWalkStep(DOWN, true));
//    for(int i=0;i<5;i++)
//      seqMoveUnbounded(new EflWalkStep(LEFT, true));
//    for(int i=0;i<7;i++)
//      seqMoveUnbounded(new EflWalkStep(DOWN, true));
//    for(int i=0;i<2;i++)
//      seqMoveUnbounded(new EflWalkStep(RIGHT, true));
//    seqMoveUnbounded(new EflWalkStep(UP, true));
//    save("tmp6");
////    load("tmp6");
//
//    seqUnbounded(new EflUseBikeSegment().fromOverworld());
//    seqUnbounded(new EflWalkToSegment(13, 12));
//    seq(new EflEncounterSegment(RAICHU, RIGHT));
//    save("tmp7");
//    load("tmp7");
//    seq(new EflCatchMonSegment().withBufferSize(0));
////    seqUnbounded(new EflWalkToSegment(14, 12));
//    seqUnbounded(new EflWalkToSegment(14, 11, false));
//    seqEflButtonUnboundedNoDelay(A);
//    seqUnbounded(new EflTextSegment()); // Rare Candy
//    seqUnbounded(new EflWalkToSegment(1, 11));
////    seq(new EflEncounterSegment(SANDSLASH, RIGHT));
////    save("tmp");
//////    load("tmp");
////    seq(new EflCatchMonSegment().withBufferSize(0));
//    seqUnbounded(new EflWalkToSegment(3, 11)); // 2f
//
//    save("tmp8");
//    load("tmp8");
//    
//    seqUnbounded(new EflWalkToSegment(3, 10));
////    seqUnbounded(new EflWalkToSegment(12, 13));
//    seq(new EflEncounterSegment(RHYDON, UP));
//    save("tmp2");
//    load("tmp2");
//    seq(new EflCatchMonSegment().withBufferSize(0));
//    seqUnbounded(new EflWalkToSegment(6, 16));
//    seq(new EflEncounterSegment(ELECTRODE, DOWN));
//    save("tmp3");
////    load("tmp3");
//    seq(new EflCatchMonSegment().withBufferSize(0));
//    save("tmp4");
//    load("tmp4");
//    seqUnbounded(new EflWalkToSegment(3, 5));
//    seq(new EflEncounterSegment(WIGGLYTUFF, LEFT));
//    save("tmp5");
//    load("tmp5");
//    seq(new EflCatchMonSegment().withBufferSize(0));
//    seqUnbounded(new EflWalkToSegment(1, 3)); // 1f
//    save("tmp6");
//    load("tmp6");
//    seqUnbounded(new EflWalkToSegment(0, 6)); // b1f
//    save("tmp7");
//    load("tmp7");
//    seqUnbounded(new EflWalkToSegment(0, 11));
//    seq(new EflEncounterSegment(SANDSLASH, DOWN));
//    save("tmp8");
//    load("tmp8");
//    seq(new EflCatchMonSegment());
//    save("tmp1");
    load("tmp1");
//    seq(new EflEncounterSegment(MAROWAK, LEFT));
//    save("tmp5");
//    load("tmp5");
//    seq(new EflCatchMonSegment());
    seq(new EflWalkToSegment(13, 13)); // water
    seq(new EflFishSegment(SEADRA));
    seq(new EflCatchMonSegment());
    seq(new EflFishSegment(SEAKING));
    seq(new EflCatchMonSegment());
    seq(new EflSelectMonSegment(DRAGONAIR).fromOverworld().andSurf());
    for(int i=0;i<2;i++)
      seqMove(new EflWalkStep(RIGHT, true));
    for(int i=0;i<2;i++)
      seqMove(new EflWalkStep(DOWN, true));
    for(int i=0;i<4;i++)
      seqMove(new EflWalkStep(RIGHT, true));
    for(int i=0;i<5;i++)
      seqMove(new EflWalkStep(UP, true));
    seq(new EflUseBikeSegment().fromOverworld());
    seq(new EflWalkToSegment(27, 7)); // water
    seq(new EflSelectMonSegment(DRAGONAIR).fromOverworld().andSurf());
    for(int i=0;i<3;i++)
      seqMove(new EflWalkStep(DOWN, true));
    for(int i=0;i<4;i++)
      seqMove(new EflWalkStep(LEFT, true));
    for(int i=0;i<5;i++)
      seqMove(new EflWalkStep(DOWN, true));
    for(int i=0;i<4;i++)
      seqMove(new EflWalkStep(RIGHT, true));
    seqMove(new EflWalkStep(UP, true));
    seq(new EflWalkToSegment(27, 14)); // Mewtwo
    seqMove(new EflOverworldInteract(1)); // Mewtwo
    seq(new EflSkipTextsSegment(1)); // Mewtwo
    seq(new EflCatchMonSegment()); // Mewtwo

    seq(new EflSelectItemSegment(ESCAPE_ROPE).fromOverworld().andUse());
    seqEflSkipInput(2);
  }