class Entry {
        public String namespace;
        public String profileLevelIdc;
        public String assetId;

        public Entry(String namespace, String profileLevelIdc, String assetId) {
            this.namespace = namespace;
            this.profileLevelIdc = profileLevelIdc;
            this.assetId = assetId;
        }

        @Override
        public String toString() {
            return "{" +
                    "namespace='" + namespace + '\'' +
                    ", profileLevelIdc='" + profileLevelIdc + '\'' +
                    ", assetId='" + assetId + '\'' +
                    '}';
        }

        @Override
        public boolean equals(Object o) {<FILL_FUNCTION_BODY>}

        @Override
        public int hashCode() {
            int result = namespace.hashCode();
            result = 31 * result + profileLevelIdc.hashCode();
            result = 31 * result + assetId.hashCode();
            return result;
        }

        public int getSize() {
            return 3 + Utf8.utf8StringLengthInBytes(namespace) +
                    Utf8.utf8StringLengthInBytes(profileLevelIdc) + Utf8.utf8StringLengthInBytes(assetId);
        }
    }

            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;

            Entry entry = (Entry) o;

            if (!assetId.equals(entry.assetId)) return false;
            if (!namespace.equals(entry.namespace)) return false;
            if (!profileLevelIdc.equals(entry.profileLevelIdc)) return false;

            return true;
        
<methods>public int getFlags() ,public int getVersion() ,public void setFlags(int) ,public void setVersion(int) <variables>protected int flags,protected int version