// Path: prismoji/src/main/java/com/apradanas/prismoji/emoji/Emoji.java
// public final class Emoji implements Serializable {
//     private static final long serialVersionUID = 3L;
// 
//     @NonNull
//     private final String unicode;
//     @DrawableRes
//     private final int resource;
//     @NonNull
//     private List<Emoji> variants;
//     @SuppressWarnings("PMD.ImmutableField")
//     @Nullable
//     private Emoji base;
// 
//     public Emoji(@NonNull final int[] codePoints, @DrawableRes final int resource) {
//         this(codePoints, resource, new Emoji[0]);
//     }
// 
//     public Emoji(final int codePoint, @DrawableRes final int resource) {
//         this(codePoint, resource, new Emoji[0]);
//     }
// 
//     public Emoji(@NonNull final int[] codePoints, @DrawableRes final int resource, final Emoji... variants) {
//         this.unicode = new String(codePoints, 0, codePoints.length);
//         this.resource = resource;
//         this.variants = Arrays.asList(variants);
// 
//         for (final Emoji variant : variants) {
//             variant.base = this;
//         }
//     }
// 
//     public Emoji(final int codePoint, @DrawableRes final int resource, final Emoji... variants) {
//         this(new int[]{codePoint}, resource, variants);
//     }
// 
//     @NonNull
//     public String getUnicode() {
//         return unicode;
//     }
// 
//     @DrawableRes
//     public int getResource() {
//         return resource;
//     }
// 
//     @NonNull
//     public List<Emoji> getVariants() {
//         return new ArrayList<>(variants);
//     }
// 
//     @NonNull
//     public Emoji getBase() {
//         Emoji result = this;
// 
//         while (result.base != null) {
//             result = result.base;
//         }
// 
//         return result;
//     }
// 
//     public int getLength() {
//         return unicode.length();
//     }
// 
//     public boolean hasVariants() {
//         return !variants.isEmpty();
//     }
// 
//     @Override
//     public boolean equals(final Object o) {
//         if (this == o) {
//             return true;
//         }
// 
//         if (o == null || getClass() != o.getClass()) {
//             return false;
//         }
// 
//         final Emoji emoji = (Emoji) o;
// 
//         return resource == emoji.resource
//                 && unicode.equals(emoji.unicode)
//                 && variants.equals(emoji.variants);
//     }
// 
//     @Override
//     public int hashCode() {
//         int result = unicode.hashCode();
//         result = 31 * result + resource;
//         result = 31 * result + variants.hashCode();
//         return result;
//     }
// }
// 
// Path: prismoji/src/main/java/com/apradanas/prismoji/emoji/EmojiCategory.java
// public interface EmojiCategory {
//     /**
//      * returns all of the emojis it can display
//      *
//      * @since 0.4.0
//      */
//     @NonNull
//     Emoji[] getEmojis();
// 
//     /**
//      * returns the icon of the category that should be displayed
//      *
//      * @since 0.4.0
//      */
//     @DrawableRes
//     int getIcon();
// }


import android.support.annotation.DrawableRes;
import android.support.annotation.NonNull;
import com.apradanas.prismoji.R;
import com.apradanas.prismoji.emoji.Emoji;
import com.apradanas.prismoji.emoji.EmojiCategory;
            new Emoji(0x1f432, R.drawable.emoji_one_1f432),
            new Emoji(0x1f335, R.drawable.emoji_one_1f335),
            new Emoji(0x1f384, R.drawable.emoji_one_1f384),
            new Emoji(0x1f332, R.drawable.emoji_one_1f332),
            new Emoji(0x1f333, R.drawable.emoji_one_1f333),
            new Emoji(0x1f334, R.drawable.emoji_one_1f334),
            new Emoji(0x1f331, R.drawable.emoji_one_1f331),
            new Emoji(0x1f33f, R.drawable.emoji_one_1f33f),
            new Emoji(0x2618, R.drawable.emoji_one_2618),
            new Emoji(0x1f340, R.drawable.emoji_one_1f340),
            new Emoji(0x1f38d, R.drawable.emoji_one_1f38d),
            new Emoji(0x1f38b, R.drawable.emoji_one_1f38b),
            new Emoji(0x1f343, R.drawable.emoji_one_1f343),
            new Emoji(0x1f342, R.drawable.emoji_one_1f342),
            new Emoji(0x1f341, R.drawable.emoji_one_1f341),
            new Emoji(0x1f344, R.drawable.emoji_one_1f344),
            new Emoji(0x1f33e, R.drawable.emoji_one_1f33e),
            new Emoji(0x1f490, R.drawable.emoji_one_1f490),
            new Emoji(0x1f337, R.drawable.emoji_one_1f337),
            new Emoji(0x1f339, R.drawable.emoji_one_1f339),
            new Emoji(0x1f940, R.drawable.emoji_one_1f940),
            new Emoji(0x1f33b, R.drawable.emoji_one_1f33b),
            new Emoji(0x1f33c, R.drawable.emoji_one_1f33c),
            new Emoji(0x1f338, R.drawable.emoji_one_1f338),
            new Emoji(0x1f33a, R.drawable.emoji_one_1f33a),
            new Emoji(0x1f30e, R.drawable.emoji_one_1f30e),
            new Emoji(0x1f30d, R.drawable.emoji_one_1f30d),
            new Emoji(0x1f30f, R.drawable.emoji_one_1f30f),
            new Emoji(0x1f315, R.drawable.emoji_one_1f315),
            new Emoji(0x1f316, R.drawable.emoji_one_1f316),
