// Path: psd-parser/src/psd/parser/BlendMode.java
// public enum BlendMode {
//     NORMAL("norm"),
//     DISSOLVE("diss"),
//     DARKEN("dark"),
//     MULTIPLY("mul "),
//     COLOR_BURN("idiv"),
//     LINEAR_BURN("lbrn"),
//     LIGHTEN("lite"),
//     SCREEN("scrn"),
//     COLOR_DODGE("div "),
//     LINEAR_DODGE("lddg"),
//     OVERLAY("over"),
//     SOFT_LIGHT("sLit"),
//     HARD_LIGHT("hLit"),
//     VIVID_LIGHT("vLit"),
//     LINEAR_LIGHT("lLit"),
//     PIN_LIGHT("pLit"),
//     HARD_MIX("hMix"),
//     DIFFERENCE("diff"),
//     EXCLUSION("smud"),
//     HUE("hue "),
//     SATURATION("sat "),
//     COLOR("colr"),
//     LUMINOSITY("lum "),
//     PASS_THROUGH("pass");
// 
//     private String name;
// 
//     private BlendMode(String name) {
//         this.name = name;
//     }
// 
//     public static BlendMode getByName(String name) {
//         for (BlendMode mode : values()) {
//             if (mode.name.equals(name)) {
//                 return mode;
//             }
//         }
//         return null;
//     }
// 
// }
// 
// Path: psd-parser/src/psd/parser/layer/additional/effects/PSDEffect.java
// public abstract class PSDEffect {
// 
//     protected String name;
//     protected boolean isEnabled;
//     protected int version;
// 
//     public PSDEffect(String name){
//         this.name = name;
//     }
// 
//     public PSDEffect() {}
// 
//     public String getName() {
//         return name;
//     }
// 
//     public boolean isEnabled() {
//         return isEnabled;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public void setEnabled(boolean enabled){
//         this.isEnabled = enabled;
//     }
// 
//     public void setVersion(int version) {
//         this.version = version;
//     }
// 
//     public int getVersion() {
//         return version;
//     }
// }


import psd.parser.BlendMode;
import psd.parser.layer.*;
import psd.parser.layer.additional.*;
import psd.parser.layer.additional.effects.PSDEffect;
import psd.util.BufferedImageBuilder;
import java.awt.image.*;
import java.util.*;
    }

    public void addLayer(Layer layer) {
        layers.add(layer);
    }

    @Override
    public Layer getLayer(int index) {
        return layers.get(index);
    }

    @Override
    public int indexOfLayer(Layer layer) {
        return layers.indexOf(layer);
    }

    @Override
    public int getLayersCount() {
        return layers.size();
    }

    public BufferedImage getImage() {
        return image;
    }

    public List<PSDEffect> getEffectsList() {
        return layerEffects;
    }

    public int getX() {
// Path: psd-parser/src/psd/parser/BlendMode.java
// public enum BlendMode {
//     NORMAL("norm"),
//     DISSOLVE("diss"),
//     DARKEN("dark"),
//     MULTIPLY("mul "),
//     COLOR_BURN("idiv"),
//     LINEAR_BURN("lbrn"),
//     LIGHTEN("lite"),
//     SCREEN("scrn"),
//     COLOR_DODGE("div "),
//     LINEAR_DODGE("lddg"),
//     OVERLAY("over"),
//     SOFT_LIGHT("sLit"),
//     HARD_LIGHT("hLit"),
//     VIVID_LIGHT("vLit"),
//     LINEAR_LIGHT("lLit"),
//     PIN_LIGHT("pLit"),
//     HARD_MIX("hMix"),
//     DIFFERENCE("diff"),
//     EXCLUSION("smud"),
//     HUE("hue "),
//     SATURATION("sat "),
//     COLOR("colr"),
//     LUMINOSITY("lum "),
//     PASS_THROUGH("pass");
// 
//     private String name;
// 
//     private BlendMode(String name) {
//         this.name = name;
//     }
// 
//     public static BlendMode getByName(String name) {
//         for (BlendMode mode : values()) {
//             if (mode.name.equals(name)) {
//                 return mode;
//             }
//         }
//         return null;
//     }
// 
// }
// 
// Path: psd-parser/src/psd/parser/layer/additional/effects/PSDEffect.java
// public abstract class PSDEffect {
// 
//     protected String name;
//     protected boolean isEnabled;
//     protected int version;
// 
//     public PSDEffect(String name){
//         this.name = name;
//     }
// 
//     public PSDEffect() {}
// 
//     public String getName() {
//         return name;
//     }
// 
//     public boolean isEnabled() {
//         return isEnabled;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public void setEnabled(boolean enabled){
//         this.isEnabled = enabled;
//     }
// 
//     public void setVersion(int version) {
//         this.version = version;
//     }
// 
//     public int getVersion() {
//         return version;
//     }
// }


// Path: psd-image/src/psd/Layer.java
import psd.parser.BlendMode;
import psd.parser.layer.*;
import psd.parser.layer.additional.*;
import psd.parser.layer.additional.effects.PSDEffect;
import psd.util.BufferedImageBuilder;
import java.awt.image.*;
import java.util.*;

    }

    public void addLayer(Layer layer) {
        layers.add(layer);
    }

    @Override
    public Layer getLayer(int index) {
        return layers.get(index);
    }

    @Override
    public int indexOfLayer(Layer layer) {
        return layers.indexOf(layer);
    }

    @Override
    public int getLayersCount() {
        return layers.size();
    }

    public BufferedImage getImage() {
        return image;
    }

    public List<PSDEffect> getEffectsList() {
        return layerEffects;
    }

    public int getX() {
        return left;