diff --git a/.gitignore b/.gitignore
index 69b341f25c21e547dfee3bc3ec953a336541439d..119a0ba1682bcdc4326072d909e384b8a652f9fc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,14 +1,13 @@
-java/build
-java/lib
-java/test/lib
-java/test/report
-java/dist
-java/privateprops
-java/.project
-java/.classpath
+*/generatedsrc
+*/build
+*/lib
+*/test/lib
+*/test/report
+*/dist
+*/privateprops
+*/.project
+*/.classpath
 *.pyc
-.project
-.classpath
 **/.*.swp
 .*.sw[a-z]
 *.un~
diff --git a/build.xml b/build.xml
index e88843465ae4667610229e0b5635d9b7112414aa..298d8654b0586cf55a8139513369c45fd9e160e4 100644
--- a/build.xml
+++ b/build.xml
@@ -5,7 +5,7 @@
     </subant>
   </target>
 
-  <target name="build">
+  <target name="build" depends="-pre-compilation">
     <subant target="build" genericantfile="build.xml">
       <fileset dir="." includes="*/build.xml"/>
     </subant>
@@ -17,13 +17,13 @@
     </subant>
   </target>
 
-  <target name="compile">
-    <subant target="compile" genericantfile="build.xml">
+  <target name="-pre-compilation">
+    <subant target="-pre-compilation" genericantfile="build.xml">
       <fileset dir="." includes="*/build.xml"/>
     </subant>
   </target>
 
-  <target name="minorrelease">
+  <target name="compile" depends="-pre-compilation">
     <subant target="compile" genericantfile="build.xml">
       <fileset dir="." includes="*/build.xml"/>
     </subant>
diff --git a/java/build.xml b/java/build.xml
index 7be237d759bae3f89d5d1ba435c967fa1c3eb6d6..210b34a990975a7c828d943e463e603f2a0e1be4 100644
--- a/java/build.xml
+++ b/java/build.xml
@@ -1,4 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project name="IpaacaJava"  default="run">
    <import file="../../soashared/ant/build.xml" />
+
+   <target name="-pre-compilation">
+     <echo message="Compiling protobuf file" />
+     <mkdir dir="generatedsrc"/>
+     <exec executable="protoc">
+        <arg value="--proto_path=../proto" />
+        <arg value="../proto/ipaaca.proto" />
+        <arg value="--java_out=generatedsrc/" />
+     </exec>
+   </target>
 </project>
diff --git a/java/src/ipaaca/AbstractIU.java b/java/src/ipaaca/AbstractIU.java
index 378659915f967128a398c2829e1cfcc4bbdc0cb5..0b4a84abd03d83d1a938afc7c156de5d084be563 100644
--- a/java/src/ipaaca/AbstractIU.java
+++ b/java/src/ipaaca/AbstractIU.java
@@ -1,6 +1,6 @@
 package ipaaca;
 
-import ipaaca.Ipaaca.PayloadItem;
+import ipaaca.protobuf.Ipaaca.PayloadItem;
 
 import java.util.ArrayList;
 import java.util.Collection;
diff --git a/java/src/ipaaca/IUConverter.java b/java/src/ipaaca/IUConverter.java
index c45a81c8fb74430406b731bd8ec32e278537b610..7b16418012bd55a351db9998b3520cd65ab9baf7 100644
--- a/java/src/ipaaca/IUConverter.java
+++ b/java/src/ipaaca/IUConverter.java
@@ -1,4 +1,8 @@
 package ipaaca;
+import ipaaca.protobuf.Ipaaca.IU;
+import ipaaca.protobuf.Ipaaca.LinkSet;
+import ipaaca.protobuf.Ipaaca.PayloadItem;
+
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -14,9 +18,6 @@ import rsb.converter.Converter;
 import rsb.converter.ConverterSignature;
 import rsb.converter.UserData;
 import rsb.converter.WireContents;