// Path: prismoji/src/main/java/com/apradanas/prismoji/emoji/Emoji.java
// public final class Emoji implements Serializable {
//     private static final long serialVersionUID = 3L;
// 
//     @NonNull
//     private final String unicode;
//     @DrawableRes
//     private final int resource;
//     @NonNull
//     private List<Emoji> variants;
//     @SuppressWarnings("PMD.ImmutableField")
//     @Nullable
//     private Emoji base;
// 
//     public Emoji(@NonNull final int[] codePoints, @DrawableRes final int resource) {
//         this(codePoints, resource, new Emoji[0]);
//     }
// 
//     public Emoji(final int codePoint, @DrawableRes final int resource) {
//         this(codePoint, resource, new Emoji[0]);
//     }
// 
//     public Emoji(@NonNull final int[] codePoints, @DrawableRes final int resource, final Emoji... variants) {
//         this.unicode = new String(codePoints, 0, codePoints.length);
//         this.resource = resource;
//         this.variants = Arrays.asList(variants);
// 
//         for (final Emoji variant : variants) {
//             variant.base = this;
//         }
//     }
// 
//     public Emoji(final int codePoint, @DrawableRes final int resource, final Emoji... variants) {
//         this(new int[]{codePoint}, resource, variants);
//     }
// 
//     @NonNull
//     public String getUnicode() {
//         return unicode;
//     }
// 
//     @DrawableRes
//     public int getResource() {
//         return resource;
//     }
// 
//     @NonNull
//     public List<Emoji> getVariants() {
//         return new ArrayList<>(variants);
//     }
// 
//     @NonNull
//     public Emoji getBase() {
//         Emoji result = this;
// 
//         while (result.base != null) {
//             result = result.base;
//         }
// 
//         return result;
//     }
// 
//     public int getLength() {
//         return unicode.length();
//     }
// 
//     public boolean hasVariants() {
//         return !variants.isEmpty();
//     }
// 
//     @Override
//     public boolean equals(final Object o) {
//         if (this == o) {
//             return true;
//         }
// 
//         if (o == null || getClass() != o.getClass()) {
//             return false;
//         }
// 
//         final Emoji emoji = (Emoji) o;
// 
//         return resource == emoji.resource
//                 && unicode.equals(emoji.unicode)
//                 && variants.equals(emoji.variants);
//     }
// 
//     @Override
//     public int hashCode() {
//         int result = unicode.hashCode();
//         result = 31 * result + resource;
//         result = 31 * result + variants.hashCode();
//         return result;
//     }
// }
// 
// Path: prismoji/src/main/java/com/apradanas/prismoji/emoji/EmojiCategory.java
// public interface EmojiCategory {
//     /**
//      * returns all of the emojis it can display
//      *
//      * @since 0.4.0
//      */
//     @NonNull
//     Emoji[] getEmojis();
// 
//     /**
//      * returns the icon of the category that should be displayed
//      *
//      * @since 0.4.0
//      */
//     @DrawableRes
//     int getIcon();
// }


// Path: prismoji/src/main/java/com/apradanas/prismoji/one/category/NatureCategory.java
import android.support.annotation.DrawableRes;
import android.support.annotation.NonNull;
import com.apradanas.prismoji.R;
import com.apradanas.prismoji.emoji.Emoji;
import com.apradanas.prismoji.emoji.EmojiCategory;

            new Emoji(0x1f432, R.drawable.emoji_one_1f432),
            new Emoji(0x1f335, R.drawable.emoji_one_1f335),
            new Emoji(0x1f384, R.drawable.emoji_one_1f384),
            new Emoji(0x1f332, R.drawable.emoji_one_1f332),
            new Emoji(0x1f333, R.drawable.emoji_one_1f333),
            new Emoji(0x1f334, R.drawable.emoji_one_1f334),
            new Emoji(0x1f331, R.drawable.emoji_one_1f331),
            new Emoji(0x1f33f, R.drawable.emoji_one_1f33f),
            new Emoji(0x2618, R.drawable.emoji_one_2618),
            new Emoji(0x1f340, R.drawable.emoji_one_1f340),
            new Emoji(0x1f38d, R.drawable.emoji_one_1f38d),
            new Emoji(0x1f38b, R.drawable.emoji_one_1f38b),
            new Emoji(0x1f343, R.drawable.emoji_one_1f343),
            new Emoji(0x1f342, R.drawable.emoji_one_1f342),
            new Emoji(0x1f341, R.drawable.emoji_one_1f341),
            new Emoji(0x1f344, R.drawable.emoji_one_1f344),
            new Emoji(0x1f33e, R.drawable.emoji_one_1f33e),
            new Emoji(0x1f490, R.drawable.emoji_one_1f490),
            new Emoji(0x1f337, R.drawable.emoji_one_1f337),
            new Emoji(0x1f339, R.drawable.emoji_one_1f339),
            new Emoji(0x1f940, R.drawable.emoji_one_1f940),
            new Emoji(0x1f33b, R.drawable.emoji_one_1f33b),
            new Emoji(0x1f33c, R.drawable.emoji_one_1f33c),
            new Emoji(0x1f338, R.drawable.emoji_one_1f338),
            new Emoji(0x1f33a, R.drawable.emoji_one_1f33a),
            new Emoji(0x1f30e, R.drawable.emoji_one_1f30e),
            new Emoji(0x1f30d, R.drawable.emoji_one_1f30d),
            new Emoji(0x1f30f, R.drawable.emoji_one_1f30f),
            new Emoji(0x1f315, R.drawable.emoji_one_1f315),
            new Emoji(0x1f316, R.drawable.emoji_one_1f316),
            new Emoji(0x1f317, R.drawable.emoji_one_1f317),