// Path: src/net/eiveo/utils/SmartByteBuffer.java
// public class SmartByteBuffer {
// 	private ByteBuffer byteBuffer;
// 
// 	public int capacity() {
// 		return this.byteBuffer.capacity();
// 	}
// 
// 	public byte get() {
// 		return this.byteBuffer.get();
// 	}
// 
// 	public void get(byte[] dst) {
// 		this.byteBuffer.get(dst);
// 	}
// 
// 	public int getInt() {
// 		return this.byteBuffer.getInt();
// 	}
// 
// 	public short getShort() {
// 		return this.byteBuffer.getShort();
// 	}
// 
// 	public String getString() {
// 		String string = "";
// 		
// 		while (true) {
// 			byte character = this.get();
// 			if ((character & 0xff) == 0) {
// 				break;
// 			} else {
// 				string += new String(new byte[] { character });
// 			}
// 		}
// 		
// 		return string;
// 	}
// 
// 	public String getString(int index, int length) {
// 		byte[] output = new byte[length];
// 		if (index > -1) {
// 			this.position(index);
// 		}
// 		this.byteBuffer.get(output);
// 		return new String(output);
// 	}
// 
// 	public void order(ByteOrder bo) {
// 		this.byteBuffer.order(bo);
// 	}
// 
// 	public int position() {
// 		return this.byteBuffer.position();
// 	}
// 	
// 	public void position(int newPosition) {
// 		this.byteBuffer.position(newPosition);
// 	}
// 
// 	public static SmartByteBuffer wrap(byte[] array) {
// 		SmartByteBuffer instance = new SmartByteBuffer();
// 		instance.byteBuffer = ByteBuffer.wrap(array);
// 		return instance;
// 	}
// }


import java.io.File;
import java.nio.ByteOrder;
import java.nio.file.Files;
import net.eiveo.utils.SmartByteBuffer;

package net.eiveo.original;



public class Game {
	private static final int YODA_PALETTE_OFFSET = 0x550F0;
	private static final int INDY_PALETTE_OFFSET = 0x36656;
	
	public boolean isYoda;
	
	public byte[] palette = new byte[256 * 4];
	public Container container;
	
	public static Game read(File container, File executable) throws Exception {
		Game instance = new Game();


// Path: src/net/eiveo/utils/SmartByteBuffer.java
// public class SmartByteBuffer {
// 	private ByteBuffer byteBuffer;
// 
// 	public int capacity() {
// 		return this.byteBuffer.capacity();
// 	}
// 
// 	public byte get() {
// 		return this.byteBuffer.get();
// 	}
// 
// 	public void get(byte[] dst) {
// 		this.byteBuffer.get(dst);
// 	}
// 
// 	public int getInt() {
// 		return this.byteBuffer.getInt();
// 	}
// 
// 	public short getShort() {
// 		return this.byteBuffer.getShort();
// 	}
// 
// 	public String getString() {
// 		String string = "";
// 		
// 		while (true) {
// 			byte character = this.get();
// 			if ((character & 0xff) == 0) {
// 				break;
// 			} else {
// 				string += new String(new byte[] { character });
// 			}
// 		}
// 		
// 		return string;
// 	}
// 
// 	public String getString(int index, int length) {
// 		byte[] output = new byte[length];
// 		if (index > -1) {
// 			this.position(index);
// 		}
// 		this.byteBuffer.get(output);
// 		return new String(output);
// 	}
// 
// 	public void order(ByteOrder bo) {
// 		this.byteBuffer.order(bo);
// 	}
// 
// 	public int position() {
// 		return this.byteBuffer.position();
// 	}
// 	
// 	public void position(int newPosition) {
// 		this.byteBuffer.position(newPosition);
// 	}
// 
// 	public static SmartByteBuffer wrap(byte[] array) {
// 		SmartByteBuffer instance = new SmartByteBuffer();
// 		instance.byteBuffer = ByteBuffer.wrap(array);
// 		return instance;
// 	}
// }


// Path: src/net/eiveo/original/Game.java
import java.io.File;
import java.nio.ByteOrder;
import java.nio.file.Files;
import net.eiveo.utils.SmartByteBuffer;

package net.eiveo.original;



public class Game {
	private static final int YODA_PALETTE_OFFSET = 0x550F0;
	private static final int INDY_PALETTE_OFFSET = 0x36656;
	
	public boolean isYoda;
	
	public byte[] palette = new byte[256 * 4];
	public Container container;
	
	public static Game read(File container, File executable) throws Exception {
		Game instance = new Game();


		SmartByteBuffer executableBuffer = SmartByteBuffer.wrap(Files.readAllBytes(executable.toPath()));
