返回列表 上一筆 下一筆

目前格式:HTML/XML

🧾 資料內容 (HTML/XML)

----old

<?xml version="1.0" encoding="UTF-8"?>



<project>



	<!--

	Default lifecycle (23 Phase) : validate -> compile -> Test -> package -> verify -> install -> deploy -> (finish)

	Command format : mvn or mvnw goals [-Dpackaging.type=war,jar] [-Dspring-boot.run.profiles=dev] [-Pprod] [....]



	Maven Command :

	mvn or mvnw



	Monitor :

	*Note* skip process

	[-q]



	Arguments :

	*Note* optional

	[-Dpackaging.type=war,jar] [-Dspring-boot.run.profiles=dev] [-Dit.skip=false] [-Pprod] [....]



	Packaging :

	arg : pom, war, jar

	[-Dpackaging.type=war,jar]



	Tests :

	arg : true, false

	*Note* testing

	[-Dit.skip=false]

	*Note* none testing

	[-Dit.skip=true]



	Profile :

	arg : default, sit-external, uat-external, prod-external

	*Note* package or install



	EX : mvn package -Dit.skip=true -Dpackaging.type=jar -Pprod-external



	System :

	*Note* Delete the dependency package of the current project in the local warehouse

	mvn dependency:purge-local-repository

	mvn dependency:purge-local-repository -DreResolve=false

	mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false



	Environment :

	mvn -version

	mvn -h

	mvn archetype:generate

	mvn wrapper:wrapper

	mvn dependency:tree



	Execution :

	mvn compile [war:war] [jar:jar]

	mvn test

	mvn assembly or mvn assembly:single

	mvn package

	mvn install [-Dpackaging.type=war,jar] [-Pdev -DprofileIdEnabled=true] or mvn install -N ( build a project without building it's sub-modules )

	mvn tomcat:run

	mvn source:jar

	mvn javadoc:javadoc

	mvn javadoc:jar

	mvn exec:exec

	mvn site or mvn site:site

	mvn verify [-Dit.skip=false]

	mvn -X install > C:/java-workspace/teamwalk-web-app/my_error.log



	Spring Boot :

	*Note* Springboot plugin limited use parameters :[-Dspring-boot.run.profiles=XXX]

	mvn package spring-boot:repackage

	mvn -X spring-boot:start > C:/java-workspace/teamwalk-web-app/error.log

	mvn [-q] spring-boot:run [-Dspring-boot.run.profiles=XXX]

	mvn clean package spring-boot:repackage



	Executable file ( Use Spring Boot Plugin ) :

	Jar :

	*Note* spring.profiles.active : default, sit, uat, prod

	java -jar -Dspring.profiles.active=dev teamwalk-api-0.0.1-SNAPSHOT.jar



	War :

	*Note* spring.profiles.active : default, sit, uat, prod

	java -jar -Dspring.profiles.active=XXX teamwalk-api-0.0.1-SNAPSHOT.war



	-->

	<modelVersion>4.0.0</modelVersion>



	<artifactId>teamwalk-api</artifactId>

	<version>2.X-SNAPSHOT</version>

	<name>teamwalk-api</name>

	<description>teamwalk of taiwanlife - api</description>

	<!-- FIXME change it to the project's website -->

	<!--<url>http://maven.apache.org</url>-->



	<packaging>${packaging.type}</packaging>



	<parent>

		<groupId>com.taiwanlife.teamwalk</groupId>

		<artifactId>teamwalk-web-app</artifactId>

		<version>2.X-SNAPSHOT</version>

		<relativePath>../../pom.xml</relativePath>

	</parent>



	<properties>

		<mainClassName>com.taiwanlife.teamwalk.api.Application</mainClassName>



        <timestamp>${maven.build.timestamp}</timestamp>

        <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format>

	</properties>



	<build>



		<!-- compile, package, spring-boot:run -->

		<defaultGoal>spring-boot:run</defaultGoal>

		<finalName>teamwalk-api</finalName>



		<plugins>



			<plugin>

				<artifactId>maven-clean-plugin</artifactId>

				<executions>

					<execution>

						<id>auto-clean</id>

						<phase>initialize</phase>

						<goals>

							<goal>clean</goal>

						</goals>

					</execution>

				</executions>

				<configuration>

			    	<filesets>

			        	<fileset>

			          		<directory>${basedir}/output</directory>

			          		<includes>

			            		<include>*.*</include>

			          		</includes>

			          		<followSymlinks>false</followSymlinks>

			        	</fileset>

			      	</filesets>

			    </configuration>

			</plugin>



			<plugin>

				<artifactId>maven-resources-plugin</artifactId>

				<executions>



					<execution>

						<phase>compile</phase>

					</execution>



					<execution>

		                <id>copy-resources</id>

		                <phase>validate</phase>

		                <goals>

		                    <goal>copy-resources</goal>

		                </goals>

		                <configuration>

		                    <resources>

		                        <resource>

		                            <directory>src/main/resources</directory>

		                            <filtering>true</filtering>

		                        </resource>

		                    </resources>

							<outputDirectory>${project.build.directory}/resources</outputDirectory>

		                </configuration>

		            </execution>



		            <execution>

                        <id>package-prepare</id>

                        <!-- here the phase you need -->

                        <phase>generate-sources</phase>

                        <goals>

                            <goal>copy-resources</goal>

                        </goals>

                        <configuration>

                            <overwrite>true</overwrite>

                            <resources>

                                <resource>

                                    <directory>configs/resources/${package.environment}</directory>

                                </resource>

                            </resources>

                            <outputDirectory>src/main/resources/config</outputDirectory>

                        </configuration>

                    </execution>



				</executions>

				<configuration>

					<tasks>

		            	<echo>parse resources</echo>

		            </tasks>

					<encoding>${project.encoding}</encoding>

					<useDefaultDelimiters>false</useDefaultDelimiters>

					<delimiters>

						<delimiter>${resource.delimiter}</delimiter>

					</delimiters>

				</configuration>

			</plugin>



			<plugin>

				<artifactId>maven-compiler-plugin</artifactId>

				<configuration>

					<release>${java.version}</release>

					<encoding>${project.build.sourceEncoding}</encoding>

				</configuration>

			</plugin>



			<plugin>

				<artifactId>maven-jar-plugin</artifactId>

				<executions>

					<execution>

						<id>base-jar</id>

						<!--<phase>compile</phase>

						<goals>

							<goal>jar</goal>

						</goals>-->

					</execution>

				</executions>

				<configuration>

			       	<archive>

			           	<manifest>

			               	<mainClass>${mainClassName}</mainClass>

			               	<addClasspath>true</addClasspath>

			               	<classpathPrefix>lib/</classpathPrefix>

			           	</manifest>

			       	</archive>

			   	</configuration>

			</plugin>



			<plugin>

				<artifactId>maven-war-plugin</artifactId>

				<configuration>

					<!--<warName>${project.artifactId}-${project.version}.${project.packaging}</warName>-->

					<packagingExcludes>

					    WEB-INF/lib/tomcat-embed-*.jar,

					    WEB-INF/lib/swagger-*.jar,

					    WEB-INF/lib/springdoc-openapi-*.jar,

						WEB-INF/lib/webjars-locator-core-*.jar,

						WEB-INF/lib/jackson-dataformat-yaml-*.jar,

						WEB-INF/lib/classgraph-*.jar

					</packagingExcludes>

					<!--<includeEmptyDirs>true</includeEmptyDirs>-->

					<webXml>src/main/webapp/WEB-INF/web.xml</webXml>

					<filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>

				</configuration>

			</plugin>



			<plugin>

                <artifactId>maven-assembly-plugin</artifactId>

                <configuration>

				   <archive>

                        <manifest>

                            <mainClass>${mainClassName}</mainClass>

                            <!--<manifestFile>META-INF/MANIFEST.MF</manifestFile>-->

                        </manifest>

                    </archive>

					<finalName>${project.artifactId}-${project.version}</finalName>

                    <descriptorRefs>

                        <descriptorRef>jar-with-dependencies</descriptorRef>

                    </descriptorRefs>

                </configuration>

            </plugin>



			<plugin>

				<artifactId>maven-source-plugin</artifactId>

				<executions>

					<execution>

						<id>attach-sources</id>

						<phase>verify</phase>

						<goals>

							<goal>jar-no-fork</goal>

						</goals>

					</execution>

				</executions>

			</plugin>



			<plugin>

				<artifactId>maven-failsafe-plugin</artifactId>

				<configuration>

					<skip>${it.skip}</skip>

				</configuration>

			</plugin>



			<plugin>

				<artifactId>maven-install-plugin</artifactId>

				<executions>

					<execution>

						<id>install-component</id>

						<!--<phase>package</phase>-->

						<phase>install</phase>

						<goals>

							<goal>install-file</goal>

						</goals>

						<configuration>

							<artifactId>${project.artifactId}</artifactId>

							<groupId>${project.groupId}</groupId>

							<version>${project.version}</version>

							<packaging>${project.packaging}</packaging>

							<createChecksum>true</createChecksum>

							<file>${project.build.directory}/${project.artifactId}-${project.version}.${project.packaging}</file>

						</configuration>

					</execution>

				</executions>

			</plugin>



			<plugin>

				<groupId>org.apache.maven.plugins</groupId>

				<artifactId>maven-dependency-plugin</artifactId>

				<executions>

					<execution>

				    	<id>copy-artifact</id>

				      	<phase>install</phase>

				      	<goals>

				        	<goal>copy</goal>

				      	</goals>

				      	<configuration>

				        	<artifactItems>

				            	<artifactItem>

				                	<groupId>${project.groupId}</groupId>

				                    <artifactId>${project.artifactId}</artifactId>

				                    <version>${project.version}</version>

				                    <type>${project.packaging}</type>

				                    <outputDirectory>${session.executionRootDirectory}/output/</outputDirectory>

				                </artifactItem>

				           	</artifactItems>

				      	</configuration>

					</execution>

				</executions>

			</plugin>



			<plugin>

				<artifactId>maven-deploy-plugin</artifactId>

				<executions>

					<execution>

						<id>deploy-moudle</id>

						<phase>deploy</phase>

						<goals>

							<goal>deploy-file</goal>

						</goals>

						<configuration>

							<generatePom>true</generatePom>

							<artifactId>${project.artifactId}</artifactId>

							<groupId>${project.groupId}</groupId>

							<version>${project.version}</version>

							<packaging>${project.packaging}</packaging>

							<repositoryId>${project.distributionManagement.repository.id}</repositoryId>

							<url>${project.distributionManagement.repository.url}</url>

							<file>${project.build.directory}/${project.artifactId}-${project.version}.${project.packaging}</file>

						</configuration>

					</execution>

				</executions>

			</plugin>



			<plugin>

				<artifactId>maven-project-info-reports-plugin</artifactId>

				<executions>

					<execution>

						<id>test-showing-the-execution-id</id>

						<phase>clean</phase>

						<goals>

							<goal>dependency-info</goal>

							<goal>dependencies</goal>

						</goals>

					</execution>

				</executions>

			</plugin>



			<!-- Spring Boot -->

			<!-- Command : -Dspring-boot.run.profiles=? -->

			<!-- Mansun 不需要repackage 參考下面網址 -->

			<!-- https://stackoverflow.com/questions/43641664/why-spring-boot-generates-jar-or-war-file-with-original-extension -->

			<!--

			<plugin>

				<groupId>org.springframework.boot</groupId>

				<artifactId>spring-boot-maven-plugin</artifactId>

				<executions>



					<execution>

						<id>repackage-moudle</id>

						<goals>

							<goal>repackage</goal>

						</goals>

					</execution>



					<execution>

						<id>pre-integration-test</id>

						<goals>

							<goal>start</goal>

						</goals>

						<configuration>

							<skip>${it.skip}</skip>

						</configuration>

					</execution>



					<execution>

						<id>post-integration-test</id>

						<goals>

							<goal>stop</goal>

						</goals>

						<configuration>

							<skip>${it.skip}</skip>

						</configuration>

					</execution>



				</executions>



				<configuration>

				    <mainClass>none</mainClass>

					<addResources>true</addResources>

					<includeSystemScope>true</includeSystemScope>

					<jmxPort>${jmx.port}</jmxPort>

				</configuration>



			</plugin>

			-->



			<!--<plugin>

				<groupId>org.springdoc</groupId>

				<artifactId>springdoc-openapi-maven-plugin</artifactId>

				<version>0.2</version>

				<executions>

					<execution>

						<id>generate-doc</id>

						<phase>integration-test</phase>

						<goals>

							<goal>generate</goal>

						</goals>

					</execution>

				</executions>

				<configuration>

					<apiDocsUrl>http://localhost:8080/v3/api-docs</apiDocsUrl>

					<outputFileName>openapi.json</outputFileName>

					<outputDir>${project.build.directory}</outputDir>

				</configuration>

			</plugin>

			-->

		</plugins>



		<pluginManagement>

			<plugins/>

		</pluginManagement>



		<resources>



			<resource>

                <directory>src/main/resources/</directory>

				<filtering>false</filtering>

				<excludes>

					<exclude>**/bootstrap-*.yml</exclude>

					<exclude>**/application-*.yml</exclude>

					<exclude>**/bootstrap-*.properties</exclude>

					<exclude>**/application-*.properties</exclude>

				</excludes>

            </resource>



			<resource>

                <directory>src/main/resources/</directory>

				<filtering>true</filtering>

				<includes>

					<include>**/logback-spring.xml</include>

					<include>**/bootstrap.yml</include>

					<include>**/bootstrap-${maven.profiles.active:default}.yml</include>

					<include>**/application.yml</include>

					<include>**/application-${maven.profiles.active:default}.yml</include>

					<include>**/bootstrap.properties</include>

					<include>**/bootstrap-${maven.profiles.active:default}.properties</include>

					<include>**/application.properties</include>

					<include>**/application-${maven.profiles.active:default}.properties</include>

				</includes>

            </resource>



        </resources>



		<testResources>



			<testResource>

                <directory>src/test/resources/</directory>

				<filtering>false</filtering>

				<excludes>

					<exclude>**/bootstrap-*.yml</exclude>

					<exclude>**/application-*.yml</exclude>

					<exclude>**/bootstrap-*.properties</exclude>

					<exclude>**/application-*.properties</exclude>

				</excludes>

			</testResource>



			<testResource>

                <directory>src/test/resources/</directory>

				<filtering>true</filtering>

				<includes>

					<include>**/logback-spring.xml</include>

					<include>**/bootstrap.yml</include>

					<include>**/bootstrap-${maven.profiles.active:default}.yml</include>

					<include>**/application.yml</include>

					<include>**/application-${maven.profiles.active:default}.yml</include>

					<include>**/bootstrap.properties</include>

					<include>**/bootstrap-${maven.profiles.active:default}.properties</include>

					<include>**/application.properties</include>

					<include>**/application-${maven.profiles.active:default}.properties</include>

				</includes>

            </testResource>



		</testResources>



	</build>



	<!--

	<pluginRepositories>



        <pluginRepository>

            <id>spring-snapshots</id>

            <name>Spring Snapshots</name>

            <url>https://repo.spring.io/snapshot</url>

			<releases>

				<enabled>true</enabled>

            </releases>

            <snapshots>

                <enabled>true</enabled>

            </snapshots>

        </pluginRepository>



        <pluginRepository>

            <id>spring-milestones</id>

            <name>Spring Milestones</name>

            <url>https://repo.spring.io/milestone</url>

        </pluginRepository>



    </pluginRepositories>



	<repositories>



		<repository>

			<id>mvnrepository-releases</id>

			<name>mvnrepository</name>

			<url>https://www.ebi.ac.uk/intact/maven/nexus/content/repositories/public</url>

			<releases>

				<enabled>true</enabled>

            </releases>

			<snapshots>

				<enabled>false</enabled>

			</snapshots>

		</repository>



        <repository>

            <id>spring-snapshots</id>

            <name>Spring Snapshots</name>

            <url>https://repo.spring.io/snapshot</url>

            <snapshots>

                <enabled>true</enabled>

            </snapshots>

        </repository>



        <repository>

            <id>spring-milestones</id>

            <name>Spring Milestones</name>

            <url>https://repo.spring.io/milestone</url>

        </repository>



		<repository>

			<id>jitpack.io</id>

			<url>https://jitpack.io</url>

		</repository>



    </repositories>

	-->



	<repositories>

		<repository>

			<id>central</id>

            <name>Central Repository</name>

			<url>https://nexus.taiwanlife.com/repository/taiwanlife-teamwalk</url>

			<releases>

				<enabled>true</enabled>

			</releases>

			<snapshots>

				<enabled>false</enabled>

			</snapshots>

		</repository>

    </repositories>



	<dependencies>



		<!-- Sub Module -->

		<dependency>

			<groupId>${project.groupId}</groupId>

			<artifactId>teamwalk-common</artifactId>

		</dependency>



		<!-- Spring Framework -->

		<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->

		<dependency>

			<groupId>org.springframework.boot</groupId>

			<artifactId>spring-boot-starter-web</artifactId>

			<!--

			<exclusions>



                <exclusion>

                    <groupId>org.springframework.boot</groupId>

                    <artifactId>spring-boot-starter-logging</artifactId>

                </exclusion>



                <exclusion>

				  <groupId>org.springframework.boot</groupId>

				  <artifactId>spring-boot-starter-tomcat</artifactId>

				</exclusion>



            </exclusions>

			-->

		</dependency>



		<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-actuator -->

		<!--<dependency>

			<groupId>org.springframework.boot</groupId>

			<artifactId>spring-boot-starter-actuator</artifactId>

			<exclusions>

				<exclusion>

					<groupId>com.fasterxml.jackson.core</groupId>

					<artifactId>jackson-databind</artifactId>

				</exclusion>

			</exclusions>

		</dependency>

		-->

		<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-security -->

		<dependency>

		    <groupId>org.springframework.boot</groupId>

		    <artifactId>spring-boot-starter-security</artifactId>

		</dependency>



		<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa -->

		<dependency>

			<groupId>org.springframework.boot</groupId>

			<artifactId>spring-boot-starter-data-jpa</artifactId>

			<scope>compile</scope>

		</dependency>



		<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-hateoas -->

		<dependency>

		    <groupId>org.springframework.boot</groupId>

		    <artifactId>spring-boot-starter-hateoas</artifactId>

		</dependency>



		<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools -->

		<!--<dependency>

			<groupId>org.springframework.boot</groupId>

			<artifactId>spring-boot-devtools</artifactId>

			<optional>true</optional>

			<scope>provided</scope>

		</dependency>

		-->



		<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-tomcat -->

		<!--

		<dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-tomcat</artifactId>

            <scope>provided</scope>

        </dependency>

		-->



		<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test -->

		<dependency>

			<groupId>org.springframework.boot</groupId>

			<artifactId>spring-boot-starter-test</artifactId>

			<scope>test</scope>

			<exclusions>

				<exclusion>

					<groupId>org.junit.vintage</groupId>

					<artifactId>junit-vintage-engine</artifactId>

				</exclusion>

			</exclusions>

		</dependency>





		<!-- Spring -->

		<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-cas -->

		<dependency>

		    <groupId>org.springframework.security</groupId>

		    <artifactId>spring-security-cas</artifactId>

		</dependency>



		<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-test -->

		<dependency>

            <groupId>org.springframework.security</groupId>

            <artifactId>spring-security-test</artifactId>

            <scope>test</scope>

        </dependency>



		<!-- https://mvnrepository.com/artifact/org.springframework.retry/spring-retry -->

		<dependency>

		    <groupId>org.springframework.retry</groupId>

		    <artifactId>spring-retry</artifactId>

		</dependency>



		<!-- https://mvnrepository.com/artifact/org.springframework/spring-oxm -->

		<dependency>

			<groupId>org.springframework</groupId>

			<artifactId>spring-oxm</artifactId>

		</dependency>



		<!-- Javax -->

		<!-- https://mvnrepository.com/artifact/javax.validation/validation-api

		<dependency>

			<groupId>javax.validation</groupId>

			<artifactId>validation-api</artifactId>

		</dependency>

		 -->



		<!-- https://mvnrepository.com/artifact/jakarta.validation/jakarta.validation-api -->

		<dependency>

		    <groupId>jakarta.validation</groupId>

		    <artifactId>jakarta.validation-api</artifactId>

		</dependency>



		<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager -->

		<!--<dependency>

		    <groupId>org.hibernate</groupId>

		    <artifactId>hibernate-entitymanager</artifactId>

		    <version>5.4.17.Final</version>

		</dependency>-->



		<!-- Hibernate -->

		<!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->

		<dependency>

			<groupId>org.hibernate.validator</groupId>

			<artifactId>hibernate-validator</artifactId>

		</dependency>



		<!-- Apache Commons -->

		<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->

		<dependency>

			<groupId>org.apache.commons</groupId>

			<artifactId>commons-lang3</artifactId>

		</dependency>



		<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient

		<dependency>

		    <groupId>org.apache.httpcomponents</groupId>

		    <artifactId>httpclient</artifactId>

		</dependency>

		 -->

		<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents.client5/httpclient5 -->

		<dependency>

		    <groupId>org.apache.httpcomponents.client5</groupId>

		    <artifactId>httpclient5</artifactId>

		</dependency>



		<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->

		<dependency>

		    <groupId>com.microsoft.sqlserver</groupId>

		    <artifactId>mssql-jdbc</artifactId>

			<version>9.4.1.jre8</version>

		</dependency>



		<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->

		<dependency>

			<groupId>org.projectlombok</groupId>

			<artifactId>lombok</artifactId>

			<scope>provided</scope>

			<version>1.18.20</version>

		</dependency>



		<!-- https://mvnrepository.com/artifact/com.fasterxml/jackson-xml-databind -->

<!--		<dependency>-->

<!--          	<groupId>com.fasterxml.jackson.core</groupId>-->

<!--          	<artifactId>jackson-databind</artifactId>-->

<!--          	<version>2.11.0</version>-->

<!--		</dependency>-->



		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml -->

		<dependency>

		    <groupId>com.fasterxml.jackson.dataformat</groupId>

		    <artifactId>jackson-dataformat-xml</artifactId>

		</dependency>



		<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->

		<dependency>

			<groupId>com.google.code.gson</groupId>

			<artifactId>gson</artifactId>

		</dependency>



		<!-- https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt -->

		<dependency>

		    <groupId>io.jsonwebtoken</groupId>

		    <artifactId>jjwt</artifactId>

		    <version>0.9.1</version>

		</dependency>



		<!-- Firebase -->

		<dependency>

			<groupId>com.google.firebase</groupId>

			<artifactId>firebase-admin</artifactId>

			<version>9.4.1</version>

		</dependency>



		<!-- google api -->

		<dependency>

			<groupId>com.google.oauth-client</groupId>

			<artifactId>google-oauth-client</artifactId>

			<version>1.30.4</version>

		</dependency>



		<dependency>

			<groupId>com.google.oauth-client</groupId>

			<artifactId>google-oauth-client-java6</artifactId>

			<version>1.30.4</version>

		</dependency>

		<dependency>

			<groupId>com.alibaba</groupId>

			<artifactId>fastjson</artifactId>

			<version>1.2.73</version>

		</dependency>

		<dependency>

			<groupId>cn.hutool</groupId>

			<artifactId>hutool-all</artifactId>

			<version>5.2.3</version>

		</dependency>



		<!-- JUnit -->

		<!-- https://mvnrepository.com/artifact/junit/junit -->

		<dependency>

			<groupId>junit</groupId>

			<artifactId>junit</artifactId>

			<scope>test</scope>

		</dependency>



		<dependency>

            <groupId>org.reactivestreams</groupId>

            <artifactId>reactive-streams</artifactId>

            <version>1.0.3</version>

        </dependency>



		<dependency>

            <groupId>com.github.ulisesbocchio</groupId>

            <artifactId>jasypt-spring-boot-starter</artifactId>

            <version>3.0.3</version>

        </dependency>



		<dependency>

            <groupId>com.twlife.biometrics</groupId>

            <artifactId>biometrics-rp-util</artifactId>

            <version>1.0.0</version>

        </dependency>



        <dependency>

			<groupId>com.ibm.informix</groupId>

			<artifactId>jdbc</artifactId>

			<version>4.50.3</version>

		</dependency>



	    <dependency>

            <groupId>commons-io</groupId>

            <artifactId>commons-io</artifactId>

            <version>2.8.0</version>

        </dependency>



		<!-- https://mvnrepository.com/artifact/org.opencv/opencv -->

		<dependency>

		    <groupId>org.opencv</groupId>

		    <artifactId>opencv</artifactId>

		    <version>4.11.0</version>

		</dependency>



		<!-- https://mvnrepository.com/artifact/com.drewnoakes/metadata-extractor -->

		<dependency>

		    <groupId>com.drewnoakes</groupId>

		    <artifactId>metadata-extractor</artifactId>

		    <version>2.12.0</version>

		</dependency>



		<!-- https://mvnrepository.com/artifact/com.adobe.xmp/xmpcore -->

		<dependency>

		    <groupId>com.adobe.xmp</groupId>

		    <artifactId>xmpcore</artifactId>

		    <version>6.0.6</version>

		</dependency>



        <dependency>

            <groupId>net.java.dev.jna</groupId>

            <artifactId>jna</artifactId>

            <version>5.9.0</version>

        </dependency>



		<dependency>

            <groupId>com.github.ziplet</groupId>

            <artifactId>ziplet</artifactId>

            <version>2.4.1</version>

        </dependency>



		<dependency>

            <groupId>org.apache.logging.log4j</groupId>

            <artifactId>log4j-api</artifactId>

			<version>2.24.3</version>

        </dependency>



		<!-- https://mvnrepository.com/artifact/org.slf4j/log4j-over-slf4j -->

		<dependency>

			<groupId>org.slf4j</groupId>

			<artifactId>log4j-over-slf4j</artifactId>

			<version>2.0.16</version>

		</dependency>



		<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->

		<dependency>

			<groupId>org.slf4j</groupId>

			<artifactId>slf4j-api</artifactId>

			<version>2.0.16</version>

		</dependency>



		<dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-activemq</artifactId>

			<version>3.4.2</version>

        </dependency>



		<dependency>

            <groupId>org.apache.activemq</groupId>

            <artifactId>activemq-broker</artifactId>

			<version>6.1.5</version>

        </dependency>



        <dependency>

            <groupId>org.apache.activemq</groupId>

            <artifactId>activemq-client</artifactId>

			<version>6.1.5</version>

        </dependency>



		<dependency>

            <groupId>ch.qos.logback</groupId>

            <artifactId>logback-classic</artifactId>

            <version>1.5.16</version>

        </dependency>



		<dependency>

            <groupId>ch.qos.logback</groupId>

            <artifactId>logback-core</artifactId>

            <version>1.5.16</version>

        </dependency>

	</dependencies>



	<!-- Construction procedure -->

	<profiles>



		<profile>

			<id>default</id>



			<activation>

	            <activeByDefault>true</activeByDefault>

				<property>

                    <name>env</name>

                    <value>default</value>

                </property>

	        </activation>



			<properties>

				<maven.profiles.active:default>default</maven.profiles.active:default>

            	<maven.app.name>${project.name}</maven.app.name>

            	<maven.app.version>${project.version}</maven.app.version>

				<maven.app.packagingType:war>${packaging.type}</maven.app.packagingType:war>

        	</properties>



			<dependencies/>



			<build>

				<filters>

					<filter>${basedir}/configs/resources/application.yml</filter>

                </filters>

            </build>

		</profile>



		<profile>

			<id>sit-external</id>



			<activation>

	            <activeByDefault>false</activeByDefault>

				<property>

                    <name>env</name>

                    <value>sit-external</value>

                </property>

	        </activation>



			<properties>

				<package.environment>sit</package.environment>

				<maven.profiles.active:default>sit-external</maven.profiles.active:default>

            	<maven.app.name>${project.name}</maven.app.name>

            	<maven.app.version>${project.version}</maven.app.version>

				<maven.app.packagingType:war>${packaging.type}</maven.app.packagingType:war>

        	</properties>



			<dependencies/>



			<build>

				<filters>

                    <filter>${basedir}/configs/resources/application-sit-external.yml</filter>

                </filters>

            </build>

		</profile>



		<profile>

			<id>uat-external</id>



			<activation>

	            <activeByDefault>false</activeByDefault>

				<property>

                    <name>env</name>

                    <value>uat-external</value>

                </property>

	        </activation>



			<properties>

				<package.environment>uat</package.environment>

				<maven.profiles.active:default>uat-external</maven.profiles.active:default>

            	<maven.app.name>${project.name}</maven.app.name>

            	<maven.app.version>${project.version}</maven.app.version>

				<maven.app.packagingType:war>${packaging.type}</maven.app.packagingType:war>

        	</properties>



			<dependencies/>



			<build>

				<filters>

                    <filter>${basedir}/configs/resources/application-uat-external.yml</filter>

                </filters>

            </build>

		</profile>



		<profile>

			<id>prod-external</id>



			<activation>

	            <activeByDefault>false</activeByDefault>

				<property>

                    <name>env</name>

                    <value>prod-external</value>

                </property>

	        </activation>



			<properties>

				<package.environment>prod</package.environment>

				<maven.profiles.active:default>prod-external</maven.profiles.active:default>

            	<maven.app.name>${project.name}</maven.app.name>

            	<maven.app.version>${project.version}</maven.app.version>

				<maven.app.packagingType:war>${packaging.type}</maven.app.packagingType:war>

        	</properties>



			<dependencies/>



			<build>

				<filters>

                    <filter>${basedir}/configs/resources/application-prod-external.yml</filter>

                </filters>

            </build>

		</profile>



	</profiles>



	<reporting>

		<plugins/>

	</reporting>



	<distributionManagement>



		<repository>

			<id>local-repository</id>

			<name>Local Release Repository</name>

			<url>file:${project.basedir}/repository/</url>

			<!--<url>http://127.0.0.1:8080/nexus/content/repositories/releases/</url>-->

        </repository>



		<snapshotRepository>

			<id>local-snapshots</id>

			<name>Local Snapshot Repository</name>

			<url>file:${project.basedir}/repository/</url>

			<!--<url>http://127.0.0.1:8080/nexus/content/repositories/snapshots/</url>-->

		</snapshotRepository>



    </distributionManagement>



</project>

🔐 Base64 編碼內容

LS0tLW9sZAoKPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KCgoKPHByb2plY3Q+CgoJCgoJPCEtLQoKCURlZmF1bHQgbGlmZWN5Y2xlICgyMyBQaGFzZSkgOiB2YWxpZGF0ZSAtPiBjb21waWxlIC0+IFRlc3QgLT4gcGFja2FnZSAtPiB2ZXJpZnkgLT4gaW5zdGFsbCAtPiBkZXBsb3kgLT4gKGZpbmlzaCkKCglDb21tYW5kIGZvcm1hdCA6IG12biBvciBtdm53IGdvYWxzIFstRHBhY2thZ2luZy50eXBlPXdhcixqYXJdIFstRHNwcmluZy1ib290LnJ1bi5wcm9maWxlcz1kZXZdIFstUHByb2RdIFsuLi4uXQoKCQoKCU1hdmVuIENvbW1hbmQgOgoKCW12biBvciBtdm53CgoJCgoJTW9uaXRvciA6CgoJKk5vdGUqIHNraXAgcHJvY2VzcwoKCVstcV0KCgkKCglBcmd1bWVudHMgOgoKCSpOb3RlKiBvcHRpb25hbAoKCVstRHBhY2thZ2luZy50eXBlPXdhcixqYXJdIFstRHNwcmluZy1ib290LnJ1bi5wcm9maWxlcz1kZXZdIFstRGl0LnNraXA9ZmFsc2VdIFstUHByb2RdIFsuLi4uXQoKCQoKCVBhY2thZ2luZyA6CgoJYXJnIDogcG9tLCB3YXIsIGphcgoKCVstRHBhY2thZ2luZy50eXBlPXdhcixqYXJdCgoJCgoJVGVzdHMgOgoKCWFyZyA6IHRydWUsIGZhbHNlCgoJKk5vdGUqIHRlc3RpbmcKCglbLURpdC5za2lwPWZhbHNlXQoKCSpOb3RlKiBub25lIHRlc3RpbmcKCglbLURpdC5za2lwPXRydWVdCgoJCgoJUHJvZmlsZSA6CgoJYXJnIDogZGVmYXVsdCwgc2l0LWV4dGVybmFsLCB1YXQtZXh0ZXJuYWwsIHByb2QtZXh0ZXJuYWwKCgkqTm90ZSogcGFja2FnZSBvciBpbnN0YWxsCgoJCgoJRVggOiBtdm4gcGFja2FnZSAtRGl0LnNraXA9dHJ1ZSAtRHBhY2thZ2luZy50eXBlPWphciAtUHByb2QtZXh0ZXJuYWwKCgkKCglTeXN0ZW0gOgoKCSpOb3RlKiBEZWxldGUgdGhlIGRlcGVuZGVuY3kgcGFja2FnZSBvZiB0aGUgY3VycmVudCBwcm9qZWN0IGluIHRoZSBsb2NhbCB3YXJlaG91c2UKCgltdm4gZGVwZW5kZW5jeTpwdXJnZS1sb2NhbC1yZXBvc2l0b3J5CgoJbXZuIGRlcGVuZGVuY3k6cHVyZ2UtbG9jYWwtcmVwb3NpdG9yeSAtRHJlUmVzb2x2ZT1mYWxzZQoKCW12biBkZXBlbmRlbmN5OnB1cmdlLWxvY2FsLXJlcG9zaXRvcnkgLURhY3RUcmFuc2l0aXZlbHk9ZmFsc2UgLURyZVJlc29sdmU9ZmFsc2UKCgkKCglFbnZpcm9ubWVudCA6CgoJbXZuIC12ZXJzaW9uCgoJbXZuIC1oCgoJbXZuIGFyY2hldHlwZTpnZW5lcmF0ZQoKCW12biB3cmFwcGVyOndyYXBwZXIKCgltdm4gZGVwZW5kZW5jeTp0cmVlCgoJCgoJRXhlY3V0aW9uIDoKCgltdm4gY29tcGlsZSBbd2FyOndhcl0gW2phcjpqYXJdIAoKCW12biB0ZXN0CgoJbXZuIGFzc2VtYmx5IG9yIG12biBhc3NlbWJseTpzaW5nbGUKCgltdm4gcGFja2FnZQoKCW12biBpbnN0YWxsIFstRHBhY2thZ2luZy50eXBlPXdhcixqYXJdIFstUGRldiAtRHByb2ZpbGVJZEVuYWJsZWQ9dHJ1ZV0gb3IgbXZuIGluc3RhbGwgLU4gKCBidWlsZCBhIHByb2plY3Qgd2l0aG91dCBidWlsZGluZyBpdCdzIHN1Yi1tb2R1bGVzICkKCgltdm4gdG9tY2F0OnJ1bgoKCW12biBzb3VyY2U6amFyCgoJbXZuIGphdmFkb2M6amF2YWRvYwoKCW12biBqYXZhZG9jOmphcgoKCW12biBleGVjOmV4ZWMKCgltdm4gc2l0ZSBvciBtdm4gc2l0ZTpzaXRlCgoJbXZuIHZlcmlmeSBbLURpdC5za2lwPWZhbHNlXQoKCW12biAtWCBpbnN0YWxsID4gQzovamF2YS13b3Jrc3BhY2UvdGVhbXdhbGstd2ViLWFwcC9teV9lcnJvci5sb2cKCgkKCglTcHJpbmcgQm9vdCA6CgoJKk5vdGUqIFNwcmluZ2Jvb3QgcGx1Z2luIGxpbWl0ZWQgdXNlIHBhcmFtZXRlcnMgOlstRHNwcmluZy1ib290LnJ1bi5wcm9maWxlcz1YWFhdCgoJbXZuIHBhY2thZ2Ugc3ByaW5nLWJvb3Q6cmVwYWNrYWdlCgoJbXZuIC1YIHNwcmluZy1ib290OnN0YXJ0ID4gQzovamF2YS13b3Jrc3BhY2UvdGVhbXdhbGstd2ViLWFwcC9lcnJvci5sb2cKCgltdm4gWy1xXSBzcHJpbmctYm9vdDpydW4gWy1Ec3ByaW5nLWJvb3QucnVuLnByb2ZpbGVzPVhYWF0KCgltdm4gY2xlYW4gcGFja2FnZSBzcHJpbmctYm9vdDpyZXBhY2thZ2UgCgoJCgoJRXhlY3V0YWJsZSBmaWxlICggVXNlIFNwcmluZyBCb290IFBsdWdpbiApIDoKCglKYXIgOgoKCSpOb3RlKiBzcHJpbmcucHJvZmlsZXMuYWN0aXZlIDogZGVmYXVsdCwgc2l0LCB1YXQsIHByb2QKCglqYXZhIC1qYXIgLURzcHJpbmcucHJvZmlsZXMuYWN0aXZlPWRldiB0ZWFtd2Fsay1hcGktMC4wLjEtU05BUFNIT1QuamFyCgoJCgoJV2FyIDoKCgkqTm90ZSogc3ByaW5nLnByb2ZpbGVzLmFjdGl2ZSA6IGRlZmF1bHQsIHNpdCwgdWF0LCBwcm9kCgoJamF2YSAtamFyIC1Ec3ByaW5nLnByb2ZpbGVzLmFjdGl2ZT1YWFggdGVhbXdhbGstYXBpLTAuMC4xLVNOQVBTSE9ULndhcgoKCQoKCS0tPgoKCTxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KCgkKCgk8YXJ0aWZhY3RJZD50ZWFtd2Fsay1hcGk8L2FydGlmYWN0SWQ+CgoJPHZlcnNpb24+Mi5YLVNOQVBTSE9UPC92ZXJzaW9uPgoKCTxuYW1lPnRlYW13YWxrLWFwaTwvbmFtZT4KCgk8ZGVzY3JpcHRpb24+dGVhbXdhbGsgb2YgdGFpd2FubGlmZSAtIGFwaTwvZGVzY3JpcHRpb24+CgoJPCEtLSBGSVhNRSBjaGFuZ2UgaXQgdG8gdGhlIHByb2plY3QncyB3ZWJzaXRlIC0tPgoKCTwhLS08dXJsPmh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnPC91cmw+LS0+CgoJCgoJPHBhY2thZ2luZz4ke3BhY2thZ2luZy50eXBlfTwvcGFja2FnaW5nPgoKCQoKCTxwYXJlbnQ+CgoJCTxncm91cElkPmNvbS50YWl3YW5saWZlLnRlYW13YWxrPC9ncm91cElkPgoKCQk8YXJ0aWZhY3RJZD50ZWFtd2Fsay13ZWItYXBwPC9hcnRpZmFjdElkPgoKCQk8dmVyc2lvbj4yLlgtU05BUFNIT1Q8L3ZlcnNpb24+CgoJCTxyZWxhdGl2ZVBhdGg+Li4vLi4vcG9tLnhtbDwvcmVsYXRpdmVQYXRoPgoKCTwvcGFyZW50PgoKCQoKCTxwcm9wZXJ0aWVzPgoKCQk8bWFpbkNsYXNzTmFtZT5jb20udGFpd2FubGlmZS50ZWFtd2Fsay5hcGkuQXBwbGljYXRpb248L21haW5DbGFzc05hbWU+CgoKCiAgICAgICAgPHRpbWVzdGFtcD4ke21hdmVuLmJ1aWxkLnRpbWVzdGFtcH08L3RpbWVzdGFtcD4KCiAgICAgICAgPG1hdmVuLmJ1aWxkLnRpbWVzdGFtcC5mb3JtYXQ+eXl5eS1NTS1kZCBISDptbTpzczwvbWF2ZW4uYnVpbGQudGltZXN0YW1wLmZvcm1hdD4KCgk8L3Byb3BlcnRpZXM+CgoJCgoJPGJ1aWxkPgoKCQkKCgkJPCEtLSBjb21waWxlLCBwYWNrYWdlLCBzcHJpbmctYm9vdDpydW4gLS0+CgoJCTxkZWZhdWx0R29hbD5zcHJpbmctYm9vdDpydW48L2RlZmF1bHRHb2FsPgoKCQk8ZmluYWxOYW1lPnRlYW13YWxrLWFwaTwvZmluYWxOYW1lPgoKCQkKCgkJPHBsdWdpbnM+CgoJCQoKCQkJPHBsdWdpbj4KCgkJCQk8YXJ0aWZhY3RJZD5tYXZlbi1jbGVhbi1wbHVnaW48L2FydGlmYWN0SWQ+CgoJCQkJPGV4ZWN1dGlvbnM+CgoJCQkJCTxleGVjdXRpb24+CgoJCQkJCQk8aWQ+YXV0by1jbGVhbjwvaWQ+CgoJCQkJCQk8cGhhc2U+aW5pdGlhbGl6ZTwvcGhhc2U+CgoJCQkJCQk8Z29hbHM+CgoJCQkJCQkJPGdvYWw+Y2xlYW48L2dvYWw+CgoJCQkJCQk8L2dvYWxzPgoKCQkJCQk8L2V4ZWN1dGlvbj4KCgkJCQk8L2V4ZWN1dGlvbnM+CgoJCQkJPGNvbmZpZ3VyYXRpb24+CgoJCQkgICAgCTxmaWxlc2V0cz4KCgkJCSAgICAgICAgCTxmaWxlc2V0PgoKCQkJICAgICAgICAgIAkJPGRpcmVjdG9yeT4ke2Jhc2VkaXJ9L291dHB1dDwvZGlyZWN0b3J5PgoKCQkJICAgICAgICAgIAkJPGluY2x1ZGVzPgoKCQkJICAgICAgICAgICAgCQk8aW5jbHVkZT4qLio8L2luY2x1ZGU+CgoJCQkgICAgICAgICAgCQk8L2luY2x1ZGVzPgoKCQkJICAgICAgICAgIAkJPGZvbGxvd1N5bWxpbmtzPmZhbHNlPC9mb2xsb3dTeW1saW5rcz4KCgkJCSAgICAgICAgCTwvZmlsZXNldD4KCgkJCSAgICAgIAk8L2ZpbGVzZXRzPgoKCQkJICAgIDwvY29uZmlndXJhdGlvbj4KCgkJCTwvcGx1Z2luPgoKCQkJCgoJCQk8cGx1Z2luPgoKCQkJCTxhcnRpZmFjdElkPm1hdmVuLXJlc291cmNlcy1wbHVnaW48L2FydGlmYWN0SWQ+CgoJCQkJPGV4ZWN1dGlvbnM+CgoJCQkJCQoKCQkJCQk8ZXhlY3V0aW9uPgoKCQkJCQkJPHBoYXNlPmNvbXBpbGU8L3BoYXNlPgoKCQkJCQk8L2V4ZWN1dGlvbj4KCgkJCQkJCgoJCQkJCTxleGVjdXRpb24+CgoJCSAgICAgICAgICAgICAgICA8aWQ+Y29weS1yZXNvdXJjZXM8L2lkPiAgCgoJCSAgICAgICAgICAgICAgICA8cGhhc2U+dmFsaWRhdGU8L3BoYXNlPiAgCgoJCSAgICAgICAgICAgICAgICA8Z29hbHM+ICAKCgkJICAgICAgICAgICAgICAgICAgICA8Z29hbD5jb3B5LXJlc291cmNlczwvZ29hbD4gIAoKCQkgICAgICAgICAgICAgICAgPC9nb2Fscz4KCgkJICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgoKCQkgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZXM+CgoJCSAgICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT4KCgkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXJlY3Rvcnk+c3JjL21haW4vcmVzb3VyY2VzPC9kaXJlY3Rvcnk+CgoJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyaW5nPnRydWU8L2ZpbHRlcmluZz4KCgkJICAgICAgICAgICAgICAgICAgICAgICAgPC9yZXNvdXJjZT4KCgkJICAgICAgICAgICAgICAgICAgICA8L3Jlc291cmNlcz4KCgkJCQkJCQk8b3V0cHV0RGlyZWN0b3J5PiR7cHJvamVjdC5idWlsZC5kaXJlY3Rvcnl9L3Jlc291cmNlczwvb3V0cHV0RGlyZWN0b3J5PgoKCQkgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgoKCQkgICAgICAgICAgICA8L2V4ZWN1dGlvbj4KCgoKCQkgICAgICAgICAgICA8ZXhlY3V0aW9uPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGlkPnBhY2thZ2UtcHJlcGFyZTwvaWQ+CgogICAgICAgICAgICAgICAgICAgICAgICA8IS0tIGhlcmUgdGhlIHBoYXNlIHlvdSBuZWVkIC0tPgoKICAgICAgICAgICAgICAgICAgICAgICAgPHBoYXNlPmdlbmVyYXRlLXNvdXJjZXM8L3BoYXNlPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWxzPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnb2FsPmNvcHktcmVzb3VyY2VzPC9nb2FsPgoKICAgICAgICAgICAgICAgICAgICAgICAgPC9nb2Fscz4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvdmVyd3JpdGU+dHJ1ZTwvb3ZlcndyaXRlPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZXM+ICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyZWN0b3J5PmNvbmZpZ3MvcmVzb3VyY2VzLyR7cGFja2FnZS5lbnZpcm9ubWVudH08L2RpcmVjdG9yeT4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZXNvdXJjZT4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Jlc291cmNlcz4gICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvdXRwdXREaXJlY3Rvcnk+c3JjL21haW4vcmVzb3VyY2VzL2NvbmZpZzwvb3V0cHV0RGlyZWN0b3J5PgoKICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPiAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4KCgkJICAgICAgICAgICAgCgoJCQkJPC9leGVjdXRpb25zPgoKCQkJCTxjb25maWd1cmF0aW9uPgoKCQkJCQk8dGFza3M+CgoJCSAgICAgICAgICAgIAk8ZWNobz5wYXJzZSByZXNvdXJjZXM8L2VjaG8+CgoJCSAgICAgICAgICAgIDwvdGFza3M+CgoJCQkJCTxlbmNvZGluZz4ke3Byb2plY3QuZW5jb2Rpbmd9PC9lbmNvZGluZz4KCgkJCQkJPHVzZURlZmF1bHREZWxpbWl0ZXJzPmZhbHNlPC91c2VEZWZhdWx0RGVsaW1pdGVycz4KCgkJCQkJPGRlbGltaXRlcnM+CgoJCQkJCQk8ZGVsaW1pdGVyPiR7cmVzb3VyY2UuZGVsaW1pdGVyfTwvZGVsaW1pdGVyPgoKCQkJCQk8L2RlbGltaXRlcnM+CgoJCQkJPC9jb25maWd1cmF0aW9uPgoKCQkJPC9wbHVnaW4+CgoJCQkKCgkJCTxwbHVnaW4+CgoJCQkJPGFydGlmYWN0SWQ+bWF2ZW4tY29tcGlsZXItcGx1Z2luPC9hcnRpZmFjdElkPgoKCQkJCTxjb25maWd1cmF0aW9uPgoKCQkJCQk8cmVsZWFzZT4ke2phdmEudmVyc2lvbn08L3JlbGVhc2U+CgoJCQkJCTxlbmNvZGluZz4ke3Byb2plY3QuYnVpbGQuc291cmNlRW5jb2Rpbmd9PC9lbmNvZGluZz4KCgkJCQk8L2NvbmZpZ3VyYXRpb24+CgoJCQk8L3BsdWdpbj4JCQkKCgkJCQoKCQkJPHBsdWdpbj4KCgkJCQk8YXJ0aWZhY3RJZD5tYXZlbi1qYXItcGx1Z2luPC9hcnRpZmFjdElkPgoKCQkJCTxleGVjdXRpb25zPgoKCQkJCQk8ZXhlY3V0aW9uPgoKCQkJCQkJPGlkPmJhc2UtamFyPC9pZD4KCgkJCQkJCTwhLS08cGhhc2U+Y29tcGlsZTwvcGhhc2U+CgoJCQkJCQk8Z29hbHM+CgoJCQkJCQkJPGdvYWw+amFyPC9nb2FsPgoKCQkJCQkJPC9nb2Fscz4tLT4KCgkJCQkJPC9leGVjdXRpb24+CgoJCQkJPC9leGVjdXRpb25zPgoKCQkJCTxjb25maWd1cmF0aW9uPgoKCQkJICAgICAgIAk8YXJjaGl2ZT4KCgkJCSAgICAgICAgICAgCTxtYW5pZmVzdD4KCgkJCSAgICAgICAgICAgICAgIAk8bWFpbkNsYXNzPiR7bWFpbkNsYXNzTmFtZX08L21haW5DbGFzcz4KCgkJCSAgICAgICAgICAgICAgIAk8YWRkQ2xhc3NwYXRoPnRydWU8L2FkZENsYXNzcGF0aD4KCgkJCSAgICAgICAgICAgICAgIAk8Y2xhc3NwYXRoUHJlZml4PmxpYi88L2NsYXNzcGF0aFByZWZpeD4KCgkJCSAgICAgICAgICAgCTwvbWFuaWZlc3Q+CgoJCQkgICAgICAgCTwvYXJjaGl2ZT4KCgkJCSAgIAk8L2NvbmZpZ3VyYXRpb24+CgoJCQk8L3BsdWdpbj4KCgkJCQoKCQkJPHBsdWdpbj4KCgkJCQk8YXJ0aWZhY3RJZD5tYXZlbi13YXItcGx1Z2luPC9hcnRpZmFjdElkPgoKCQkJCTxjb25maWd1cmF0aW9uPgoKCQkJCQk8IS0tPHdhck5hbWU+JHtwcm9qZWN0LmFydGlmYWN0SWR9LSR7cHJvamVjdC52ZXJzaW9ufS4ke3Byb2plY3QucGFja2FnaW5nfTwvd2FyTmFtZT4tLT4KCgkJCQkJPHBhY2thZ2luZ0V4Y2x1ZGVzPgoKCQkJCQkgICAgV0VCLUlORi9saWIvdG9tY2F0LWVtYmVkLSouamFyLAoKCQkJCQkgICAgV0VCLUlORi9saWIvc3dhZ2dlci0qLmphciwKCgkJCQkJICAgIFdFQi1JTkYvbGliL3NwcmluZ2RvYy1vcGVuYXBpLSouamFyLAoKCQkJCQkJV0VCLUlORi9saWIvd2ViamFycy1sb2NhdG9yLWNvcmUtKi5qYXIsCgoJCQkJCQlXRUItSU5GL2xpYi9qYWNrc29uLWRhdGFmb3JtYXQteWFtbC0qLmphciwKCgkJCQkJCVdFQi1JTkYvbGliL2NsYXNzZ3JhcGgtKi5qYXIKCgkJCQkJPC9wYWNrYWdpbmdFeGNsdWRlcz4KCgkJCQkJPCEtLTxpbmNsdWRlRW1wdHlEaXJzPnRydWU8L2luY2x1ZGVFbXB0eURpcnM+LS0+CgoJCQkJCTx3ZWJYbWw+c3JjL21haW4vd2ViYXBwL1dFQi1JTkYvd2ViLnhtbDwvd2ViWG1sPgoKCQkJCQk8ZmlsdGVyaW5nRGVwbG95bWVudERlc2NyaXB0b3JzPnRydWU8L2ZpbHRlcmluZ0RlcGxveW1lbnREZXNjcmlwdG9ycz4KCgkJCQk8L2NvbmZpZ3VyYXRpb24+CgoJCQk8L3BsdWdpbj4KCgkJCQoKCQkJPHBsdWdpbj4KCiAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1hc3NlbWJseS1wbHVnaW48L2FydGlmYWN0SWQ+CgogICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CgoJCQkJICAgPGFyY2hpdmU+CgogICAgICAgICAgICAgICAgICAgICAgICA8bWFuaWZlc3Q+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1haW5DbGFzcz4ke21haW5DbGFzc05hbWV9PC9tYWluQ2xhc3M+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLTxtYW5pZmVzdEZpbGU+TUVUQS1JTkYvTUFOSUZFU1QuTUY8L21hbmlmZXN0RmlsZT4tLT4KCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWFuaWZlc3Q+CgogICAgICAgICAgICAgICAgICAgIDwvYXJjaGl2ZT4KCgkJCQkJPGZpbmFsTmFtZT4ke3Byb2plY3QuYXJ0aWZhY3RJZH0tJHtwcm9qZWN0LnZlcnNpb259PC9maW5hbE5hbWU+CgogICAgICAgICAgICAgICAgICAgIDxkZXNjcmlwdG9yUmVmcz4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkZXNjcmlwdG9yUmVmPmphci13aXRoLWRlcGVuZGVuY2llczwvZGVzY3JpcHRvclJlZj4KCiAgICAgICAgICAgICAgICAgICAgPC9kZXNjcmlwdG9yUmVmcz4KCiAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CgogICAgICAgICAgICA8L3BsdWdpbj4KCiAgICAgICAgICAgIAoKCQkJPHBsdWdpbj4KCgkJCQk8YXJ0aWZhY3RJZD5tYXZlbi1zb3VyY2UtcGx1Z2luPC9hcnRpZmFjdElkPgoKCQkJCTxleGVjdXRpb25zPgoKCQkJCQk8ZXhlY3V0aW9uPgoKCQkJCQkJPGlkPmF0dGFjaC1zb3VyY2VzPC9pZD4KCgkJCQkJCTxwaGFzZT52ZXJpZnk8L3BoYXNlPgoKCQkJCQkJPGdvYWxzPgoKCQkJCQkJCTxnb2FsPmphci1uby1mb3JrPC9nb2FsPgoKCQkJCQkJPC9nb2Fscz4KCgkJCQkJPC9leGVjdXRpb24+CgoJCQkJPC9leGVjdXRpb25zPgoKCQkJPC9wbHVnaW4+CgoJCQkKCgkJCTxwbHVnaW4+CgoJCQkJPGFydGlmYWN0SWQ+bWF2ZW4tZmFpbHNhZmUtcGx1Z2luPC9hcnRpZmFjdElkPgoKCQkJCTxjb25maWd1cmF0aW9uPgoKCQkJCQk8c2tpcD4ke2l0LnNraXB9PC9za2lwPgoKCQkJCTwvY29uZmlndXJhdGlvbj4KCgkJCTwvcGx1Z2luPgoKCQkJCgoJCQk8cGx1Z2luPgoKCQkJCTxhcnRpZmFjdElkPm1hdmVuLWluc3RhbGwtcGx1Z2luPC9hcnRpZmFjdElkPgoKCQkJCTxleGVjdXRpb25zPgoKCQkJCQk8ZXhlY3V0aW9uPgoKCQkJCQkJPGlkPmluc3RhbGwtY29tcG9uZW50PC9pZD4KCgkJCQkJCTwhLS08cGhhc2U+cGFja2FnZTwvcGhhc2U+LS0+CgoJCQkJCQk8cGhhc2U+aW5zdGFsbDwvcGhhc2U+CgoJCQkJCQk8Z29hbHM+CgoJCQkJCQkJPGdvYWw+aW5zdGFsbC1maWxlPC9nb2FsPgoKCQkJCQkJPC9nb2Fscz4KCgkJCQkJCTxjb25maWd1cmF0aW9uPgoKCQkJCQkJCTxhcnRpZmFjdElkPiR7cHJvamVjdC5hcnRpZmFjdElkfTwvYXJ0aWZhY3RJZD4KCgkJCQkJCQk8Z3JvdXBJZD4ke3Byb2plY3QuZ3JvdXBJZH08L2dyb3VwSWQ+CgoJCQkJCQkJPHZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC92ZXJzaW9uPgoKCQkJCQkJCTxwYWNrYWdpbmc+JHtwcm9qZWN0LnBhY2thZ2luZ308L3BhY2thZ2luZz4KCgkJCQkJCQk8Y3JlYXRlQ2hlY2tzdW0+dHJ1ZTwvY3JlYXRlQ2hlY2tzdW0+CgoJCQkJCQkJPGZpbGU+JHtwcm9qZWN0LmJ1aWxkLmRpcmVjdG9yeX0vJHtwcm9qZWN0LmFydGlmYWN0SWR9LSR7cHJvamVjdC52ZXJzaW9ufS4ke3Byb2plY3QucGFja2FnaW5nfTwvZmlsZT4KCgkJCQkJCTwvY29uZmlndXJhdGlvbj4KCgkJCQkJPC9leGVjdXRpb24+CgoJCQkJPC9leGVjdXRpb25zPgoKCQkJPC9wbHVnaW4+CgoJCQkKCgkJCTxwbHVnaW4+CgoJCQkJPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgoKCQkJCTxhcnRpZmFjdElkPm1hdmVuLWRlcGVuZGVuY3ktcGx1Z2luPC9hcnRpZmFjdElkPgoKCQkJCTxleGVjdXRpb25zPgoKCQkJCQk8ZXhlY3V0aW9uPgoKCQkJCSAgICAJPGlkPmNvcHktYXJ0aWZhY3Q8L2lkPgoKCQkJCSAgICAgIAk8cGhhc2U+aW5zdGFsbDwvcGhhc2U+CgoJCQkJICAgICAgCTxnb2Fscz4KCgkJCQkgICAgICAgIAk8Z29hbD5jb3B5PC9nb2FsPgoKCQkJCSAgICAgIAk8L2dvYWxzPgoKCQkJCSAgICAgIAk8Y29uZmlndXJhdGlvbj4KCgkJCQkgICAgICAgIAk8YXJ0aWZhY3RJdGVtcz4KCgkJCQkgICAgICAgICAgICAJPGFydGlmYWN0SXRlbT4KCgkJCQkgICAgICAgICAgICAgICAgCTxncm91cElkPiR7cHJvamVjdC5ncm91cElkfTwvZ3JvdXBJZD4KCgkJCQkgICAgICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPiR7cHJvamVjdC5hcnRpZmFjdElkfTwvYXJ0aWZhY3RJZD4KCgkJCQkgICAgICAgICAgICAgICAgICAgIDx2ZXJzaW9uPiR7cHJvamVjdC52ZXJzaW9ufTwvdmVyc2lvbj4KCgkJCQkgICAgICAgICAgICAgICAgICAgIDx0eXBlPiR7cHJvamVjdC5wYWNrYWdpbmd9PC90eXBlPgoKCQkJCSAgICAgICAgICAgICAgICAgICAgPG91dHB1dERpcmVjdG9yeT4ke3Nlc3Npb24uZXhlY3V0aW9uUm9vdERpcmVjdG9yeX0vb3V0cHV0Lzwvb3V0cHV0RGlyZWN0b3J5PgoKCQkJCSAgICAgICAgICAgICAgICA8L2FydGlmYWN0SXRlbT4gCgoJCQkJICAgICAgICAgICAJPC9hcnRpZmFjdEl0ZW1zPgoKCQkJCSAgICAgIAk8L2NvbmZpZ3VyYXRpb24+CgoJCQkJCTwvZXhlY3V0aW9uPgoKCQkJCTwvZXhlY3V0aW9ucz4KCgkJCTwvcGx1Z2luPgoKCQkJCgoJCQk8cGx1Z2luPgoKCQkJCTxhcnRpZmFjdElkPm1hdmVuLWRlcGxveS1wbHVnaW48L2FydGlmYWN0SWQ+CgoJCQkJPGV4ZWN1dGlvbnM+CgoJCQkJCTxleGVjdXRpb24+CgoJCQkJCQk8aWQ+ZGVwbG95LW1vdWRsZTwvaWQ+CgoJCQkJCQk8cGhhc2U+ZGVwbG95PC9waGFzZT4KCgkJCQkJCTxnb2Fscz4KCgkJCQkJCQk8Z29hbD5kZXBsb3ktZmlsZTwvZ29hbD4KCgkJCQkJCTwvZ29hbHM+CgoJCQkJCQk8Y29uZmlndXJhdGlvbj4KCgkJCQkJCQk8Z2VuZXJhdGVQb20+dHJ1ZTwvZ2VuZXJhdGVQb20+CgoJCQkJCQkJPGFydGlmYWN0SWQ+JHtwcm9qZWN0LmFydGlmYWN0SWR9PC9hcnRpZmFjdElkPgoKCQkJCQkJCTxncm91cElkPiR7cHJvamVjdC5ncm91cElkfTwvZ3JvdXBJZD4KCgkJCQkJCQk8dmVyc2lvbj4ke3Byb2plY3QudmVyc2lvbn08L3ZlcnNpb24+CgoJCQkJCQkJPHBhY2thZ2luZz4ke3Byb2plY3QucGFja2FnaW5nfTwvcGFja2FnaW5nPgoKCQkJCQkJCTxyZXBvc2l0b3J5SWQ+JHtwcm9qZWN0LmRpc3RyaWJ1dGlvbk1hbmFnZW1lbnQucmVwb3NpdG9yeS5pZH08L3JlcG9zaXRvcnlJZD4KCgkJCQkJCQk8dXJsPiR7cHJvamVjdC5kaXN0cmlidXRpb25NYW5hZ2VtZW50LnJlcG9zaXRvcnkudXJsfTwvdXJsPgoKCQkJCQkJCTxmaWxlPiR7cHJvamVjdC5idWlsZC5kaXJlY3Rvcnl9LyR7cHJvamVjdC5hcnRpZmFjdElkfS0ke3Byb2plY3QudmVyc2lvbn0uJHtwcm9qZWN0LnBhY2thZ2luZ308L2ZpbGU+CgoJCQkJCQk8L2NvbmZpZ3VyYXRpb24+CgoJCQkJCTwvZXhlY3V0aW9uPgoKCQkJCTwvZXhlY3V0aW9ucz4KCgkJCTwvcGx1Z2luPgoKCQkJCgoJCQk8cGx1Z2luPgoKCQkJCTxhcnRpZmFjdElkPm1hdmVuLXByb2plY3QtaW5mby1yZXBvcnRzLXBsdWdpbjwvYXJ0aWZhY3RJZD4KCgkJCQk8ZXhlY3V0aW9ucz4KCgkJCQkJPGV4ZWN1dGlvbj4KCgkJCQkJCTxpZD50ZXN0LXNob3dpbmctdGhlLWV4ZWN1dGlvbi1pZDwvaWQ+CgoJCQkJCQk8cGhhc2U+Y2xlYW48L3BoYXNlPgoKCQkJCQkJPGdvYWxzPgoKCQkJCQkJCTxnb2FsPmRlcGVuZGVuY3ktaW5mbzwvZ29hbD4KCgkJCQkJCQk8Z29hbD5kZXBlbmRlbmNpZXM8L2dvYWw+CgoJCQkJCQk8L2dvYWxzPgoKCQkJCQk8L2V4ZWN1dGlvbj4KCgkJCQk8L2V4ZWN1dGlvbnM+CgoJCQk8L3BsdWdpbj4JCQkKCgkJCQoKCQkJPCEtLSBTcHJpbmcgQm9vdCAtLT4KCgkJCTwhLS0gQ29tbWFuZCA6IC1Ec3ByaW5nLWJvb3QucnVuLnByb2ZpbGVzPT8gLS0+CgoJCQk8IS0tIE1hbnN1biDkuI3pnIDopoFyZXBhY2thZ2Ug5Y+D6ICD5LiL6Z2i57ay5Z2AIC0tPgoKCQkJPCEtLSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80MzY0MTY2NC93aHktc3ByaW5nLWJvb3QtZ2VuZXJhdGVzLWphci1vci13YXItZmlsZS13aXRoLW9yaWdpbmFsLWV4dGVuc2lvbiAtLT4KCgkJCTwhLS0KCgkJCTxwbHVnaW4+CgoJCQkJPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgoKCQkJCTxhcnRpZmFjdElkPnNwcmluZy1ib290LW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KCgkJCQk8ZXhlY3V0aW9ucz4KCgkJCQkJCgoJCQkJCTxleGVjdXRpb24+CgoJCQkJCQk8aWQ+cmVwYWNrYWdlLW1vdWRsZTwvaWQ+CgoJCQkJCQk8Z29hbHM+CgoJCQkJCQkJPGdvYWw+cmVwYWNrYWdlPC9nb2FsPgoKCQkJCQkJPC9nb2Fscz4KCgkJCQkJPC9leGVjdXRpb24+CgoJCQkJCQoKCQkJCQk8ZXhlY3V0aW9uPgoKCQkJCQkJPGlkPnByZS1pbnRlZ3JhdGlvbi10ZXN0PC9pZD4KCgkJCQkJCTxnb2Fscz4KCgkJCQkJCQk8Z29hbD5zdGFydDwvZ29hbD4KCgkJCQkJCTwvZ29hbHM+CgoJCQkJCQk8Y29uZmlndXJhdGlvbj4KCgkJCQkJCQk8c2tpcD4ke2l0LnNraXB9PC9za2lwPgoKCQkJCQkJPC9jb25maWd1cmF0aW9uPgoKCQkJCQk8L2V4ZWN1dGlvbj4KCgkJCQkJCgoJCQkJCTxleGVjdXRpb24+CgoJCQkJCQk8aWQ+cG9zdC1pbnRlZ3JhdGlvbi10ZXN0PC9pZD4KCgkJCQkJCTxnb2Fscz4KCgkJCQkJCQk8Z29hbD5zdG9wPC9nb2FsPgoKCQkJCQkJPC9nb2Fscz4KCgkJCQkJCTxjb25maWd1cmF0aW9uPgoKCQkJCQkJCTxza2lwPiR7aXQuc2tpcH08L3NraXA+CgoJCQkJCQk8L2NvbmZpZ3VyYXRpb24+CgoJCQkJCTwvZXhlY3V0aW9uPgoKCQkJCQkKCgkJCQk8L2V4ZWN1dGlvbnM+CgoJCQkJCgoJCQkJPGNvbmZpZ3VyYXRpb24+CgoJCQkJICAgIDxtYWluQ2xhc3M+bm9uZTwvbWFpbkNsYXNzPgoKCQkJCQk8YWRkUmVzb3VyY2VzPnRydWU8L2FkZFJlc291cmNlcz4KCgkJCQkJPGluY2x1ZGVTeXN0ZW1TY29wZT50cnVlPC9pbmNsdWRlU3lzdGVtU2NvcGU+CgoJCQkJCTxqbXhQb3J0PiR7am14LnBvcnR9PC9qbXhQb3J0PgoKCQkJCTwvY29uZmlndXJhdGlvbj4KCgkJCQkKCgkJCTwvcGx1Z2luPgoKCQkJLS0+CgoJCQkKCgkJCTwhLS08cGx1Z2luPgoKCQkJCTxncm91cElkPm9yZy5zcHJpbmdkb2M8L2dyb3VwSWQ+CgoJCQkJPGFydGlmYWN0SWQ+c3ByaW5nZG9jLW9wZW5hcGktbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPgoKCQkJCTx2ZXJzaW9uPjAuMjwvdmVyc2lvbj4KCgkJCQk8ZXhlY3V0aW9ucz4KCgkJCQkJPGV4ZWN1dGlvbj4KCgkJCQkJCTxpZD5nZW5lcmF0ZS1kb2M8L2lkPgoKCQkJCQkJPHBoYXNlPmludGVncmF0aW9uLXRlc3Q8L3BoYXNlPgoKCQkJCQkJPGdvYWxzPgoKCQkJCQkJCTxnb2FsPmdlbmVyYXRlPC9nb2FsPgoKCQkJCQkJPC9nb2Fscz4KCgkJCQkJPC9leGVjdXRpb24+CgoJCQkJPC9leGVjdXRpb25zPgoKCQkJCTxjb25maWd1cmF0aW9uPgoKCQkJCQk8YXBpRG9jc1VybD5odHRwOi8vbG9jYWxob3N0OjgwODAvdjMvYXBpLWRvY3M8L2FwaURvY3NVcmw+CgoJCQkJCTxvdXRwdXRGaWxlTmFtZT5vcGVuYXBpLmpzb248L291dHB1dEZpbGVOYW1lPgoKCQkJCQk8b3V0cHV0RGlyPiR7cHJvamVjdC5idWlsZC5kaXJlY3Rvcnl9PC9vdXRwdXREaXI+CgoJCQkJPC9jb25maWd1cmF0aW9uPgoKCQkJPC9wbHVnaW4+CgoJCQktLT4JCQkKCgkJPC9wbHVnaW5zPgoKCQkKCgkJPHBsdWdpbk1hbmFnZW1lbnQ+CgoJCQk8cGx1Z2lucy8+CgoJCTwvcGx1Z2luTWFuYWdlbWVudD4KCgkJCgoJCTxyZXNvdXJjZXM+CgoJCQkKCgkJCTxyZXNvdXJjZT4KCiAgICAgICAgICAgICAgICA8ZGlyZWN0b3J5PnNyYy9tYWluL3Jlc291cmNlcy88L2RpcmVjdG9yeT4KCgkJCQk8ZmlsdGVyaW5nPmZhbHNlPC9maWx0ZXJpbmc+CgoJCQkJPGV4Y2x1ZGVzPgoKCQkJCQk8ZXhjbHVkZT4qKi9ib290c3RyYXAtKi55bWw8L2V4Y2x1ZGU+CgoJCQkJCTxleGNsdWRlPioqL2FwcGxpY2F0aW9uLSoueW1sPC9leGNsdWRlPgoKCQkJCQk8ZXhjbHVkZT4qKi9ib290c3RyYXAtKi5wcm9wZXJ0aWVzPC9leGNsdWRlPgoKCQkJCQk8ZXhjbHVkZT4qKi9hcHBsaWNhdGlvbi0qLnByb3BlcnRpZXM8L2V4Y2x1ZGU+CgoJCQkJPC9leGNsdWRlcz4KCiAgICAgICAgICAgIDwvcmVzb3VyY2U+CgoJCQkKCgkJCTxyZXNvdXJjZT4KCiAgICAgICAgICAgICAgICA8ZGlyZWN0b3J5PnNyYy9tYWluL3Jlc291cmNlcy88L2RpcmVjdG9yeT4KCgkJCQk8ZmlsdGVyaW5nPnRydWU8L2ZpbHRlcmluZz4KCgkJCQk8aW5jbHVkZXM+CgoJCQkJCTxpbmNsdWRlPioqL2xvZ2JhY2stc3ByaW5nLnhtbDwvaW5jbHVkZT4KCgkJCQkJPGluY2x1ZGU+KiovYm9vdHN0cmFwLnltbDwvaW5jbHVkZT4KCgkJCQkJPGluY2x1ZGU+KiovYm9vdHN0cmFwLSR7bWF2ZW4ucHJvZmlsZXMuYWN0aXZlOmRlZmF1bHR9LnltbDwvaW5jbHVkZT4KCgkJCQkJPGluY2x1ZGU+KiovYXBwbGljYXRpb24ueW1sPC9pbmNsdWRlPgoKCQkJCQk8aW5jbHVkZT4qKi9hcHBsaWNhdGlvbi0ke21hdmVuLnByb2ZpbGVzLmFjdGl2ZTpkZWZhdWx0fS55bWw8L2luY2x1ZGU+CgoJCQkJCTxpbmNsdWRlPioqL2Jvb3RzdHJhcC5wcm9wZXJ0aWVzPC9pbmNsdWRlPgoKCQkJCQk8aW5jbHVkZT4qKi9ib290c3RyYXAtJHttYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdH0ucHJvcGVydGllczwvaW5jbHVkZT4KCgkJCQkJPGluY2x1ZGU+KiovYXBwbGljYXRpb24ucHJvcGVydGllczwvaW5jbHVkZT4KCgkJCQkJPGluY2x1ZGU+KiovYXBwbGljYXRpb24tJHttYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdH0ucHJvcGVydGllczwvaW5jbHVkZT4KCgkJCQk8L2luY2x1ZGVzPgoKICAgICAgICAgICAgPC9yZXNvdXJjZT4KCgkJCQoKICAgICAgICA8L3Jlc291cmNlcz4KCgkJCgoJCTx0ZXN0UmVzb3VyY2VzPgoKCQkJCgoJCQk8dGVzdFJlc291cmNlPgoKICAgICAgICAgICAgICAgIDxkaXJlY3Rvcnk+c3JjL3Rlc3QvcmVzb3VyY2VzLzwvZGlyZWN0b3J5PgoKCQkJCTxmaWx0ZXJpbmc+ZmFsc2U8L2ZpbHRlcmluZz4KCgkJCQk8ZXhjbHVkZXM+CgoJCQkJCTxleGNsdWRlPioqL2Jvb3RzdHJhcC0qLnltbDwvZXhjbHVkZT4KCgkJCQkJPGV4Y2x1ZGU+KiovYXBwbGljYXRpb24tKi55bWw8L2V4Y2x1ZGU+CgoJCQkJCTxleGNsdWRlPioqL2Jvb3RzdHJhcC0qLnByb3BlcnRpZXM8L2V4Y2x1ZGU+CgoJCQkJCTxleGNsdWRlPioqL2FwcGxpY2F0aW9uLSoucHJvcGVydGllczwvZXhjbHVkZT4KCgkJCQk8L2V4Y2x1ZGVzPgoKCQkJPC90ZXN0UmVzb3VyY2U+CgoJCQkKCgkJCTx0ZXN0UmVzb3VyY2U+CgogICAgICAgICAgICAgICAgPGRpcmVjdG9yeT5zcmMvdGVzdC9yZXNvdXJjZXMvPC9kaXJlY3Rvcnk+CgoJCQkJPGZpbHRlcmluZz50cnVlPC9maWx0ZXJpbmc+CgoJCQkJPGluY2x1ZGVzPgoKCQkJCQk8aW5jbHVkZT4qKi9sb2diYWNrLXNwcmluZy54bWw8L2luY2x1ZGU+CgoJCQkJCTxpbmNsdWRlPioqL2Jvb3RzdHJhcC55bWw8L2luY2x1ZGU+CgoJCQkJCTxpbmNsdWRlPioqL2Jvb3RzdHJhcC0ke21hdmVuLnByb2ZpbGVzLmFjdGl2ZTpkZWZhdWx0fS55bWw8L2luY2x1ZGU+CgoJCQkJCTxpbmNsdWRlPioqL2FwcGxpY2F0aW9uLnltbDwvaW5jbHVkZT4KCgkJCQkJPGluY2x1ZGU+KiovYXBwbGljYXRpb24tJHttYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdH0ueW1sPC9pbmNsdWRlPgoKCQkJCQk8aW5jbHVkZT4qKi9ib290c3RyYXAucHJvcGVydGllczwvaW5jbHVkZT4KCgkJCQkJPGluY2x1ZGU+KiovYm9vdHN0cmFwLSR7bWF2ZW4ucHJvZmlsZXMuYWN0aXZlOmRlZmF1bHR9LnByb3BlcnRpZXM8L2luY2x1ZGU+CgoJCQkJCTxpbmNsdWRlPioqL2FwcGxpY2F0aW9uLnByb3BlcnRpZXM8L2luY2x1ZGU+CgoJCQkJCTxpbmNsdWRlPioqL2FwcGxpY2F0aW9uLSR7bWF2ZW4ucHJvZmlsZXMuYWN0aXZlOmRlZmF1bHR9LnByb3BlcnRpZXM8L2luY2x1ZGU+CgoJCQkJPC9pbmNsdWRlcz4KCiAgICAgICAgICAgIDwvdGVzdFJlc291cmNlPgoKCQkJCgoJCTwvdGVzdFJlc291cmNlcz4KCgkJCgoJPC9idWlsZD4KCgkKCgk8IS0tCgoJPHBsdWdpblJlcG9zaXRvcmllcz4KCgkJCgogICAgICAgIDxwbHVnaW5SZXBvc2l0b3J5PgoKICAgICAgICAgICAgPGlkPnNwcmluZy1zbmFwc2hvdHM8L2lkPgoKICAgICAgICAgICAgPG5hbWU+U3ByaW5nIFNuYXBzaG90czwvbmFtZT4KCiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9yZXBvLnNwcmluZy5pby9zbmFwc2hvdDwvdXJsPgoKCQkJPHJlbGVhc2VzPgoKCQkJCTxlbmFibGVkPnRydWU8L2VuYWJsZWQ+CgogICAgICAgICAgICA8L3JlbGVhc2VzPgkJCQoKICAgICAgICAgICAgPHNuYXBzaG90cz4KCiAgICAgICAgICAgICAgICA8ZW5hYmxlZD50cnVlPC9lbmFibGVkPgoKICAgICAgICAgICAgPC9zbmFwc2hvdHM+CgogICAgICAgIDwvcGx1Z2luUmVwb3NpdG9yeT4KCgkJCgogICAgICAgIDxwbHVnaW5SZXBvc2l0b3J5PgoKICAgICAgICAgICAgPGlkPnNwcmluZy1taWxlc3RvbmVzPC9pZD4KCiAgICAgICAgICAgIDxuYW1lPlNwcmluZyBNaWxlc3RvbmVzPC9uYW1lPgoKICAgICAgICAgICAgPHVybD5odHRwczovL3JlcG8uc3ByaW5nLmlvL21pbGVzdG9uZTwvdXJsPgoKICAgICAgICA8L3BsdWdpblJlcG9zaXRvcnk+CgoJCQoKICAgIDwvcGx1Z2luUmVwb3NpdG9yaWVzPgoKICAgIAoKCTxyZXBvc2l0b3JpZXM+CgoJCQoKCQk8cmVwb3NpdG9yeT4KCgkJCTxpZD5tdm5yZXBvc2l0b3J5LXJlbGVhc2VzPC9pZD4KCgkJCTxuYW1lPm12bnJlcG9zaXRvcnk8L25hbWU+CgoJCQk8dXJsPmh0dHBzOi8vd3d3LmViaS5hYy51ay9pbnRhY3QvbWF2ZW4vbmV4dXMvY29udGVudC9yZXBvc2l0b3JpZXMvcHVibGljPC91cmw+CgoJCQk8cmVsZWFzZXM+CgoJCQkJPGVuYWJsZWQ+dHJ1ZTwvZW5hYmxlZD4KCiAgICAgICAgICAgIDwvcmVsZWFzZXM+CgoJCQk8c25hcHNob3RzPgoKCQkJCTxlbmFibGVkPmZhbHNlPC9lbmFibGVkPgoKCQkJPC9zbmFwc2hvdHM+CQkJCgoJCTwvcmVwb3NpdG9yeT4KCgkJCgogICAgICAgIDxyZXBvc2l0b3J5PgoKICAgICAgICAgICAgPGlkPnNwcmluZy1zbmFwc2hvdHM8L2lkPgoKICAgICAgICAgICAgPG5hbWU+U3ByaW5nIFNuYXBzaG90czwvbmFtZT4KCiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9yZXBvLnNwcmluZy5pby9zbmFwc2hvdDwvdXJsPgoKICAgICAgICAgICAgPHNuYXBzaG90cz4KCiAgICAgICAgICAgICAgICA8ZW5hYmxlZD50cnVlPC9lbmFibGVkPgoKICAgICAgICAgICAgPC9zbmFwc2hvdHM+CgogICAgICAgIDwvcmVwb3NpdG9yeT4KCgkJCgogICAgICAgIDxyZXBvc2l0b3J5PgoKICAgICAgICAgICAgPGlkPnNwcmluZy1taWxlc3RvbmVzPC9pZD4KCiAgICAgICAgICAgIDxuYW1lPlNwcmluZyBNaWxlc3RvbmVzPC9uYW1lPgoKICAgICAgICAgICAgPHVybD5odHRwczovL3JlcG8uc3ByaW5nLmlvL21pbGVzdG9uZTwvdXJsPgoKICAgICAgICA8L3JlcG9zaXRvcnk+CgoKCgkJPHJlcG9zaXRvcnk+CgoJCQk8aWQ+aml0cGFjay5pbzwvaWQ+CgoJCQk8dXJsPmh0dHBzOi8vaml0cGFjay5pbzwvdXJsPgoKCQk8L3JlcG9zaXRvcnk+CgoJCQoKICAgIDwvcmVwb3NpdG9yaWVzPgoKCS0tPgoKCQoKCTxyZXBvc2l0b3JpZXM+CgoJCTxyZXBvc2l0b3J5PgoKCQkJPGlkPmNlbnRyYWw8L2lkPgoKICAgICAgICAgICAgPG5hbWU+Q2VudHJhbCBSZXBvc2l0b3J5PC9uYW1lPgoKCQkJPHVybD5odHRwczovL25leHVzLnRhaXdhbmxpZmUuY29tL3JlcG9zaXRvcnkvdGFpd2FubGlmZS10ZWFtd2FsazwvdXJsPgoKCQkJPHJlbGVhc2VzPgoKCQkJCTxlbmFibGVkPnRydWU8L2VuYWJsZWQ+CgoJCQk8L3JlbGVhc2VzPgoKCQkJPHNuYXBzaG90cz4KCgkJCQk8ZW5hYmxlZD5mYWxzZTwvZW5hYmxlZD4KCgkJCTwvc25hcHNob3RzPgoKCQk8L3JlcG9zaXRvcnk+CgogICAgPC9yZXBvc2l0b3JpZXM+CgoJCgoJPGRlcGVuZGVuY2llcz4KCgkJCgoJCTwhLS0gU3ViIE1vZHVsZSAtLT4KCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD4ke3Byb2plY3QuZ3JvdXBJZH08L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD50ZWFtd2Fsay1jb21tb248L2FydGlmYWN0SWQ+CgoJCTwvZGVwZW5kZW5jeT4KCgkJCgoJCTwhLS0gU3ByaW5nIEZyYW1ld29yayAtLT4KCgkJPCEtLSBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC9zcHJpbmctYm9vdC1zdGFydGVyLXdlYiAtLT4KCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1zdGFydGVyLXdlYjwvYXJ0aWZhY3RJZD4KCgkJCTwhLS0KCgkJCTxleGNsdXNpb25zPgoKCQkJCgogICAgICAgICAgICAgICAgPGV4Y2x1c2lvbj4KCiAgICAgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgoKICAgICAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1zdGFydGVyLWxvZ2dpbmc8L2FydGlmYWN0SWQ+CgogICAgICAgICAgICAgICAgPC9leGNsdXNpb24+CgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgPGV4Y2x1c2lvbj4KCgkJCQkgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4KCgkJCQkgIDxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItdG9tY2F0PC9hcnRpZmFjdElkPgoKCQkJCTwvZXhjbHVzaW9uPgoKCQkJCQoKICAgICAgICAgICAgPC9leGNsdXNpb25zPgoKCQkJLS0+CgoJCTwvZGVwZW5kZW5jeT4KCgkJCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Qvc3ByaW5nLWJvb3Qtc3RhcnRlci1hY3R1YXRvciAtLT4KCgkJPCEtLTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci1hY3R1YXRvcjwvYXJ0aWZhY3RJZD4KCgkJCTxleGNsdXNpb25zPgoKCQkJCTxleGNsdXNpb24+CgoJCQkJCTxncm91cElkPmNvbS5mYXN0ZXJ4bWwuamFja3Nvbi5jb3JlPC9ncm91cElkPgoKCQkJCQk8YXJ0aWZhY3RJZD5qYWNrc29uLWRhdGFiaW5kPC9hcnRpZmFjdElkPgoKCQkJCTwvZXhjbHVzaW9uPgoKCQkJPC9leGNsdXNpb25zPgoKCQk8L2RlcGVuZGVuY3k+CgoJCS0tPgoKCQk8IS0tIGh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3Qvb3JnLnNwcmluZ2ZyYW1ld29yay5ib290L3NwcmluZy1ib290LXN0YXJ0ZXItc2VjdXJpdHkgLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgoKCQkgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci1zZWN1cml0eTwvYXJ0aWZhY3RJZD4KCgkJPC9kZXBlbmRlbmN5PgoKCQkKCgkJPCEtLSBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC9zcHJpbmctYm9vdC1zdGFydGVyLWRhdGEtanBhIC0tPgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItZGF0YS1qcGE8L2FydGlmYWN0SWQ+CgoJCQk8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CgoJCTwvZGVwZW5kZW5jeT4KCgkJCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Qvc3ByaW5nLWJvb3Qtc3RhcnRlci1oYXRlb2FzIC0tPgoKCQk8ZGVwZW5kZW5jeT4KCgkJICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4KCgkJICAgIDxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItaGF0ZW9hczwvYXJ0aWZhY3RJZD4KCgkJPC9kZXBlbmRlbmN5PgoKCQkKCgkJPCEtLSBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC9zcHJpbmctYm9vdC1kZXZ0b29scyAtLT4KCgkJPCEtLTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3QtZGV2dG9vbHM8L2FydGlmYWN0SWQ+CgoJCQk8b3B0aW9uYWw+dHJ1ZTwvb3B0aW9uYWw+CgoJCQk8c2NvcGU+cHJvdmlkZWQ8L3Njb3BlPgoKCQk8L2RlcGVuZGVuY3k+CgoJCS0tPgoKCQkKCgkJPCEtLSBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC9zcHJpbmctYm9vdC1zdGFydGVyLXRvbWNhdCAtLT4KCgkJPCEtLQoKCQk8ZGVwZW5kZW5jeT4KCiAgICAgICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4KCiAgICAgICAgICAgIDxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItdG9tY2F0PC9hcnRpZmFjdElkPgoKICAgICAgICAgICAgPHNjb3BlPnByb3ZpZGVkPC9zY29wZT4KCiAgICAgICAgPC9kZXBlbmRlbmN5PgoKCQktLT4KCgkJCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Qvc3ByaW5nLWJvb3Qtc3RhcnRlci10ZXN0IC0tPgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItdGVzdDwvYXJ0aWZhY3RJZD4KCgkJCTxzY29wZT50ZXN0PC9zY29wZT4KCgkJCTxleGNsdXNpb25zPgoKCQkJCTxleGNsdXNpb24+CgoJCQkJCTxncm91cElkPm9yZy5qdW5pdC52aW50YWdlPC9ncm91cElkPgoKCQkJCQk8YXJ0aWZhY3RJZD5qdW5pdC12aW50YWdlLWVuZ2luZTwvYXJ0aWZhY3RJZD4KCgkJCQk8L2V4Y2x1c2lvbj4KCgkJCTwvZXhjbHVzaW9ucz4KCgkJPC9kZXBlbmRlbmN5PgoKCgoKCgkJPCEtLSBTcHJpbmcgLS0+CgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuc3ByaW5nZnJhbWV3b3JrLnNlY3VyaXR5L3NwcmluZy1zZWN1cml0eS1jYXMgLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5zZWN1cml0eTwvZ3JvdXBJZD4KCgkJICAgIDxhcnRpZmFjdElkPnNwcmluZy1zZWN1cml0eS1jYXM8L2FydGlmYWN0SWQ+CgoJCTwvZGVwZW5kZW5jeT4KCgkJCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuc3ByaW5nZnJhbWV3b3JrLnNlY3VyaXR5L3NwcmluZy1zZWN1cml0eS10ZXN0IC0tPgoKCQk8ZGVwZW5kZW5jeT4KCiAgICAgICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuc2VjdXJpdHk8L2dyb3VwSWQ+CgogICAgICAgICAgICA8YXJ0aWZhY3RJZD5zcHJpbmctc2VjdXJpdHktdGVzdDwvYXJ0aWZhY3RJZD4KCiAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KCiAgICAgICAgPC9kZXBlbmRlbmN5PgoKCQkKCgkJPCEtLSBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5zcHJpbmdmcmFtZXdvcmsucmV0cnkvc3ByaW5nLXJldHJ5IC0tPgoKCQk8ZGVwZW5kZW5jeT4KCgkJICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsucmV0cnk8L2dyb3VwSWQ+CgoJCSAgICA8YXJ0aWZhY3RJZD5zcHJpbmctcmV0cnk8L2FydGlmYWN0SWQ+CgoJCTwvZGVwZW5kZW5jeT4KCgkJCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuc3ByaW5nZnJhbWV3b3JrL3NwcmluZy1veG0gLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yazwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPnNwcmluZy1veG08L2FydGlmYWN0SWQ+CgoJCTwvZGVwZW5kZW5jeT4KCgkJCgoJCTwhLS0gSmF2YXggLS0+CgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9qYXZheC52YWxpZGF0aW9uL3ZhbGlkYXRpb24tYXBpCgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+amF2YXgudmFsaWRhdGlvbjwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPnZhbGlkYXRpb24tYXBpPC9hcnRpZmFjdElkPgoKCQk8L2RlcGVuZGVuY3k+CgoJCSAtLT4KCgkJIAoKCQk8IS0tIGh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3QvamFrYXJ0YS52YWxpZGF0aW9uL2pha2FydGEudmFsaWRhdGlvbi1hcGkgLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkgICAgPGdyb3VwSWQ+amFrYXJ0YS52YWxpZGF0aW9uPC9ncm91cElkPgoKCQkgICAgPGFydGlmYWN0SWQ+amFrYXJ0YS52YWxpZGF0aW9uLWFwaTwvYXJ0aWZhY3RJZD4KCgkJPC9kZXBlbmRlbmN5PgoKCQkKCgkJPCEtLSBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5oaWJlcm5hdGUvaGliZXJuYXRlLWVudGl0eW1hbmFnZXIgLS0+CgoJCTwhLS08ZGVwZW5kZW5jeT4KCgkJICAgIDxncm91cElkPm9yZy5oaWJlcm5hdGU8L2dyb3VwSWQ+CgoJCSAgICA8YXJ0aWZhY3RJZD5oaWJlcm5hdGUtZW50aXR5bWFuYWdlcjwvYXJ0aWZhY3RJZD4KCgkJICAgIDx2ZXJzaW9uPjUuNC4xNy5GaW5hbDwvdmVyc2lvbj4KCgkJPC9kZXBlbmRlbmN5Pi0tPgoKCQkKCgkJPCEtLSBIaWJlcm5hdGUgLS0+CgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuaGliZXJuYXRlLnZhbGlkYXRvci9oaWJlcm5hdGUtdmFsaWRhdG9yIC0tPgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPm9yZy5oaWJlcm5hdGUudmFsaWRhdG9yPC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+aGliZXJuYXRlLXZhbGlkYXRvcjwvYXJ0aWZhY3RJZD4KCgkJPC9kZXBlbmRlbmN5PgoKCQkKCgkJPCEtLSBBcGFjaGUgQ29tbW9ucyAtLT4KCgkJPCEtLSBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5hcGFjaGUuY29tbW9ucy9jb21tb25zLWxhbmczIC0tPgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPm9yZy5hcGFjaGUuY29tbW9uczwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPmNvbW1vbnMtbGFuZzM8L2FydGlmYWN0SWQ+CgoJCTwvZGVwZW5kZW5jeT4KCgkJCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuYXBhY2hlLmh0dHBjb21wb25lbnRzL2h0dHBjbGllbnQKCgkJPGRlcGVuZGVuY3k+CgoJCSAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmh0dHBjb21wb25lbnRzPC9ncm91cElkPgoKCQkgICAgPGFydGlmYWN0SWQ+aHR0cGNsaWVudDwvYXJ0aWZhY3RJZD4KCgkJPC9kZXBlbmRlbmN5PgoKCQkgLS0+CgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuYXBhY2hlLmh0dHBjb21wb25lbnRzLmNsaWVudDUvaHR0cGNsaWVudDUgLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5odHRwY29tcG9uZW50cy5jbGllbnQ1PC9ncm91cElkPgoKCQkgICAgPGFydGlmYWN0SWQ+aHR0cGNsaWVudDU8L2FydGlmYWN0SWQ+CgoJCTwvZGVwZW5kZW5jeT4KCgkJCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9jb20ubWljcm9zb2Z0LnNxbHNlcnZlci9tc3NxbC1qZGJjIC0tPgoKCQk8ZGVwZW5kZW5jeT4KCgkJICAgIDxncm91cElkPmNvbS5taWNyb3NvZnQuc3Fsc2VydmVyPC9ncm91cElkPgoKCQkgICAgPGFydGlmYWN0SWQ+bXNzcWwtamRiYzwvYXJ0aWZhY3RJZD4KCgkJCTx2ZXJzaW9uPjkuNC4xLmpyZTg8L3ZlcnNpb24+CgoJCTwvZGVwZW5kZW5jeT4KCgkJCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcucHJvamVjdGxvbWJvay9sb21ib2sgLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+b3JnLnByb2plY3Rsb21ib2s8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5sb21ib2s8L2FydGlmYWN0SWQ+CgoJCQk8c2NvcGU+cHJvdmlkZWQ8L3Njb3BlPgoKCQkJPHZlcnNpb24+MS4xOC4yMDwvdmVyc2lvbj4KCgkJPC9kZXBlbmRlbmN5PgoKCQkKCgkJPCEtLSBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L2NvbS5mYXN0ZXJ4bWwvamFja3Nvbi14bWwtZGF0YWJpbmQgLS0+Cgo8IS0tCQk8ZGVwZW5kZW5jeT4tLT4KCjwhLS0gICAgICAgICAgCTxncm91cElkPmNvbS5mYXN0ZXJ4bWwuamFja3Nvbi5jb3JlPC9ncm91cElkPi0tPgoKPCEtLSAgICAgICAgICAJPGFydGlmYWN0SWQ+amFja3Nvbi1kYXRhYmluZDwvYXJ0aWZhY3RJZD4tLT4KCjwhLS0gICAgICAgICAgCTx2ZXJzaW9uPjIuMTEuMDwvdmVyc2lvbj4tLT4KCjwhLS0JCTwvZGVwZW5kZW5jeT4tLT4KCgkJCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9jb20uZmFzdGVyeG1sLmphY2tzb24uZGF0YWZvcm1hdC9qYWNrc29uLWRhdGFmb3JtYXQteG1sIC0tPgoKCQk8ZGVwZW5kZW5jeT4KCgkJICAgIDxncm91cElkPmNvbS5mYXN0ZXJ4bWwuamFja3Nvbi5kYXRhZm9ybWF0PC9ncm91cElkPgoKCQkgICAgPGFydGlmYWN0SWQ+amFja3Nvbi1kYXRhZm9ybWF0LXhtbDwvYXJ0aWZhY3RJZD4KCgkJPC9kZXBlbmRlbmN5PgoKCQkKCgkJPCEtLSBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L2NvbS5nb29nbGUuY29kZS5nc29uL2dzb24gLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+Y29tLmdvb2dsZS5jb2RlLmdzb248L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5nc29uPC9hcnRpZmFjdElkPgoKCQk8L2RlcGVuZGVuY3k+CgoJCQoKCQk8IS0tIGh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3QvaW8uanNvbndlYnRva2VuL2pqd3QgLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkgICAgPGdyb3VwSWQ+aW8uanNvbndlYnRva2VuPC9ncm91cElkPgoKCQkgICAgPGFydGlmYWN0SWQ+amp3dDwvYXJ0aWZhY3RJZD4KCgkJICAgIDx2ZXJzaW9uPjAuOS4xPC92ZXJzaW9uPgoKCQk8L2RlcGVuZGVuY3k+CgoJCQoKCQk8IS0tIEZpcmViYXNlIC0tPgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPmNvbS5nb29nbGUuZmlyZWJhc2U8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5maXJlYmFzZS1hZG1pbjwvYXJ0aWZhY3RJZD4KCgkJCTx2ZXJzaW9uPjkuNC4xPC92ZXJzaW9uPgoKCQk8L2RlcGVuZGVuY3k+CgoKCgkJPCEtLSBnb29nbGUgYXBpIC0tPgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPmNvbS5nb29nbGUub2F1dGgtY2xpZW50PC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+Z29vZ2xlLW9hdXRoLWNsaWVudDwvYXJ0aWZhY3RJZD4KCgkJCTx2ZXJzaW9uPjEuMzAuNDwvdmVyc2lvbj4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+Y29tLmdvb2dsZS5vYXV0aC1jbGllbnQ8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5nb29nbGUtb2F1dGgtY2xpZW50LWphdmE2PC9hcnRpZmFjdElkPgoKCQkJPHZlcnNpb24+MS4zMC40PC92ZXJzaW9uPgoKCQk8L2RlcGVuZGVuY3k+CgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+Y29tLmFsaWJhYmE8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5mYXN0anNvbjwvYXJ0aWZhY3RJZD4KCgkJCTx2ZXJzaW9uPjEuMi43MzwvdmVyc2lvbj4KCgkJPC9kZXBlbmRlbmN5PgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPmNuLmh1dG9vbDwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPmh1dG9vbC1hbGw8L2FydGlmYWN0SWQ+CgoJCQk8dmVyc2lvbj41LjIuMzwvdmVyc2lvbj4KCgkJPC9kZXBlbmRlbmN5PgoKCQkKCgkJPCEtLSBKVW5pdCAtLT4KCgkJPCEtLSBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L2p1bml0L2p1bml0IC0tPgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPmp1bml0PC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+anVuaXQ8L2FydGlmYWN0SWQ+CgoJCQk8c2NvcGU+dGVzdDwvc2NvcGU+CgoJCTwvZGVwZW5kZW5jeT4KCgkJCgoJCTxkZXBlbmRlbmN5PgoKICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnJlYWN0aXZlc3RyZWFtczwvZ3JvdXBJZD4KCiAgICAgICAgICAgIDxhcnRpZmFjdElkPnJlYWN0aXZlLXN0cmVhbXM8L2FydGlmYWN0SWQ+CgogICAgICAgICAgICA8dmVyc2lvbj4xLjAuMzwvdmVyc2lvbj4KCiAgICAgICAgPC9kZXBlbmRlbmN5PgoKCQkKCgkJPGRlcGVuZGVuY3k+CgogICAgICAgICAgICA8Z3JvdXBJZD5jb20uZ2l0aHViLnVsaXNlc2JvY2NoaW88L2dyb3VwSWQ+CgogICAgICAgICAgICA8YXJ0aWZhY3RJZD5qYXN5cHQtc3ByaW5nLWJvb3Qtc3RhcnRlcjwvYXJ0aWZhY3RJZD4KCiAgICAgICAgICAgIDx2ZXJzaW9uPjMuMC4zPC92ZXJzaW9uPgoKICAgICAgICA8L2RlcGVuZGVuY3k+CgoJCQoKCQk8ZGVwZW5kZW5jeT4KCiAgICAgICAgICAgIDxncm91cElkPmNvbS50d2xpZmUuYmlvbWV0cmljczwvZ3JvdXBJZD4KCiAgICAgICAgICAgIDxhcnRpZmFjdElkPmJpb21ldHJpY3MtcnAtdXRpbDwvYXJ0aWZhY3RJZD4KCiAgICAgICAgICAgIDx2ZXJzaW9uPjEuMC4wPC92ZXJzaW9uPgoKICAgICAgICA8L2RlcGVuZGVuY3k+CgoKCiAgICAgICAgPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5jb20uaWJtLmluZm9ybWl4PC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+amRiYzwvYXJ0aWZhY3RJZD4KCgkJCTx2ZXJzaW9uPjQuNTAuMzwvdmVyc2lvbj4KCgkJPC9kZXBlbmRlbmN5PgkJCgoJCQoKCSAgICA8ZGVwZW5kZW5jeT4KCiAgICAgICAgICAgIDxncm91cElkPmNvbW1vbnMtaW88L2dyb3VwSWQ+CgogICAgICAgICAgICA8YXJ0aWZhY3RJZD5jb21tb25zLWlvPC9hcnRpZmFjdElkPgoKICAgICAgICAgICAgPHZlcnNpb24+Mi44LjA8L3ZlcnNpb24+CgogICAgICAgIDwvZGVwZW5kZW5jeT4KCgkJCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcub3BlbmN2L29wZW5jdiAtLT4KCgkJPGRlcGVuZGVuY3k+CgoJCSAgICA8Z3JvdXBJZD5vcmcub3BlbmN2PC9ncm91cElkPgoKCQkgICAgPGFydGlmYWN0SWQ+b3BlbmN2PC9hcnRpZmFjdElkPgoKCQkgICAgPHZlcnNpb24+NC4xMS4wPC92ZXJzaW9uPgoKCQk8L2RlcGVuZGVuY3k+CgoJCQkJCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9jb20uZHJld25vYWtlcy9tZXRhZGF0YS1leHRyYWN0b3IgLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkgICAgPGdyb3VwSWQ+Y29tLmRyZXdub2FrZXM8L2dyb3VwSWQ+CgoJCSAgICA8YXJ0aWZhY3RJZD5tZXRhZGF0YS1leHRyYWN0b3I8L2FydGlmYWN0SWQ+CgoJCSAgICA8dmVyc2lvbj4yLjEyLjA8L3ZlcnNpb24+CgoJCTwvZGVwZW5kZW5jeT4KCgkJCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9jb20uYWRvYmUueG1wL3htcGNvcmUgLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkgICAgPGdyb3VwSWQ+Y29tLmFkb2JlLnhtcDwvZ3JvdXBJZD4KCgkJICAgIDxhcnRpZmFjdElkPnhtcGNvcmU8L2FydGlmYWN0SWQ+CgoJCSAgICA8dmVyc2lvbj42LjAuNjwvdmVyc2lvbj4KCgkJPC9kZXBlbmRlbmN5PgoKCQkKCiAgICAgICAgPGRlcGVuZGVuY3k+CgogICAgICAgICAgICA8Z3JvdXBJZD5uZXQuamF2YS5kZXYuam5hPC9ncm91cElkPgoKICAgICAgICAgICAgPGFydGlmYWN0SWQ+am5hPC9hcnRpZmFjdElkPgoKICAgICAgICAgICAgPHZlcnNpb24+NS45LjA8L3ZlcnNpb24+CgogICAgICAgIDwvZGVwZW5kZW5jeT4KCgkJCgoJCTxkZXBlbmRlbmN5PgoKICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmdpdGh1Yi56aXBsZXQ8L2dyb3VwSWQ+CgogICAgICAgICAgICA8YXJ0aWZhY3RJZD56aXBsZXQ8L2FydGlmYWN0SWQ+CgogICAgICAgICAgICA8dmVyc2lvbj4yLjQuMTwvdmVyc2lvbj4KCiAgICAgICAgPC9kZXBlbmRlbmN5PgoKCgoJCTxkZXBlbmRlbmN5PgoKICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5sb2dnaW5nLmxvZzRqPC9ncm91cElkPgoKICAgICAgICAgICAgPGFydGlmYWN0SWQ+bG9nNGotYXBpPC9hcnRpZmFjdElkPgoKCQkJPHZlcnNpb24+Mi4yNC4zPC92ZXJzaW9uPgoKICAgICAgICA8L2RlcGVuZGVuY3k+CgoKCgkJPCEtLSBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5zbGY0ai9sb2c0ai1vdmVyLXNsZjRqIC0tPgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPm9yZy5zbGY0ajwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPmxvZzRqLW92ZXItc2xmNGo8L2FydGlmYWN0SWQ+CgoJCQk8dmVyc2lvbj4yLjAuMTY8L3ZlcnNpb24+CgoJCTwvZGVwZW5kZW5jeT4KCgoKCQk8IS0tIGh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3Qvb3JnLnNsZjRqL3NsZjRqLWFwaSAtLT4KCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5vcmcuc2xmNGo8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5zbGY0ai1hcGk8L2FydGlmYWN0SWQ+CgoJCQk8dmVyc2lvbj4yLjAuMTY8L3ZlcnNpb24+CgoJCTwvZGVwZW5kZW5jeT4KCgoKCQk8ZGVwZW5kZW5jeT4KCiAgICAgICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4KCiAgICAgICAgICAgIDxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItYWN0aXZlbXE8L2FydGlmYWN0SWQ+CgoJCQk8dmVyc2lvbj4zLjQuMjwvdmVyc2lvbj4KCiAgICAgICAgPC9kZXBlbmRlbmN5PgoKCgoJCTxkZXBlbmRlbmN5PgoKICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5hY3RpdmVtcTwvZ3JvdXBJZD4KCiAgICAgICAgICAgIDxhcnRpZmFjdElkPmFjdGl2ZW1xLWJyb2tlcjwvYXJ0aWZhY3RJZD4KCgkJCTx2ZXJzaW9uPjYuMS41PC92ZXJzaW9uPgoKICAgICAgICA8L2RlcGVuZGVuY3k+CgoKCiAgICAgICAgPGRlcGVuZGVuY3k+CgogICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmFjdGl2ZW1xPC9ncm91cElkPgoKICAgICAgICAgICAgPGFydGlmYWN0SWQ+YWN0aXZlbXEtY2xpZW50PC9hcnRpZmFjdElkPgoKCQkJPHZlcnNpb24+Ni4xLjU8L3ZlcnNpb24+CgogICAgICAgIDwvZGVwZW5kZW5jeT4KCgoKCQk8ZGVwZW5kZW5jeT4KCiAgICAgICAgICAgIDxncm91cElkPmNoLnFvcy5sb2diYWNrPC9ncm91cElkPgoKICAgICAgICAgICAgPGFydGlmYWN0SWQ+bG9nYmFjay1jbGFzc2ljPC9hcnRpZmFjdElkPgoKICAgICAgICAgICAgPHZlcnNpb24+MS41LjE2PC92ZXJzaW9uPgoKICAgICAgICA8L2RlcGVuZGVuY3k+CgoKCgkJPGRlcGVuZGVuY3k+CgogICAgICAgICAgICA8Z3JvdXBJZD5jaC5xb3MubG9nYmFjazwvZ3JvdXBJZD4KCiAgICAgICAgICAgIDxhcnRpZmFjdElkPmxvZ2JhY2stY29yZTwvYXJ0aWZhY3RJZD4KCiAgICAgICAgICAgIDx2ZXJzaW9uPjEuNS4xNjwvdmVyc2lvbj4KCiAgICAgICAgPC9kZXBlbmRlbmN5PgoKCTwvZGVwZW5kZW5jaWVzPgoKCgoJPCEtLSBDb25zdHJ1Y3Rpb24gcHJvY2VkdXJlIC0tPgoKCTxwcm9maWxlcz4KCgkJCgoJCTxwcm9maWxlPgoKCQkJPGlkPmRlZmF1bHQ8L2lkPgoKCQkJCgoJCQk8YWN0aXZhdGlvbj4KCgkgICAgICAgICAgICA8YWN0aXZlQnlEZWZhdWx0PnRydWU8L2FjdGl2ZUJ5RGVmYXVsdD4KCgkJCQk8cHJvcGVydHk+CgogICAgICAgICAgICAgICAgICAgIDxuYW1lPmVudjwvbmFtZT4KCiAgICAgICAgICAgICAgICAgICAgPHZhbHVlPmRlZmF1bHQ8L3ZhbHVlPgoKICAgICAgICAgICAgICAgIDwvcHJvcGVydHk+CgoJICAgICAgICA8L2FjdGl2YXRpb24+CgoJCQkKCgkJCTxwcm9wZXJ0aWVzPgoKCQkJCTxtYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdD5kZWZhdWx0PC9tYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdD4KCiAgICAgICAgICAgIAk8bWF2ZW4uYXBwLm5hbWU+JHtwcm9qZWN0Lm5hbWV9PC9tYXZlbi5hcHAubmFtZT4KCiAgICAgICAgICAgIAk8bWF2ZW4uYXBwLnZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC9tYXZlbi5hcHAudmVyc2lvbj4KCgkJCQk8bWF2ZW4uYXBwLnBhY2thZ2luZ1R5cGU6d2FyPiR7cGFja2FnaW5nLnR5cGV9PC9tYXZlbi5hcHAucGFja2FnaW5nVHlwZTp3YXI+CgogICAgICAgIAk8L3Byb3BlcnRpZXM+CgoJCQkKCgkJCTxkZXBlbmRlbmNpZXMvPgoKCQkJCgoJCQk8YnVpbGQ+CgoJCQkJPGZpbHRlcnM+CgoJCQkJCTxmaWx0ZXI+JHtiYXNlZGlyfS9jb25maWdzL3Jlc291cmNlcy9hcHBsaWNhdGlvbi55bWw8L2ZpbHRlcj4KCiAgICAgICAgICAgICAgICA8L2ZpbHRlcnM+CgogICAgICAgICAgICA8L2J1aWxkPgoKCQk8L3Byb2ZpbGU+CgoJCQoKCQk8cHJvZmlsZT4KCgkJCTxpZD5zaXQtZXh0ZXJuYWw8L2lkPgoKCQkJCgoJCQk8YWN0aXZhdGlvbj4KCgkgICAgICAgICAgICA8YWN0aXZlQnlEZWZhdWx0PmZhbHNlPC9hY3RpdmVCeURlZmF1bHQ+CgoJCQkJPHByb3BlcnR5PgoKICAgICAgICAgICAgICAgICAgICA8bmFtZT5lbnY8L25hbWU+CgogICAgICAgICAgICAgICAgICAgIDx2YWx1ZT5zaXQtZXh0ZXJuYWw8L3ZhbHVlPgoKICAgICAgICAgICAgICAgIDwvcHJvcGVydHk+CgoJICAgICAgICA8L2FjdGl2YXRpb24+CgoKCgkJCTxwcm9wZXJ0aWVzPgoKCQkJCTxwYWNrYWdlLmVudmlyb25tZW50PnNpdDwvcGFja2FnZS5lbnZpcm9ubWVudD4KCgkJCQk8bWF2ZW4ucHJvZmlsZXMuYWN0aXZlOmRlZmF1bHQ+c2l0LWV4dGVybmFsPC9tYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdD4KCiAgICAgICAgICAgIAk8bWF2ZW4uYXBwLm5hbWU+JHtwcm9qZWN0Lm5hbWV9PC9tYXZlbi5hcHAubmFtZT4KCiAgICAgICAgICAgIAk8bWF2ZW4uYXBwLnZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC9tYXZlbi5hcHAudmVyc2lvbj4KCgkJCQk8bWF2ZW4uYXBwLnBhY2thZ2luZ1R5cGU6d2FyPiR7cGFja2FnaW5nLnR5cGV9PC9tYXZlbi5hcHAucGFja2FnaW5nVHlwZTp3YXI+CgogICAgICAgIAk8L3Byb3BlcnRpZXM+CgogICAgICAgIAkKCgkJCTxkZXBlbmRlbmNpZXMvPgoKCQkJCgoJCQk8YnVpbGQ+CgoJCQkJPGZpbHRlcnM+CgogICAgICAgICAgICAgICAgICAgIDxmaWx0ZXI+JHtiYXNlZGlyfS9jb25maWdzL3Jlc291cmNlcy9hcHBsaWNhdGlvbi1zaXQtZXh0ZXJuYWwueW1sPC9maWx0ZXI+CgogICAgICAgICAgICAgICAgPC9maWx0ZXJzPgoKICAgICAgICAgICAgPC9idWlsZD4KCgkJPC9wcm9maWxlPgoKCQkKCgkJPHByb2ZpbGU+CgoJCQk8aWQ+dWF0LWV4dGVybmFsPC9pZD4KCgkJCQoKCQkJPGFjdGl2YXRpb24+CgoJICAgICAgICAgICAgPGFjdGl2ZUJ5RGVmYXVsdD5mYWxzZTwvYWN0aXZlQnlEZWZhdWx0PgoKCQkJCTxwcm9wZXJ0eT4KCiAgICAgICAgICAgICAgICAgICAgPG5hbWU+ZW52PC9uYW1lPgoKICAgICAgICAgICAgICAgICAgICA8dmFsdWU+dWF0LWV4dGVybmFsPC92YWx1ZT4KCiAgICAgICAgICAgICAgICA8L3Byb3BlcnR5PgoKCSAgICAgICAgPC9hY3RpdmF0aW9uPgoKCQkJCgoJCQk8cHJvcGVydGllcz4KCgkJCQk8cGFja2FnZS5lbnZpcm9ubWVudD51YXQ8L3BhY2thZ2UuZW52aXJvbm1lbnQ+CgoJCQkJPG1hdmVuLnByb2ZpbGVzLmFjdGl2ZTpkZWZhdWx0PnVhdC1leHRlcm5hbDwvbWF2ZW4ucHJvZmlsZXMuYWN0aXZlOmRlZmF1bHQ+CgogICAgICAgICAgICAJPG1hdmVuLmFwcC5uYW1lPiR7cHJvamVjdC5uYW1lfTwvbWF2ZW4uYXBwLm5hbWU+CgogICAgICAgICAgICAJPG1hdmVuLmFwcC52ZXJzaW9uPiR7cHJvamVjdC52ZXJzaW9ufTwvbWF2ZW4uYXBwLnZlcnNpb24+CgoJCQkJPG1hdmVuLmFwcC5wYWNrYWdpbmdUeXBlOndhcj4ke3BhY2thZ2luZy50eXBlfTwvbWF2ZW4uYXBwLnBhY2thZ2luZ1R5cGU6d2FyPgoKICAgICAgICAJPC9wcm9wZXJ0aWVzPgoKICAgICAgICAJCgoJCQk8ZGVwZW5kZW5jaWVzLz4KCgkJCQoKCQkJPGJ1aWxkPgoKCQkJCTxmaWx0ZXJzPgoKICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyPiR7YmFzZWRpcn0vY29uZmlncy9yZXNvdXJjZXMvYXBwbGljYXRpb24tdWF0LWV4dGVybmFsLnltbDwvZmlsdGVyPgoKICAgICAgICAgICAgICAgIDwvZmlsdGVycz4KCiAgICAgICAgICAgIDwvYnVpbGQ+CgoJCTwvcHJvZmlsZT4KCgkJCgoJCTxwcm9maWxlPgoKCQkJPGlkPnByb2QtZXh0ZXJuYWw8L2lkPgoKCQkJCgoJCQk8YWN0aXZhdGlvbj4KCgkgICAgICAgICAgICA8YWN0aXZlQnlEZWZhdWx0PmZhbHNlPC9hY3RpdmVCeURlZmF1bHQ+CgoJCQkJPHByb3BlcnR5PgoKICAgICAgICAgICAgICAgICAgICA8bmFtZT5lbnY8L25hbWU+CgogICAgICAgICAgICAgICAgICAgIDx2YWx1ZT5wcm9kLWV4dGVybmFsPC92YWx1ZT4KCiAgICAgICAgICAgICAgICA8L3Byb3BlcnR5PgoKCSAgICAgICAgPC9hY3RpdmF0aW9uPgoKCQkJCgoJCQk8cHJvcGVydGllcz4KCgkJCQk8cGFja2FnZS5lbnZpcm9ubWVudD5wcm9kPC9wYWNrYWdlLmVudmlyb25tZW50PgoKCQkJCTxtYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdD5wcm9kLWV4dGVybmFsPC9tYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdD4KCiAgICAgICAgICAgIAk8bWF2ZW4uYXBwLm5hbWU+JHtwcm9qZWN0Lm5hbWV9PC9tYXZlbi5hcHAubmFtZT4KCiAgICAgICAgICAgIAk8bWF2ZW4uYXBwLnZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC9tYXZlbi5hcHAudmVyc2lvbj4KCgkJCQk8bWF2ZW4uYXBwLnBhY2thZ2luZ1R5cGU6d2FyPiR7cGFja2FnaW5nLnR5cGV9PC9tYXZlbi5hcHAucGFja2FnaW5nVHlwZTp3YXI+CgogICAgICAgIAk8L3Byb3BlcnRpZXM+CgoJCQkKCgkJCTxkZXBlbmRlbmNpZXMvPgoKCQkJCgoJCQk8YnVpbGQ+CgoJCQkJPGZpbHRlcnM+CgogICAgICAgICAgICAgICAgICAgIDxmaWx0ZXI+JHtiYXNlZGlyfS9jb25maWdzL3Jlc291cmNlcy9hcHBsaWNhdGlvbi1wcm9kLWV4dGVybmFsLnltbDwvZmlsdGVyPgoKICAgICAgICAgICAgICAgIDwvZmlsdGVycz4KCiAgICAgICAgICAgIDwvYnVpbGQ+CgoJCTwvcHJvZmlsZT4KCgkJCgoJPC9wcm9maWxlcz4KCgkKCgk8cmVwb3J0aW5nPgoKCQk8cGx1Z2lucy8+CgoJPC9yZXBvcnRpbmc+CgoJCgoJPGRpc3RyaWJ1dGlvbk1hbmFnZW1lbnQ+CgoJCQoKCQk8cmVwb3NpdG9yeT4KCgkJCTxpZD5sb2NhbC1yZXBvc2l0b3J5PC9pZD4KCgkJCTxuYW1lPkxvY2FsIFJlbGVhc2UgUmVwb3NpdG9yeTwvbmFtZT4KCgkJCTx1cmw+ZmlsZToke3Byb2plY3QuYmFzZWRpcn0vcmVwb3NpdG9yeS88L3VybD4KCgkJCTwhLS08dXJsPmh0dHA6Ly8xMjcuMC4wLjE6ODA4MC9uZXh1cy9jb250ZW50L3JlcG9zaXRvcmllcy9yZWxlYXNlcy88L3VybD4tLT4KCiAgICAgICAgPC9yZXBvc2l0b3J5PgoKCQkKCgkJPHNuYXBzaG90UmVwb3NpdG9yeT4KCgkJCTxpZD5sb2NhbC1zbmFwc2hvdHM8L2lkPgoKCQkJPG5hbWU+TG9jYWwgU25hcHNob3QgUmVwb3NpdG9yeTwvbmFtZT4KCgkJCTx1cmw+ZmlsZToke3Byb2plY3QuYmFzZWRpcn0vcmVwb3NpdG9yeS88L3VybD4KCgkJCTwhLS08dXJsPmh0dHA6Ly8xMjcuMC4wLjE6ODA4MC9uZXh1cy9jb250ZW50L3JlcG9zaXRvcmllcy9zbmFwc2hvdHMvPC91cmw+LS0+CgoJCTwvc25hcHNob3RSZXBvc2l0b3J5PgoKCQkKCiAgICA8L2Rpc3RyaWJ1dGlvbk1hbmFnZW1lbnQ+CgogICAgCgo8L3Byb2plY3Q+Cg==
返回列表 上一筆 下一筆