-import ipaaca.Ipaaca.IU;
-import ipaaca.Ipaaca.LinkSet;
-import ipaaca.Ipaaca.PayloadItem;
 
 /**
  * Serializes AbstractIUs into protocolbuffer IUs and vice versa.
diff --git a/java/src/ipaaca/Initializer.java b/java/src/ipaaca/Initializer.java
index afe105e60cf14a2913ad0023a14bb361e0e95b7c..331bdcc7ed5df44a3e4e85561e605917a1116594 100644
--- a/java/src/ipaaca/Initializer.java
+++ b/java/src/ipaaca/Initializer.java
@@ -1,8 +1,6 @@
 package ipaaca;
 
-import ipaaca.Ipaaca.IUCommission;
-import ipaaca.Ipaaca.IULinkUpdate;
-import ipaaca.Ipaaca.IUPayloadUpdate;
+import ipaaca.protobuf.Ipaaca.IUCommission;
 import rsb.converter.ConverterSignature;
 import rsb.converter.DefaultConverterRepository;
 import rsb.converter.ProtocolBufferConverter;
@@ -35,7 +33,7 @@ public final class Initializer {
 	    DefaultConverterRepository.getDefaultConverterRepository().addConverter(
                 new PayloadConverter());
 	    DefaultConverterRepository.getDefaultConverterRepository().addConverter(
-                new LinkUpdateConverter());
+                new LinkUpdateConverter());	    
 	    	    
 	}
 }
diff --git a/java/src/ipaaca/InputBuffer.java b/java/src/ipaaca/InputBuffer.java
index cac3059dd35271056d050c5d9519f1873cc353f0..961785a29501e2e4bd5b3e6dfc03c4d84f2377e6 100644
--- a/java/src/ipaaca/InputBuffer.java
+++ b/java/src/ipaaca/InputBuffer.java
@@ -1,8 +1,8 @@
 package ipaaca;
 
-import ipaaca.Ipaaca.IUCommission;
-import ipaaca.Ipaaca.IULinkUpdate;
-import ipaaca.Ipaaca.IUPayloadUpdate;
+import ipaaca.protobuf.Ipaaca.IUCommission;
+import ipaaca.protobuf.Ipaaca.IULinkUpdate;
+import ipaaca.protobuf.Ipaaca.IUPayloadUpdate;
 
 import java.util.Collection;
 import java.util.HashMap;
diff --git a/java/src/ipaaca/IntConverter.java b/java/src/ipaaca/IntConverter.java
index b1de162dc10863c21c32a4f929ac0e5ebd7f164c..2c7fba3a79b20731f68f7c6761f5aa214d8e19f3 100644
--- a/java/src/ipaaca/IntConverter.java
+++ b/java/src/ipaaca/IntConverter.java
@@ -1,6 +1,7 @@
 package ipaaca;
 
-import ipaaca.Ipaaca.IntMessage;
+import ipaaca.protobuf.Ipaaca.IntMessage;
+
 import java.nio.ByteBuffer;
 import rsb.converter.ConversionException;
 import rsb.converter.Converter;
diff --git a/java/src/ipaaca/Ipaaca.java b/java/src/ipaaca/Ipaaca.java
deleted file mode 100644
index b6d42575b7faa42a63bc832d0f4403e43e75f82e..0000000000000000000000000000000000000000
--- a/java/src/ipaaca/Ipaaca.java
+++ /dev/null
@@ -1,6385 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: ipaaca.proto
-
-package ipaaca;
-
-public final class Ipaaca {
-  private Ipaaca() {}
-  public static void registerAllExtensions(
-      com.google.protobuf.ExtensionRegistry registry) {
-  }
-  public interface IntMessageOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required sint32 value = 1;
-    boolean hasValue();
-    int getValue();
-  }
-  public static final class IntMessage extends
-      com.google.protobuf.GeneratedMessage
-      implements IntMessageOrBuilder {
-    // Use IntMessage.newBuilder() to construct.
-    private IntMessage(Builder builder) {
-      super(builder);
-    }
-    private IntMessage(boolean noInit) {}
-    
-    private static final IntMessage defaultInstance;
-    public static IntMessage getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IntMessage getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IntMessage_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IntMessage_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required sint32 value = 1;
-    public static final int VALUE_FIELD_NUMBER = 1;
-    private int value_;
-    public boolean hasValue() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public int getValue() {
-      return value_;
-    }
-    
-    private void initFields() {
-      value_ = 0;
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasValue()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeSInt32(1, value_);
-      }
-      getUnknownFields().writeTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeSInt32Size(1, value_);
-      }
-      size += getUnknownFields().getSerializedSize();
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static ipaaca.Ipaaca.IntMessage parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IntMessage parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IntMessage parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IntMessage parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IntMessage parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IntMessage parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IntMessage parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IntMessage parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IntMessage parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IntMessage parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.Ipaaca.IntMessage prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.Ipaaca.IntMessageOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IntMessage_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IntMessage_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.Ipaaca.IntMessage.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        value_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000001);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.Ipaaca.IntMessage.getDescriptor();
-      }
-      
-      public ipaaca.Ipaaca.IntMessage getDefaultInstanceForType() {
-        return ipaaca.Ipaaca.IntMessage.getDefaultInstance();
-      }
-      
-      public ipaaca.Ipaaca.IntMessage build() {
-        ipaaca.Ipaaca.IntMessage result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.Ipaaca.IntMessage buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.Ipaaca.IntMessage result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.Ipaaca.IntMessage buildPartial() {
-        ipaaca.Ipaaca.IntMessage result = new ipaaca.Ipaaca.IntMessage(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.value_ = value_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.Ipaaca.IntMessage) {
-          return mergeFrom((ipaaca.Ipaaca.IntMessage)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.Ipaaca.IntMessage other) {
-        if (other == ipaaca.Ipaaca.IntMessage.getDefaultInstance()) return this;
-        if (other.hasValue()) {
-          setValue(other.getValue());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasValue()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 8: {
-              bitField0_ |= 0x00000001;
-              value_ = input.readSInt32();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required sint32 value = 1;
-      private int value_ ;
-      public boolean hasValue() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public int getValue() {
-        return value_;
-      }
-      public Builder setValue(int value) {
-        bitField0_ |= 0x00000001;
-        value_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearValue() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        value_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.IntMessage)
-    }
-    
-    static {
-      defaultInstance = new IntMessage(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.IntMessage)
-  }
-  
-  public interface LinkSetOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string type = 1;
-    boolean hasType();
-    String getType();
-    
-    // repeated string targets = 2;
-    java.util.List<String> getTargetsList();
-    int getTargetsCount();
-    String getTargets(int index);
-  }
-  public static final class LinkSet extends
-      com.google.protobuf.GeneratedMessage
-      implements LinkSetOrBuilder {
-    // Use LinkSet.newBuilder() to construct.
-    private LinkSet(Builder builder) {
-      super(builder);
-    }
-    private LinkSet(boolean noInit) {}
-    
-    private static final LinkSet defaultInstance;
-    public static LinkSet getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public LinkSet getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_LinkSet_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_LinkSet_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string type = 1;
-    public static final int TYPE_FIELD_NUMBER = 1;
-    private java.lang.Object type_;
-    public boolean hasType() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getType() {
-      java.lang.Object ref = type_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          type_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getTypeBytes() {
-      java.lang.Object ref = type_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        type_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // repeated string targets = 2;
-    public static final int TARGETS_FIELD_NUMBER = 2;
-    private com.google.protobuf.LazyStringList targets_;
-    public java.util.List<String>
-        getTargetsList() {
-      return targets_;
-    }
-    public int getTargetsCount() {
-      return targets_.size();
-    }
-    public String getTargets(int index) {
-      return targets_.get(index);
-    }
-    
-    private void initFields() {
-      type_ = "";
-      targets_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasType()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getTypeBytes());
-      }
-      for (int i = 0; i < targets_.size(); i++) {
-        output.writeBytes(2, targets_.getByteString(i));
-      }
-      getUnknownFields().writeTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getTypeBytes());
-      }
-      {
-        int dataSize = 0;
-        for (int i = 0; i < targets_.size(); i++) {
-          dataSize += com.google.protobuf.CodedOutputStream
-            .computeBytesSizeNoTag(targets_.getByteString(i));
-        }
-        size += dataSize;
-        size += 1 * getTargetsList().size();
-      }
-      size += getUnknownFields().getSerializedSize();
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static ipaaca.Ipaaca.LinkSet parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.LinkSet parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.LinkSet parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.LinkSet parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.LinkSet parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.LinkSet parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.LinkSet parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.LinkSet parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.LinkSet parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.LinkSet parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.Ipaaca.LinkSet prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.Ipaaca.LinkSetOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_LinkSet_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_LinkSet_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.Ipaaca.LinkSet.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        type_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        targets_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.Ipaaca.LinkSet.getDescriptor();
-      }
-      
-      public ipaaca.Ipaaca.LinkSet getDefaultInstanceForType() {
-        return ipaaca.Ipaaca.LinkSet.getDefaultInstance();
-      }
-      
-      public ipaaca.Ipaaca.LinkSet build() {
-        ipaaca.Ipaaca.LinkSet result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.Ipaaca.LinkSet buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.Ipaaca.LinkSet result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.Ipaaca.LinkSet buildPartial() {
-        ipaaca.Ipaaca.LinkSet result = new ipaaca.Ipaaca.LinkSet(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.type_ = type_;
-        if (((bitField0_ & 0x00000002) == 0x00000002)) {
-          targets_ = new com.google.protobuf.UnmodifiableLazyStringList(
-              targets_);
-          bitField0_ = (bitField0_ & ~0x00000002);
-        }
-        result.targets_ = targets_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.Ipaaca.LinkSet) {
-          return mergeFrom((ipaaca.Ipaaca.LinkSet)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.Ipaaca.LinkSet other) {
-        if (other == ipaaca.Ipaaca.LinkSet.getDefaultInstance()) return this;
-        if (other.hasType()) {
-          setType(other.getType());
-        }
-        if (!other.targets_.isEmpty()) {
-          if (targets_.isEmpty()) {
-            targets_ = other.targets_;
-            bitField0_ = (bitField0_ & ~0x00000002);
-          } else {
-            ensureTargetsIsMutable();
-            targets_.addAll(other.targets_);
-          }
-          onChanged();
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasType()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              type_ = input.readBytes();
-              break;
-            }
-            case 18: {
-              ensureTargetsIsMutable();
-              targets_.add(input.readBytes());
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string type = 1;
-      private java.lang.Object type_ = "";
-      public boolean hasType() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getType() {
-        java.lang.Object ref = type_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          type_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setType(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        type_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearType() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        type_ = getDefaultInstance().getType();
-        onChanged();
-        return this;
-      }
-      void setType(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        type_ = value;
-        onChanged();
-      }
-      
-      // repeated string targets = 2;
-      private com.google.protobuf.LazyStringList targets_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      private void ensureTargetsIsMutable() {
-        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
-          targets_ = new com.google.protobuf.LazyStringArrayList(targets_);
-          bitField0_ |= 0x00000002;
-         }
-      }
-      public java.util.List<String>
-          getTargetsList() {
-        return java.util.Collections.unmodifiableList(targets_);
-      }
-      public int getTargetsCount() {
-        return targets_.size();
-      }
-      public String getTargets(int index) {
-        return targets_.get(index);
-      }
-      public Builder setTargets(
-          int index, String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureTargetsIsMutable();
-        targets_.set(index, value);
-        onChanged();
-        return this;
-      }
-      public Builder addTargets(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureTargetsIsMutable();
-        targets_.add(value);
-        onChanged();
-        return this;
-      }
-      public Builder addAllTargets(
-          java.lang.Iterable<String> values) {
-        ensureTargetsIsMutable();
-        super.addAll(values, targets_);
-        onChanged();
-        return this;
-      }
-      public Builder clearTargets() {
-        targets_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        onChanged();
-        return this;
-      }
-      void addTargets(com.google.protobuf.ByteString value) {
-        ensureTargetsIsMutable();
-        targets_.add(value);
-        onChanged();
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.LinkSet)
-    }
-    
-    static {
-      defaultInstance = new LinkSet(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.LinkSet)
-  }
-  
-  public interface PayloadItemOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string key = 1;
-    boolean hasKey();
-    String getKey();
-    
-    // required string value = 2;
-    boolean hasValue();
-    String getValue();
-    
-    // required string type = 3 [default = "str"];
-    boolean hasType();
-    String getType();
-  }
-  public static final class PayloadItem extends
-      com.google.protobuf.GeneratedMessage
-      implements PayloadItemOrBuilder {
-    // Use PayloadItem.newBuilder() to construct.
-    private PayloadItem(Builder builder) {
-      super(builder);
-    }
-    private PayloadItem(boolean noInit) {}
-    
-    private static final PayloadItem defaultInstance;
-    public static PayloadItem getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public PayloadItem getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_PayloadItem_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_PayloadItem_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string key = 1;
-    public static final int KEY_FIELD_NUMBER = 1;
-    private java.lang.Object key_;
-    public boolean hasKey() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getKey() {
-      java.lang.Object ref = key_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          key_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getKeyBytes() {
-      java.lang.Object ref = key_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        key_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required string value = 2;
-    public static final int VALUE_FIELD_NUMBER = 2;
-    private java.lang.Object value_;
-    public boolean hasValue() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public String getValue() {
-      java.lang.Object ref = value_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          value_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getValueBytes() {
-      java.lang.Object ref = value_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        value_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required string type = 3 [default = "str"];
-    public static final int TYPE_FIELD_NUMBER = 3;
-    private java.lang.Object type_;
-    public boolean hasType() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public String getType() {
-      java.lang.Object ref = type_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          type_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getTypeBytes() {
-      java.lang.Object ref = type_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        type_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    private void initFields() {
-      key_ = "";
-      value_ = "";
-      type_ = "str";
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasKey()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasValue()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasType()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getKeyBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeBytes(2, getValueBytes());
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeBytes(3, getTypeBytes());
-      }
-      getUnknownFields().writeTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getKeyBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(2, getValueBytes());
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(3, getTypeBytes());
-      }
-      size += getUnknownFields().getSerializedSize();
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static ipaaca.Ipaaca.PayloadItem parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.Ipaaca.PayloadItem prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.Ipaaca.PayloadItemOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_PayloadItem_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_PayloadItem_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.Ipaaca.PayloadItem.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        key_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        value_ = "";
-        bitField0_ = (bitField0_ & ~0x00000002);
-        type_ = "str";
-        bitField0_ = (bitField0_ & ~0x00000004);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.Ipaaca.PayloadItem.getDescriptor();
-      }
-      
-      public ipaaca.Ipaaca.PayloadItem getDefaultInstanceForType() {
-        return ipaaca.Ipaaca.PayloadItem.getDefaultInstance();
-      }
-      
-      public ipaaca.Ipaaca.PayloadItem build() {
-        ipaaca.Ipaaca.PayloadItem result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.Ipaaca.PayloadItem buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.Ipaaca.PayloadItem result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.Ipaaca.PayloadItem buildPartial() {
-        ipaaca.Ipaaca.PayloadItem result = new ipaaca.Ipaaca.PayloadItem(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.key_ = key_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.value_ = value_;
-        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.type_ = type_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.Ipaaca.PayloadItem) {
-          return mergeFrom((ipaaca.Ipaaca.PayloadItem)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.Ipaaca.PayloadItem other) {
-        if (other == ipaaca.Ipaaca.PayloadItem.getDefaultInstance()) return this;
-        if (other.hasKey()) {
-          setKey(other.getKey());
-        }
-        if (other.hasValue()) {
-          setValue(other.getValue());
-        }
-        if (other.hasType()) {
-          setType(other.getType());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasKey()) {
-          
-          return false;
-        }
-        if (!hasValue()) {
-          
-          return false;
-        }
-        if (!hasType()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              key_ = input.readBytes();
-              break;
-            }
-            case 18: {
-              bitField0_ |= 0x00000002;
-              value_ = input.readBytes();
-              break;
-            }
-            case 26: {
-              bitField0_ |= 0x00000004;
-              type_ = input.readBytes();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string key = 1;
-      private java.lang.Object key_ = "";
-      public boolean hasKey() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getKey() {
-        java.lang.Object ref = key_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          key_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setKey(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        key_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearKey() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        key_ = getDefaultInstance().getKey();
-        onChanged();
-        return this;
-      }
-      void setKey(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        key_ = value;
-        onChanged();
-      }
-      
-      // required string value = 2;
-      private java.lang.Object value_ = "";
-      public boolean hasValue() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public String getValue() {
-        java.lang.Object ref = value_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          value_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setValue(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000002;
-        value_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearValue() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        value_ = getDefaultInstance().getValue();
-        onChanged();
-        return this;
-      }
-      void setValue(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000002;
-        value_ = value;
-        onChanged();
-      }
-      
-      // required string type = 3 [default = "str"];
-      private java.lang.Object type_ = "str";
-      public boolean hasType() {
-        return ((bitField0_ & 0x00000004) == 0x00000004);
-      }
-      public String getType() {
-        java.lang.Object ref = type_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          type_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setType(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000004;
-        type_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearType() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        type_ = getDefaultInstance().getType();
-        onChanged();
-        return this;
-      }
-      void setType(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000004;
-        type_ = value;
-        onChanged();
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.PayloadItem)
-    }
-    
-    static {
-      defaultInstance = new PayloadItem(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.PayloadItem)
-  }
-  
-  public interface IUOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string uid = 1;
-    boolean hasUid();
-    String getUid();
-    
-    // required uint32 revision = 2;
-    boolean hasRevision();
-    int getRevision();
-    
-    // required string category = 3 [default = "undef"];
-    boolean hasCategory();
-    String getCategory();
-    
-    // required string payload_type = 4 [default = "MAP"];
-    boolean hasPayloadType();
-    String getPayloadType();
-    
-    // required string owner_name = 5;
-    boolean hasOwnerName();
-    String getOwnerName();
-    
-    // required bool committed = 6 [default = false];
-    boolean hasCommitted();
-    boolean getCommitted();
-    
-    // required .ipaaca.IU.AccessMode access_mode = 7 [default = PUSH];
-    boolean hasAccessMode();
-    ipaaca.Ipaaca.IU.AccessMode getAccessMode();
-    
-    // required bool read_only = 8 [default = false];
-    boolean hasReadOnly();
-    boolean getReadOnly();
-    
-    // repeated .ipaaca.PayloadItem payload = 9;
-    java.util.List<ipaaca.Ipaaca.PayloadItem> 
-        getPayloadList();
-    ipaaca.Ipaaca.PayloadItem getPayload(int index);
-    int getPayloadCount();
-    java.util.List<? extends ipaaca.Ipaaca.PayloadItemOrBuilder> 
-        getPayloadOrBuilderList();
-    ipaaca.Ipaaca.PayloadItemOrBuilder getPayloadOrBuilder(
-        int index);
-    
-    // repeated .ipaaca.LinkSet links = 10;
-    java.util.List<ipaaca.Ipaaca.LinkSet> 
-        getLinksList();
-    ipaaca.Ipaaca.LinkSet getLinks(int index);
-    int getLinksCount();
-    java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-        getLinksOrBuilderList();
-    ipaaca.Ipaaca.LinkSetOrBuilder getLinksOrBuilder(
-        int index);
-  }
-  public static final class IU extends
-      com.google.protobuf.GeneratedMessage
-      implements IUOrBuilder {
-    // Use IU.newBuilder() to construct.
-    private IU(Builder builder) {
-      super(builder);
-    }
-    private IU(boolean noInit) {}
-    
-    private static final IU defaultInstance;
-    public static IU getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IU getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IU_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IU_fieldAccessorTable;
-    }
-    
-    public enum AccessMode
-        implements com.google.protobuf.ProtocolMessageEnum {
-      PUSH(0, 0),
-      REMOTE(1, 1),
-      MESSAGE(2, 2),
-      ;
-      
-      public static final int PUSH_VALUE = 0;
-      public static final int REMOTE_VALUE = 1;
-      public static final int MESSAGE_VALUE = 2;
-      
-      
-      public final int getNumber() { return value; }
-      
-      public static AccessMode valueOf(int value) {
-        switch (value) {
-          case 0: return PUSH;
-          case 1: return REMOTE;
-          case 2: return MESSAGE;
-          default: return null;
-        }
-      }
-      
-      public static com.google.protobuf.Internal.EnumLiteMap<AccessMode>
-          internalGetValueMap() {
-        return internalValueMap;
-      }
-      private static com.google.protobuf.Internal.EnumLiteMap<AccessMode>
-          internalValueMap =
-            new com.google.protobuf.Internal.EnumLiteMap<AccessMode>() {
-              public AccessMode findValueByNumber(int number) {
-                return AccessMode.valueOf(number);
-              }
-            };
-      
-      public final com.google.protobuf.Descriptors.EnumValueDescriptor
-          getValueDescriptor() {
-        return getDescriptor().getValues().get(index);
-      }
-      public final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptorForType() {
-        return getDescriptor();
-      }
-      public static final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.IU.getDescriptor().getEnumTypes().get(0);
-      }
-      
-      private static final AccessMode[] VALUES = {
-        PUSH, REMOTE, MESSAGE, 
-      };
-      
-      public static AccessMode valueOf(
-          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
-        if (desc.getType() != getDescriptor()) {
-          throw new java.lang.IllegalArgumentException(
-            "EnumValueDescriptor is not for this type.");
-        }
-        return VALUES[desc.getIndex()];
-      }
-      
-      private final int index;
-      private final int value;
-      
-      private AccessMode(int index, int value) {
-        this.index = index;
-        this.value = value;
-      }
-      
-      // @@protoc_insertion_point(enum_scope:ipaaca.IU.AccessMode)
-    }
-    
-    private int bitField0_;
-    // required string uid = 1;
-    public static final int UID_FIELD_NUMBER = 1;
-    private java.lang.Object uid_;
-    public boolean hasUid() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getUid() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          uid_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getUidBytes() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        uid_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required uint32 revision = 2;
-    public static final int REVISION_FIELD_NUMBER = 2;
-    private int revision_;
-    public boolean hasRevision() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public int getRevision() {
-      return revision_;
-    }
-    
-    // required string category = 3 [default = "undef"];
-    public static final int CATEGORY_FIELD_NUMBER = 3;
-    private java.lang.Object category_;
-    public boolean hasCategory() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public String getCategory() {
-      java.lang.Object ref = category_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          category_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getCategoryBytes() {
-      java.lang.Object ref = category_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        category_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required string payload_type = 4 [default = "MAP"];
-    public static final int PAYLOAD_TYPE_FIELD_NUMBER = 4;
-    private java.lang.Object payloadType_;
-    public boolean hasPayloadType() {
-      return ((bitField0_ & 0x00000008) == 0x00000008);
-    }
-    public String getPayloadType() {
-      java.lang.Object ref = payloadType_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          payloadType_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getPayloadTypeBytes() {
-      java.lang.Object ref = payloadType_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        payloadType_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required string owner_name = 5;
-    public static final int OWNER_NAME_FIELD_NUMBER = 5;
-    private java.lang.Object ownerName_;
-    public boolean hasOwnerName() {
-      return ((bitField0_ & 0x00000010) == 0x00000010);
-    }
-    public String getOwnerName() {
-      java.lang.Object ref = ownerName_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          ownerName_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getOwnerNameBytes() {
-      java.lang.Object ref = ownerName_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        ownerName_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required bool committed = 6 [default = false];
-    public static final int COMMITTED_FIELD_NUMBER = 6;
-    private boolean committed_;
-    public boolean hasCommitted() {
-      return ((bitField0_ & 0x00000020) == 0x00000020);
-    }
-    public boolean getCommitted() {
-      return committed_;
-    }
-    
-    // required .ipaaca.IU.AccessMode access_mode = 7 [default = PUSH];
-    public static final int ACCESS_MODE_FIELD_NUMBER = 7;
-    private ipaaca.Ipaaca.IU.AccessMode accessMode_;
-    public boolean hasAccessMode() {
-      return ((bitField0_ & 0x00000040) == 0x00000040);
-    }
-    public ipaaca.Ipaaca.IU.AccessMode getAccessMode() {
-      return accessMode_;
-    }
-    
-    // required bool read_only = 8 [default = false];
-    public static final int READ_ONLY_FIELD_NUMBER = 8;
-    private boolean readOnly_;
-    public boolean hasReadOnly() {
-      return ((bitField0_ & 0x00000080) == 0x00000080);
-    }
-    public boolean getReadOnly() {
-      return readOnly_;
-    }
-    
-    // repeated .ipaaca.PayloadItem payload = 9;
-    public static final int PAYLOAD_FIELD_NUMBER = 9;
-    private java.util.List<ipaaca.Ipaaca.PayloadItem> payload_;
-    public java.util.List<ipaaca.Ipaaca.PayloadItem> getPayloadList() {
-      return payload_;
-    }
-    public java.util.List<? extends ipaaca.Ipaaca.PayloadItemOrBuilder> 
-        getPayloadOrBuilderList() {
-      return payload_;
-    }
-    public int getPayloadCount() {
-      return payload_.size();
-    }
-    public ipaaca.Ipaaca.PayloadItem getPayload(int index) {
-      return payload_.get(index);
-    }
-    public ipaaca.Ipaaca.PayloadItemOrBuilder getPayloadOrBuilder(
-        int index) {
-      return payload_.get(index);
-    }
-    
-    // repeated .ipaaca.LinkSet links = 10;
-    public static final int LINKS_FIELD_NUMBER = 10;
-    private java.util.List<ipaaca.Ipaaca.LinkSet> links_;
-    public java.util.List<ipaaca.Ipaaca.LinkSet> getLinksList() {
-      return links_;
-    }
-    public java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-        getLinksOrBuilderList() {
-      return links_;
-    }
-    public int getLinksCount() {
-      return links_.size();
-    }
-    public ipaaca.Ipaaca.LinkSet getLinks(int index) {
-      return links_.get(index);
-    }
-    public ipaaca.Ipaaca.LinkSetOrBuilder getLinksOrBuilder(
-        int index) {
-      return links_.get(index);
-    }
-    
-    private void initFields() {
-      uid_ = "";
-      revision_ = 0;
-      category_ = "undef";
-      payloadType_ = "MAP";
-      ownerName_ = "";
-      committed_ = false;
-      accessMode_ = ipaaca.Ipaaca.IU.AccessMode.PUSH;
-      readOnly_ = false;
-      payload_ = java.util.Collections.emptyList();
-      links_ = java.util.Collections.emptyList();
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasUid()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasRevision()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasCategory()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasPayloadType()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasOwnerName()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasCommitted()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasAccessMode()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasReadOnly()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      for (int i = 0; i < getPayloadCount(); i++) {
-        if (!getPayload(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      for (int i = 0; i < getLinksCount(); i++) {
-        if (!getLinks(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeUInt32(2, revision_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeBytes(3, getCategoryBytes());
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        output.writeBytes(4, getPayloadTypeBytes());
-      }
-      if (((bitField0_ & 0x00000010) == 0x00000010)) {
-        output.writeBytes(5, getOwnerNameBytes());
-      }
-      if (((bitField0_ & 0x00000020) == 0x00000020)) {
-        output.writeBool(6, committed_);
-      }
-      if (((bitField0_ & 0x00000040) == 0x00000040)) {
-        output.writeEnum(7, accessMode_.getNumber());
-      }
-      if (((bitField0_ & 0x00000080) == 0x00000080)) {
-        output.writeBool(8, readOnly_);
-      }
-      for (int i = 0; i < payload_.size(); i++) {
-        output.writeMessage(9, payload_.get(i));
-      }
-      for (int i = 0; i < links_.size(); i++) {
-        output.writeMessage(10, links_.get(i));
-      }
-      getUnknownFields().writeTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(2, revision_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(3, getCategoryBytes());
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(4, getPayloadTypeBytes());
-      }
-      if (((bitField0_ & 0x00000010) == 0x00000010)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(5, getOwnerNameBytes());
-      }
-      if (((bitField0_ & 0x00000020) == 0x00000020)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(6, committed_);
-      }
-      if (((bitField0_ & 0x00000040) == 0x00000040)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeEnumSize(7, accessMode_.getNumber());
-      }
-      if (((bitField0_ & 0x00000080) == 0x00000080)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(8, readOnly_);
-      }
-      for (int i = 0; i < payload_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(9, payload_.get(i));
-      }
-      for (int i = 0; i < links_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(10, links_.get(i));
-      }
-      size += getUnknownFields().getSerializedSize();
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static ipaaca.Ipaaca.IU parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IU parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IU parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IU parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IU parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IU parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IU parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IU parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IU parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IU parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.Ipaaca.IU prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.Ipaaca.IUOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IU_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IU_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.Ipaaca.IU.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-          getPayloadFieldBuilder();
-          getLinksFieldBuilder();
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        uid_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        revision_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        category_ = "undef";
-        bitField0_ = (bitField0_ & ~0x00000004);
-        payloadType_ = "MAP";
-        bitField0_ = (bitField0_ & ~0x00000008);
-        ownerName_ = "";
-        bitField0_ = (bitField0_ & ~0x00000010);
-        committed_ = false;
-        bitField0_ = (bitField0_ & ~0x00000020);
-        accessMode_ = ipaaca.Ipaaca.IU.AccessMode.PUSH;
-        bitField0_ = (bitField0_ & ~0x00000040);
-        readOnly_ = false;
-        bitField0_ = (bitField0_ & ~0x00000080);
-        if (payloadBuilder_ == null) {
-          payload_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000100);
-        } else {
-          payloadBuilder_.clear();
-        }
-        if (linksBuilder_ == null) {
-          links_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000200);
-        } else {
-          linksBuilder_.clear();
-        }
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.Ipaaca.IU.getDescriptor();
-      }
-      
-      public ipaaca.Ipaaca.IU getDefaultInstanceForType() {
-        return ipaaca.Ipaaca.IU.getDefaultInstance();
-      }
-      
-      public ipaaca.Ipaaca.IU build() {
-        ipaaca.Ipaaca.IU result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.Ipaaca.IU buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.Ipaaca.IU result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.Ipaaca.IU buildPartial() {
-        ipaaca.Ipaaca.IU result = new ipaaca.Ipaaca.IU(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.uid_ = uid_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.revision_ = revision_;
-        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.category_ = category_;
-        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
-          to_bitField0_ |= 0x00000008;
-        }
-        result.payloadType_ = payloadType_;
-        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
-          to_bitField0_ |= 0x00000010;
-        }
-        result.ownerName_ = ownerName_;
-        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
-          to_bitField0_ |= 0x00000020;
-        }
-        result.committed_ = committed_;
-        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
-          to_bitField0_ |= 0x00000040;
-        }
-        result.accessMode_ = accessMode_;
-        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
-          to_bitField0_ |= 0x00000080;
-        }
-        result.readOnly_ = readOnly_;
-        if (payloadBuilder_ == null) {
-          if (((bitField0_ & 0x00000100) == 0x00000100)) {
-            payload_ = java.util.Collections.unmodifiableList(payload_);
-            bitField0_ = (bitField0_ & ~0x00000100);
-          }
-          result.payload_ = payload_;
-        } else {
-          result.payload_ = payloadBuilder_.build();
-        }
-        if (linksBuilder_ == null) {
-          if (((bitField0_ & 0x00000200) == 0x00000200)) {
-            links_ = java.util.Collections.unmodifiableList(links_);
-            bitField0_ = (bitField0_ & ~0x00000200);
-          }
-          result.links_ = links_;
-        } else {
-          result.links_ = linksBuilder_.build();
-        }
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.Ipaaca.IU) {
-          return mergeFrom((ipaaca.Ipaaca.IU)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.Ipaaca.IU other) {
-        if (other == ipaaca.Ipaaca.IU.getDefaultInstance()) return this;
-        if (other.hasUid()) {
-          setUid(other.getUid());
-        }
-        if (other.hasRevision()) {
-          setRevision(other.getRevision());
-        }
-        if (other.hasCategory()) {
-          setCategory(other.getCategory());
-        }
-        if (other.hasPayloadType()) {
-          setPayloadType(other.getPayloadType());
-        }
-        if (other.hasOwnerName()) {
-          setOwnerName(other.getOwnerName());
-        }
-        if (other.hasCommitted()) {
-          setCommitted(other.getCommitted());
-        }
-        if (other.hasAccessMode()) {
-          setAccessMode(other.getAccessMode());
-        }
-        if (other.hasReadOnly()) {
-          setReadOnly(other.getReadOnly());
-        }
-        if (payloadBuilder_ == null) {
-          if (!other.payload_.isEmpty()) {
-            if (payload_.isEmpty()) {
-              payload_ = other.payload_;
-              bitField0_ = (bitField0_ & ~0x00000100);
-            } else {
-              ensurePayloadIsMutable();
-              payload_.addAll(other.payload_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.payload_.isEmpty()) {
-            if (payloadBuilder_.isEmpty()) {
-              payloadBuilder_.dispose();
-              payloadBuilder_ = null;
-              payload_ = other.payload_;
-              bitField0_ = (bitField0_ & ~0x00000100);
-              payloadBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getPayloadFieldBuilder() : null;
-            } else {
-              payloadBuilder_.addAllMessages(other.payload_);
-            }
-          }
-        }
-        if (linksBuilder_ == null) {
-          if (!other.links_.isEmpty()) {
-            if (links_.isEmpty()) {
-              links_ = other.links_;
-              bitField0_ = (bitField0_ & ~0x00000200);
-            } else {
-              ensureLinksIsMutable();
-              links_.addAll(other.links_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.links_.isEmpty()) {
-            if (linksBuilder_.isEmpty()) {
-              linksBuilder_.dispose();
-              linksBuilder_ = null;
-              links_ = other.links_;
-              bitField0_ = (bitField0_ & ~0x00000200);
-              linksBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getLinksFieldBuilder() : null;
-            } else {
-              linksBuilder_.addAllMessages(other.links_);
-            }
-          }
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasUid()) {
-          
-          return false;
-        }
-        if (!hasRevision()) {
-          
-          return false;
-        }
-        if (!hasCategory()) {
-          
-          return false;
-        }
-        if (!hasPayloadType()) {
-          
-          return false;
-        }
-        if (!hasOwnerName()) {
-          
-          return false;
-        }
-        if (!hasCommitted()) {
-          
-          return false;
-        }
-        if (!hasAccessMode()) {
-          
-          return false;
-        }
-        if (!hasReadOnly()) {
-          
-          return false;
-        }
-        for (int i = 0; i < getPayloadCount(); i++) {
-          if (!getPayload(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        for (int i = 0; i < getLinksCount(); i++) {
-          if (!getLinks(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              uid_ = input.readBytes();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              revision_ = input.readUInt32();
-              break;
-            }
-            case 26: {
-              bitField0_ |= 0x00000004;
-              category_ = input.readBytes();
-              break;
-            }
-            case 34: {
-              bitField0_ |= 0x00000008;
-              payloadType_ = input.readBytes();
-              break;
-            }
-            case 42: {
-              bitField0_ |= 0x00000010;
-              ownerName_ = input.readBytes();
-              break;
-            }
-            case 48: {
-              bitField0_ |= 0x00000020;
-              committed_ = input.readBool();
-              break;
-            }
-            case 56: {
-              int rawValue = input.readEnum();
-              ipaaca.Ipaaca.IU.AccessMode value = ipaaca.Ipaaca.IU.AccessMode.valueOf(rawValue);
-              if (value == null) {
-                unknownFields.mergeVarintField(7, rawValue);
-              } else {
-                bitField0_ |= 0x00000040;
-                accessMode_ = value;
-              }
-              break;
-            }
-            case 64: {
-              bitField0_ |= 0x00000080;
-              readOnly_ = input.readBool();
-              break;
-            }
-            case 74: {
-              ipaaca.Ipaaca.PayloadItem.Builder subBuilder = ipaaca.Ipaaca.PayloadItem.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addPayload(subBuilder.buildPartial());
-              break;
-            }
-            case 82: {
-              ipaaca.Ipaaca.LinkSet.Builder subBuilder = ipaaca.Ipaaca.LinkSet.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addLinks(subBuilder.buildPartial());
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string uid = 1;
-      private java.lang.Object uid_ = "";
-      public boolean hasUid() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getUid() {
-        java.lang.Object ref = uid_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          uid_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setUid(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearUid() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        uid_ = getDefaultInstance().getUid();
-        onChanged();
-        return this;
-      }
-      void setUid(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-      }
-      
-      // required uint32 revision = 2;
-      private int revision_ ;
-      public boolean hasRevision() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public int getRevision() {
-        return revision_;
-      }
-      public Builder setRevision(int value) {
-        bitField0_ |= 0x00000002;
-        revision_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearRevision() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        revision_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // required string category = 3 [default = "undef"];
-      private java.lang.Object category_ = "undef";
-      public boolean hasCategory() {
-        return ((bitField0_ & 0x00000004) == 0x00000004);
-      }
-      public String getCategory() {
-        java.lang.Object ref = category_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          category_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setCategory(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000004;
-        category_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearCategory() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        category_ = getDefaultInstance().getCategory();
-        onChanged();
-        return this;
-      }
-      void setCategory(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000004;
-        category_ = value;
-        onChanged();
-      }
-      
-      // required string payload_type = 4 [default = "MAP"];
-      private java.lang.Object payloadType_ = "MAP";
-      public boolean hasPayloadType() {
-        return ((bitField0_ & 0x00000008) == 0x00000008);
-      }
-      public String getPayloadType() {
-        java.lang.Object ref = payloadType_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          payloadType_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setPayloadType(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000008;
-        payloadType_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearPayloadType() {
-        bitField0_ = (bitField0_ & ~0x00000008);
-        payloadType_ = getDefaultInstance().getPayloadType();
-        onChanged();
-        return this;
-      }
-      void setPayloadType(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000008;
-        payloadType_ = value;
-        onChanged();
-      }
-      
-      // required string owner_name = 5;
-      private java.lang.Object ownerName_ = "";
-      public boolean hasOwnerName() {
-        return ((bitField0_ & 0x00000010) == 0x00000010);
-      }
-      public String getOwnerName() {
-        java.lang.Object ref = ownerName_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          ownerName_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setOwnerName(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000010;
-        ownerName_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearOwnerName() {
-        bitField0_ = (bitField0_ & ~0x00000010);
-        ownerName_ = getDefaultInstance().getOwnerName();
-        onChanged();
-        return this;
-      }
-      void setOwnerName(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000010;
-        ownerName_ = value;
-        onChanged();
-      }
-      
-      // required bool committed = 6 [default = false];
-      private boolean committed_ ;
-      public boolean hasCommitted() {
-        return ((bitField0_ & 0x00000020) == 0x00000020);
-      }
-      public boolean getCommitted() {
-        return committed_;
-      }
-      public Builder setCommitted(boolean value) {
-        bitField0_ |= 0x00000020;
-        committed_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearCommitted() {
-        bitField0_ = (bitField0_ & ~0x00000020);
-        committed_ = false;
-        onChanged();
-        return this;
-      }
-      
-      // required .ipaaca.IU.AccessMode access_mode = 7 [default = PUSH];
-      private ipaaca.Ipaaca.IU.AccessMode accessMode_ = ipaaca.Ipaaca.IU.AccessMode.PUSH;
-      public boolean hasAccessMode() {
-        return ((bitField0_ & 0x00000040) == 0x00000040);
-      }
-      public ipaaca.Ipaaca.IU.AccessMode getAccessMode() {
-        return accessMode_;
-      }
-      public Builder setAccessMode(ipaaca.Ipaaca.IU.AccessMode value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        bitField0_ |= 0x00000040;
-        accessMode_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearAccessMode() {
-        bitField0_ = (bitField0_ & ~0x00000040);
-        accessMode_ = ipaaca.Ipaaca.IU.AccessMode.PUSH;
-        onChanged();
-        return this;
-      }
-      
-      // required bool read_only = 8 [default = false];
-      private boolean readOnly_ ;
-      public boolean hasReadOnly() {
-        return ((bitField0_ & 0x00000080) == 0x00000080);
-      }
-      public boolean getReadOnly() {
-        return readOnly_;
-      }
-      public Builder setReadOnly(boolean value) {
-        bitField0_ |= 0x00000080;
-        readOnly_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearReadOnly() {
-        bitField0_ = (bitField0_ & ~0x00000080);
-        readOnly_ = false;
-        onChanged();
-        return this;
-      }
-      
-      // repeated .ipaaca.PayloadItem payload = 9;
-      private java.util.List<ipaaca.Ipaaca.PayloadItem> payload_ =
-        java.util.Collections.emptyList();
-      private void ensurePayloadIsMutable() {
-        if (!((bitField0_ & 0x00000100) == 0x00000100)) {
-          payload_ = new java.util.ArrayList<ipaaca.Ipaaca.PayloadItem>(payload_);
-          bitField0_ |= 0x00000100;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.PayloadItem, ipaaca.Ipaaca.PayloadItem.Builder, ipaaca.Ipaaca.PayloadItemOrBuilder> payloadBuilder_;
-      
-      public java.util.List<ipaaca.Ipaaca.PayloadItem> getPayloadList() {
-        if (payloadBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(payload_);
-        } else {
-          return payloadBuilder_.getMessageList();
-        }
-      }
-      public int getPayloadCount() {
-        if (payloadBuilder_ == null) {
-          return payload_.size();
-        } else {
-          return payloadBuilder_.getCount();
-        }
-      }
-      public ipaaca.Ipaaca.PayloadItem getPayload(int index) {
-        if (payloadBuilder_ == null) {
-          return payload_.get(index);
-        } else {
-          return payloadBuilder_.getMessage(index);
-        }
-      }
-      public Builder setPayload(
-          int index, ipaaca.Ipaaca.PayloadItem value) {
-        if (payloadBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensurePayloadIsMutable();
-          payload_.set(index, value);
-          onChanged();
-        } else {
-          payloadBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setPayload(
-          int index, ipaaca.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (payloadBuilder_ == null) {
-          ensurePayloadIsMutable();
-          payload_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          payloadBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addPayload(ipaaca.Ipaaca.PayloadItem value) {
-        if (payloadBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensurePayloadIsMutable();
-          payload_.add(value);
-          onChanged();
-        } else {
-          payloadBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addPayload(
-          int index, ipaaca.Ipaaca.PayloadItem value) {
-        if (payloadBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensurePayloadIsMutable();
-          payload_.add(index, value);
-          onChanged();
-        } else {
-          payloadBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addPayload(
-          ipaaca.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (payloadBuilder_ == null) {
-          ensurePayloadIsMutable();
-          payload_.add(builderForValue.build());
-          onChanged();
-        } else {
-          payloadBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addPayload(
-          int index, ipaaca.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (payloadBuilder_ == null) {
-          ensurePayloadIsMutable();
-          payload_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          payloadBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllPayload(
-          java.lang.Iterable<? extends ipaaca.Ipaaca.PayloadItem> values) {
-        if (payloadBuilder_ == null) {
-          ensurePayloadIsMutable();
-          super.addAll(values, payload_);
-          onChanged();
-        } else {
-          payloadBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearPayload() {
-        if (payloadBuilder_ == null) {
-          payload_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000100);
-          onChanged();
-        } else {
-          payloadBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removePayload(int index) {
-        if (payloadBuilder_ == null) {
-          ensurePayloadIsMutable();
-          payload_.remove(index);
-          onChanged();
-        } else {
-          payloadBuilder_.remove(index);
-        }
-        return this;
-      }
-      public ipaaca.Ipaaca.PayloadItem.Builder getPayloadBuilder(
-          int index) {
-        return getPayloadFieldBuilder().getBuilder(index);
-      }
-      public ipaaca.Ipaaca.PayloadItemOrBuilder getPayloadOrBuilder(
-          int index) {
-        if (payloadBuilder_ == null) {
-          return payload_.get(index);  } else {
-          return payloadBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends ipaaca.Ipaaca.PayloadItemOrBuilder> 
-           getPayloadOrBuilderList() {
-        if (payloadBuilder_ != null) {
-          return payloadBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(payload_);
-        }
-      }
-      public ipaaca.Ipaaca.PayloadItem.Builder addPayloadBuilder() {
-        return getPayloadFieldBuilder().addBuilder(
-            ipaaca.Ipaaca.PayloadItem.getDefaultInstance());
-      }
-      public ipaaca.Ipaaca.PayloadItem.Builder addPayloadBuilder(
-          int index) {
-        return getPayloadFieldBuilder().addBuilder(
-            index, ipaaca.Ipaaca.PayloadItem.getDefaultInstance());
-      }
-      public java.util.List<ipaaca.Ipaaca.PayloadItem.Builder> 
-           getPayloadBuilderList() {
-        return getPayloadFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.PayloadItem, ipaaca.Ipaaca.PayloadItem.Builder, ipaaca.Ipaaca.PayloadItemOrBuilder> 
-          getPayloadFieldBuilder() {
-        if (payloadBuilder_ == null) {
-          payloadBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              ipaaca.Ipaaca.PayloadItem, ipaaca.Ipaaca.PayloadItem.Builder, ipaaca.Ipaaca.PayloadItemOrBuilder>(
-                  payload_,
-                  ((bitField0_ & 0x00000100) == 0x00000100),
-                  getParentForChildren(),
-                  isClean());
-          payload_ = null;
-        }
-        return payloadBuilder_;
-      }
-      
-      // repeated .ipaaca.LinkSet links = 10;
-      private java.util.List<ipaaca.Ipaaca.LinkSet> links_ =
-        java.util.Collections.emptyList();
-      private void ensureLinksIsMutable() {
-        if (!((bitField0_ & 0x00000200) == 0x00000200)) {
-          links_ = new java.util.ArrayList<ipaaca.Ipaaca.LinkSet>(links_);
-          bitField0_ |= 0x00000200;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder> linksBuilder_;
-      
-      public java.util.List<ipaaca.Ipaaca.LinkSet> getLinksList() {
-        if (linksBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(links_);
-        } else {
-          return linksBuilder_.getMessageList();
-        }
-      }
-      public int getLinksCount() {
-        if (linksBuilder_ == null) {
-          return links_.size();
-        } else {
-          return linksBuilder_.getCount();
-        }
-      }
-      public ipaaca.Ipaaca.LinkSet getLinks(int index) {
-        if (linksBuilder_ == null) {
-          return links_.get(index);
-        } else {
-          return linksBuilder_.getMessage(index);
-        }
-      }
-      public Builder setLinks(
-          int index, ipaaca.Ipaaca.LinkSet value) {
-        if (linksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksIsMutable();
-          links_.set(index, value);
-          onChanged();
-        } else {
-          linksBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setLinks(
-          int index, ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksBuilder_ == null) {
-          ensureLinksIsMutable();
-          links_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          linksBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addLinks(ipaaca.Ipaaca.LinkSet value) {
-        if (linksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksIsMutable();
-          links_.add(value);
-          onChanged();
-        } else {
-          linksBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addLinks(
-          int index, ipaaca.Ipaaca.LinkSet value) {
-        if (linksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksIsMutable();
-          links_.add(index, value);
-          onChanged();
-        } else {
-          linksBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addLinks(
-          ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksBuilder_ == null) {
-          ensureLinksIsMutable();
-          links_.add(builderForValue.build());
-          onChanged();
-        } else {
-          linksBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addLinks(
-          int index, ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksBuilder_ == null) {
-          ensureLinksIsMutable();
-          links_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          linksBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllLinks(
-          java.lang.Iterable<? extends ipaaca.Ipaaca.LinkSet> values) {
-        if (linksBuilder_ == null) {
-          ensureLinksIsMutable();
-          super.addAll(values, links_);
-          onChanged();
-        } else {
-          linksBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearLinks() {
-        if (linksBuilder_ == null) {
-          links_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000200);
-          onChanged();
-        } else {
-          linksBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removeLinks(int index) {
-        if (linksBuilder_ == null) {
-          ensureLinksIsMutable();
-          links_.remove(index);
-          onChanged();
-        } else {
-          linksBuilder_.remove(index);
-        }
-        return this;
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder getLinksBuilder(
-          int index) {
-        return getLinksFieldBuilder().getBuilder(index);
-      }
-      public ipaaca.Ipaaca.LinkSetOrBuilder getLinksOrBuilder(
-          int index) {
-        if (linksBuilder_ == null) {
-          return links_.get(index);  } else {
-          return linksBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-           getLinksOrBuilderList() {
-        if (linksBuilder_ != null) {
-          return linksBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(links_);
-        }
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder addLinksBuilder() {
-        return getLinksFieldBuilder().addBuilder(
-            ipaaca.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder addLinksBuilder(
-          int index) {
-        return getLinksFieldBuilder().addBuilder(
-            index, ipaaca.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public java.util.List<ipaaca.Ipaaca.LinkSet.Builder> 
-           getLinksBuilderList() {
-        return getLinksFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder> 
-          getLinksFieldBuilder() {
-        if (linksBuilder_ == null) {
-          linksBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder>(
-                  links_,
-                  ((bitField0_ & 0x00000200) == 0x00000200),
-                  getParentForChildren(),
-                  isClean());
-          links_ = null;
-        }
-        return linksBuilder_;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.IU)
-    }
-    
-    static {
-      defaultInstance = new IU(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.IU)
-  }
-  
-  public interface IUPayloadUpdateOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string uid = 1;
-    boolean hasUid();
-    String getUid();
-    
-    // required uint32 revision = 2;
-    boolean hasRevision();
-    int getRevision();
-    
-    // repeated .ipaaca.PayloadItem new_items = 3;
-    java.util.List<ipaaca.Ipaaca.PayloadItem> 
-        getNewItemsList();
-    ipaaca.Ipaaca.PayloadItem getNewItems(int index);
-    int getNewItemsCount();
-    java.util.List<? extends ipaaca.Ipaaca.PayloadItemOrBuilder> 
-        getNewItemsOrBuilderList();
-    ipaaca.Ipaaca.PayloadItemOrBuilder getNewItemsOrBuilder(
-        int index);
-    
-    // repeated string keys_to_remove = 4;
-    java.util.List<String> getKeysToRemoveList();
-    int getKeysToRemoveCount();
-    String getKeysToRemove(int index);
-    
-    // required bool is_delta = 5 [default = false];
-    boolean hasIsDelta();
-    boolean getIsDelta();
-    
-    // required string writer_name = 6;
-    boolean hasWriterName();
-    String getWriterName();
-  }
-  public static final class IUPayloadUpdate extends
-      com.google.protobuf.GeneratedMessage
-      implements IUPayloadUpdateOrBuilder {
-    // Use IUPayloadUpdate.newBuilder() to construct.
-    private IUPayloadUpdate(Builder builder) {
-      super(builder);
-    }
-    private IUPayloadUpdate(boolean noInit) {}
-    
-    private static final IUPayloadUpdate defaultInstance;
-    public static IUPayloadUpdate getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IUPayloadUpdate getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IUPayloadUpdate_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IUPayloadUpdate_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string uid = 1;
-    public static final int UID_FIELD_NUMBER = 1;
-    private java.lang.Object uid_;
-    public boolean hasUid() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getUid() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          uid_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getUidBytes() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        uid_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required uint32 revision = 2;
-    public static final int REVISION_FIELD_NUMBER = 2;
-    private int revision_;
-    public boolean hasRevision() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public int getRevision() {
-      return revision_;
-    }
-    
-    // repeated .ipaaca.PayloadItem new_items = 3;
-    public static final int NEW_ITEMS_FIELD_NUMBER = 3;
-    private java.util.List<ipaaca.Ipaaca.PayloadItem> newItems_;
-    public java.util.List<ipaaca.Ipaaca.PayloadItem> getNewItemsList() {
-      return newItems_;
-    }
-    public java.util.List<? extends ipaaca.Ipaaca.PayloadItemOrBuilder> 
-        getNewItemsOrBuilderList() {
-      return newItems_;
-    }
-    public int getNewItemsCount() {
-      return newItems_.size();
-    }
-    public ipaaca.Ipaaca.PayloadItem getNewItems(int index) {
-      return newItems_.get(index);
-    }
-    public ipaaca.Ipaaca.PayloadItemOrBuilder getNewItemsOrBuilder(
-        int index) {
-      return newItems_.get(index);
-    }
-    
-    // repeated string keys_to_remove = 4;
-    public static final int KEYS_TO_REMOVE_FIELD_NUMBER = 4;
-    private com.google.protobuf.LazyStringList keysToRemove_;
-    public java.util.List<String>
-        getKeysToRemoveList() {
-      return keysToRemove_;
-    }
-    public int getKeysToRemoveCount() {
-      return keysToRemove_.size();
-    }
-    public String getKeysToRemove(int index) {
-      return keysToRemove_.get(index);
-    }
-    
-    // required bool is_delta = 5 [default = false];
-    public static final int IS_DELTA_FIELD_NUMBER = 5;
-    private boolean isDelta_;
-    public boolean hasIsDelta() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public boolean getIsDelta() {
-      return isDelta_;
-    }
-    
-    // required string writer_name = 6;
-    public static final int WRITER_NAME_FIELD_NUMBER = 6;
-    private java.lang.Object writerName_;
-    public boolean hasWriterName() {
-      return ((bitField0_ & 0x00000008) == 0x00000008);
-    }
-    public String getWriterName() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          writerName_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getWriterNameBytes() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        writerName_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    private void initFields() {
-      uid_ = "";
-      revision_ = 0;
-      newItems_ = java.util.Collections.emptyList();
-      keysToRemove_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      isDelta_ = false;
-      writerName_ = "";
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasUid()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasRevision()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasIsDelta()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasWriterName()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      for (int i = 0; i < getNewItemsCount(); i++) {
-        if (!getNewItems(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeUInt32(2, revision_);
-      }
-      for (int i = 0; i < newItems_.size(); i++) {
-        output.writeMessage(3, newItems_.get(i));
-      }
-      for (int i = 0; i < keysToRemove_.size(); i++) {
-        output.writeBytes(4, keysToRemove_.getByteString(i));
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeBool(5, isDelta_);
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        output.writeBytes(6, getWriterNameBytes());
-      }
-      getUnknownFields().writeTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(2, revision_);
-      }
-      for (int i = 0; i < newItems_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(3, newItems_.get(i));
-      }
-      {
-        int dataSize = 0;
-        for (int i = 0; i < keysToRemove_.size(); i++) {
-          dataSize += com.google.protobuf.CodedOutputStream
-            .computeBytesSizeNoTag(keysToRemove_.getByteString(i));
-        }
-        size += dataSize;
-        size += 1 * getKeysToRemoveList().size();
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(5, isDelta_);
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(6, getWriterNameBytes());
-      }
-      size += getUnknownFields().getSerializedSize();
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.Ipaaca.IUPayloadUpdate prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.Ipaaca.IUPayloadUpdateOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IUPayloadUpdate_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IUPayloadUpdate_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.Ipaaca.IUPayloadUpdate.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-          getNewItemsFieldBuilder();
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        uid_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        revision_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        if (newItemsBuilder_ == null) {
-          newItems_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
-        } else {
-          newItemsBuilder_.clear();
-        }
-        keysToRemove_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000008);
-        isDelta_ = false;
-        bitField0_ = (bitField0_ & ~0x00000010);
-        writerName_ = "";
-        bitField0_ = (bitField0_ & ~0x00000020);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.Ipaaca.IUPayloadUpdate.getDescriptor();
-      }
-      
-      public ipaaca.Ipaaca.IUPayloadUpdate getDefaultInstanceForType() {
-        return ipaaca.Ipaaca.IUPayloadUpdate.getDefaultInstance();
-      }
-      
-      public ipaaca.Ipaaca.IUPayloadUpdate build() {
-        ipaaca.Ipaaca.IUPayloadUpdate result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.Ipaaca.IUPayloadUpdate buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.Ipaaca.IUPayloadUpdate result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.Ipaaca.IUPayloadUpdate buildPartial() {
-        ipaaca.Ipaaca.IUPayloadUpdate result = new ipaaca.Ipaaca.IUPayloadUpdate(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.uid_ = uid_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.revision_ = revision_;
-        if (newItemsBuilder_ == null) {
-          if (((bitField0_ & 0x00000004) == 0x00000004)) {
-            newItems_ = java.util.Collections.unmodifiableList(newItems_);
-            bitField0_ = (bitField0_ & ~0x00000004);
-          }
-          result.newItems_ = newItems_;
-        } else {
-          result.newItems_ = newItemsBuilder_.build();
-        }
-        if (((bitField0_ & 0x00000008) == 0x00000008)) {
-          keysToRemove_ = new com.google.protobuf.UnmodifiableLazyStringList(
-              keysToRemove_);
-          bitField0_ = (bitField0_ & ~0x00000008);
-        }
-        result.keysToRemove_ = keysToRemove_;
-        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.isDelta_ = isDelta_;
-        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
-          to_bitField0_ |= 0x00000008;
-        }
-        result.writerName_ = writerName_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.Ipaaca.IUPayloadUpdate) {
-          return mergeFrom((ipaaca.Ipaaca.IUPayloadUpdate)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.Ipaaca.IUPayloadUpdate other) {
-        if (other == ipaaca.Ipaaca.IUPayloadUpdate.getDefaultInstance()) return this;
-        if (other.hasUid()) {
-          setUid(other.getUid());
-        }
-        if (other.hasRevision()) {
-          setRevision(other.getRevision());
-        }
-        if (newItemsBuilder_ == null) {
-          if (!other.newItems_.isEmpty()) {
-            if (newItems_.isEmpty()) {
-              newItems_ = other.newItems_;
-              bitField0_ = (bitField0_ & ~0x00000004);
-            } else {
-              ensureNewItemsIsMutable();
-              newItems_.addAll(other.newItems_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.newItems_.isEmpty()) {
-            if (newItemsBuilder_.isEmpty()) {
-              newItemsBuilder_.dispose();
-              newItemsBuilder_ = null;
-              newItems_ = other.newItems_;
-              bitField0_ = (bitField0_ & ~0x00000004);
-              newItemsBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getNewItemsFieldBuilder() : null;
-            } else {
-              newItemsBuilder_.addAllMessages(other.newItems_);
-            }
-          }
-        }
-        if (!other.keysToRemove_.isEmpty()) {
-          if (keysToRemove_.isEmpty()) {
-            keysToRemove_ = other.keysToRemove_;
-            bitField0_ = (bitField0_ & ~0x00000008);
-          } else {
-            ensureKeysToRemoveIsMutable();
-            keysToRemove_.addAll(other.keysToRemove_);
-          }
-          onChanged();
-        }
-        if (other.hasIsDelta()) {
-          setIsDelta(other.getIsDelta());
-        }
-        if (other.hasWriterName()) {
-          setWriterName(other.getWriterName());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasUid()) {
-          
-          return false;
-        }
-        if (!hasRevision()) {
-          
-          return false;
-        }
-        if (!hasIsDelta()) {
-          
-          return false;
-        }
-        if (!hasWriterName()) {
-          
-          return false;
-        }
-        for (int i = 0; i < getNewItemsCount(); i++) {
-          if (!getNewItems(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              uid_ = input.readBytes();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              revision_ = input.readUInt32();
-              break;
-            }
-            case 26: {
-              ipaaca.Ipaaca.PayloadItem.Builder subBuilder = ipaaca.Ipaaca.PayloadItem.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addNewItems(subBuilder.buildPartial());
-              break;
-            }
-            case 34: {
-              ensureKeysToRemoveIsMutable();
-              keysToRemove_.add(input.readBytes());
-              break;
-            }
-            case 40: {
-              bitField0_ |= 0x00000010;
-              isDelta_ = input.readBool();
-              break;
-            }
-            case 50: {
-              bitField0_ |= 0x00000020;
-              writerName_ = input.readBytes();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string uid = 1;
-      private java.lang.Object uid_ = "";
-      public boolean hasUid() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getUid() {
-        java.lang.Object ref = uid_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          uid_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setUid(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearUid() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        uid_ = getDefaultInstance().getUid();
-        onChanged();
-        return this;
-      }
-      void setUid(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-      }
-      
-      // required uint32 revision = 2;
-      private int revision_ ;
-      public boolean hasRevision() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public int getRevision() {
-        return revision_;
-      }
-      public Builder setRevision(int value) {
-        bitField0_ |= 0x00000002;
-        revision_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearRevision() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        revision_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // repeated .ipaaca.PayloadItem new_items = 3;
-      private java.util.List<ipaaca.Ipaaca.PayloadItem> newItems_ =
-        java.util.Collections.emptyList();
-      private void ensureNewItemsIsMutable() {
-        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
-          newItems_ = new java.util.ArrayList<ipaaca.Ipaaca.PayloadItem>(newItems_);
-          bitField0_ |= 0x00000004;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.PayloadItem, ipaaca.Ipaaca.PayloadItem.Builder, ipaaca.Ipaaca.PayloadItemOrBuilder> newItemsBuilder_;
-      
-      public java.util.List<ipaaca.Ipaaca.PayloadItem> getNewItemsList() {
-        if (newItemsBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(newItems_);
-        } else {
-          return newItemsBuilder_.getMessageList();
-        }
-      }
-      public int getNewItemsCount() {
-        if (newItemsBuilder_ == null) {
-          return newItems_.size();
-        } else {
-          return newItemsBuilder_.getCount();
-        }
-      }
-      public ipaaca.Ipaaca.PayloadItem getNewItems(int index) {
-        if (newItemsBuilder_ == null) {
-          return newItems_.get(index);
-        } else {
-          return newItemsBuilder_.getMessage(index);
-        }
-      }
-      public Builder setNewItems(
-          int index, ipaaca.Ipaaca.PayloadItem value) {
-        if (newItemsBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewItemsIsMutable();
-          newItems_.set(index, value);
-          onChanged();
-        } else {
-          newItemsBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setNewItems(
-          int index, ipaaca.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (newItemsBuilder_ == null) {
-          ensureNewItemsIsMutable();
-          newItems_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          newItemsBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addNewItems(ipaaca.Ipaaca.PayloadItem value) {
-        if (newItemsBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewItemsIsMutable();
-          newItems_.add(value);
-          onChanged();
-        } else {
-          newItemsBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addNewItems(
-          int index, ipaaca.Ipaaca.PayloadItem value) {
-        if (newItemsBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewItemsIsMutable();
-          newItems_.add(index, value);
-          onChanged();
-        } else {
-          newItemsBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addNewItems(
-          ipaaca.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (newItemsBuilder_ == null) {
-          ensureNewItemsIsMutable();
-          newItems_.add(builderForValue.build());
-          onChanged();
-        } else {
-          newItemsBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addNewItems(
-          int index, ipaaca.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (newItemsBuilder_ == null) {
-          ensureNewItemsIsMutable();
-          newItems_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          newItemsBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllNewItems(
-          java.lang.Iterable<? extends ipaaca.Ipaaca.PayloadItem> values) {
-        if (newItemsBuilder_ == null) {
-          ensureNewItemsIsMutable();
-          super.addAll(values, newItems_);
-          onChanged();
-        } else {
-          newItemsBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearNewItems() {
-        if (newItemsBuilder_ == null) {
-          newItems_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
-          onChanged();
-        } else {
-          newItemsBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removeNewItems(int index) {
-        if (newItemsBuilder_ == null) {
-          ensureNewItemsIsMutable();
-          newItems_.remove(index);
-          onChanged();
-        } else {
-          newItemsBuilder_.remove(index);
-        }
-        return this;
-      }
-      public ipaaca.Ipaaca.PayloadItem.Builder getNewItemsBuilder(
-          int index) {
-        return getNewItemsFieldBuilder().getBuilder(index);
-      }
-      public ipaaca.Ipaaca.PayloadItemOrBuilder getNewItemsOrBuilder(
-          int index) {
-        if (newItemsBuilder_ == null) {
-          return newItems_.get(index);  } else {
-          return newItemsBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends ipaaca.Ipaaca.PayloadItemOrBuilder> 
-           getNewItemsOrBuilderList() {
-        if (newItemsBuilder_ != null) {
-          return newItemsBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(newItems_);
-        }
-      }
-      public ipaaca.Ipaaca.PayloadItem.Builder addNewItemsBuilder() {
-        return getNewItemsFieldBuilder().addBuilder(
-            ipaaca.Ipaaca.PayloadItem.getDefaultInstance());
-      }
-      public ipaaca.Ipaaca.PayloadItem.Builder addNewItemsBuilder(
-          int index) {
-        return getNewItemsFieldBuilder().addBuilder(
-            index, ipaaca.Ipaaca.PayloadItem.getDefaultInstance());
-      }
-      public java.util.List<ipaaca.Ipaaca.PayloadItem.Builder> 
-           getNewItemsBuilderList() {
-        return getNewItemsFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.PayloadItem, ipaaca.Ipaaca.PayloadItem.Builder, ipaaca.Ipaaca.PayloadItemOrBuilder> 
-          getNewItemsFieldBuilder() {
-        if (newItemsBuilder_ == null) {
-          newItemsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              ipaaca.Ipaaca.PayloadItem, ipaaca.Ipaaca.PayloadItem.Builder, ipaaca.Ipaaca.PayloadItemOrBuilder>(
-                  newItems_,
-                  ((bitField0_ & 0x00000004) == 0x00000004),
-                  getParentForChildren(),
-                  isClean());
-          newItems_ = null;
-        }
-        return newItemsBuilder_;
-      }
-      
-      // repeated string keys_to_remove = 4;
-      private com.google.protobuf.LazyStringList keysToRemove_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      private void ensureKeysToRemoveIsMutable() {
-        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
-          keysToRemove_ = new com.google.protobuf.LazyStringArrayList(keysToRemove_);
-          bitField0_ |= 0x00000008;
-         }
-      }
-      public java.util.List<String>
-          getKeysToRemoveList() {
-        return java.util.Collections.unmodifiableList(keysToRemove_);
-      }
-      public int getKeysToRemoveCount() {
-        return keysToRemove_.size();
-      }
-      public String getKeysToRemove(int index) {
-        return keysToRemove_.get(index);
-      }
-      public Builder setKeysToRemove(
-          int index, String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureKeysToRemoveIsMutable();
-        keysToRemove_.set(index, value);
-        onChanged();
-        return this;
-      }
-      public Builder addKeysToRemove(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureKeysToRemoveIsMutable();
-        keysToRemove_.add(value);
-        onChanged();
-        return this;
-      }
-      public Builder addAllKeysToRemove(
-          java.lang.Iterable<String> values) {
-        ensureKeysToRemoveIsMutable();
-        super.addAll(values, keysToRemove_);
-        onChanged();
-        return this;
-      }
-      public Builder clearKeysToRemove() {
-        keysToRemove_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000008);
-        onChanged();
-        return this;
-      }
-      void addKeysToRemove(com.google.protobuf.ByteString value) {
-        ensureKeysToRemoveIsMutable();
-        keysToRemove_.add(value);
-        onChanged();
-      }
-      
-      // required bool is_delta = 5 [default = false];
-      private boolean isDelta_ ;
-      public boolean hasIsDelta() {
-        return ((bitField0_ & 0x00000010) == 0x00000010);
-      }
-      public boolean getIsDelta() {
-        return isDelta_;
-      }
-      public Builder setIsDelta(boolean value) {
-        bitField0_ |= 0x00000010;
-        isDelta_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearIsDelta() {
-        bitField0_ = (bitField0_ & ~0x00000010);
-        isDelta_ = false;
-        onChanged();
-        return this;
-      }
-      
-      // required string writer_name = 6;
-      private java.lang.Object writerName_ = "";
-      public boolean hasWriterName() {
-        return ((bitField0_ & 0x00000020) == 0x00000020);
-      }
-      public String getWriterName() {
-        java.lang.Object ref = writerName_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          writerName_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setWriterName(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000020;
-        writerName_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearWriterName() {
-        bitField0_ = (bitField0_ & ~0x00000020);
-        writerName_ = getDefaultInstance().getWriterName();
-        onChanged();
-        return this;
-      }
-      void setWriterName(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000020;
-        writerName_ = value;
-        onChanged();
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.IUPayloadUpdate)
-    }
-    
-    static {
-      defaultInstance = new IUPayloadUpdate(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.IUPayloadUpdate)
-  }
-  
-  public interface IURetractionOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string uid = 1;
-    boolean hasUid();
-    String getUid();
-    
-    // required uint32 revision = 2;
-    boolean hasRevision();
-    int getRevision();
-  }
-  public static final class IURetraction extends
-      com.google.protobuf.GeneratedMessage
-      implements IURetractionOrBuilder {
-    // Use IURetraction.newBuilder() to construct.
-    private IURetraction(Builder builder) {
-      super(builder);
-    }
-    private IURetraction(boolean noInit) {}
-    
-    private static final IURetraction defaultInstance;
-    public static IURetraction getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IURetraction getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IURetraction_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IURetraction_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string uid = 1;
-    public static final int UID_FIELD_NUMBER = 1;
-    private java.lang.Object uid_;
-    public boolean hasUid() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getUid() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          uid_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getUidBytes() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        uid_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required uint32 revision = 2;
-    public static final int REVISION_FIELD_NUMBER = 2;
-    private int revision_;
-    public boolean hasRevision() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public int getRevision() {
-      return revision_;
-    }
-    
-    private void initFields() {
-      uid_ = "";
-      revision_ = 0;
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasUid()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasRevision()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeUInt32(2, revision_);
-      }
-      getUnknownFields().writeTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(2, revision_);
-      }
-      size += getUnknownFields().getSerializedSize();
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static ipaaca.Ipaaca.IURetraction parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IURetraction parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IURetraction parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IURetraction parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IURetraction parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IURetraction parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IURetraction parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IURetraction parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IURetraction parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IURetraction parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.Ipaaca.IURetraction prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.Ipaaca.IURetractionOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IURetraction_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IURetraction_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.Ipaaca.IURetraction.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        uid_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        revision_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.Ipaaca.IURetraction.getDescriptor();
-      }
-      
-      public ipaaca.Ipaaca.IURetraction getDefaultInstanceForType() {
-        return ipaaca.Ipaaca.IURetraction.getDefaultInstance();
-      }
-      
-      public ipaaca.Ipaaca.IURetraction build() {
-        ipaaca.Ipaaca.IURetraction result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.Ipaaca.IURetraction buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.Ipaaca.IURetraction result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.Ipaaca.IURetraction buildPartial() {
-        ipaaca.Ipaaca.IURetraction result = new ipaaca.Ipaaca.IURetraction(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.uid_ = uid_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.revision_ = revision_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.Ipaaca.IURetraction) {
-          return mergeFrom((ipaaca.Ipaaca.IURetraction)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.Ipaaca.IURetraction other) {
-        if (other == ipaaca.Ipaaca.IURetraction.getDefaultInstance()) return this;
-        if (other.hasUid()) {
-          setUid(other.getUid());
-        }
-        if (other.hasRevision()) {
-          setRevision(other.getRevision());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasUid()) {
-          
-          return false;
-        }
-        if (!hasRevision()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              uid_ = input.readBytes();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              revision_ = input.readUInt32();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string uid = 1;
-      private java.lang.Object uid_ = "";
-      public boolean hasUid() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getUid() {
-        java.lang.Object ref = uid_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          uid_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setUid(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearUid() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        uid_ = getDefaultInstance().getUid();
-        onChanged();
-        return this;
-      }
-      void setUid(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-      }
-      
-      // required uint32 revision = 2;
-      private int revision_ ;
-      public boolean hasRevision() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public int getRevision() {
-        return revision_;
-      }
-      public Builder setRevision(int value) {
-        bitField0_ |= 0x00000002;
-        revision_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearRevision() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        revision_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.IURetraction)
-    }
-    
-    static {
-      defaultInstance = new IURetraction(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.IURetraction)
-  }
-  
-  public interface IUCommissionOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string uid = 1;
-    boolean hasUid();
-    String getUid();
-    
-    // required uint32 revision = 2;
-    boolean hasRevision();
-    int getRevision();
-    
-    // required string writer_name = 3;
-    boolean hasWriterName();
-    String getWriterName();
-  }
-  public static final class IUCommission extends
-      com.google.protobuf.GeneratedMessage
-      implements IUCommissionOrBuilder {
-    // Use IUCommission.newBuilder() to construct.
-    private IUCommission(Builder builder) {
-      super(builder);
-    }
-    private IUCommission(boolean noInit) {}
-    
-    private static final IUCommission defaultInstance;
-    public static IUCommission getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IUCommission getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IUCommission_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IUCommission_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string uid = 1;
-    public static final int UID_FIELD_NUMBER = 1;
-    private java.lang.Object uid_;
-    public boolean hasUid() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getUid() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          uid_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getUidBytes() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        uid_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required uint32 revision = 2;
-    public static final int REVISION_FIELD_NUMBER = 2;
-    private int revision_;
-    public boolean hasRevision() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public int getRevision() {
-      return revision_;
-    }
-    
-    // required string writer_name = 3;
-    public static final int WRITER_NAME_FIELD_NUMBER = 3;
-    private java.lang.Object writerName_;
-    public boolean hasWriterName() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public String getWriterName() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          writerName_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getWriterNameBytes() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        writerName_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    private void initFields() {
-      uid_ = "";
-      revision_ = 0;
-      writerName_ = "";
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasUid()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasRevision()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasWriterName()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeUInt32(2, revision_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeBytes(3, getWriterNameBytes());
-      }
-      getUnknownFields().writeTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(2, revision_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(3, getWriterNameBytes());
-      }
-      size += getUnknownFields().getSerializedSize();
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static ipaaca.Ipaaca.IUCommission parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUCommission parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUCommission parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUCommission parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUCommission parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUCommission parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUCommission parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IUCommission parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IUCommission parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUCommission parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.Ipaaca.IUCommission prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.Ipaaca.IUCommissionOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IUCommission_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IUCommission_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.Ipaaca.IUCommission.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        uid_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        revision_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        writerName_ = "";
-        bitField0_ = (bitField0_ & ~0x00000004);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.Ipaaca.IUCommission.getDescriptor();
-      }
-      
-      public ipaaca.Ipaaca.IUCommission getDefaultInstanceForType() {
-        return ipaaca.Ipaaca.IUCommission.getDefaultInstance();
-      }
-      
-      public ipaaca.Ipaaca.IUCommission build() {
-        ipaaca.Ipaaca.IUCommission result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.Ipaaca.IUCommission buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.Ipaaca.IUCommission result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.Ipaaca.IUCommission buildPartial() {
-        ipaaca.Ipaaca.IUCommission result = new ipaaca.Ipaaca.IUCommission(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.uid_ = uid_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.revision_ = revision_;
-        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.writerName_ = writerName_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.Ipaaca.IUCommission) {
-          return mergeFrom((ipaaca.Ipaaca.IUCommission)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.Ipaaca.IUCommission other) {
-        if (other == ipaaca.Ipaaca.IUCommission.getDefaultInstance()) return this;
-        if (other.hasUid()) {
-          setUid(other.getUid());
-        }
-        if (other.hasRevision()) {
-          setRevision(other.getRevision());
-        }
-        if (other.hasWriterName()) {
-          setWriterName(other.getWriterName());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasUid()) {
-          
-          return false;
-        }
-        if (!hasRevision()) {
-          
-          return false;
-        }
-        if (!hasWriterName()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              uid_ = input.readBytes();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              revision_ = input.readUInt32();
-              break;
-            }
-            case 26: {
-              bitField0_ |= 0x00000004;
-              writerName_ = input.readBytes();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string uid = 1;
-      private java.lang.Object uid_ = "";
-      public boolean hasUid() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getUid() {
-        java.lang.Object ref = uid_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          uid_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setUid(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearUid() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        uid_ = getDefaultInstance().getUid();
-        onChanged();
-        return this;
-      }
-      void setUid(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-      }
-      
-      // required uint32 revision = 2;
-      private int revision_ ;
-      public boolean hasRevision() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public int getRevision() {
-        return revision_;
-      }
-      public Builder setRevision(int value) {
-        bitField0_ |= 0x00000002;
-        revision_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearRevision() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        revision_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // required string writer_name = 3;
-      private java.lang.Object writerName_ = "";
-      public boolean hasWriterName() {
-        return ((bitField0_ & 0x00000004) == 0x00000004);
-      }
-      public String getWriterName() {
-        java.lang.Object ref = writerName_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          writerName_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setWriterName(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000004;
-        writerName_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearWriterName() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        writerName_ = getDefaultInstance().getWriterName();
-        onChanged();
-        return this;
-      }
-      void setWriterName(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000004;
-        writerName_ = value;
-        onChanged();
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.IUCommission)
-    }
-    
-    static {
-      defaultInstance = new IUCommission(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.IUCommission)
-  }
-  
-  public interface IULinkUpdateOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string uid = 1;
-    boolean hasUid();
-    String getUid();
-    
-    // required uint32 revision = 2;
-    boolean hasRevision();
-    int getRevision();
-    
-    // repeated .ipaaca.LinkSet new_links = 3;
-    java.util.List<ipaaca.Ipaaca.LinkSet> 
-        getNewLinksList();
-    ipaaca.Ipaaca.LinkSet getNewLinks(int index);
-    int getNewLinksCount();
-    java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-        getNewLinksOrBuilderList();
-    ipaaca.Ipaaca.LinkSetOrBuilder getNewLinksOrBuilder(
-        int index);
-    
-    // repeated .ipaaca.LinkSet links_to_remove = 4;
-    java.util.List<ipaaca.Ipaaca.LinkSet> 
-        getLinksToRemoveList();
-    ipaaca.Ipaaca.LinkSet getLinksToRemove(int index);
-    int getLinksToRemoveCount();
-    java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-        getLinksToRemoveOrBuilderList();
-    ipaaca.Ipaaca.LinkSetOrBuilder getLinksToRemoveOrBuilder(
-        int index);
-    
-    // required bool is_delta = 5 [default = false];
-    boolean hasIsDelta();
-    boolean getIsDelta();
-    
-    // required string writer_name = 6;
-    boolean hasWriterName();
-    String getWriterName();
-  }
-  public static final class IULinkUpdate extends
-      com.google.protobuf.GeneratedMessage
-      implements IULinkUpdateOrBuilder {
-    // Use IULinkUpdate.newBuilder() to construct.
-    private IULinkUpdate(Builder builder) {
-      super(builder);
-    }
-    private IULinkUpdate(boolean noInit) {}
-    
-    private static final IULinkUpdate defaultInstance;
-    public static IULinkUpdate getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IULinkUpdate getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IULinkUpdate_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IULinkUpdate_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string uid = 1;
-    public static final int UID_FIELD_NUMBER = 1;
-    private java.lang.Object uid_;
-    public boolean hasUid() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getUid() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          uid_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getUidBytes() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        uid_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required uint32 revision = 2;
-    public static final int REVISION_FIELD_NUMBER = 2;
-    private int revision_;
-    public boolean hasRevision() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public int getRevision() {
-      return revision_;
-    }
-    
-    // repeated .ipaaca.LinkSet new_links = 3;
-    public static final int NEW_LINKS_FIELD_NUMBER = 3;
-    private java.util.List<ipaaca.Ipaaca.LinkSet> newLinks_;
-    public java.util.List<ipaaca.Ipaaca.LinkSet> getNewLinksList() {
-      return newLinks_;
-    }
-    public java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-        getNewLinksOrBuilderList() {
-      return newLinks_;
-    }
-    public int getNewLinksCount() {
-      return newLinks_.size();
-    }
-    public ipaaca.Ipaaca.LinkSet getNewLinks(int index) {
-      return newLinks_.get(index);
-    }
-    public ipaaca.Ipaaca.LinkSetOrBuilder getNewLinksOrBuilder(
-        int index) {
-      return newLinks_.get(index);
-    }
-    
-    // repeated .ipaaca.LinkSet links_to_remove = 4;
-    public static final int LINKS_TO_REMOVE_FIELD_NUMBER = 4;
-    private java.util.List<ipaaca.Ipaaca.LinkSet> linksToRemove_;
-    public java.util.List<ipaaca.Ipaaca.LinkSet> getLinksToRemoveList() {
-      return linksToRemove_;
-    }
-    public java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-        getLinksToRemoveOrBuilderList() {
-      return linksToRemove_;
-    }
-    public int getLinksToRemoveCount() {
-      return linksToRemove_.size();
-    }
-    public ipaaca.Ipaaca.LinkSet getLinksToRemove(int index) {
-      return linksToRemove_.get(index);
-    }
-    public ipaaca.Ipaaca.LinkSetOrBuilder getLinksToRemoveOrBuilder(
-        int index) {
-      return linksToRemove_.get(index);
-    }
-    
-    // required bool is_delta = 5 [default = false];
-    public static final int IS_DELTA_FIELD_NUMBER = 5;
-    private boolean isDelta_;
-    public boolean hasIsDelta() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public boolean getIsDelta() {
-      return isDelta_;
-    }
-    
-    // required string writer_name = 6;
-    public static final int WRITER_NAME_FIELD_NUMBER = 6;
-    private java.lang.Object writerName_;
-    public boolean hasWriterName() {
-      return ((bitField0_ & 0x00000008) == 0x00000008);
-    }
-    public String getWriterName() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          writerName_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getWriterNameBytes() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        writerName_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    private void initFields() {
-      uid_ = "";
-      revision_ = 0;
-      newLinks_ = java.util.Collections.emptyList();
-      linksToRemove_ = java.util.Collections.emptyList();
-      isDelta_ = false;
-      writerName_ = "";
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasUid()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasRevision()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasIsDelta()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasWriterName()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      for (int i = 0; i < getNewLinksCount(); i++) {
-        if (!getNewLinks(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      for (int i = 0; i < getLinksToRemoveCount(); i++) {
-        if (!getLinksToRemove(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeUInt32(2, revision_);
-      }
-      for (int i = 0; i < newLinks_.size(); i++) {
-        output.writeMessage(3, newLinks_.get(i));
-      }
-      for (int i = 0; i < linksToRemove_.size(); i++) {
-        output.writeMessage(4, linksToRemove_.get(i));
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeBool(5, isDelta_);
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        output.writeBytes(6, getWriterNameBytes());
-      }
-      getUnknownFields().writeTo(output);
-    }
-    
-    private int memoizedSerializedSize = -1;
-    public int getSerializedSize() {
-      int size = memoizedSerializedSize;
-      if (size != -1) return size;
-    
-      size = 0;
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(2, revision_);
-      }
-      for (int i = 0; i < newLinks_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(3, newLinks_.get(i));
-      }
-      for (int i = 0; i < linksToRemove_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(4, linksToRemove_.get(i));
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(5, isDelta_);
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(6, getWriterNameBytes());
-      }
-      size += getUnknownFields().getSerializedSize();
-      memoizedSerializedSize = size;
-      return size;
-    }
-    
-    private static final long serialVersionUID = 0L;
-    @java.lang.Override
-    protected java.lang.Object writeReplace()
-        throws java.io.ObjectStreamException {
-      return super.writeReplace();
-    }
-    
-    public static ipaaca.Ipaaca.IULinkUpdate parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.Ipaaca.IULinkUpdate prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.Ipaaca.IULinkUpdateOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IULinkUpdate_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IULinkUpdate_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.Ipaaca.IULinkUpdate.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-          getNewLinksFieldBuilder();
-          getLinksToRemoveFieldBuilder();
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        uid_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        revision_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        if (newLinksBuilder_ == null) {
-          newLinks_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
-        } else {
-          newLinksBuilder_.clear();
-        }
-        if (linksToRemoveBuilder_ == null) {
-          linksToRemove_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000008);
-        } else {
-          linksToRemoveBuilder_.clear();
-        }
-        isDelta_ = false;
-        bitField0_ = (bitField0_ & ~0x00000010);
-        writerName_ = "";
-        bitField0_ = (bitField0_ & ~0x00000020);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.Ipaaca.IULinkUpdate.getDescriptor();
-      }
-      
-      public ipaaca.Ipaaca.IULinkUpdate getDefaultInstanceForType() {
-        return ipaaca.Ipaaca.IULinkUpdate.getDefaultInstance();
-      }
-      
-      public ipaaca.Ipaaca.IULinkUpdate build() {
-        ipaaca.Ipaaca.IULinkUpdate result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.Ipaaca.IULinkUpdate buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.Ipaaca.IULinkUpdate result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.Ipaaca.IULinkUpdate buildPartial() {
-        ipaaca.Ipaaca.IULinkUpdate result = new ipaaca.Ipaaca.IULinkUpdate(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.uid_ = uid_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.revision_ = revision_;
-        if (newLinksBuilder_ == null) {
-          if (((bitField0_ & 0x00000004) == 0x00000004)) {
-            newLinks_ = java.util.Collections.unmodifiableList(newLinks_);
-            bitField0_ = (bitField0_ & ~0x00000004);
-          }
-          result.newLinks_ = newLinks_;
-        } else {
-          result.newLinks_ = newLinksBuilder_.build();
-        }
-        if (linksToRemoveBuilder_ == null) {
-          if (((bitField0_ & 0x00000008) == 0x00000008)) {
-            linksToRemove_ = java.util.Collections.unmodifiableList(linksToRemove_);
-            bitField0_ = (bitField0_ & ~0x00000008);
-          }
-          result.linksToRemove_ = linksToRemove_;
-        } else {
-          result.linksToRemove_ = linksToRemoveBuilder_.build();
-        }
-        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.isDelta_ = isDelta_;
-        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
-          to_bitField0_ |= 0x00000008;
-        }
-        result.writerName_ = writerName_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.Ipaaca.IULinkUpdate) {
-          return mergeFrom((ipaaca.Ipaaca.IULinkUpdate)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.Ipaaca.IULinkUpdate other) {
-        if (other == ipaaca.Ipaaca.IULinkUpdate.getDefaultInstance()) return this;
-        if (other.hasUid()) {
-          setUid(other.getUid());
-        }
-        if (other.hasRevision()) {
-          setRevision(other.getRevision());
-        }
-        if (newLinksBuilder_ == null) {
-          if (!other.newLinks_.isEmpty()) {
-            if (newLinks_.isEmpty()) {
-              newLinks_ = other.newLinks_;
-              bitField0_ = (bitField0_ & ~0x00000004);
-            } else {
-              ensureNewLinksIsMutable();
-              newLinks_.addAll(other.newLinks_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.newLinks_.isEmpty()) {
-            if (newLinksBuilder_.isEmpty()) {
-              newLinksBuilder_.dispose();
-              newLinksBuilder_ = null;
-              newLinks_ = other.newLinks_;
-              bitField0_ = (bitField0_ & ~0x00000004);
-              newLinksBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getNewLinksFieldBuilder() : null;
-            } else {
-              newLinksBuilder_.addAllMessages(other.newLinks_);
-            }
-          }
-        }
-        if (linksToRemoveBuilder_ == null) {
-          if (!other.linksToRemove_.isEmpty()) {
-            if (linksToRemove_.isEmpty()) {
-              linksToRemove_ = other.linksToRemove_;
-              bitField0_ = (bitField0_ & ~0x00000008);
-            } else {
-              ensureLinksToRemoveIsMutable();
-              linksToRemove_.addAll(other.linksToRemove_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.linksToRemove_.isEmpty()) {
-            if (linksToRemoveBuilder_.isEmpty()) {
-              linksToRemoveBuilder_.dispose();
-              linksToRemoveBuilder_ = null;
-              linksToRemove_ = other.linksToRemove_;
-              bitField0_ = (bitField0_ & ~0x00000008);
-              linksToRemoveBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getLinksToRemoveFieldBuilder() : null;
-            } else {
-              linksToRemoveBuilder_.addAllMessages(other.linksToRemove_);
-            }
-          }
-        }
-        if (other.hasIsDelta()) {
-          setIsDelta(other.getIsDelta());
-        }
-        if (other.hasWriterName()) {
-          setWriterName(other.getWriterName());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasUid()) {
-          
-          return false;
-        }
-        if (!hasRevision()) {
-          
-          return false;
-        }
-        if (!hasIsDelta()) {
-          
-          return false;
-        }
-        if (!hasWriterName()) {
-          
-          return false;
-        }
-        for (int i = 0; i < getNewLinksCount(); i++) {
-          if (!getNewLinks(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        for (int i = 0; i < getLinksToRemoveCount(); i++) {
-          if (!getLinksToRemove(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              uid_ = input.readBytes();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              revision_ = input.readUInt32();
-              break;
-            }
-            case 26: {
-              ipaaca.Ipaaca.LinkSet.Builder subBuilder = ipaaca.Ipaaca.LinkSet.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addNewLinks(subBuilder.buildPartial());
-              break;
-            }
-            case 34: {
-              ipaaca.Ipaaca.LinkSet.Builder subBuilder = ipaaca.Ipaaca.LinkSet.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addLinksToRemove(subBuilder.buildPartial());
-              break;
-            }
-            case 40: {
-              bitField0_ |= 0x00000010;
-              isDelta_ = input.readBool();
-              break;
-            }
-            case 50: {
-              bitField0_ |= 0x00000020;
-              writerName_ = input.readBytes();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string uid = 1;
-      private java.lang.Object uid_ = "";
-      public boolean hasUid() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getUid() {
-        java.lang.Object ref = uid_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          uid_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setUid(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearUid() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        uid_ = getDefaultInstance().getUid();
-        onChanged();
-        return this;
-      }
-      void setUid(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-      }
-      
-      // required uint32 revision = 2;
-      private int revision_ ;
-      public boolean hasRevision() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public int getRevision() {
-        return revision_;
-      }
-      public Builder setRevision(int value) {
-        bitField0_ |= 0x00000002;
-        revision_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearRevision() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        revision_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // repeated .ipaaca.LinkSet new_links = 3;
-      private java.util.List<ipaaca.Ipaaca.LinkSet> newLinks_ =
-        java.util.Collections.emptyList();
-      private void ensureNewLinksIsMutable() {
-        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
-          newLinks_ = new java.util.ArrayList<ipaaca.Ipaaca.LinkSet>(newLinks_);
-          bitField0_ |= 0x00000004;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder> newLinksBuilder_;
-      
-      public java.util.List<ipaaca.Ipaaca.LinkSet> getNewLinksList() {
-        if (newLinksBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(newLinks_);
-        } else {
-          return newLinksBuilder_.getMessageList();
-        }
-      }
-      public int getNewLinksCount() {
-        if (newLinksBuilder_ == null) {
-          return newLinks_.size();
-        } else {
-          return newLinksBuilder_.getCount();
-        }
-      }
-      public ipaaca.Ipaaca.LinkSet getNewLinks(int index) {
-        if (newLinksBuilder_ == null) {
-          return newLinks_.get(index);
-        } else {
-          return newLinksBuilder_.getMessage(index);
-        }
-      }
-      public Builder setNewLinks(
-          int index, ipaaca.Ipaaca.LinkSet value) {
-        if (newLinksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewLinksIsMutable();
-          newLinks_.set(index, value);
-          onChanged();
-        } else {
-          newLinksBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setNewLinks(
-          int index, ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (newLinksBuilder_ == null) {
-          ensureNewLinksIsMutable();
-          newLinks_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          newLinksBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addNewLinks(ipaaca.Ipaaca.LinkSet value) {
-        if (newLinksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewLinksIsMutable();
-          newLinks_.add(value);
-          onChanged();
-        } else {
-          newLinksBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addNewLinks(
-          int index, ipaaca.Ipaaca.LinkSet value) {
-        if (newLinksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewLinksIsMutable();
-          newLinks_.add(index, value);
-          onChanged();
-        } else {
-          newLinksBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addNewLinks(
-          ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (newLinksBuilder_ == null) {
-          ensureNewLinksIsMutable();
-          newLinks_.add(builderForValue.build());
-          onChanged();
-        } else {
-          newLinksBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addNewLinks(
-          int index, ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (newLinksBuilder_ == null) {
-          ensureNewLinksIsMutable();
-          newLinks_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          newLinksBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllNewLinks(
-          java.lang.Iterable<? extends ipaaca.Ipaaca.LinkSet> values) {
-        if (newLinksBuilder_ == null) {
-          ensureNewLinksIsMutable();
-          super.addAll(values, newLinks_);
-          onChanged();
-        } else {
-          newLinksBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearNewLinks() {
-        if (newLinksBuilder_ == null) {
-          newLinks_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
-          onChanged();
-        } else {
-          newLinksBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removeNewLinks(int index) {
-        if (newLinksBuilder_ == null) {
-          ensureNewLinksIsMutable();
-          newLinks_.remove(index);
-          onChanged();
-        } else {
-          newLinksBuilder_.remove(index);
-        }
-        return this;
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder getNewLinksBuilder(
-          int index) {
-        return getNewLinksFieldBuilder().getBuilder(index);
-      }
-      public ipaaca.Ipaaca.LinkSetOrBuilder getNewLinksOrBuilder(
-          int index) {
-        if (newLinksBuilder_ == null) {
-          return newLinks_.get(index);  } else {
-          return newLinksBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-           getNewLinksOrBuilderList() {
-        if (newLinksBuilder_ != null) {
-          return newLinksBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(newLinks_);
-        }
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder addNewLinksBuilder() {
-        return getNewLinksFieldBuilder().addBuilder(
-            ipaaca.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder addNewLinksBuilder(
-          int index) {
-        return getNewLinksFieldBuilder().addBuilder(
-            index, ipaaca.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public java.util.List<ipaaca.Ipaaca.LinkSet.Builder> 
-           getNewLinksBuilderList() {
-        return getNewLinksFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder> 
-          getNewLinksFieldBuilder() {
-        if (newLinksBuilder_ == null) {
-          newLinksBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder>(
-                  newLinks_,
-                  ((bitField0_ & 0x00000004) == 0x00000004),
-                  getParentForChildren(),
-                  isClean());
-          newLinks_ = null;
-        }
-        return newLinksBuilder_;
-      }
-      
-      // repeated .ipaaca.LinkSet links_to_remove = 4;
-      private java.util.List<ipaaca.Ipaaca.LinkSet> linksToRemove_ =
-        java.util.Collections.emptyList();
-      private void ensureLinksToRemoveIsMutable() {
-        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
-          linksToRemove_ = new java.util.ArrayList<ipaaca.Ipaaca.LinkSet>(linksToRemove_);
-          bitField0_ |= 0x00000008;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder> linksToRemoveBuilder_;
-      
-      public java.util.List<ipaaca.Ipaaca.LinkSet> getLinksToRemoveList() {
-        if (linksToRemoveBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(linksToRemove_);
-        } else {
-          return linksToRemoveBuilder_.getMessageList();
-        }
-      }
-      public int getLinksToRemoveCount() {
-        if (linksToRemoveBuilder_ == null) {
-          return linksToRemove_.size();
-        } else {
-          return linksToRemoveBuilder_.getCount();
-        }
-      }
-      public ipaaca.Ipaaca.LinkSet getLinksToRemove(int index) {
-        if (linksToRemoveBuilder_ == null) {
-          return linksToRemove_.get(index);
-        } else {
-          return linksToRemoveBuilder_.getMessage(index);
-        }
-      }
-      public Builder setLinksToRemove(
-          int index, ipaaca.Ipaaca.LinkSet value) {
-        if (linksToRemoveBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.set(index, value);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setLinksToRemove(
-          int index, ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksToRemoveBuilder_ == null) {
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addLinksToRemove(ipaaca.Ipaaca.LinkSet value) {
-        if (linksToRemoveBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.add(value);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addLinksToRemove(
-          int index, ipaaca.Ipaaca.LinkSet value) {
-        if (linksToRemoveBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.add(index, value);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addLinksToRemove(
-          ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksToRemoveBuilder_ == null) {
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.add(builderForValue.build());
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addLinksToRemove(
-          int index, ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksToRemoveBuilder_ == null) {
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllLinksToRemove(
-          java.lang.Iterable<? extends ipaaca.Ipaaca.LinkSet> values) {
-        if (linksToRemoveBuilder_ == null) {
-          ensureLinksToRemoveIsMutable();
-          super.addAll(values, linksToRemove_);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearLinksToRemove() {
-        if (linksToRemoveBuilder_ == null) {
-          linksToRemove_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000008);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removeLinksToRemove(int index) {
-        if (linksToRemoveBuilder_ == null) {
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.remove(index);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.remove(index);
-        }
-        return this;
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder getLinksToRemoveBuilder(
-          int index) {
-        return getLinksToRemoveFieldBuilder().getBuilder(index);
-      }
-      public ipaaca.Ipaaca.LinkSetOrBuilder getLinksToRemoveOrBuilder(
-          int index) {
-        if (linksToRemoveBuilder_ == null) {
-          return linksToRemove_.get(index);  } else {
-          return linksToRemoveBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-           getLinksToRemoveOrBuilderList() {
-        if (linksToRemoveBuilder_ != null) {
-          return linksToRemoveBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(linksToRemove_);
-        }
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder addLinksToRemoveBuilder() {
-        return getLinksToRemoveFieldBuilder().addBuilder(
-            ipaaca.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder addLinksToRemoveBuilder(
-          int index) {
-        return getLinksToRemoveFieldBuilder().addBuilder(
-            index, ipaaca.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public java.util.List<ipaaca.Ipaaca.LinkSet.Builder> 
-           getLinksToRemoveBuilderList() {
-        return getLinksToRemoveFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder> 
-          getLinksToRemoveFieldBuilder() {
-        if (linksToRemoveBuilder_ == null) {
-          linksToRemoveBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder>(
-                  linksToRemove_,
-                  ((bitField0_ & 0x00000008) == 0x00000008),
-                  getParentForChildren(),
-                  isClean());
-          linksToRemove_ = null;
-        }
-        return linksToRemoveBuilder_;
-      }
-      
-      // required bool is_delta = 5 [default = false];
-      private boolean isDelta_ ;
-      public boolean hasIsDelta() {
-        return ((bitField0_ & 0x00000010) == 0x00000010);
-      }
-      public boolean getIsDelta() {
-        return isDelta_;
-      }
-      public Builder setIsDelta(boolean value) {
-        bitField0_ |= 0x00000010;
-        isDelta_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearIsDelta() {
-        bitField0_ = (bitField0_ & ~0x00000010);
-        isDelta_ = false;
-        onChanged();
-        return this;
-      }
-      
-      // required string writer_name = 6;
-      private java.lang.Object writerName_ = "";
-      public boolean hasWriterName() {
-        return ((bitField0_ & 0x00000020) == 0x00000020);
-      }
-      public String getWriterName() {
-        java.lang.Object ref = writerName_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          writerName_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setWriterName(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000020;
-        writerName_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearWriterName() {
-        bitField0_ = (bitField0_ & ~0x00000020);
-        writerName_ = getDefaultInstance().getWriterName();
-        onChanged();
-        return this;
-      }
-      void setWriterName(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000020;
-        writerName_ = value;
-        onChanged();
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.IULinkUpdate)
-    }
-    
-    static {
-      defaultInstance = new IULinkUpdate(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.IULinkUpdate)
-  }
-  
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_IntMessage_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_IntMessage_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_LinkSet_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_LinkSet_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_PayloadItem_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_PayloadItem_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_IU_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_IU_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_IUPayloadUpdate_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_IUPayloadUpdate_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_IURetraction_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_IURetraction_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_IUCommission_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_IUCommission_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_IULinkUpdate_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_IULinkUpdate_fieldAccessorTable;
-  
-  public static com.google.protobuf.Descriptors.FileDescriptor
-      getDescriptor() {
-    return descriptor;
-  }
-  private static com.google.protobuf.Descriptors.FileDescriptor
-      descriptor;
-  static {
-    java.lang.String[] descriptorData = {
-      "\n\014ipaaca.proto\022\006ipaaca\"\033\n\nIntMessage\022\r\n\005" +
-      "value\030\001 \002(\021\"(\n\007LinkSet\022\014\n\004type\030\001 \002(\t\022\017\n\007" +
-      "targets\030\002 \003(\t\"<\n\013PayloadItem\022\013\n\003key\030\001 \002(" +
-      "\t\022\r\n\005value\030\002 \002(\t\022\021\n\004type\030\003 \002(\t:\003str\"\310\002\n\002" +
-      "IU\022\013\n\003uid\030\001 \002(\t\022\020\n\010revision\030\002 \002(\r\022\027\n\010cat" +
-      "egory\030\003 \002(\t:\005undef\022\031\n\014payload_type\030\004 \002(\t" +
-      ":\003MAP\022\022\n\nowner_name\030\005 \002(\t\022\030\n\tcommitted\030\006" +
-      " \002(\010:\005false\0220\n\013access_mode\030\007 \002(\0162\025.ipaac" +
-      "a.IU.AccessMode:\004PUSH\022\030\n\tread_only\030\010 \002(\010" +
-      ":\005false\022$\n\007payload\030\t \003(\0132\023.ipaaca.Payloa",
-      "dItem\022\036\n\005links\030\n \003(\0132\017.ipaaca.LinkSet\"/\n" +
-      "\nAccessMode\022\010\n\004PUSH\020\000\022\n\n\006REMOTE\020\001\022\013\n\007MES" +
-      "SAGE\020\002\"\236\001\n\017IUPayloadUpdate\022\013\n\003uid\030\001 \002(\t\022" +
-      "\020\n\010revision\030\002 \002(\r\022&\n\tnew_items\030\003 \003(\0132\023.i" +
-      "paaca.PayloadItem\022\026\n\016keys_to_remove\030\004 \003(" +
-      "\t\022\027\n\010is_delta\030\005 \002(\010:\005false\022\023\n\013writer_nam" +
-      "e\030\006 \002(\t\"-\n\014IURetraction\022\013\n\003uid\030\001 \002(\t\022\020\n\010" +
-      "revision\030\002 \002(\r\"B\n\014IUCommission\022\013\n\003uid\030\001 " +
-      "\002(\t\022\020\n\010revision\030\002 \002(\r\022\023\n\013writer_name\030\003 \002" +
-      "(\t\"\251\001\n\014IULinkUpdate\022\013\n\003uid\030\001 \002(\t\022\020\n\010revi",
-      "sion\030\002 \002(\r\022\"\n\tnew_links\030\003 \003(\0132\017.ipaaca.L" +
-      "inkSet\022(\n\017links_to_remove\030\004 \003(\0132\017.ipaaca" +
-      ".LinkSet\022\027\n\010is_delta\030\005 \002(\010:\005false\022\023\n\013wri" +
-      "ter_name\030\006 \002(\t"
-    };
-    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
-      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
-        public com.google.protobuf.ExtensionRegistry assignDescriptors(
-            com.google.protobuf.Descriptors.FileDescriptor root) {
-          descriptor = root;
-          internal_static_ipaaca_IntMessage_descriptor =
-            getDescriptor().getMessageTypes().get(0);
-          internal_static_ipaaca_IntMessage_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_IntMessage_descriptor,
-              new java.lang.String[] { "Value", },
-              ipaaca.Ipaaca.IntMessage.class,
-              ipaaca.Ipaaca.IntMessage.Builder.class);
-          internal_static_ipaaca_LinkSet_descriptor =
-            getDescriptor().getMessageTypes().get(1);
-          internal_static_ipaaca_LinkSet_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_LinkSet_descriptor,
-              new java.lang.String[] { "Type", "Targets", },
-              ipaaca.Ipaaca.LinkSet.class,
-              ipaaca.Ipaaca.LinkSet.Builder.class);
-          internal_static_ipaaca_PayloadItem_descriptor =
-            getDescriptor().getMessageTypes().get(2);
-          internal_static_ipaaca_PayloadItem_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_PayloadItem_descriptor,
-              new java.lang.String[] { "Key", "Value", "Type", },
-              ipaaca.Ipaaca.PayloadItem.class,
-              ipaaca.Ipaaca.PayloadItem.Builder.class);
-          internal_static_ipaaca_IU_descriptor =
-            getDescriptor().getMessageTypes().get(3);
-          internal_static_ipaaca_IU_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_IU_descriptor,
-              new java.lang.String[] { "Uid", "Revision", "Category", "PayloadType", "OwnerName", "Committed", "AccessMode", "ReadOnly", "Payload", "Links", },
-              ipaaca.Ipaaca.IU.class,
-              ipaaca.Ipaaca.IU.Builder.class);
-          internal_static_ipaaca_IUPayloadUpdate_descriptor =
-            getDescriptor().getMessageTypes().get(4);
-          internal_static_ipaaca_IUPayloadUpdate_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_IUPayloadUpdate_descriptor,
-              new java.lang.String[] { "Uid", "Revision", "NewItems", "KeysToRemove", "IsDelta", "WriterName", },
-              ipaaca.Ipaaca.IUPayloadUpdate.class,
-              ipaaca.Ipaaca.IUPayloadUpdate.Builder.class);
-          internal_static_ipaaca_IURetraction_descriptor =
-            getDescriptor().getMessageTypes().get(5);
-          internal_static_ipaaca_IURetraction_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_IURetraction_descriptor,
-              new java.lang.String[] { "Uid", "Revision", },
-              ipaaca.Ipaaca.IURetraction.class,
-              ipaaca.Ipaaca.IURetraction.Builder.class);
-          internal_static_ipaaca_IUCommission_descriptor =
-            getDescriptor().getMessageTypes().get(6);
-          internal_static_ipaaca_IUCommission_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_IUCommission_descriptor,
-              new java.lang.String[] { "Uid", "Revision", "WriterName", },
-              ipaaca.Ipaaca.IUCommission.class,
-              ipaaca.Ipaaca.IUCommission.Builder.class);
-          internal_static_ipaaca_IULinkUpdate_descriptor =
-            getDescriptor().getMessageTypes().get(7);
-          internal_static_ipaaca_IULinkUpdate_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_IULinkUpdate_descriptor,
-              new java.lang.String[] { "Uid", "Revision", "NewLinks", "LinksToRemove", "IsDelta", "WriterName", },
-              ipaaca.Ipaaca.IULinkUpdate.class,
-              ipaaca.Ipaaca.IULinkUpdate.Builder.class);
-          return null;
-        }
-      };
-    com.google.protobuf.Descriptors.FileDescriptor
-      .internalBuildGeneratedFileFrom(descriptorData,
-        new com.google.protobuf.Descriptors.FileDescriptor[] {
-        }, assigner);
-  }
-  
-  // @@protoc_insertion_point(outer_class_scope)
-}
diff --git a/java/src/ipaaca/LinkUpdateConverter.java b/java/src/ipaaca/LinkUpdateConverter.java
index fa506d01eb16ac0f7ba54bd3e6c691d844bb9d2e..db85edb589f192c7bcb0a90d8f9d0e8c71896567 100644
--- a/java/src/ipaaca/LinkUpdateConverter.java
+++ b/java/src/ipaaca/LinkUpdateConverter.java
@@ -1,6 +1,6 @@
 package ipaaca;
 
-import ipaaca.Ipaaca.IULinkUpdate;
+import ipaaca.protobuf.Ipaaca.IULinkUpdate;
 
 import java.nio.ByteBuffer;
 
diff --git a/java/src/ipaaca/LocalIU.java b/java/src/ipaaca/LocalIU.java
index a73d882dbb34f606dcc374472031b18db6f300a4..8fa38d212386e7e41c8c4c6fc61dded71810ec22 100644
--- a/java/src/ipaaca/LocalIU.java
+++ b/java/src/ipaaca/LocalIU.java
@@ -1,5 +1,10 @@
 package ipaaca;
 
+import ipaaca.protobuf.Ipaaca.IULinkUpdate;
+import ipaaca.protobuf.Ipaaca.IUPayloadUpdate;
+import ipaaca.protobuf.Ipaaca.LinkSet;
+import ipaaca.protobuf.Ipaaca.PayloadItem;
+
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
@@ -8,11 +13,6 @@ import java.util.Set;
 
 import com.google.common.collect.SetMultimap;
 
-import ipaaca.Ipaaca.IULinkUpdate;
-import ipaaca.Ipaaca.IUPayloadUpdate;
-import ipaaca.Ipaaca.LinkSet;
-import ipaaca.Ipaaca.PayloadItem;
-
 public class LocalIU extends AbstractIU
 {
 
@@ -248,5 +248,4 @@ public class LocalIU extends AbstractIU
             getOutputBuffer().sendIUPayloadUpdate(this, update);
         }
     }
-
 }
diff --git a/java/src/ipaaca/OutputBuffer.java b/java/src/ipaaca/OutputBuffer.java
index 488e1f37fd4fa6de499817222f971c390941378b..60521414ba5b5959ee4c7e73ca13c343450b0c7e 100644
--- a/java/src/ipaaca/OutputBuffer.java
+++ b/java/src/ipaaca/OutputBuffer.java
@@ -7,12 +7,12 @@ import rsb.RSBException;
 import rsb.patterns.DataCallback;
 import rsb.patterns.LocalServer;
 
-import ipaaca.Ipaaca;
-import ipaaca.Ipaaca.IUCommission;
-import ipaaca.Ipaaca.IULinkUpdate;
-import ipaaca.Ipaaca.IUPayloadUpdate;
-import ipaaca.Ipaaca.LinkSet;
-import ipaaca.Ipaaca.PayloadItem;
+import ipaaca.protobuf.Ipaaca;
+import ipaaca.protobuf.Ipaaca.IUCommission;
+import ipaaca.protobuf.Ipaaca.IULinkUpdate;
+import ipaaca.protobuf.Ipaaca.IUPayloadUpdate;
+import ipaaca.protobuf.Ipaaca.LinkSet;
+import ipaaca.protobuf.Ipaaca.PayloadItem;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/java/src/ipaaca/Payload.java b/java/src/ipaaca/Payload.java
index 50f6342d01416dcca73ab439f55de0211a130d55..77d6ec10550db8f439a3668f1d40d1cd30f7696e 100644
--- a/java/src/ipaaca/Payload.java
+++ b/java/src/ipaaca/Payload.java
@@ -1,6 +1,6 @@
 package ipaaca;
 
-import ipaaca.Ipaaca.PayloadItem;
+import ipaaca.protobuf.Ipaaca.PayloadItem;
 
 import java.util.Collection;
 import java.util.HashMap;
diff --git a/java/src/ipaaca/PayloadConverter.java b/java/src/ipaaca/PayloadConverter.java
index 6e32b40b42f6ccb11632c3cbf67cdc0b1b9445c9..a95e7110080722ec36007713ee3ad802713cfb74 100644
--- a/java/src/ipaaca/PayloadConverter.java
+++ b/java/src/ipaaca/PayloadConverter.java
@@ -1,6 +1,6 @@
 package ipaaca;
 
-import ipaaca.Ipaaca.IUPayloadUpdate;
+import ipaaca.protobuf.Ipaaca.IUPayloadUpdate;
 
 import java.nio.ByteBuffer;
 
diff --git a/java/src/ipaaca/RemotePushIU.java b/java/src/ipaaca/RemotePushIU.java
index a0b5392c55eb9885f1b48cc36da02e199e27fe77..b61272aff7cd887cf1b9433b64df0ce57e0200e1 100644
--- a/java/src/ipaaca/RemotePushIU.java
+++ b/java/src/ipaaca/RemotePushIU.java
@@ -1,5 +1,12 @@
 package ipaaca;
 
+import ipaaca.protobuf.Ipaaca;
+import ipaaca.protobuf.Ipaaca.IUCommission;
+import ipaaca.protobuf.Ipaaca.IULinkUpdate;
+import ipaaca.protobuf.Ipaaca.IUPayloadUpdate;
+import ipaaca.protobuf.Ipaaca.LinkSet;
+import ipaaca.protobuf.Ipaaca.PayloadItem;
+
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
@@ -13,12 +20,6 @@ import com.google.common.collect.SetMultimap;
 
 import rsb.RSBException;
 import rsb.patterns.RemoteServer;
-import ipaaca.Ipaaca;
-import ipaaca.Ipaaca.IUCommission;
-import ipaaca.Ipaaca.IULinkUpdate;
-import ipaaca.Ipaaca.IUPayloadUpdate;
-import ipaaca.Ipaaca.LinkSet;
-import ipaaca.Ipaaca.PayloadItem;
 
 /**
  * A remote IU with access mode 'PUSH'.
diff --git a/java/test/findbugs.xml b/java/test/findbugs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..59ce2972918f586bbec8bea2c41f2d014a879a08
--- /dev/null
+++ b/java/test/findbugs.xml
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<BugCollection version="1.3.9" sequence="0" timestamp="1331224756097" analysisTimestamp="1331224757021" release="">
+  <Project projectName="">
+    <Jar>/homes/hvanwelbergen/git_pool/ipaaca/java/build</Jar>
+    <SrcDir>/homes/hvanwelbergen/git_pool/ipaaca/java/src</SrcDir>
+    <SrcDir>/homes/hvanwelbergen/git_pool/ipaaca/java/test/src</SrcDir>
+  </Project>
+  <BugInstance type="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE" priority="1" abbrev="CN" category="BAD_PRACTICE">
+    <Class classname="ipaaca.Ipaaca$IU$Builder">
+      <SourceLine classname="ipaaca.Ipaaca$IU$Builder" start="1" end="3024" sourcefile="Ipaaca.java" sourcepath="ipaaca/Ipaaca.java"/>
+    </Class>
+    <Method classname="ipaaca.Ipaaca$IU$Builder" name="clone" signature="()Lcom/google/protobuf/GeneratedMessage$Builder;" isStatic="false">
+      <SourceLine classname="ipaaca.Ipaaca$IU$Builder" start="1" end="1" startBytecode="0" endBytecode="36" sourcefile="Ipaaca.java" sourcepath="ipaaca/Ipaaca.java"/>
+    </Method>
+  </BugInstance>
+  <BugInstance type="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE" priority="1" abbrev="CN" category="BAD_PRACTICE">
+    <Class classname="ipaaca.Ipaaca$IUCommission$Builder">
+      <SourceLine classname="ipaaca.Ipaaca$IUCommission$Builder" start="1" end="5034" sourcefile="Ipaaca.java" sourcepath="ipaaca/Ipaaca.java"/>
+    </Class>
+    <Method classname="ipaaca.Ipaaca$IUCommission$Builder" name="clone" signature="()Lcom/google/protobuf/GeneratedMessage$Builder;" isStatic="false">
+      <SourceLine classname="ipaaca.Ipaaca$IUCommission$Builder" start="1" end="1" startBytecode="0" endBytecode="36" sourcefile="Ipaaca.java" sourcepath="ipaaca/Ipaaca.java"/>
+    </Method>
+  </BugInstance>
+  <BugInstance type="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE" priority="1" abbrev="CN" category="BAD_PRACTICE">
+    <Class classname="ipaaca.Ipaaca$IULinkUpdate$Builder">
+      <SourceLine classname="ipaaca.Ipaaca$IULinkUpdate$Builder" start="1" end="6219" sourcefile="Ipaaca.java" sourcepath="ipaaca/Ipaaca.java"/>
+    </Class>
+    <Method classname="ipaaca.Ipaaca$IULinkUpdate$Builder" name="clone" signature="()Lcom/google/protobuf/GeneratedMessage$Builder;" isStatic="false">
+      <SourceLine classname="ipaaca.Ipaaca$IULinkUpdate$Builder" start="1" end="1" startBytecode="0" endBytecode="36" sourcefile="Ipaaca.java" sourcepath="ipaaca/Ipaaca.java"/>
+    </Method>
+  </BugInstance>
+  <BugInstance type="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE" priority="1" abbrev="CN" category="BAD_PRACTICE">
+    <Class classname="ipaaca.Ipaaca$IUPayloadUpdate$Builder">
+      <SourceLine classname="ipaaca.Ipaaca$IUPayloadUpdate$Builder" start="1" end="4036" sourcefile="Ipaaca.java" sourcepath="ipaaca/Ipaaca.java"/>
+    </Class>
+    <Method classname="ipaaca.Ipaaca$IUPayloadUpdate$Builder" name="clone" signature="()Lcom/google/protobuf/GeneratedMessage$Builder;" isStatic="false">
+      <SourceLine classname="ipaaca.Ipaaca$IUPayloadUpdate$Builder" start="1" end="1" startBytecode="0" endBytecode="36" sourcefile="Ipaaca.java" sourcepath="ipaaca/Ipaaca.java"/>
+    </Method>
+  </BugInstance>
+  <BugInstance type="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE" priority="1" abbrev="CN" category="BAD_PRACTICE">
+    <Class classname="ipaaca.Ipaaca$IURetraction$Builder">
+      <SourceLine classname="ipaaca.Ipaaca$IURetraction$Builder" start="1" end="4483" sourcefile="Ipaaca.java" sourcepath="ipaaca/Ipaaca.java"/>
+    </Class>
+    <Method classname="ipaaca.Ipaaca$IURetraction$Builder" name="clone" signature="()Lcom/google/protobuf/GeneratedMessage$Builder;" isStatic="false">
+      <SourceLine classname="ipaaca.Ipaaca$IURetraction$Builder" start="1" end="1" startBytecode="0" endBytecode="36" sourcefile="Ipaaca.java" sourcepath="ipaaca/Ipaaca.java"/>
+    </Method>
+  </BugInstance>
+  <BugInstance type="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE" priority="1" abbrev="CN" category="BAD_PRACTICE">
+    <Class classname="ipaaca.Ipaaca$IntMessage$Builder">
+      <SourceLine classname="ipaaca.Ipaaca$IntMessage$Builder" start="1" end="343" sourcefile="Ipaaca.java" sourcepath="ipaaca/Ipaaca.java"/>
+    </Class>
+    <Method classname="ipaaca.Ipaaca$IntMessage$Builder" name="clone" signature="()Lcom/google/protobuf/GeneratedMessage$Builder;" isStatic="false">
+      <SourceLine classname="ipaaca.Ipaaca$IntMessage$Builder" start="1" end="1" startBytecode="0" endBytecode="36" sourcefile="Ipaaca.java" sourcepath="ipaaca/Ipaaca.java"/>
+    </Method>
+  </BugInstance>
+  <BugInstance type="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE" priority="1" abbrev="CN" category="BAD_PRACTICE">
+    <Class classname="ipaaca.Ipaaca$LinkSet$Builder">
+      <SourceLine classname="ipaaca.Ipaaca$LinkSet$Builder" start="1" end="838" sourcefile="Ipaaca.java" sourcepath="ipaaca/Ipaaca.java"/>
+    </Class>
+    <Method classname="ipaaca.Ipaaca$LinkSet$Builder" name="clone" signature="()Lcom/google/protobuf/GeneratedMessage$Builder;" isStatic="false">
+      <SourceLine classname="ipaaca.Ipaaca$LinkSet$Builder" start="1" end="1" startBytecode="0" endBytecode="36" sourcefile="Ipaaca.java" sourcepath="ipaaca/Ipaaca.java"/>
+    </Method>
+  </BugInstance>
+  <BugInstance type="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE" priority="1" abbrev="CN" category="BAD_PRACTICE">
+    <Class classname="ipaaca.Ipaaca$PayloadItem$Builder">
+      <SourceLine classname="ipaaca.Ipaaca$PayloadItem$Builder" start="1" end="1425" sourcefile="Ipaaca.java" sourcepath="ipaaca/Ipaaca.java"/>
+    </Class>
+    <Method classname="ipaaca.Ipaaca$PayloadItem$Builder" name="clone" signature="()Lcom/google/protobuf/GeneratedMessage$Builder;" isStatic="false">
+      <SourceLine classname="ipaaca.Ipaaca$PayloadItem$Builder" start="1" end="1" startBytecode="0" endBytecode="36" sourcefile="Ipaaca.java" sourcepath="ipaaca/Ipaaca.java"/>
+    </Method>
+  </BugInstance>
+  <BugInstance type="OS_OPEN_STREAM" priority="2" abbrev="OS" category="BAD_PRACTICE">
+    <Class classname="ipaaca.JavaPythonTest">
+      <SourceLine classname="ipaaca.JavaPythonTest" start="18" end="186" sourcefile="JavaPythonTest.java" sourcepath="ipaaca/JavaPythonTest.java"/>
+    </Class>
+    <Method classname="ipaaca.JavaPythonTest" name="printRuntimeErrors" signature="(Ljava/lang/Process;)V" isStatic="false">
+      <SourceLine classname="ipaaca.JavaPythonTest" start="43" end="75" startBytecode="0" endBytecode="72" sourcefile="JavaPythonTest.java" sourcepath="ipaaca/JavaPythonTest.java"/>
+    </Method>
+    <Type descriptor="Ljava/io/Reader;" role="TYPE_CLOSEIT">
+      <SourceLine classname="java.io.Reader" start="49" end="232" sourcefile="Reader.java" sourcepath="java/io/Reader.java"/>
+    </Type>
+    <SourceLine classname="ipaaca.JavaPythonTest" start="46" end="46" startBytecode="24" endBytecode="24" sourcefile="JavaPythonTest.java" sourcepath="ipaaca/JavaPythonTest.java"/>
+    <SourceLine classname="ipaaca.JavaPythonTest" start="69" end="69" startBytecode="126" endBytecode="126" sourcefile="JavaPythonTest.java" sourcepath="ipaaca/JavaPythonTest.java" role="SOURCE_LINE_ANOTHER_INSTANCE"/>
+  </BugInstance>
+  <BugInstance type="NP_NULL_PARAM_DEREF" priority="2" abbrev="NP" category="CORRECTNESS">
+    <Class classname="ipaaca.LocalIU">
+      <SourceLine classname="ipaaca.LocalIU" start="23" end="250" sourcefile="LocalIU.java" sourcepath="ipaaca/LocalIU.java"/>
+    </Class>
+    <Method classname="ipaaca.LocalIU" name="modifyLinks" signature="(ZLcom/google/common/collect/SetMultimap;Lcom/google/common/collect/SetMultimap;Ljava/lang/String;)V" isStatic="false">
+      <SourceLine classname="ipaaca.LocalIU" start="112" end="154" startBytecode="0" endBytecode="771" sourcefile="LocalIU.java" sourcepath="ipaaca/LocalIU.java"/>
+    </Method>
+    <Method classname="ipaaca.Ipaaca$IULinkUpdate$Builder" name="setWriterName" signature="(Ljava/lang/String;)Lipaaca/Ipaaca$IULinkUpdate$Builder;" isStatic="false" role="METHOD_CALLED">
+      <SourceLine classname="ipaaca.Ipaaca$IULinkUpdate$Builder" start="6201" end="6207" startBytecode="0" endBytecode="114" sourcefile="Ipaaca.java" sourcepath="ipaaca/Ipaaca.java"/>
+    </Method>
+    <Int value="1" role="INT_MAYBE_NULL_ARG"/>
+    <LocalVariable name="?" register="-1" pc="281" role="LOCAL_VARIABLE_UNKNOWN"/>
+    <SourceLine classname="ipaaca.LocalIU" start="147" end="147" startBytecode="281" endBytecode="281" sourcefile="LocalIU.java" sourcepath="ipaaca/LocalIU.java" role="SOURCE_LINE_INVOKED"/>
+    <SourceLine classname="ipaaca.LocalIU" start="132" end="132" startBytecode="71" endBytecode="71" sourcefile="LocalIU.java" sourcepath="ipaaca/LocalIU.java" role="SOURCE_LINE_KNOWN_NULL"/>
+    <Property name="edu.umd.cs.findbugs.detect.NullDerefProperty.LONG_RANGE_NULL_SOURCE" value="true"/>
+  </BugInstance>
+  <BugInstance type="SBSC_USE_STRINGBUFFER_CONCATENATION" priority="2" abbrev="SBSC" category="PERFORMANCE">
+    <Class classname="ipaacademo.TextPrinter$UpdateThread">
+      <SourceLine classname="ipaacademo.TextPrinter$UpdateThread" start="52" end="101" sourcefile="TextPrinter.java" sourcepath="ipaacademo/TextPrinter.java"/>
+    </Class>
+    <Method classname="ipaacademo.TextPrinter$UpdateThread" name="run" signature="()V" isStatic="false">
+      <SourceLine classname="ipaacademo.TextPrinter$UpdateThread" start="61" end="62" startBytecode="0" endBytecode="559" sourcefile="TextPrinter.java" sourcepath="ipaacademo/TextPrinter.java"/>
+    </Method>
+    <SourceLine classname="ipaacademo.TextPrinter$UpdateThread" start="82" end="82" startBytecode="101" endBytecode="101" sourcefile="TextPrinter.java" sourcepath="ipaacademo/TextPrinter.java"/>
+  </BugInstance>
+  <Errors errors="0" missingClasses="72">
+    <MissingClass>com.google.common.collect.HashMultimap</MissingClass>
+    <MissingClass>com.google.common.collect.ImmutableMap</MissingClass>
+    <MissingClass>com.google.common.collect.ImmutableSet</MissingClass>
+    <MissingClass>com.google.common.collect.ImmutableSet$Builder</MissingClass>
+    <MissingClass>com.google.common.collect.Multimap</MissingClass>
+    <MissingClass>com.google.common.collect.SetMultimap</MissingClass>
+    <MissingClass>com.google.protobuf.AbstractMessage</MissingClass>
+    <MissingClass>com.google.protobuf.AbstractMessage$Builder</MissingClass>
+    <MissingClass>com.google.protobuf.ByteString</MissingClass>
+    <MissingClass>com.google.protobuf.CodedInputStream</MissingClass>
+    <MissingClass>com.google.protobuf.CodedOutputStream</MissingClass>
+    <MissingClass>com.google.protobuf.Descriptors</MissingClass>
+    <MissingClass>com.google.protobuf.Descriptors$Descriptor</MissingClass>
+    <MissingClass>com.google.protobuf.Descriptors$EnumDescriptor</MissingClass>
+    <MissingClass>com.google.protobuf.Descriptors$EnumValueDescriptor</MissingClass>
+    <MissingClass>com.google.protobuf.Descriptors$FileDescriptor</MissingClass>
+    <MissingClass>com.google.protobuf.Descriptors$FileDescriptor$InternalDescriptorAssigner</MissingClass>
+    <MissingClass>com.google.protobuf.ExtensionRegistryLite</MissingClass>
+    <MissingClass>com.google.protobuf.GeneratedMessage</MissingClass>
+    <MissingClass>com.google.protobuf.GeneratedMessage$Builder</MissingClass>
+    <MissingClass>com.google.protobuf.GeneratedMessage$BuilderParent</MissingClass>
+    <MissingClass>com.google.protobuf.GeneratedMessage$FieldAccessorTable</MissingClass>
+    <MissingClass>com.google.protobuf.Internal</MissingClass>
+    <MissingClass>com.google.protobuf.Internal$EnumLite</MissingClass>
+    <MissingClass>com.google.protobuf.Internal$EnumLiteMap</MissingClass>
+    <MissingClass>com.google.protobuf.InvalidProtocolBufferException</MissingClass>
+    <MissingClass>com.google.protobuf.LazyStringArrayList</MissingClass>
+    <MissingClass>com.google.protobuf.LazyStringList</MissingClass>
+    <MissingClass>com.google.protobuf.Message</MissingClass>
+    <MissingClass>com.google.protobuf.Message$Builder</MissingClass>
+    <MissingClass>com.google.protobuf.MessageLite</MissingClass>
+    <MissingClass>com.google.protobuf.MessageLite$Builder</MissingClass>
+    <MissingClass>com.google.protobuf.MessageOrBuilder</MissingClass>
+    <MissingClass>com.google.protobuf.ProtocolMessageEnum</MissingClass>
+    <MissingClass>com.google.protobuf.RepeatedFieldBuilder</MissingClass>
+    <MissingClass>com.google.protobuf.UninitializedMessageException</MissingClass>
+    <MissingClass>com.google.protobuf.UnknownFieldSet</MissingClass>
+    <MissingClass>com.google.protobuf.UnknownFieldSet$Builder</MissingClass>
+    <MissingClass>com.google.protobuf.UnmodifiableLazyStringList</MissingClass>
+    <MissingClass>org.hamcrest.Matcher</MissingClass>
+    <MissingClass>org.hamcrest.MatcherAssert</MissingClass>
+    <MissingClass>org.hamcrest.Matchers</MissingClass>
+    <MissingClass>org.hamcrest.collection.IsIterableContainingInAnyOrder</MissingClass>
+    <MissingClass>org.junit.After</MissingClass>
+    <MissingClass>org.junit.Assert</MissingClass>
+    <MissingClass>org.junit.Before</MissingClass>
+    <MissingClass>org.junit.Test</MissingClass>
+    <MissingClass>org.mockito.Matchers</MissingClass>
+    <MissingClass>org.mockito.Mockito</MissingClass>
+    <MissingClass>org.mockito.stubbing.OngoingStubbing</MissingClass>
+    <MissingClass>org.mockito.verification.VerificationMode</MissingClass>
+    <MissingClass>org.slf4j.Logger</MissingClass>
+    <MissingClass>org.slf4j.LoggerFactory</MissingClass>
+    <MissingClass>rsb.Event</MissingClass>
+    <MissingClass>rsb.Factory</MissingClass>
+    <MissingClass>rsb.Handler</MissingClass>
+    <MissingClass>rsb.Informer</MissingClass>
+    <MissingClass>rsb.InitializeException</MissingClass>
+    <MissingClass>rsb.Listener</MissingClass>
+    <MissingClass>rsb.RSBException</MissingClass>
+    <MissingClass>rsb.Scope</MissingClass>
+    <MissingClass>rsb.converter.ConversionException</MissingClass>
+    <MissingClass>rsb.converter.Converter</MissingClass>
+    <MissingClass>rsb.converter.ConverterRepository</MissingClass>
+    <MissingClass>rsb.converter.ConverterSignature</MissingClass>
+    <MissingClass>rsb.converter.DefaultConverterRepository</MissingClass>
+    <MissingClass>rsb.converter.ProtocolBufferConverter</MissingClass>
+    <MissingClass>rsb.converter.UserData</MissingClass>
+    <MissingClass>rsb.converter.WireContents</MissingClass>
+    <MissingClass>rsb.patterns.DataCallback</MissingClass>
+    <MissingClass>rsb.patterns.LocalServer</MissingClass>
+    <MissingClass>rsb.patterns.RemoteServer</MissingClass>
+  </Errors>
+  <FindBugsSummary timestamp="Thu, 8 Mar 2012 17:39:16 +0100" total_classes="64" referenced_classes="159" total_bugs="11" total_size="6091" num_packages="2" vm_version="19.1-b02" cpu_seconds="25.20" clock_seconds="8.59" peak_mbytes="216.40" alloc_mbytes="455.12" gc_seconds="0.50" priority_2="3" priority_1="8">
+    <PackageStats package="ipaaca" total_bugs="10" total_types="61" total_size="6002" priority_2="2" priority_1="8">
+      <ClassStats class="ipaaca.AbstractIU" sourceFile="AbstractIU.java" interface="false" size="115" bugs="0"/>
+      <ClassStats class="ipaaca.Buffer" sourceFile="Buffer.java" interface="false" size="24" bugs="0"/>
+      <ClassStats class="ipaaca.ComponentCommunicationIntegrationTest" sourceFile="ComponentCommunicationIntegrationTest.java" interface="false" size="205" bugs="0"/>
+      <ClassStats class="ipaaca.ComponentCommunicationIntegrationTest$MyEventHandler" sourceFile="ComponentCommunicationIntegrationTest.java" interface="false" size="37" bugs="0"/>
+      <ClassStats class="ipaaca.HandlerFunctor" sourceFile="HandlerFunctor.java" interface="true" size="2" bugs="0"/>
+      <ClassStats class="ipaaca.IUAccessMode" sourceFile="IUAccessMode.java" interface="false" size="12" bugs="0"/>
+      <ClassStats class="ipaaca.IUCommittedException" sourceFile="IUCommittedException.java" interface="false" size="9" bugs="0"/>
+      <ClassStats class="ipaaca.IUConverter" sourceFile="IUConverter.java" interface="false" size="53" bugs="0"/>
+      <ClassStats class="ipaaca.IUEventHandler" sourceFile="IUEventHandler.java" interface="false" size="17" bugs="0"/>
+      <ClassStats class="ipaaca.IUEventType" sourceFile="IUEventType.java" interface="false" size="15" bugs="0"/>
+      <ClassStats class="ipaaca.IUPublishedException" sourceFile="IUPublishedException.java" interface="false" size="9" bugs="0"/>
+      <ClassStats class="ipaaca.IUReadOnlyException" sourceFile="IUReadOnlyException.java" interface="false" size="9" bugs="0"/>
+      <ClassStats class="ipaaca.IUStore" sourceFile="IUStore.java" interface="false" size="4" bugs="0"/>
+      <ClassStats class="ipaaca.IUTestUtil" sourceFile="IUTestUtil.java" interface="false" size="48" bugs="0"/>
+      <ClassStats class="ipaaca.IUUpdateFailedException" sourceFile="IUUpdateFailedException.java" interface="false" size="9" bugs="0"/>
+      <ClassStats class="ipaaca.Info" sourceFile="Info.java" interface="false" size="58" bugs="0"/>
+      <ClassStats class="ipaaca.Initializer" sourceFile="Initializer.java" interface="false" size="16" bugs="0"/>
+      <ClassStats class="ipaaca.InputBuffer" sourceFile="InputBuffer.java" interface="false" size="99" bugs="0"/>
+      <ClassStats class="ipaaca.InputBuffer$InputHandler" sourceFile="InputBuffer.java" interface="false" size="7" bugs="0"/>
+      <ClassStats class="ipaaca.InputBufferTest" sourceFile="InputBufferTest.java" interface="false" size="29" bugs="0"/>
+      <ClassStats class="ipaaca.IntConverter" sourceFile="IntConverter.java" interface="false" size="18" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca" sourceFile="Ipaaca.java" interface="false" size="85" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$1" sourceFile="Ipaaca.java" interface="false" size="71" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$IU" sourceFile="Ipaaca.java" interface="false" size="349" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$IU$AccessMode" sourceFile="Ipaaca.java" interface="false" size="50" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$IU$AccessMode$1" sourceFile="Ipaaca.java" interface="false" size="7" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$IU$Builder" sourceFile="Ipaaca.java" interface="false" size="676" bugs="1" priority_1="1"/>
+      <ClassStats class="ipaaca.Ipaaca$IUCommission" sourceFile="Ipaaca.java" interface="false" size="182" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$IUCommission$Builder" sourceFile="Ipaaca.java" interface="false" size="202" bugs="1" priority_1="1"/>
+      <ClassStats class="ipaaca.Ipaaca$IUCommissionOrBuilder" sourceFile="Ipaaca.java" interface="true" size="7" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$IULinkUpdate" sourceFile="Ipaaca.java" interface="false" size="249" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$IULinkUpdate$Builder" sourceFile="Ipaaca.java" interface="false" size="535" bugs="1" priority_1="1"/>
+      <ClassStats class="ipaaca.Ipaaca$IULinkUpdateOrBuilder" sourceFile="Ipaaca.java" interface="true" size="19" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$IUOrBuilder" sourceFile="Ipaaca.java" interface="true" size="27" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$IUPayloadUpdate" sourceFile="Ipaaca.java" interface="false" size="244" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$IUPayloadUpdate$Builder" sourceFile="Ipaaca.java" interface="false" size="441" bugs="1" priority_1="1"/>
+      <ClassStats class="ipaaca.Ipaaca$IUPayloadUpdateOrBuilder" sourceFile="Ipaaca.java" interface="true" size="17" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$IURetraction" sourceFile="Ipaaca.java" interface="false" size="149" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$IURetraction$Builder" sourceFile="Ipaaca.java" interface="false" size="162" bugs="1" priority_1="1"/>
+      <ClassStats class="ipaaca.Ipaaca$IURetractionOrBuilder" sourceFile="Ipaaca.java" interface="true" size="5" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$IntMessage" sourceFile="Ipaaca.java" interface="false" size="116" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$IntMessage$Builder" sourceFile="Ipaaca.java" interface="false" size="122" bugs="1" priority_1="1"/>
+      <ClassStats class="ipaaca.Ipaaca$IntMessageOrBuilder" sourceFile="Ipaaca.java" interface="true" size="3" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$LinkSet" sourceFile="Ipaaca.java" interface="false" size="152" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$LinkSet$Builder" sourceFile="Ipaaca.java" interface="false" size="194" bugs="1" priority_1="1"/>
+      <ClassStats class="ipaaca.Ipaaca$LinkSetOrBuilder" sourceFile="Ipaaca.java" interface="true" size="6" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$PayloadItem" sourceFile="Ipaaca.java" interface="false" size="198" bugs="0"/>
+      <ClassStats class="ipaaca.Ipaaca$PayloadItem$Builder" sourceFile="Ipaaca.java" interface="false" size="215" bugs="1" priority_1="1"/>
+      <ClassStats class="ipaaca.Ipaaca$PayloadItemOrBuilder" sourceFile="Ipaaca.java" interface="true" size="7" bugs="0"/>
+      <ClassStats class="ipaaca.IuConverterTest" sourceFile="IuConverterTest.java" interface="false" size="69" bugs="0"/>
+      <ClassStats class="ipaaca.JavaPythonTest" sourceFile="JavaPythonTest.java" interface="false" size="81" bugs="1" priority_2="1"/>
+      <ClassStats class="ipaaca.LinkUpdateConverter" sourceFile="LinkUpdateConverter.java" interface="false" size="16" bugs="0"/>
+      <ClassStats class="ipaaca.LocalIU" sourceFile="LocalIU.java" interface="false" size="113" bugs="1" priority_2="1"/>
+      <ClassStats class="ipaaca.LocalIUTest" sourceFile="LocalIUTest.java" interface="false" size="29" bugs="0"/>
+      <ClassStats class="ipaaca.OutputBuffer" sourceFile="OutputBuffer.java" interface="false" size="140" bugs="0"/>
+      <ClassStats class="ipaaca.OutputBuffer$RemoteCommit" sourceFile="OutputBuffer.java" interface="false" size="10" bugs="0"/>
+      <ClassStats class="ipaaca.OutputBuffer$RemoteUpdateLinks" sourceFile="OutputBuffer.java" interface="false" size="10" bugs="0"/>
+      <ClassStats class="ipaaca.OutputBuffer$RemoteUpdatePayload" sourceFile="OutputBuffer.java" interface="false" size="10" bugs="0"/>
+      <ClassStats class="ipaaca.Payload" sourceFile="Payload.java" interface="false" size="79" bugs="0"/>
+      <ClassStats class="ipaaca.PayloadConverter" sourceFile="PayloadConverter.java" interface="false" size="16" bugs="0"/>
+      <ClassStats class="ipaaca.RemotePushIU" sourceFile="RemotePushIU.java" interface="false" size="144" bugs="0"/>
+    </PackageStats>
+    <PackageStats package="ipaacademo" total_bugs="1" total_types="3" total_size="89" priority_2="1">
+      <ClassStats class="ipaacademo.PythonCall" sourceFile="PythonCall.java" interface="false" size="23" bugs="0"/>
+      <ClassStats class="ipaacademo.TextPrinter" sourceFile="TextPrinter.java" interface="false" size="37" bugs="0"/>
+      <ClassStats class="ipaacademo.TextPrinter$UpdateThread" sourceFile="TextPrinter.java" interface="false" size="29" bugs="1" priority_2="1"/>
+    </PackageStats>
+    <FindBugsProfile>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindUncalledPrivateMethods" totalMilliseconds="11" invocations="64" avgMicrosecondsPerInvocation="175" maxMicrosecondsPerInvocation="1115" standardDeviationMircosecondsPerInvocation="219"/>
+      <ClassProfile name="edu.umd.cs.findbugs.classfile.engine.bcel.ConstantPoolGenFactory" totalMilliseconds="12" invocations="64" avgMicrosecondsPerInvocation="187" maxMicrosecondsPerInvocation="3262" standardDeviationMircosecondsPerInvocation="403"/>
+      <ClassProfile name="edu.umd.cs.findbugs.util.TopologicalSort" totalMilliseconds="12" invocations="65" avgMicrosecondsPerInvocation="190" maxMicrosecondsPerInvocation="2175" standardDeviationMircosecondsPerInvocation="315"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.SerializableIdiom" totalMilliseconds="12" invocations="64" avgMicrosecondsPerInvocation="193" maxMicrosecondsPerInvocation="1797" standardDeviationMircosecondsPerInvocation="249"/>
+      <ClassProfile name="edu.umd.cs.findbugs.classfile.engine.bcel.LoadedFieldSetFactory" totalMilliseconds="13" invocations="1268" avgMicrosecondsPerInvocation="10" maxMicrosecondsPerInvocation="431" standardDeviationMircosecondsPerInvocation="18"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindUnsatisfiedObligation" totalMilliseconds="13" invocations="64" avgMicrosecondsPerInvocation="211" maxMicrosecondsPerInvocation="2332" standardDeviationMircosecondsPerInvocation="428"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindSelfComparison2" totalMilliseconds="13" invocations="64" avgMicrosecondsPerInvocation="217" maxMicrosecondsPerInvocation="1786" standardDeviationMircosecondsPerInvocation="321"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindReturnRef" totalMilliseconds="15" invocations="64" avgMicrosecondsPerInvocation="247" maxMicrosecondsPerInvocation="1829" standardDeviationMircosecondsPerInvocation="350"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.AppendingToAnObjectOutputStream" totalMilliseconds="16" invocations="64" avgMicrosecondsPerInvocation="251" maxMicrosecondsPerInvocation="1707" standardDeviationMircosecondsPerInvocation="326"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.NumberConstructor" totalMilliseconds="16" invocations="64" avgMicrosecondsPerInvocation="252" maxMicrosecondsPerInvocation="1655" standardDeviationMircosecondsPerInvocation="317"/>
+      <ClassProfile name="edu.umd.cs.findbugs.NonReportingDetectorToDetector2Adapter" totalMilliseconds="16" invocations="2195" avgMicrosecondsPerInvocation="7" maxMicrosecondsPerInvocation="56" standardDeviationMircosecondsPerInvocation="2"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindFloatEquality" totalMilliseconds="16" invocations="64" avgMicrosecondsPerInvocation="256" maxMicrosecondsPerInvocation="1695" standardDeviationMircosecondsPerInvocation="322"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindFieldSelfAssignment" totalMilliseconds="16" invocations="64" avgMicrosecondsPerInvocation="259" maxMicrosecondsPerInvocation="1684" standardDeviationMircosecondsPerInvocation="330"/>
+      <ClassProfile name="edu.umd.cs.findbugs.classfile.engine.bcel.ReverseDepthFirstSearchFactory" totalMilliseconds="16" invocations="1123" avgMicrosecondsPerInvocation="14" maxMicrosecondsPerInvocation="536" standardDeviationMircosecondsPerInvocation="26"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.SynchronizingOnContentsOfFieldToProtectField" totalMilliseconds="17" invocations="64" avgMicrosecondsPerInvocation="269" maxMicrosecondsPerInvocation="1713" standardDeviationMircosecondsPerInvocation="341"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.BadResultSetAccess" totalMilliseconds="17" invocations="64" avgMicrosecondsPerInvocation="271" maxMicrosecondsPerInvocation="1683" standardDeviationMircosecondsPerInvocation="330"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.SynchronizationOnSharedBuiltinConstant" totalMilliseconds="17" invocations="64" avgMicrosecondsPerInvocation="275" maxMicrosecondsPerInvocation="1738" standardDeviationMircosecondsPerInvocation="336"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FormatStringChecker" totalMilliseconds="17" invocations="64" avgMicrosecondsPerInvocation="278" maxMicrosecondsPerInvocation="1765" standardDeviationMircosecondsPerInvocation="355"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass" totalMilliseconds="17" invocations="64" avgMicrosecondsPerInvocation="278" maxMicrosecondsPerInvocation="1929" standardDeviationMircosecondsPerInvocation="409"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.BadSyntaxForRegularExpression" totalMilliseconds="17" invocations="64" avgMicrosecondsPerInvocation="280" maxMicrosecondsPerInvocation="1826" standardDeviationMircosecondsPerInvocation="358"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.CrossSiteScripting" totalMilliseconds="18" invocations="64" avgMicrosecondsPerInvocation="284" maxMicrosecondsPerInvocation="1873" standardDeviationMircosecondsPerInvocation="361"/>
+      <ClassProfile name="edu.umd.cs.findbugs.classfile.engine.bcel.ObligationDataflowFactory" totalMilliseconds="18" invocations="447" avgMicrosecondsPerInvocation="41" maxMicrosecondsPerInvocation="3665" standardDeviationMircosecondsPerInvocation="173"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindBadForLoop" totalMilliseconds="18" invocations="64" avgMicrosecondsPerInvocation="293" maxMicrosecondsPerInvocation="1830" standardDeviationMircosecondsPerInvocation="371"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.DumbMethodInvocations" totalMilliseconds="18" invocations="64" avgMicrosecondsPerInvocation="294" maxMicrosecondsPerInvocation="2837" standardDeviationMircosecondsPerInvocation="500"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.InfiniteRecursiveLoop" totalMilliseconds="19" invocations="64" avgMicrosecondsPerInvocation="298" maxMicrosecondsPerInvocation="1836" standardDeviationMircosecondsPerInvocation="390"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.LostLoggerDueToWeakReference" totalMilliseconds="19" invocations="64" avgMicrosecondsPerInvocation="309" maxMicrosecondsPerInvocation="1930" standardDeviationMircosecondsPerInvocation="394"/>
+      <ClassProfile name="edu.umd.cs.findbugs.classfile.engine.bcel.DepthFirstSearchFactory" totalMilliseconds="20" invocations="1520" avgMicrosecondsPerInvocation="13" maxMicrosecondsPerInvocation="553" standardDeviationMircosecondsPerInvocation="23"/>
+      <ClassProfile name="edu.umd.cs.findbugs.DetectorToDetector2Adapter" totalMilliseconds="20" invocations="7135" avgMicrosecondsPerInvocation="2" maxMicrosecondsPerInvocation="64" standardDeviationMircosecondsPerInvocation="2"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindUnrelatedTypesInGenericContainer" totalMilliseconds="20" invocations="64" avgMicrosecondsPerInvocation="326" maxMicrosecondsPerInvocation="2813" standardDeviationMircosecondsPerInvocation="505"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindNonShortCircuit" totalMilliseconds="21" invocations="64" avgMicrosecondsPerInvocation="328" maxMicrosecondsPerInvocation="2172" standardDeviationMircosecondsPerInvocation="430"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.StreamResourceTracker" totalMilliseconds="21" invocations="21" avgMicrosecondsPerInvocation="1008" maxMicrosecondsPerInvocation="1622" standardDeviationMircosecondsPerInvocation="187"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindHEmismatch" totalMilliseconds="23" invocations="64" avgMicrosecondsPerInvocation="362" maxMicrosecondsPerInvocation="3891" standardDeviationMircosecondsPerInvocation="557"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.MethodReturnCheck" totalMilliseconds="23" invocations="64" avgMicrosecondsPerInvocation="368" maxMicrosecondsPerInvocation="2568" standardDeviationMircosecondsPerInvocation="482"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.InfiniteLoop" totalMilliseconds="23" invocations="64" avgMicrosecondsPerInvocation="371" maxMicrosecondsPerInvocation="2247" standardDeviationMircosecondsPerInvocation="481"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.RepeatedConditionals" totalMilliseconds="24" invocations="64" avgMicrosecondsPerInvocation="378" maxMicrosecondsPerInvocation="2526" standardDeviationMircosecondsPerInvocation="501"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindBadCast2" totalMilliseconds="25" invocations="64" avgMicrosecondsPerInvocation="393" maxMicrosecondsPerInvocation="2348" standardDeviationMircosecondsPerInvocation="542"/>
+      <ClassProfile name="edu.umd.cs.findbugs.classfile.impl.ZipCodeBaseFactory" totalMilliseconds="25" invocations="14" avgMicrosecondsPerInvocation="1806" maxMicrosecondsPerInvocation="23482" standardDeviationMircosecondsPerInvocation="6013"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.RuntimeExceptionCapture" totalMilliseconds="27" invocations="64" avgMicrosecondsPerInvocation="424" maxMicrosecondsPerInvocation="2570" standardDeviationMircosecondsPerInvocation="532"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindSelfComparison" totalMilliseconds="27" invocations="64" avgMicrosecondsPerInvocation="431" maxMicrosecondsPerInvocation="2891" standardDeviationMircosecondsPerInvocation="585"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.DuplicateBranches" totalMilliseconds="28" invocations="64" avgMicrosecondsPerInvocation="444" maxMicrosecondsPerInvocation="5597" standardDeviationMircosecondsPerInvocation="1014"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindSqlInjection" totalMilliseconds="28" invocations="64" avgMicrosecondsPerInvocation="444" maxMicrosecondsPerInvocation="3234" standardDeviationMircosecondsPerInvocation="600"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindPuzzlers" totalMilliseconds="32" invocations="64" avgMicrosecondsPerInvocation="503" maxMicrosecondsPerInvocation="3050" standardDeviationMircosecondsPerInvocation="647"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindDeadLocalStores" totalMilliseconds="35" invocations="64" avgMicrosecondsPerInvocation="551" maxMicrosecondsPerInvocation="3275" standardDeviationMircosecondsPerInvocation="698"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindNullDeref" totalMilliseconds="36" invocations="64" avgMicrosecondsPerInvocation="566" maxMicrosecondsPerInvocation="4243" standardDeviationMircosecondsPerInvocation="876"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.ReflectiveClasses" totalMilliseconds="36" invocations="159" avgMicrosecondsPerInvocation="229" maxMicrosecondsPerInvocation="5220" standardDeviationMircosecondsPerInvocation="583"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.UnreadFields" totalMilliseconds="43" invocations="64" avgMicrosecondsPerInvocation="676" maxMicrosecondsPerInvocation="4082" standardDeviationMircosecondsPerInvocation="868"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.DumbMethods" totalMilliseconds="47" invocations="64" avgMicrosecondsPerInvocation="734" maxMicrosecondsPerInvocation="4420" standardDeviationMircosecondsPerInvocation="944"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindNullDeref$CheckCallSitesAndReturnInstructions" totalMilliseconds="50" invocations="1065" avgMicrosecondsPerInvocation="46" maxMicrosecondsPerInvocation="1213" standardDeviationMircosecondsPerInvocation="84"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindRefComparison" totalMilliseconds="50" invocations="64" avgMicrosecondsPerInvocation="787" maxMicrosecondsPerInvocation="6427" standardDeviationMircosecondsPerInvocation="1137"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.SwitchFallthrough" totalMilliseconds="54" invocations="64" avgMicrosecondsPerInvocation="854" maxMicrosecondsPerInvocation="20855" standardDeviationMircosecondsPerInvocation="2625"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.NoteNonnullReturnValues" totalMilliseconds="55" invocations="64" avgMicrosecondsPerInvocation="870" maxMicrosecondsPerInvocation="5691" standardDeviationMircosecondsPerInvocation="1289"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.LoadOfKnownNullValue" totalMilliseconds="59" invocations="64" avgMicrosecondsPerInvocation="923" maxMicrosecondsPerInvocation="9619" standardDeviationMircosecondsPerInvocation="1598"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.EqualsOperandShouldHaveClassCompatibleWithThis" totalMilliseconds="64" invocations="159" avgMicrosecondsPerInvocation="407" maxMicrosecondsPerInvocation="3116" standardDeviationMircosecondsPerInvocation="582"/>
+      <ClassProfile name="edu.umd.cs.findbugs.classfile.engine.ClassDataAnalysisEngine" totalMilliseconds="65" invocations="821" avgMicrosecondsPerInvocation="79" maxMicrosecondsPerInvocation="679" standardDeviationMircosecondsPerInvocation="70"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindInconsistentSync2" totalMilliseconds="71" invocations="64" avgMicrosecondsPerInvocation="1109" maxMicrosecondsPerInvocation="10523" standardDeviationMircosecondsPerInvocation="1891"/>
+      <ClassProfile name="edu.umd.cs.findbugs.ba.npe.TypeQualifierNullnessAnnotationDatabase" totalMilliseconds="81" invocations="15796" avgMicrosecondsPerInvocation="5" maxMicrosecondsPerInvocation="2014" standardDeviationMircosecondsPerInvocation="20"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.CalledMethods" totalMilliseconds="82" invocations="159" avgMicrosecondsPerInvocation="521" maxMicrosecondsPerInvocation="7484" standardDeviationMircosecondsPerInvocation="1035"/>
+      <ClassProfile name="edu.umd.cs.findbugs.classfile.engine.bcel.JavaClassAnalysisEngine" totalMilliseconds="84" invocations="217" avgMicrosecondsPerInvocation="391" maxMicrosecondsPerInvocation="13488" standardDeviationMircosecondsPerInvocation="1185"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.BuildObligationPolicyDatabase" totalMilliseconds="87" invocations="159" avgMicrosecondsPerInvocation="549" maxMicrosecondsPerInvocation="7707" standardDeviationMircosecondsPerInvocation="891"/>
+      <ClassProfile name="edu.umd.cs.findbugs.classfile.engine.bcel.LiveLocalStoreDataflowFactory" totalMilliseconds="118" invocations="937" avgMicrosecondsPerInvocation="126" maxMicrosecondsPerInvocation="1817" standardDeviationMircosecondsPerInvocation="195"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.OverridingEqualsNotSymmetrical" totalMilliseconds="123" invocations="159" avgMicrosecondsPerInvocation="778" maxMicrosecondsPerInvocation="8332" standardDeviationMircosecondsPerInvocation="1247"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindOpenStream" totalMilliseconds="149" invocations="64" avgMicrosecondsPerInvocation="2330" maxMicrosecondsPerInvocation="20396" standardDeviationMircosecondsPerInvocation="4456"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.NoteDirectlyRelevantTypeQualifiers" totalMilliseconds="160" invocations="159" avgMicrosecondsPerInvocation="1010" maxMicrosecondsPerInvocation="15855" standardDeviationMircosecondsPerInvocation="2000"/>
+      <ClassProfile name="edu.umd.cs.findbugs.ba.obl.ObligationAnalysis" totalMilliseconds="164" invocations="447" avgMicrosecondsPerInvocation="369" maxMicrosecondsPerInvocation="6575" standardDeviationMircosecondsPerInvocation="639"/>
+      <ClassProfile name="edu.umd.cs.findbugs.classfile.engine.bcel.ConstantDataflowFactory" totalMilliseconds="185" invocations="1268" avgMicrosecondsPerInvocation="146" maxMicrosecondsPerInvocation="2776" standardDeviationMircosecondsPerInvocation="244"/>
+      <ClassProfile name="edu.umd.cs.findbugs.classfile.engine.bcel.MethodGenFactory" totalMilliseconds="189" invocations="1360" avgMicrosecondsPerInvocation="139" maxMicrosecondsPerInvocation="30907" standardDeviationMircosecondsPerInvocation="856"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindNullDerefsInvolvingNonShortCircuitEvaluation" totalMilliseconds="193" invocations="64" avgMicrosecondsPerInvocation="3028" maxMicrosecondsPerInvocation="178315" standardDeviationMircosecondsPerInvocation="22086"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.URLProblems" totalMilliseconds="224" invocations="64" avgMicrosecondsPerInvocation="3503" maxMicrosecondsPerInvocation="174969" standardDeviationMircosecondsPerInvocation="21632"/>
+      <ClassProfile name="edu.umd.cs.findbugs.classfile.engine.bcel.CFGFactory" totalMilliseconds="255" invocations="1268" avgMicrosecondsPerInvocation="201" maxMicrosecondsPerInvocation="9257" standardDeviationMircosecondsPerInvocation="369"/>
+      <ClassProfile name="edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine" totalMilliseconds="258" invocations="819" avgMicrosecondsPerInvocation="315" maxMicrosecondsPerInvocation="11229" standardDeviationMircosecondsPerInvocation="840"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FieldItemSummary" totalMilliseconds="293" invocations="159" avgMicrosecondsPerInvocation="1844" maxMicrosecondsPerInvocation="23120" standardDeviationMircosecondsPerInvocation="3301"/>
+      <ClassProfile name="edu.umd.cs.findbugs.OpcodeStack$JumpInfoFactory" totalMilliseconds="324" invocations="4560" avgMicrosecondsPerInvocation="71" maxMicrosecondsPerInvocation="2589" standardDeviationMircosecondsPerInvocation="131"/>
+      <ClassProfile name="edu.umd.cs.findbugs.detect.FindRefComparison$SpecialTypeAnalysis" totalMilliseconds="345" invocations="916" avgMicrosecondsPerInvocation="377" maxMicrosecondsPerInvocation="6276" standardDeviationMircosecondsPerInvocation="568"/>
+      <ClassProfile name="edu.umd.cs.findbugs.classfile.engine.bcel.TypeDataflowFactory" totalMilliseconds="488" invocations="1271" avgMicrosecondsPerInvocation="384" maxMicrosecondsPerInvocation="16954" standardDeviationMircosecondsPerInvocation="759"/>
+      <ClassProfile name="edu.umd.cs.findbugs.ba.npe.NullDerefAndRedundantComparisonFinder" totalMilliseconds="496" invocations="1065" avgMicrosecondsPerInvocation="466" maxMicrosecondsPerInvocation="37192" standardDeviationMircosecondsPerInvocation="1442"/>
+      <ClassProfile name="edu.umd.cs.findbugs.classfile.engine.bcel.ValueNumberDataflowFactory" totalMilliseconds="562" invocations="1523" avgMicrosecondsPerInvocation="369" maxMicrosecondsPerInvocation="10377" standardDeviationMircosecondsPerInvocation="684"/>
+      <ClassProfile name="edu.umd.cs.findbugs.classfile.engine.bcel.IsNullValueDataflowFactory" totalMilliseconds="573" invocations="1268" avgMicrosecondsPerInvocation="452" maxMicrosecondsPerInvocation="10290" standardDeviationMircosecondsPerInvocation="809"/>
+      <ClassProfile name="edu.umd.cs.findbugs.classfile.engine.bcel.UnconditionalValueDerefDataflowFactory" totalMilliseconds="659" invocations="1123" avgMicrosecondsPerInvocation="586" maxMicrosecondsPerInvocation="40507" standardDeviationMircosecondsPerInvocation="1915"/>
+    </FindBugsProfile>
+  </FindBugsSummary>
+  <ClassFeatures></ClassFeatures>
+  <History></History>
+</BugCollection>
diff --git a/java/test/src/ipaaca/ComponentCommunicationIntegrationTest.java b/java/test/src/ipaaca/ComponentCommunicationIntegrationTest.java
index 3041995cc752d11420d5852868c64dd1eeff0e78..02c3958554a711eed00a4345e2ca746bd55bb1ba 100644
--- a/java/test/src/ipaaca/ComponentCommunicationIntegrationTest.java
+++ b/java/test/src/ipaaca/ComponentCommunicationIntegrationTest.java
@@ -10,6 +10,7 @@ import java.util.Set;
 import static org.hamcrest.collection.IsIterableContainingInAnyOrder.*;
 import org.junit.After;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 import com.google.common.collect.ImmutableMap;
@@ -25,7 +26,8 @@ import static ipaaca.IUTestUtil.*;
  */
 public class ComponentCommunicationIntegrationTest
 {
-    static
+    @BeforeClass
+    public static void setupStatic()
     {
         Initializer.initializeIpaacaRsb();
     }
diff --git a/java/test/src/ipaaca/IUTestUtil.java b/java/test/src/ipaaca/IUTestUtil.java
index aca1b2d442fb361174b4a5364e4608a2a8b49206..9d70c30e141ff62f3f4231191688f6d61ec23597 100644
--- a/java/test/src/ipaaca/IUTestUtil.java
+++ b/java/test/src/ipaaca/IUTestUtil.java
@@ -3,9 +3,9 @@ import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInA
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
-import ipaaca.Ipaaca.IU;
-import ipaaca.Ipaaca.LinkSet;
-import ipaaca.Ipaaca.PayloadItem;
+import ipaaca.protobuf.Ipaaca.IU;
+import ipaaca.protobuf.Ipaaca.LinkSet;
+import ipaaca.protobuf.Ipaaca.PayloadItem;
 
 import java.util.Collection;
 import java.util.List;
diff --git a/java/test/src/ipaaca/IuConverterTest.java b/java/test/src/ipaaca/IuConverterTest.java
index 5e2f8ac755ae6c3a42bc63f937f9c8bc62adc247..d1b558ff0bc0191da401c37ea6975dfba98949e4 100644
--- a/java/test/src/ipaaca/IuConverterTest.java
+++ b/java/test/src/ipaaca/IuConverterTest.java
@@ -1,14 +1,15 @@
 package ipaaca;
 
+import ipaaca.protobuf.Ipaaca;
+import ipaaca.protobuf.Ipaaca.IU;
+import ipaaca.protobuf.Ipaaca.IU.AccessMode;
+import ipaaca.protobuf.Ipaaca.LinkSet;
+import ipaaca.protobuf.Ipaaca.PayloadItem;
+
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.List;
 
-import ipaaca.Ipaaca;
-import ipaaca.Ipaaca.IU;
-import ipaaca.Ipaaca.IU.AccessMode;
-import ipaaca.Ipaaca.LinkSet;
-import ipaaca.Ipaaca.PayloadItem;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.*;
 import static org.mockito.Mockito.*;
diff --git a/java/test/src/ipaaca/JavaPythonTest.java b/java/test/src/ipaaca/JavaPythonTest.java
index 18e6150298fceb58d3e30aeac3f08de0870e0656..f046631892eaf4b373fe268d6819c3a7a3f76265 100644
--- a/java/test/src/ipaaca/JavaPythonTest.java
+++ b/java/test/src/ipaaca/JavaPythonTest.java
@@ -11,14 +11,22 @@ import java.io.InputStreamReader;
 import java.util.Set;
 
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 import com.google.common.collect.ImmutableSet;
 
+/**
+ * Integration tests to test the connection between Python and Java Ipaaca modules.
+ * Requires a running spread daemon.
+ * @author hvanwelbergen
+ *
+ */
 public class JavaPythonTest
 {
 
-    static
+    @BeforeClass
+    public static void setupStatic()
     {
         Initializer.initializeIpaacaRsb();
     }
diff --git a/java/test/src/ipaaca/LocalIUTest.java b/java/test/src/ipaaca/LocalIUTest.java
index 61e4db52b35729abdbfad6937b48e41cfe5b1bcf..eb58b6400437c909c9af68bb63ea38317ae17d4d 100644
--- a/java/test/src/ipaaca/LocalIUTest.java
+++ b/java/test/src/ipaaca/LocalIUTest.java
@@ -1,7 +1,7 @@
 package ipaaca;
 
 import static org.junit.Assert.*;
-import ipaaca.Ipaaca.IUPayloadUpdate;
+import ipaaca.protobuf.Ipaaca.IUPayloadUpdate;
 
 import org.junit.Before;
 import org.junit.Test;