Relay plugins with version replacing
diff --git a/.idea/ant.xml b/.idea/ant.xml
index bbff687..cceb431 100644
--- a/.idea/ant.xml
+++ b/.idea/ant.xml
@@ -18,5 +18,6 @@
         <property name="dokka.path" value="../../dokka" />
       </properties>
     </buildFile>
+    <buildFile url="file://$PROJECT_DIR$/TeamCityRelay.xml" />
   </component>
 </project>
\ No newline at end of file
diff --git a/TeamCityRelay.xml b/TeamCityRelay.xml
new file mode 100644
index 0000000..b606998
--- /dev/null
+++ b/TeamCityRelay.xml
@@ -0,0 +1,99 @@
+<project name="Change plugins version" default="change-version">
+    <property name="relay.origin.version" value="1.0.0-beta-2423"/>
+    <property name="relay.substitute.version" value="1.0.0-beta-2423-IJ-141-3"/>
+    <property name="relay.plugins.dir" value="artifacts"/>
+    <property name="relay.unpack.directory" value="relay-dir"/>
+
+    <macrodef name="substituteRegexpInFile">
+        <attribute name="src.file"/>
+        <attribute name="output.dir"/>
+        <attribute name="origin.version"/>
+        <attribute name="substituted.version"/>
+        <sequential>
+            <copy todir="@{output.dir}">
+                <fileset file="@{src.file}"/>
+                <filterchain>
+                    <replaceregex pattern="@{origin.version}" replace="@{substituted.version}" />
+                </filterchain>
+            </copy>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="substitudeVersionInPlugin">
+        <attribute name="plugin.path"/>
+        <attribute name="plugin.jar.name"/>
+        <attribute name="origin.version"/>
+        <attribute name="substituted.version"/>
+        <attribute name="plugin.subdir"/>
+
+        <attribute name="output-dir" default="@{substituted.version}"/>
+        <attribute name="output.plugin.file.name" default="@{plugin.jar.name}-@{substituted.version}.zip"/>
+
+        <attribute name="temp.origin.dir" default="${relay.unpack.directory}/@{plugin.jar.name}/plugin-origin"/>
+        <attribute name="temp.substitute.dir" default="${relay.unpack.directory}/@{plugin.jar.name}/substitute"/>
+
+        <sequential>
+            <delete dir="${relay.unpack.directory}/@{plugin.jar.name}"/>
+            <mkdir dir="${relay.unpack.directory}/@{plugin.jar.name}"/>
+
+            <unzip src="@{plugin.path}" dest="@{temp.origin.dir}">
+                <patternset>
+                    <include name="**/lib/@{plugin.jar.name}.jar" />
+                </patternset>
+                <flattenmapper/>
+            </unzip>
+
+            <unzip src="@{temp.origin.dir}/@{plugin.jar.name}.jar" dest="@{temp.origin.dir}">
+                <patternset>
+                    <include name="**/META-INF/plugin.xml" />
+                </patternset>
+                <flattenmapper/>
+            </unzip>
+
+            <substituteRegexpInFile
+                src.file="@{temp.origin.dir}/plugin.xml" output.dir="@{temp.substitute.dir}"
+                origin.version="@{origin.version}" substituted.version="@{substituted.version}"/>
+
+            <!-- Copy updated file back into jar -->
+            <copy file="@{temp.origin.dir}/@{plugin.jar.name}.jar" todir="@{temp.substitute.dir}"/>
+            <jar destfile="@{temp.substitute.dir}/@{plugin.jar.name}.jar" update="true">
+                <zipfileset file="@{temp.substitute.dir}/plugin.xml" prefix="META-INF"/>
+            </jar>
+
+            <!-- Pack updated plugin.jar back to zip file -->
+            <copy file="@{plugin.path}" tofile="@{substituted.version}/@{output.plugin.file.name}"/>
+            <zip destfile="@{substituted.version}/@{output.plugin.file.name}" update="true">
+                <zipfileset file="@{temp.substitute.dir}/@{plugin.jar.name}.jar" prefix="@{plugin.subdir}/lib"/>
+            </zip>
+        </sequential>
+    </macrodef>
+
+    <target name="change-version" description="Repack plugin with other version">
+        <delete dir="${relay.unpack.directory}"/>
+        <delete dir="${relay.substitute.version}"/>
+
+        <mkdir dir="${relay.unpack.directory}"/>
+        <mkdir dir="${relay.substitute.version}"/>
+
+        <substitudeVersionInPlugin
+            plugin.jar.name="kotlin-plugin"
+            plugin.path="${relay.plugins.dir}/kotlin-plugin-${relay.origin.version}.zip"
+            origin.version="${relay.origin.version}"
+            plugin.subdir="Kotlin"
+            substituted.version="${relay.substitute.version}"/>
+
+        <substitudeVersionInPlugin
+            plugin.jar.name="kotlin-bare-plugin"
+            plugin.path="${relay.plugins.dir}/kotlin-bare-plugin-${relay.origin.version}.zip"
+            origin.version="${relay.origin.version}"
+            plugin.subdir="BareKotlin"
+            substituted.version="${relay.substitute.version}"/>
+
+        <substitudeVersionInPlugin
+            plugin.jar.name="kotlin-android-extensions"
+            plugin.path="${relay.plugins.dir}/kotlin-android-extensions-plugin-${relay.origin.version}.zip"
+            origin.version="${relay.origin.version}"
+            plugin.subdir="KotlinAndroidExtensions"
+            substituted.version="${relay.substitute.version}"/>
+    </target>
+</project>
\ No newline at end of file