Skip to content

Instantly share code, notes, and snippets.

@jatazoulja
Created June 24, 2014 04:22
Show Gist options
  • Save jatazoulja/d339dcec2da5f281a964 to your computer and use it in GitHub Desktop.
Save jatazoulja/d339dcec2da5f281a964 to your computer and use it in GitHub Desktop.
HTML minifier that includes tpl files.
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../apacheds-all-1.5.4.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="library" name="apacheds-all-1.5.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.maven:maven-plugin-api:2.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-io:1.3.2" level="project" />
</component>
</module>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>htmlminify</artifactId>
<groupId>com.asurion.web.htmlminify</groupId>
<version>1.0-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<properties>
<slf4jVersion>1.6.1</slf4jVersion>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</project>
package com.asurion.ama;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
/**
* Created with IntelliJ IDEA.
* User: PeterEman.Abastillas
* Date: 6/23/14
* Time: 1:36 PM
* To change this template use File | Settings | File Templates.
*/
public class FileMinify {
private String rootDirPath;
private String[] fileExt;
private boolean recursive;
private String fileEncoding = "utf-8";
public FileMinify(String rootDir, String[] fileExt) throws IOException {
this.setRootDirPath(rootDir);
this.fileExt = fileExt;
this.recursive = true;
}
public void setRootDirPath(String rootDirPath) throws IOException {
File file = new File(rootDirPath);
this.rootDirPath = file.getCanonicalPath().replaceAll("\\\\", "/").replaceAll("/$", "");
}
public Map<String, String> getFiles() throws IOException {
Map<String, String> map = new HashMap<String, String>();
File rootDir = new File(rootDirPath);
Collection<File> files = FileUtils.listFiles(rootDir, fileExt, recursive);
int truncationIndex = 0;
for (File file : files) {
String normalizedFilePath = file.getCanonicalPath().replaceAll("\\\\", "/");
if (truncationIndex == 0) {
truncationIndex = normalizedFilePath.indexOf(rootDirPath) + rootDirPath.length() + 1;
}
String key = normalizedFilePath.substring(truncationIndex);
String value = FileUtils.readFileToString(file, fileEncoding);
System.out.print("\n [OPENING]: " + key);
System.out.print("\n[FSIZE]: " + file.length());
map.put(key, value);
}
return map;
}
public void writeFiles(Map<String, String> map, String targetDir) throws IOException {
for(String key : map.keySet()) {
File file = new File(targetDir + "/" + key);
FileUtils.writeStringToFile(file, map.get(key), fileEncoding);
}
}
}
package com.asurion.ama;
import java.util.Map;
/**
* Created with IntelliJ IDEA.
* User: PeterEman.Abastillas
* Date: 6/23/14
* Time: 1:36 PM
* To change this template use File | Settings | File Templates.
*/
public class HtmlMinifier {
private static final String[] FILE_EXT = {"htm", "html", "tpl"};
private String srcFolder;
private String[] pattern = {"\n", "\r", "\t", "\\s+"};
private String targetFolder;
private String Logs = "";
public HtmlMinifier(String srcFolder, String targetFolder, String[] pattern) throws Exception {
this.srcFolder = srcFolder;
this.targetFolder = targetFolder;
this.pattern = pattern;
}
public void compress() throws Exception {
String[] fileExt = FILE_EXT;
FileMinify fileTool = new FileMinify(srcFolder, FILE_EXT);
Map<String, String> map = fileTool.getFiles();
System.out.print("\r=============================================================\n");
for(String key : map.keySet()) {
map.put(key, compressHtml(map.get(key)));
}
fileTool.writeFiles(map, targetFolder);
System.out.print("\r=============================================================\n");
}
/**
* Process and minify html string;
* @param htmlString
* @return String
*/
public String compressHtml(String htmlString) {
/*
for( int i = 0; i < pattern.length - 1; i++) {
}
*/
htmlString = htmlString.replaceAll("//.*?s\r\n", "");
htmlString = htmlString.replaceAll("(\\/\\*[\\w\\'\\s\\r\\n\\*]*\\*\\/)|(\\/\\/[\\w\\s\\']*)|(\\<![\\-\\-\\s\\w\\>\\/]*\\>)", "");
htmlString = htmlString.replaceAll("\r\n", "");
htmlString = htmlString.replaceAll("\\s+", " ");
htmlString = htmlString.replaceAll("> <", "><");
htmlString = htmlString.replaceAll("(?s)<!--.*?-->", "");
return htmlString;
}
}
package com.asurion.ama;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
/**
* Created with IntelliJ IDEA.
* User: PeterEman.Abastillas
* Date: 6/23/14
* Time: 1:15 PM
* To change this template use File | Settings | File Templates.
*/
/**
* Goal which touches a timestamp file.
*
* @goal compress
*
* @phase package
*/
public class HtmlMinify extends AbstractMojo {
/**
* @parameter expression="${HtmlMinify.pattern}" default-value="{"\n", "\r", "\t", "\n", "\\s+"}"
*/
private String[] pattern = {"\n", "\r", "\t", "\n", "\\s+"};
/**
* source folder where html files are located.
*
* @parameter expression="${HtmlMinify.srcFolder}" default-value="${basedir}/src/main/webapp"
*/
private String srcFolder = "src/main/webapp";
/**
* target folder where compressed html files will be placed.
*
* @parameter expression="${htmlcompressor.targetFolder}" default-value="${project.build.directory}-work/"
*/
private String targetFolder = "/";
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
//To change body of implemented methods use File | Settings | File Templates.
getLog().info("Initiating minification");
getLog().info("================================================");
getLog().info("Target Directory: " + targetFolder);
getLog().info("Source Directory: " + srcFolder);
getLog().info("================================================");
try {
HtmlMinifier minify = new HtmlMinifier(srcFolder, targetFolder, pattern);
minify.compress();
} catch (Exception e) {
e.printStackTrace();
}
}
}
����1�
+YZ *[
*\ *] *^_
`
abc
'def *gh
Y
ij kl mn mo
'p
'q
'r
is tuv
Yw
x
y
z{|
}
~ � � �l� �
i��� rootDirPathLjava/lang/String;fileExt[Ljava/lang/String; recursiveZ fileEncoding<init>((Ljava/lang/String;[Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethisLcom/asurion/ama/FileMinify;rootDir
Exceptions�setRootDirPath(Ljava/lang/String;)VfileLjava/io/File;getFiles()Ljava/util/Map;normalizedFilePathkeyvaluei$Ljava/util/Iterator;mapLjava/util/Map;filesLjava/util/Collection;truncationIndexILocalVariableTypeTable5Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;&Ljava/util/Collection<Ljava/io/File;>; Signature7()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
writeFiles$(Ljava/util/Map;Ljava/lang/String;)V targetDirJ(Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/lang/String;)V
SourceFileFileMinify.java 3�utf-8 2- => ./ 01 java/io/File 3> ��\\/ ��/$ ,-java/util/HashMap� ��� ��� �� �� �� �� �� ��� ��java/lang/StringBuilder
[OPENING]: �� ��� �>
[FSIZE]: �� ��� �� ���java/lang/String �� ��com/asurion/ama/FileMinifyjava/lang/Objectjava/io/IOException()VgetCanonicalPath()Ljava/lang/String;
replaceAll8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;org/apache/commons/io/FileUtils listFiles:(Ljava/io/File;[Ljava/lang/String;Z)Ljava/util/Collection;java/util/Collectioniterator()Ljava/util/Iterator;java/util/IteratorhasNext()Znext()Ljava/lang/Object;indexOf(Ljava/lang/String;)Ilength()I substring(I)Ljava/lang/String;readFileToString4(Ljava/io/File;Ljava/lang/String;)Ljava/lang/String;java/lang/SystemoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;toStringjava/io/PrintStreamprint()J(J)Ljava/lang/StringBuilder; java/util/Mapput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;keySet()Ljava/util/Set; java/util/Setget&(Ljava/lang/Object;)Ljava/lang/Object;writeStringToFile5(Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)V!*+,-./012-345l*�*�*+�*,�*��6
7 89:-./;<=>5f �Y+�M*,� 
 �  � ��6! "#7  89 ,- ?@;<AB5�
ŻY�L�Y*��M,*�*��N6-�:�����:� 
 � :�*��*��``6�:*��: ��Y����� ��Y�!��"�#�� + �$W��l+�6>'()!*$+B,P.U/j2s3~4�5�6�7�87f
PpC-sMD-~BE- B~?@,�FG�89�HI�:@!�JK$�LMN�HO!�JP;<QRST5�Y+�%�&N-��F-��':�Y�Y�,� ����:+�(�'*��)����6< =A>U?X@7>A?@ 5D- LFGY89YHIYU-N YHO;<QVWX
����1�
%HIJKLM $NO $P $Q $R $ST
U
V WXY
Z[ \] ^_ `a `b \c
$d \e
fg
hijklmnopqFILE_EXT[Ljava/lang/String; srcFolderLjava/lang/String;pattern targetFolderLogs<init>:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethisLcom/asurion/ama/HtmlMinifier;
Exceptionsrcompress()Vkeyi$Ljava/util/Iterator;fileExtfileToolLcom/asurion/ama/FileMinify;mapLjava/util/Map;LocalVariableTypeTable5Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>; compressHtml&(Ljava/lang/String;)Ljava/lang/String;
htmlString<clinit>
SourceFileHtmlMinifier.java -7java/lang/String
  \s+ *' ,) () +) &'com/asurion/ama/FileMinify -s tuv wx? =============================================================
y z{| }~ ��� �� �� �� BC �� ��
�� > <><(?s)<!--.*?-->htmhtmltplcom/asurion/ama/HtmlMinifierjava/lang/Objectjava/lang/Exception((Ljava/lang/String;[Ljava/lang/String;)VgetFiles()Ljava/util/Map;java/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprint(Ljava/lang/String;)V java/util/MapkeySet()Ljava/util/Set; java/util/Setiterator()Ljava/util/Iterator;java/util/IteratorhasNext()Znext()Ljava/lang/Object;get&(Ljava/lang/Object;)Ljava/lang/Object;put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
writeFiles$(Ljava/util/Map;Ljava/lang/String;)V
replaceAll8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;!$%&'()*'+),)-./�6*�*�YSYSYSYS�*� *+�
*,� *-��0 &+051*6236()6+)6*'4567/�p� L� Y*�
� �M,�N��-��:��*��:-*-����W���,-*� ����0&  ! $C%^(g*o+1>C8)-19:p23l;']<=X>?@ X>A45BC/j&+�L+�L+�L+ �L+�03 456$81&23&D)E7//�Y!SY"SY#S� �0 FG
����1]
345678 9: ;< =
>? @ABC
3D
E
FGH
I
JK
LMNpattern[Ljava/lang/String; srcFolderLjava/lang/String; targetFolder<init>()VCodeLineNumberTableLocalVariableTablethisLcom/asurion/ama/HtmlMinify;executeminifyLcom/asurion/ama/HtmlMinifier;eLjava/lang/Exception;
ExceptionsOP
SourceFileHtmlMinify.java "#java/lang/String
  \s+ src/main/webapp  / ! QRInitiating minificationS TU0================================================java/lang/StringBuilderTarget Directory: VW XYSource Directory: com/asurion/ama/HtmlMinifier "Z [#java/lang/Exception \#com/asurion/ama/HtmlMinify$org/apache/maven/plugin/AbstractMojo.org/apache/maven/plugin/MojoExecutionException,org/apache/maven/plugin/MojoFailureExceptiongetLog'()Lorg/apache/maven/plugin/logging/Log;#org/apache/maven/plugin/logging/Loginfo(Ljava/lang/CharSequence;)Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;toString()Ljava/lang/String;:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)VcompressprintStackTrace! ! "#$h2*�*�YSYSYSYSYS�*� *
� �%%!+(& 2'()#$��*�  �*� �*� �Y��*� ���*� �Y��*� ���*� ��Y*� *� *��L+��L+��_wz%. . 0152T3_5s6w9z7{8<& s*+{,-�'(./012
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
<name>htmlminify</name>
<description></description>
<groupId>com.asurion.web.htmlminify</groupId>
<artifactId>htmlminify</artifactId>
<version>1.0-SNAPSHOT</version>
<goalPrefix>htmlminify</goalPrefix>
<isolatedRealm>false</isolatedRealm>
<inheritedByDefault>true</inheritedByDefault>
<mojos>
<mojo>
<goal>compress</goal>
<description>Goal which touches a timestamp file.</description>
<requiresDirectInvocation>false</requiresDirectInvocation>
<requiresProject>true</requiresProject>
<requiresReports>false</requiresReports>
<aggregator>false</aggregator>
<requiresOnline>false</requiresOnline>
<inheritedByDefault>true</inheritedByDefault>
<phase>package</phase>
<implementation>com.asurion.ama.HtmlMinify</implementation>
<language>java</language>
<instantiationStrategy>per-lookup</instantiationStrategy>
<executionStrategy>once-per-session</executionStrategy>
<threadSafe>false</threadSafe>
<parameters>
<parameter>
<name>pattern</name>
<type>java.lang.String[]</type>
<required>false</required>
<editable>true</editable>
<description></description>
</parameter>
<parameter>
<name>srcFolder</name>
<type>java.lang.String</type>
<required>false</required>
<editable>true</editable>
<description>source folder where html files are located.</description>
</parameter>
<parameter>
<name>targetFolder</name>
<type>java.lang.String</type>
<required>false</required>
<editable>true</editable>
<description>target folder where compressed html files will be placed.</description>
</parameter>
</parameters>
<configuration>
<pattern implementation="java.lang.String[]" default-value="{">${HtmlMinify.pattern}</pattern>
<srcFolder implementation="java.lang.String" default-value="${basedir}/src/main/webapp">${HtmlMinify.srcFolder}</srcFolder>
<targetFolder implementation="java.lang.String" default-value="${project.build.directory}-work/">${htmlcompressor.targetFolder}</targetFolder>
</configuration>
</mojo>
</mojos>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<type>jar</type>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<type>jar</type>
<version>1.3.2</version>
</dependency>
</dependencies>
</plugin>
PK
*V�D META-INF/PK
)V�D`%/�t�META-INF/MANIFEST.MF�M��LK-.� K-*��ϳR0�3��r,J��,K-B�V�+�$x���RKRSt�*� �3R|�R�x��J3sJ���%�E���yz�I��%�99���]��l�efz�F@y�PK
*V�Dcom/PK
*V�D com/asurion/PK
*V�Dcom/asurion/ama/PK
*V�DMETA-INF/maven/PK
*V�DI&[�p* com/asurion/ama/FileMinify.class�V�wU��L3�t�%�b�hŴ�ƍ�X������*�t�N2q2A���� ��`�������ߨ��I���z�!o��{�����7���p1�utb$��qt�����,�[4ܪC�!ј1�Ɛ�q�b�b� �:�0������9�E�
lA4����b>J��8[��C�GE3��N�����=b�X��}������<$�yX�#U�๮�� ����D�a�v��Dz�����
�q۱z��
���=+[��K��_�!��;F��h��������!��S�nw�xZc���J�Q��c�:��͚�>ӳż���vQ�����K�Œg��3�;�nz�ר�T��{4k|��S��h�7,�aEH�2,q3���J<:6a�b� ���kɷ��n�@s"�z9ӱ��*��͚RP�tJ<��nSм`g�oy��z�ə�E���˖���XYq5}��Ϛb֗��R�>��p�0K��j݋9X��C7�C�wW�$��a{"o�%��6������wx�oU�nK��.\�7=j$�ߕ�_��ևݒ��ѐ��|�P� \�ǩS���b�t�=.D��E��oe!IO�x� q� �"�)<�Y������Z�8�+hx���8��9�� /x /x�x �xox ox�jx����@���km+�ΘE����z�vޜi5�!>2�1��p��'����;����J��T`>��/𥁯�o4պ0p���+Xu�7[�sp�0�%h�����W�'�b4Q��f���L���5ϦYu��=���Y�j�Q�%䵇�v�ZכH�3;i�y�+ʬ�{�4����ڐIU���ⷿ�L��9l��Ǯ
>�'���$��N��KTu�Ǫ��多��uQ<mQ@��PYV������-%��bi�(�bK_({M�eʊ���@/���?�0Ŧ���cn��Y1w��>7Xf��f�`��t�]g�R�Q�R��ź<�h����Iv���O�-��D�TAW%dE��+�:E�U�������ILdB��C����L��
{ܠ�m�W���&��O'�?��5��:QeϺ(�K�
�U�2�7r氏�_�q
JG�n���2Ԏ Ө�P�=)�nDe����P#V�� �5�LKkp��r@�2��ȑ��WT�w�Ǻ]�a�kbg�ih#���ݱ��xBO4�a$�$���F�|$K%~�8kq��s�[%|7X��������F<�+oqM���h9�e�"����(��A=���lR�f��e�>Y?�f�߁�b�B�/�2�dt>쌶B}g%5qT-A��zh������2�d�ˑ��ĿŪ�8��N�Sƚd�Mk�h]`Y',trn���d,�A[7������H�z(�'7�Ej� ���FZ�(�^
r�)Qd2c:�J2�����+I�,�щ-`;�Ԉ܍k8�� �����Fy�+؁��TVD��'\�>���TF�����]��Q��=��LĶ���PCD͋v������'�&�r�s�+��z]mvtU�� �
Q+,2����$Հc
-�L�3H� |�J�N��#�E^��yu%���n�M��fIv�k͒�z"6J�T��藤����̑
)b���:I�QY ���>�o����PK
*V�D>�ܛ�[ "com/asurion/ama/HtmlMinifier.class�U[WU�Nn3&� J[�b��j/
V�Z �ЫC: C'�q2��[��/o��/�U�Ѕ.]>���~gZ��k����}�����e毻��� �հ'L�xI��*�*���Ŵ�S�yZ�W�xU��� )�&ř$�bVŜ�s8߂ �؂K�܂�aJ1/uE���ȕ%/]UQ���
[�k*e�O���d~����@���y��9f��+�]) $�~q�u�X����@�� ���~�
֭cy�TH �;8��z}�� ��3t6�^����5�T���sޱ$&�h:gLߖ�2,� ݕ/��Y]�m��3�f�dPv���m�Į��,Z^�ӪBVi��V�w�i6z�Z�ؽm5`K���&I� \�B�j;��̀��j�u�}[O�, ��;Ѳ�I.�N���\��u>�M�&�#t����T��YM���v�5\t�%�
�_�$���y@zё���=
���I��PБ��1�~i)���=Ξ Q�`I�u7pS`4u���4t�&�R�w�[:���
>��!>��1>��)>��<�t|�/t|���)M���̺�l�{���m��j�pO6{ 3��2uQ����"x�K��;�xj~�*��Z��u�@�IY0F��O&� �3ݿ�7Vn�XDu�xW��vs��+�G�,�jT �=��f�F���|Ep�
V�UC ơ�jׇ���`�a(��ZN�Y���r�ϱ�pӖ�8�L�-�` S?kn��4mb���>��kӛ�T��y�|�s̢u�q6�~�[�ɸ��ߍ��JűG�W9��3S�����3�9<�}���x3�������;"sQ#Z����\܈�F��%c�+HfV�eWВ�R�S��I�.(���k��J,�����8�N~EA<a$<���p%��p%1F•D�3u���?�#u�w�6��wz�7��2�@���M �b��m�0v��Ȯ�U` m�t�:ck�%�=2r�.�'"����x��5tD�b�������{0K�-�س�N�<��Gl]d�Mv=��c.�O��]��|G�u�G�-Μij8���� C��a�E �8y��,o�2�s�/YQלؔ��(eVy"s�7`�5�U~����Hm�e<Z[t׏~�W�v�q$�נϽ�t/� �B��jՇ�Z�g5jqs!�#Qk��6�ɶy��3t�4J�ENQN��_�PK
*V�D,,e�ai com/asurion/ama/HtmlMinify.class�TmSW~n�MX ]TT� �-eU�@�"T�`��Ҧ��\�kXMv��Ʒ~�����)0��������N��D�ptg��{�y�y����� �Y�X�aL8ob��M\�c�MLi>mbF�+��&���s\7q��l�0qS�9M�M|a�V�q[�/ |U�AT ,�#`�d��(�_y$�J�!���&�ԧ�q�͇�e �;�DFu����f��O�
��F������n.��*�J�
=�X����a6Y�c��/l:2nG~8�)�[I��@�_У��+���k�2�#���U�3��}[Ÿ{�VB0u��Ml�k�P���S󾎪���ڂ��pT``{1���<��Y�Gh�5t���gjI�Z>E�(�������m�͗ Ӵ|O� ���V�̕�ht{�7�~��մmś~��$�^L1�E|g�{Ԩ�(�V5��"��`�.�����@���Z�caTwdKz+��z���h�Y��KqI/Y����z.Z��,p�]��hGj <��TB��di����FX'�;r�������pi�$ή��UO�*�Դ�29N�
�N����h���Q�`&��A�[�1���n��d�Z��yA�[�&n"��U�Eq���j=���*�g<�#.��!=��
z�Ε�!����z�����n���uk9�5윻
�l��ȗ��*�^�����Ȓ�s?�1�p�k�2Nr�G�5�z�^3��k��=�� �e��� j��ض�0X� }dk�ۥ޷��oSw �����j�u U��p�W��zͨ~�3��C���8�:� 鳘d�UL5���L�E�K�3i�EV;f�ef.���N�����>�?G�
ZՕ;�PK
*V�D&[;�+�
META-INF/maven/plugin.xml�V�n�0�#�Ѫ�8�\8�A�
��(���d�u���v�]U�w&N�:�RJ�Kd�y?����__�"٢�\��� v�JP���9^}��.}�z]<�k�5\�(Ir -׊�K^����T�- ׎�yϼ�1����T-�2�+\�����?�q����<�D���(Hz�������y6���
ę��_�<E��q�8�� ���AX̳98�� '���k�+��z���hՅ�~8N��(��6h� ����=Y�� /7�S]�A�@�x��A��� d˨{7v��Ї�&�����[��ÙQD���.�_P+���:��4p�L�Yx�,���tD�o����Xh(/�!�0�s�j�-J7D'>��;���q<Z{��B�l:�]\��,L#ٔO����:zͮ�hR��e�{��1��Ʋ���,1�=X:bdȳ%'��6�:�:8B������;����dhpd�Q�v��C<XF��}�A+��uLv���j�Š;X �3���j$e�m��}ZS�S�B����}Zՙ�� �b��� ��A������X�<)$L����ʠo��"c� ��1�ʿ�Q�E��T��Mg`��x]�y9^-��*��*�nAtx��Y7w����n{~���WZ�sp���Xqs����.3z�A�=a �Ʊ��<E���X�_1ev��2�Y����ReX� ���Q��KN���{ک��(+�8��>`Qy�e��l���E9o}<5�s<%ڰ4_4A�=2{W'4HG�p��{X�|�l
g��}X�HJ�z���%;���OG}hYPK
*V�D*META-INF/maven/com.asurion.web.htmlminify/PK
*V�D5META-INF/maven/com.asurion.web.htmlminify/htmlminify/PK
"V�DS�-�o�<META-INF/maven/com.asurion.web.htmlminify/htmlminify/pom.xml�S�n�0��Q�@U��Q/U+AA��^����������������쬃&G^Zj&�8L@T�2c"�����>��R�����-�8��Frr�E�-���b>�C�*����dtԬ�UU����8�o���V�$bB"Rږk6��v*Sb��?��1�:�`�x��C�!.3Z�}��"��<���mHj�3�5��L�� ��yy)�ʞR����V}mQ����]B�|yX,��+��v����`?�*�����]��T�z�7Y"]l��u��$v0��m��2������l���Lo3��w�����[���b߳mTu6��:A�9~��/�vy\
}�� 3b�� ��M�[��F�m��/�OPK
*V�D�<o�{�CMETA-INF/maven/com.asurion.web.htmlminify/htmlminify/pom.propertiesSvO�K-J,IMQH�T�M,K���R)MU�*�S02Q04�2��2�TvQ0204��*K-*��ϳ5�3� �s ����J/�/-�L�M���K,.-��+OM��(������L���J,*�LKL.*CPK
*V�D �AMETA-INF/PK
)V�D`%/�t���'META-INF/MANIFEST.MFPK
*V�D�A�com/PK
*V�D �A�com/asurion/PK
*V�D�Acom/asurion/ama/PK
*V�D�AGMETA-INF/maven/PK
*V�DI&[�p* ��tcom/asurion/ama/FileMinify.classPK
*V�D>�ܛ�[ "��"com/asurion/ama/HtmlMinifier.classPK
*V�D,,e�ai �� com/asurion/ama/HtmlMinify.classPK
*V�D&[;�+�
���META-INF/maven/plugin.xmlPK
*V�D*��META-INF/maven/com.asurion.web.htmlminify/PK
*V�D5��_META-INF/maven/com.asurion.web.htmlminify/htmlminify/PK
"V�DS�-�o�<���META-INF/maven/com.asurion.web.htmlminify/htmlminify/pom.xmlPK
*V�D�<o�{�C��{META-INF/maven/com.asurion.web.htmlminify/htmlminify/pom.propertiesPK)W
#Generated by Maven
#Tue Jun 24 10:49:19 SGT 2014
version=1.0-SNAPSHOT
groupId=com.asurion.web.htmlminify
artifactId=htmlminify
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment