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

    Copyright (C) 2014-2022 Philip Helger (www.helger.com)
    philip[at]helger[dot]com

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

            http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.helger</groupId>
  <artifactId>parent-pom</artifactId>
  <version>2.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>ph-parent-pom</name>
  <description>Generic parent POM for Java 11+ applications</description>
  <url>https://github.com/phax/ph-parent-pom</url>
  <inceptionYear>2014</inceptionYear>

  <licenses>
    <license>
      <name>Apache 2</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <scm>
    <connection>scm:git:git@github.com:phax/ph-parent-pom.git</connection>
    <developerConnection>scm:git:git@github.com:phax/ph-parent-pom.git</developerConnection>
    <url>http://github.com/phax/ph-parent-pom</url>
    <tag>HEAD</tag>
  </scm>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>11</java.version>
    <junit4.version>4.13.2</junit4.version>
    <junit.platform.version>1.9.1</junit.platform.version>
    <junit.jupiter.version>5.9.1</junit.jupiter.version>
    <junit.vintage.version>5.9.1</junit.vintage.version>
    <slf4j.version>2.0.3</slf4j.version>
    <jakarta.servlet-api.version>6.0.0</jakarta.servlet-api.version>
    <jakarta.jsp-api.version>3.1.0</jakarta.jsp-api.version>
    <!-- Use properties for forbiddenapis integration -->
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven.compiler.target>${java.version}</maven.compiler.target>
    <!-- Eclipse Maven integration settings -->
    <m2e.jaxrs.activation>false</m2e.jaxrs.activation>
    <m2e.jpa.activation>false</m2e.jpa.activation>
    <m2e.jsf.activation>false</m2e.jsf.activation>
  </properties>

  <!-- Who are we? -->
  <organization>
    <name>Philip Helger</name>
    <url>http://www.helger.com</url>
  </organization>

  <!-- Who are we? -->
  <developers>
    <developer>
      <id>phax</id>
      <name>Philip Helger</name>
      <email>philip(at)helger.com</email>
      <url>http://www.helger.com</url>
    </developer>
  </developers>

  <distributionManagement>
    <snapshotRepository>
      <!-- Username/password must be in settings.xml -->
      <id>ossrh</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
    </snapshotRepository>
    <repository>
      <!-- Username/password must be in settings.xml -->
      <id>ossrh</id>
      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
    </repository>
  </distributionManagement>

  <repositories>
    <repository>
      <id>central.snapshots</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <releases>
        <enabled>false</enabled>
      </releases>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>central.snapshots</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <releases>
        <enabled>false</enabled>
      </releases>
    </pluginRepository>
  </pluginRepositories>

  <profiles>
    <profile>
      <id>release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <debug>false</debug>
              <optimize>true</optimize>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-install-plugin</artifactId>
            <configuration>
              <createChecksum>true</createChecksum>
              <updateReleaseInfo>true</updateReleaseInfo>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <!-- useAgent must be true for gpg2 -->
              <!-- This implies, that the password MUST be entered manually once per session -->
              <!-- Stuff like https://stackoverflow.com/a/14245913/15254 only works, when useAgent is false -->
              <useAgent>true</useAgent>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>jdeps</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jdeps-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <!-- verify main + test classes -->
                  <goal>jdkinternals</goal>
                  <goal>test-jdkinternals</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>coverage</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.8</version>
            <configuration>
              <excludes>
                <!-- JavaCC generated token manager may contain too large method -->
                <exclude>**/*TokenManager</exclude>
              </excludes>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>prepare-agent</goal>
                </goals>
              </execution>
              <execution>
                <id>report</id>
                <phase>test</phase>
                <goals>
                  <goal>report</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <dependencyManagement>
    <dependencies>
      <!-- JUnit 4 -->
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit4.version}</version>
      </dependency>

      <!-- JUnit 5 -->
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>${junit.jupiter.version}</version>
      </dependency>
      <!-- Only required to run tests in an IDE that bundles an older version -->
      <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>${junit.platform.version}</version>
      </dependency>
      <!-- Only required to run tests in an IDE that bundles an older version -->
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit.jupiter.version}</version>
      </dependency>
      <!-- Only required to run tests in an IDE that bundles an older version -->
      <dependency>
        <groupId>org.junit.vintage</groupId>
        <artifactId>junit-vintage-engine</artifactId>
        <version>${junit.vintage.version}</version>
      </dependency>
      <!-- To avoid compiler warnings about @API annotations in JUnit code -->
      <dependency>
        <groupId>org.apiguardian</groupId>
        <artifactId>apiguardian-api</artifactId>
        <version>1.1.2</version>
      </dependency>

      <!-- Jakarta EE -->
      <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId>
        <version>${jakarta.servlet-api.version}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.servlet.jsp</groupId>
        <artifactId>jakarta.servlet.jsp-api</artifactId>
        <version>${jakarta.jsp-api.version}</version>
      </dependency>

      <!-- SLF4J -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <!-- Dependencies automatically included - none! -->
  <dependencies>
  </dependencies>

  <!-- Build plugins -->
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>com.mycila</groupId>
          <artifactId>license-maven-plugin</artifactId>
          <version>4.1</version>
          <configuration>
            <header>src/etc/license-template.txt</header>
            <strictCheck>true</strictCheck>
            <encoding>${project.build.sourceEncoding}</encoding>
            <mapping>
              <!-- OASIS Content Value Association -->
              <cva>XML_STYLE</cva>
              <!-- JAXB episode files -->
              <episode>XML_STYLE</episode>
              <!-- OASIS GeneriCode -->
              <gc>XML_STYLE</gc>
              <!-- Java files -->
              <jav>SLASHSTAR_STYLE</jav>
              <!-- Java Domain Model stuff (JSON) -->
              <jdm>SLASHSTAR_STYLE</jdm>
              <!-- JavaCC source files -->
              <jj>SLASHSTAR_STYLE</jj>
              <!-- JavaCC JJTree source files -->
              <jjt>SLASHSTAR_STYLE</jjt>
              <!-- Proxy stuff (like JS) -->
              <pac>SLASHSTAR_STYLE</pac>
              <!-- RelaxNG XML images -->
              <rng>XML_STYLE</rng>
              <!-- Schematron files -->
              <sch>XML_STYLE</sch>
              <!-- SVG images -->
              <svg>XML_STYLE</svg>
              <!-- SVRL images -->
              <svrl>XML_STYLE</svrl>
              <!-- WebService WSDL -->
              <wsdl>XML_STYLE</wsdl>
              <!-- JAXB Binding Files -->
              <xjb>XML_STYLE</xjb>
              <!-- XQuery Files -->
              <!--
              <xq>XML_STYLE</xq>
               -->
              <!-- XSLT files -->
              <xslt>XML_STYLE</xslt>
            </mapping>
            <excludes>
              <!-- All local git files -->
              <exclude>**/.git*</exclude>
              <!-- Adobe font metric file -->
              <exclude>**/*.afm</exclude>
              <!-- (JAXB) catalog file -->
              <exclude>**/*.cat</exclude>
              <!-- Certificate file -->
              <exclude>**/*.cer</exclude>
              <!-- CSV files -->
              <exclude>**/*.csv</exclude>
              <!-- Generic DAT files -->
              <exclude>**/*.dat</exclude>
              <!-- Certificate file -->
              <exclude>**/*.der</exclude>
              <!-- Dictionary file -->
              <exclude>**/*.dict</exclude>
              <!-- Binary word documents -->
              <exclude>**/*.doc*</exclude>
              <!-- Font files -->
              <exclude>**/*.eot</exclude>
              <!-- Eclipse preference files -->
              <exclude>**/*.epf</exclude>
              <!-- JAXB episode files -->
              <exclude>**/*.episode</exclude>
              <!-- Icon files -->
              <exclude>**/*.ico</exclude>
              <!-- Image files -->
              <exclude>**/*.gif</exclude>
              <!-- IntelliJ Idea project files -->
              <exclude>**/*.iml</exclude>
              <!-- JavaCC input files -->
              <exclude>**/*.jj</exclude>
              <!-- JavaCC JJTree input files -->
              <exclude>**/*.jjt</exclude>
              <!-- Java KeyStore files -->
              <exclude>**/*.jks</exclude>
              <!-- Image files -->
              <exclude>**/*.jpg*</exclude>
              <!-- Log files -->
              <exclude>**/*.log</exclude>
              <!-- Automatically created mapping files -->
              <exclude>**/*.map</exclude>
              <!-- MD5 hash files -->
              <exclude>**/*.md5</exclude>
              <!-- Minified CSS/JS files - usually generated -->
              <exclude>**/*.min.css</exclude>
              <exclude>**/*.min.js</exclude>
              <!-- Open Document file -->
              <exclude>**/*.ods</exclude>
              <!-- OpenType fonts -->
              <exclude>**/*.otf</exclude>
              <!-- Certificate file -->
              <exclude>**/*.p12</exclude>
              <!-- Patch file -->
              <exclude>**/*.patch</exclude>
              <!-- PDF file -->
              <exclude>**/*.pdf</exclude>
              <!-- PMD configuration file -->
              <exclude>**/*.pmd</exclude>
              <!-- Image files -->
              <exclude>**/*.png</exclude>
              <!-- Policy file -->
              <exclude>**/*.policy</exclude>
              <!-- Powerpoint files -->
              <exclude>**/*.ppt*</exclude>
              <!-- RelaxNG compact files -->
              <exclude>**/*.rnc</exclude>
              <!-- SHA1 hash files -->
              <exclude>**/*.sha1</exclude>
              <!-- SHA256 hash files -->
              <exclude>**/*.sha256</exclude>
              <!-- SHA384 hash files -->
              <exclude>**/*.sha384</exclude>
              <!-- SHA512 hash files -->
              <exclude>**/*.sha512</exclude>
              <!-- Binary Flash files -->
              <exclude>**/*.swf</exclude>
              <!-- Files marked as test -->
              <exclude>**/*.test</exclude>
              <!-- Image files -->
              <exclude>**/*.tif*</exclude>
              <!-- TrueType fonts -->
              <exclude>**/*.ttf</exclude>
              <!-- Generic text file -->
              <exclude>**/*.txt</exclude>
              <!-- Wiki source files -->
              <exclude>**/*.wiki</exclude>
              <!-- Font files -->
              <exclude>**/*.woff*</exclude>
              <!-- Excel files -->
              <exclude>**/*.xls*</exclude>
              <!-- Special license files without extension -->
              <exclude>**/NOTICE</exclude>
              <exclude>**/LICENSE</exclude>
              <exclude>**/LICENSE2</exclude>
              <exclude>**/LICENSE.txt</exclude>
              <!-- Special robots.txt file -->
              <exclude>**/robots.txt</exclude>
              <!-- Special PMD config file -->
              <exclude>**/.pmd</exclude>
              <!-- Special files not to be formatted -->
              <exclude>src/raw/**</exclude>
              <!-- Special index file which requires special formatting! -->
              <exclude>src/main/webapp/**/*.jsp</exclude>
              <!-- Special temp files -->
              <exclude>**/zz</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>5.1.8</version>
          <extensions>true</extensions>
          <configuration>
            <supportedProjectTypes>
              <supportedProjectType>jar</supportedProjectType>
              <supportedProjectType>bundle</supportedProjectType>
              <supportedProjectType>war</supportedProjectType>
            </supportedProjectTypes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-acr-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>3.4.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-changes-plugin</artifactId>
          <version>2.12.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.10.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>3.3.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-ear-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-ejb-plugin</artifactId>
          <version>3.2.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>3.0.1</version>
        </plugin>
        <!-- Plugin is retired -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-idea-plugin</artifactId>
          <version>2.2.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>3.0.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <!--2.6/3.0.0-->
          <!--3.0.0 causes problems with m2e in Eclipse Mars:
          org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration)
          line 1	Maven Configuration Problem

          Posted at:
          https://bugs.eclipse.org/bugs/show_bug.cgi?id=494762
          -->
          <version>3.3.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jarsigner-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>3.4.1</version>
        </plugin>
        <!-- at least JDK8 -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jdeps-plugin</artifactId>
          <version>3.1.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jxr-plugin</artifactId>
          <version>3.3.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-plugin-plugin</artifactId>
          <version>3.6.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>3.19.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.4.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-rar-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.5.3</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.3.0</version>
          <configuration>
            <encoding>${project.build.sourceEncoding}</encoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>3.4.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.12.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>3.2.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-report-plugin</artifactId>
          <version>2.22.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>2.22.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.3.2</version>
        </plugin>
        <!--  Find incompatible differences to previous release -->
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>clirr-maven-plugin</artifactId>
          <version>2.8</version>
          <configuration>
            <failOnError>false</failOnError>
            <xmlOutputFile>${project.build.directory}/clirr.xml</xmlOutputFile>
          </configuration>
        </plugin>
        <plugin>
          <!-- Note: version 2.6 has problems when run in Jenkins:
            net.sourceforge.cobertura.coveragedata.CoverageDataFileHandler saveCoverageData -->
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>cobertura-maven-plugin</artifactId>
          <version>2.7</version>
        </plugin>
        <plugin>
          <groupId>com.github.spotbugs</groupId>
          <artifactId>spotbugs-maven-plugin</artifactId>
          <version>4.7.2.1</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>jdepend-maven-plugin</artifactId>
          <version>2.0</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>taglist-maven-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
        <plugin>
          <groupId>org.owasp</groupId>
          <artifactId>dependency-check-maven</artifactId>
          <version>7.3.0</version>
        </plugin>
        <plugin>
          <groupId>com.helger.maven</groupId>
          <artifactId>ph-buildinfo-maven-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <groupId>com.helger.maven</groupId>
          <artifactId>ph-jscompress-maven-plugin</artifactId>
          <version>2.2.3</version>
          <configuration>
            <forceCreation>false</forceCreation>
            <recursive>true</recursive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>com.helger.maven</groupId>
          <artifactId>ph-csscompress-maven-plugin</artifactId>
          <version>6.5.0</version>
          <configuration>
            <forceCompress>false</forceCompress>
            <removeUnnecessaryCode>true</removeUnnecessaryCode>
            <quoteURLs>true</quoteURLs>
            <verbose>false</verbose>
          </configuration>
        </plugin>
        <plugin>
          <groupId>de.thetaphi</groupId>
          <artifactId>forbiddenapis</artifactId>
          <version>3.4</version>
          <configuration>
            <!-- if the used Java version is too new,
                don't fail, just do nothing:  -->
            <failOnUnsupportedJava>false</failOnUnsupportedJava>
            <bundledSignatures>
              <!-- Choose the right signatures based on 'maven.compiler.target': -->
              <bundledSignature>jdk-unsafe</bundledSignature>
              <bundledSignature>jdk-deprecated</bundledSignature>
              <!-- start 2.1 -->
              <bundledSignature>jdk-internal</bundledSignature>
              <bundledSignature>jdk-non-portable</bundledSignature>
              <!-- end 2.1 -->
              <bundledSignature>jdk-system-out</bundledSignature>
              <bundledSignature>jdk-reflection</bundledSignature>
            </bundledSignatures>
          </configuration>
          <executions>
            <execution>
              <goals>
                <goal>check</goal>
                <goal>testCheck</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <!-- Compile as Java 11 code (lifecycle: compile) -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <!-- fork needs to be false to compile JAXB resources. Otherwise
            the problem with the forward slash in package-info.java on Windows occurs! -->
          <fork>false</fork>
          <showWarnings>true</showWarnings>
          <showDeprecation>true</showDeprecation>
          <encoding>${project.build.sourceEncoding}</encoding>
          <source>${java.version}</source>
          <target>${java.version}</target>
        </configuration>
      </plugin>
      <!-- Build JAR file from source (lifecycle: package) -->
      <!-- Based on: http://maven.apache.org/plugins/maven-source-plugin/usage.html -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-sources</id>
            <phase>verify</phase>
            <goals>
              <goal>jar-no-fork</goal>
            </goals>
          </execution>
          <execution>
            <id>attach-test-sources</id>
            <phase>verify</phase>
            <goals>
              <goal>test-jar-no-fork</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <!-- Create JAR files -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
            </manifest>
          </archive>
        </configuration>
      </plugin>
      <!-- Create WAR files -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
            </manifest>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <groupId>com.mycila</groupId>
        <artifactId>license-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <configuration>
          <autoVersionSubmodules>false</autoVersionSubmodules>
          <mavenExecutorId>forked-path</mavenExecutorId>
          <useReleaseProfile>false</useReleaseProfile>
          <releaseProfiles>release</releaseProfiles>
          <goals>process-resources javadoc:jar deploy</goals>
        </configuration>
      </plugin>
      <!-- Create build information for all artefacts -->
      <plugin>
        <groupId>com.helger.maven</groupId>
        <artifactId>ph-buildinfo-maven-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>generate-buildinfo</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <formatProperties>false</formatProperties>
          <formatXML>true</formatXML>
          <withAllSystemProperties>true</withAllSystemProperties>
          <selectedEnvVars>
            <param>JAVA_.*</param>
            <param>M2_.*</param>
            <param>MAVEN_.*</param>
            <param>NUMBER_OF_PROCESSORS</param>
            <param>OS</param>
            <param>PROCESSOR_.*</param>
          </selectedEnvVars>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <configuration>
          <generateSitemap>true</generateSitemap>
        </configuration>
      </plugin>
      <!-- for JUnit5 only
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <dependencies>
          <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-surefire-provider</artifactId>
            <version>${junit.platform.version}</version>
          </dependency>
          <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>${junit.jupiter.version}</version>
          </dependency>
        </dependencies>
      </plugin>
       -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <encoding>${project.build.sourceEncoding}</encoding>
          <links>
            <link>https://docs.oracle.com/en/java/javase/11/docs/api/</link>
          </links>
          <quiet>true</quiet>
          <!--
          Circumvent the following problem when running "javadoc:javadoc"
            when using the "bundle" packaging

[ERROR] Exit code: 1 - error: [dash][dash]add-modules ALL-MODULE-PATH can only be used when compiling the unnamed module
[ERROR] error: module not found: com.helger.collection
          -->
          <source>8</source>
          <verbose>false</verbose>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <!-- As suggested in https://maven.apache.org/plugins/maven-site-plugin/maven-3.html -->
        <!--
        <configuration>
          <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
          <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
        </configuration>
           -->
        <reportSets>
          <reportSet>
            <reports>
              <report>index</report>
              <report>ci-management</report>
              <report>dependencies</report>
              <report>dependency-convergence</report>
              <report>dependency-info</report>
              <report>dependency-management</report>
              <report>distribution-management</report>
              <report>issue-management</report>
              <report>licenses</report>
              <report>mailing-lists</report>
              <report>modules</report>
              <report>plugin-management</report>
              <report>plugins</report>
              <report>scm</report>
              <report>summary</report>
              <report>team</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <!-- JavaDOC report -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <!--
        Leave out the aggregated report:

[ERROR] Creating an aggregated report for both named and unnamed modules is not possible.
[ERROR] Ensure that every module has a module descriptor or is a jar with a MANIFEST.MF containing an Automatic-Module-Name.
        -->
        <reportSets>
          <reportSet>
            <reports>
              <report>javadoc</report>
              <report>test-javadoc</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <!-- JXR source cross reference report -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <configuration>
          <inputEncoding>${project.build.sourceEncoding}</inputEncoding>
        </configuration>
      </plugin>
      <!-- Unittest result report -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <configuration>
          <aggregate>true</aggregate>
        </configuration>
      </plugin>
      <!-- Generates TODO list for the project -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>taglist-maven-plugin</artifactId>
        <configuration>
          <tagListOptions>
            <tag>
              <matchString>TODO</matchString>
              <matchType>exact</matchType>
            </tag>
            <tag>
              <matchString>FIXME</matchString>
              <matchType>exact</matchType>
            </tag>
            <tag>
              <matchString>@todo</matchString>
              <matchType>ignoreCase</matchType>
            </tag>
            <tag>
              <matchString>@deprecated</matchString>
              <matchType>ignoreCase</matchType>
            </tag>
          </tagListOptions>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <configuration>
          <linkXref>true</linkXref>
          <minimumTokens>30</minimumTokens>
          <targetJdk>${maven.compiler.source}</targetJdk>
        </configuration>
      </plugin>
      <!-- Generate a FindBugs report. May require the environment variable
           MAVEN_OPTS=-Xmx512M to be set -->
      <plugin>
        <groupId>com.github.spotbugs</groupId>
        <artifactId>spotbugs-maven-plugin</artifactId>
        <configuration>
          <effort>Max</effort>
        </configuration>
      </plugin>
      <!-- JDepend checks Java source dependencies -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jdepend-maven-plugin</artifactId>
      </plugin>
      <!-- For plugins -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-plugin-plugin</artifactId>
      </plugin>
      <!-- Difference to last release report -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>clirr-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.owasp</groupId>
        <artifactId>dependency-check-maven</artifactId>
        <reportSets>
          <reportSet>
            <reports>
              <report>aggregate</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>
</project>


text:
URI: ssl_howto.html.en
Content-Language: en
Content-type: text/html; charset=ISO-8859-1

URI: ssl_howto.html.fr
Content-Language: fr
Content-type: text/html; charset=ISO-8859-1

redpajama_set_name: RedPajamaGithub


text:
(function(a) {
  bungieNetPlatform.groupService = {
    dataStore: [],
    groupData: {
      getCacheItem: function(a) {
        return bungieNetPlatform.groupService.dataStore[a + ""]
      },
      setCacheItem: function(a) {
        bungieNetPlatform.groupService.dataStore[a.id + ""] = a
      },
      getCacheSet: function(a) {
        return bungieNetPlatform.groupService.dataStore["Set_" + a]
      },
      setCacheSet: function(a) {
        bungieNetPlatform.groupService.dataStore["Set_" + a.id] = a
      }
    },
    GetAvailableAvatars: function(f, g, d) {
      var b = bungieNetPlatform.platformSettings.platformUrl + "/Group/GetAvailableAvatars/",
          e = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof d !== "undefined") e += d;
      b = b + e;
      var c = bungieNetPlatform.groupService.groupData.getCacheItem(b);
      if (c) return a.Deferred(function(a) {
        f(c);
        a.resolve(c)
      }).promise();
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", b]);
      return bungieNetPlatform.serviceLibrary.get(b, function(a) {
        bungieNetPlatform.groupService.groupData.setCacheItem(a);
        f(a)
      }, g)
    },
    GetAvailableThemes: function(f, g, d) {
      var b = bungieNetPlatform.platformSettings.platformUrl + "/Group/GetAvailableThemes/",
          e = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof d !== "undefined") e += d;
      b = b + e;
      var c = bungieNetPlatform.groupService.groupData.getCacheItem(b);
      if (c) return a.Deferred(function(a) {
        f(c);
        a.resolve(c)
      }).promise();
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", b]);
      return bungieNetPlatform.serviceLibrary.get(b, function(a) {
        bungieNetPlatform.groupService.groupData.setCacheItem(a);
        f(a)
      }, g)
    },
    GetGroupsFollowingGroup: function(d, f, e, g, h, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/FollowedBy/" + encodeURIComponent(f) + "/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&populatefriends=" + encodeURIComponent(e);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        g(a)
      }, h)
    },
    GetGroupsFollowedByGroup: function(d, f, e, g, h, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/Following/" + encodeURIComponent(f) + "/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&populatefriends=" + encodeURIComponent(e);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        g(a)
      }, h)
    },
    FollowGroupWithGroup: function(e, d, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Follow/" + encodeURIComponent(d) + "/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        f(a)
      }, g)
    },
    UnfollowGroupWithGroup: function(e, d, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Unfollow/" + encodeURIComponent(d) + "/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        f(a)
      }, g)
    },
    FollowGroupsWithGroup: function(g, d, e, f, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/FollowList/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, g, function(a) {
        e(a)
      }, f)
    },
    UnfollowGroupsWithGroup: function(g, d, e, f, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/UnfollowList/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, g, function(a) {
        e(a)
      }, f)
    },
    UnfollowAllGroupsWithGroup: function(d, e, f, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/UnfollowAll/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        e(a)
      }, f)
    },
    InviteToJoinAlliance: function(h, d, e, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/Allies/Invite/" + encodeURIComponent(e) + "/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, h, function(a) {
        f(a)
      }, g)
    },
    InviteManyToJoinAlliance: function(g, d, e, f, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/Allies/InviteMany/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, g, function(a) {
        e(a)
      }, f)
    },
    RequestToJoinAlliance: function(h, e, d, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Allies/RequestToJoin/" + encodeURIComponent(d) + "/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, h, function(a) {
        f(a)
      }, g)
    },
    BreakAlliance: function(d, e, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/Relationship/" + encodeURIComponent(e) + "/BreakAlliance/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        f(a)
      }, g)
    },
    BreakAlliances: function(g, d, e, f, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/BreakAlliances/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, g, function(a) {
        e(a)
      }, f)
    },
    DisbandAlliance: function(d, e, f, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/BreakAllAlliances/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        e(a)
      }, f)
    },
    SetGroupAsAlliance: function(d, e, f, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/SetAsAlliance/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        e(a)
      }, f)
    },
    GetAlliedGroups: function(f, e, d, g, h, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(f) + "/Allies/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&currentpage=" + encodeURIComponent(e) + "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        g(a)
      }, h)
    },
    GetRecommendedGroups: function(f, e, d, g, h, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/MyGroups/Recommended/" + encodeURIComponent(f) + "/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&membershiptype=" + encodeURIComponent(e) + "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        g(a)
      }, h)
    },
    GroupSearch: function(g, d, e, f, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/Search/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, g, function(a) {
        e(a)
      }, f)
    },
    GetJoinedGroupsForCurrentMember: function(e, d, f, g, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/MyGroups/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&clanonly=" + encodeURIComponent(e) + "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        f(a)
      }, g)
    },
    GetJoinedGroupsForCurrentMemberV2: function(e, f, d, g, h, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/MyGroups/V2/" + encodeURIComponent(e) + "/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&clanonly=" + encodeURIComponent(f) + "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        g(a)
      }, h)
    },
    GetPendingGroupsForCurrentMember: function(d, e, f, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/MyPendingGroups/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        e(a)
      }, f)
    },
    GetPendingGroupsForCurrentMemberV2: function(e, d, f, g, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/MyPendingGroups/V2/" + encodeURIComponent(e) + "/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        f(a)
      }, g)
    },
    GetAllGroupsForCurrentMember: function(e, d, f, g, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/MyGroups/All/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&clanonly=" + encodeURIComponent(e) + "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        f(a)
      }, g)
    },
    GetDeletedGroupsForCurrentMember: function(d, e, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/MyGroups/Deleted/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        d(a)
      }, e)
    },
    GetJoinedGroupsForMember: function(e, f, d, g, h, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/User/" + encodeURIComponent(e) + "/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&clanonly=" + encodeURIComponent(f) + "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        g(a)
      }, h)
    },
    GetJoinedGroupsForMemberV2: function(e, f, g, d, h, i, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/User/" + encodeURIComponent(e) + "/Joined/" + encodeURIComponent(f) + "/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&clanonly=" + encodeURIComponent(g) + "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        h(a)
      }, i)
    },
    GetPendingGroupsForMember: function(e, d, f, g, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/User/" + encodeURIComponent(e) + "/Pending/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        f(a)
      }, g)
    },
    GetPendingGroupsForMemberV2: function(e, f, d, g, h, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/User/" + encodeURIComponent(e) + "/PendingV2/" + encodeURIComponent(f) + "/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        g(a)
      }, h)
    },
    GetAllGroupsForMember: function(e, f, d, g, h, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/User/" + encodeURIComponent(e) + "/All/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&clanonly=" + encodeURIComponent(f) + "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        g(a)
      }, h)
    },
    GetGroup: function(e, d, f, g, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        f(a)
      }, g)
    },
    GetGroupByName: function(e, d, f, g, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/Name/" + encodeURIComponent(e) + "/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        f(a)
      }, g)
    },
    GetGroupTagSuggestions: function(d, e, f, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/GetGroupTagSuggestions/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&partialtag=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        e(a)
      }, f)
    },
    CreateGroup: function(f, d, e, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/Create/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, f, function(a) {
        d(a)
      }, e)
    },
    CreateMinimalGroup: function(f, d, e, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/Create/Minimal/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, f, function(a) {
        d(a)
      }, e)
    },
    EditGroup: function(g, d, e, f, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/Edit/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, g, function(a) {
        e(a)
      }, f)
    },
    EditGroupV2: function(g, d, e, f, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/EditV2/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, g, function(a) {
        e(a)
      }, f)
    },
    SetPrivacy: function(e, d, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Privacy/" + encodeURIComponent(d) + "/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        f(a)
      }, g)
    },
    UndeleteGroup: function(d, e, f, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/Undelete/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        e(a)
      }, f)
    },
    InviteGroupMember: function(h, e, d, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Invite/" + encodeURIComponent(d) + "/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, h, function(a) {
        f(a)
      }, g)
    },
    InviteClanMember: function(i, f, d, e, g, h, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(f) + "/InviteToClan/" + encodeURIComponent(d) + "/" + encodeURIComponent(e) + "/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, i, function(a) {
        g(a)
      }, h)
    },
    GetPendingMemberships: function(f, d, e, g, h, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(f) + "/Members/Pending/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&itemsPerPage=" + encodeURIComponent(d) + "&currentPage=" + encodeURIComponent(e);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        g(a)
      }, h)
    },
    GetPendingMembershipsV2: function(e, d, f, g, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Members/PendingV2/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&currentPage=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        f(a)
      }, g)
    },
    RequestGroupMembership: function(e, d, f, g, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Members/Apply/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        f(a)
      }, g)
    },
    RequestGroupMembershipV2: function(h, e, d, f, g, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Members/ApplyV2/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, h, function(a) {
        f(a)
      }, g)
    },
    RescindGroupMembership: function(e, d, f, g, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Members/Rescind/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&populatefriends=" + encodeURIComponent(d);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        f(a)
      }, g)
    },
    ApproveGroupMembership: function(e, d, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Members/" + encodeURIComponent(d) + "/Approve/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        f(a)
      }, g)
    },
    ApproveGroupMembershipV2: function(h, e, d, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Members/" + encodeURIComponent(d) + "/ApproveV2/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, h, function(a) {
        f(a)
      }, g)
    },
    DenyGroupMembership: function(e, d, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Members/" + encodeURIComponent(d) + "/Deny/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        f(a)
      }, g)
    },
    DenyGroupMembershipV2: function(h, e, d, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Members/" + encodeURIComponent(d) + "/DenyV2/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, h, function(a) {
        f(a)
      }, g)
    },
    ApproveAllPending: function(g, d, e, f, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/Members/ApproveAll/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, g, function(a) {
        e(a)
      }, f)
    },
    DenyAllPending: function(g, d, e, f, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/Members/DenyAll/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, g, function(a) {
        e(a)
      }, f)
    },
    ApprovePendingForList: function(g, d, e, f, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/Members/ApproveList/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, g, function(a) {
        e(a)
      }, f)
    },
    DenyPendingForList: function(g, d, e, f, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(d) + "/Members/DenyList/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, g, function(a) {
        e(a)
      }, f)
    },
    GetClanAttributeDefinitions: function(f, g, d) {
      var b = bungieNetPlatform.platformSettings.platformUrl + "/Group/GetClanAttributeDefinitions/",
          e = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof d !== "undefined") e += d;
      b = b + e;
      var c = bungieNetPlatform.groupService.groupData.getCacheItem(b);
      if (c) return a.Deferred(function(a) {
        f(c);
        a.resolve(c)
      }).promise();
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", b]);
      return bungieNetPlatform.serviceLibrary.get(b, function(a) {
        bungieNetPlatform.groupService.groupData.setCacheItem(a);
        f(a)
      }, g)
    },
    EnableClanForGroup: function(e, d, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Clans/Enable/" + encodeURIComponent(d) + "/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        f(a)
      }, g)
    },
    JoinClanForGroup: function(h, e, d, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Clans/Join/" + encodeURIComponent(d) + "/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, h, function(a) {
        f(a)
      }, g)
    },
    LeaveClanForGroup: function(e, d, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Clans/Leave/" + encodeURIComponent(d) + "/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        f(a)
      }, g)
    },
    DisableClanForGroup: function(e, d, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Clans/Disable/" + encodeURIComponent(d) + "/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        f(a)
      }, g)
    },
    RefreshClanSettingsInDestiny: function(d, e, f, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/MyClans/Refresh/" + encodeURIComponent(d) + "/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        e(a)
      }, f)
    },
    GetMembersOfGroup: function(h, d, f, g, e, k, i, j, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(h) + "/Members/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&itemsPerPage=" + encodeURIComponent(d) + "&currentPage=" + encodeURIComponent(f) + "&memberType=" + encodeURIComponent(g) + "&platformType=" + encodeURIComponent(e) + "&sort=" + encodeURIComponent(k);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        i(a)
      }, j)
    },
    GetMembersOfGroupV2: function(h, d, f, g, e, k, i, j, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(h) + "/MembersV2/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&itemsPerPage=" + encodeURIComponent(d) + "&currentPage=" + encodeURIComponent(f) + "&memberType=" + encodeURIComponent(g) + "&platformType=" + encodeURIComponent(e) + "&sort=" + encodeURIComponent(k);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        i(a)
      }, j)
    },
    GetMembersOfGroupV3: function(i, d, f, g, e, l, h, j, k, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(i) + "/MembersV3/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&itemsPerPage=" + encodeURIComponent(d) + "&currentPage=" + encodeURIComponent(f) + "&memberType=" + encodeURIComponent(g) + "&platformType=" + encodeURIComponent(e) + "&sort=" + encodeURIComponent(l) + "&nameSearch=" + encodeURIComponent(h);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        j(a)
      }, k)
    },
    GetAdminsOfGroup: function(f, d, e, g, h, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(f) + "/Admins/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&itemsPerPage=" + encodeURIComponent(d) + "&currentPage=" + encodeURIComponent(e);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        g(a)
      }, h)
    },
    GetAdminsOfGroupV2: function(f, d, e, g, h, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(f) + "/AdminsV2/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&itemsPerPage=" + encodeURIComponent(d) + "&currentPage=" + encodeURIComponent(e);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        g(a)
      }, h)
    },
    EditGroupMembership: function(f, e, d, g, h, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(f) + "/Members/" + encodeURIComponent(e) + "/SetMembershipType/" + encodeURIComponent(d) + "/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        g(a)
      }, h)
    },
    KickMember: function(e, d, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Members/" + encodeURIComponent(d) + "/Kick/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        f(a)
      }, g)
    },
    BanMember: function(h, e, d, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Members/" + encodeURIComponent(d) + "/Ban/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, h, function(a) {
        f(a)
      }, g)
    },
    UnbanMember: function(e, d, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Members/" + encodeURIComponent(d) + "/Unban/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        f(a)
      }, g)
    },
    GetBannedMembersOfGroup: function(f, d, e, g, h, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(f) + "/Banned/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&itemsPerPage=" + encodeURIComponent(d) + "&currentPage=" + encodeURIComponent(e);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        g(a)
      }, h)
    },
    GetBannedMembersOfGroupV2: function(f, d, e, g, h, c) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(f) + "/BannedV2/",
          b = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      b += "&itemsPerPage=" + encodeURIComponent(d) + "&currentPage=" + encodeURIComponent(e);
      if (typeof c !== "undefined") b += c;
      a = a + b;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.get(a, function(a) {
        g(a)
      }, h)
    },
    OverrideFounderAdmin: function(e, d, f, g, b) {
      var a = bungieNetPlatform.platformSettings.platformUrl + "/Group/" + encodeURIComponent(e) + "/Admin/FounderOverride/" + encodeURIComponent(d) + "/",
          c = "?lc=" + bungieNetPlatform.platformSettings.currentLocale + "&fmt=true&lcin=" + bungieNetPlatform.platformSettings.locInherit;
      if (typeof b !== "undefined") c += b;
      a = a + c;
      typeof _gaq !== "undefined" && _gaq.push(["_trackPageview", a]);
      return bungieNetPlatform.serviceLibrary.post(a, null, function(a) {
        f(a)
      }, g)
    }
  }
})(jQuery);


text:
function getPubNubConn() {
    var pubnub = PUBNUB.init({
        publish_key: $("#pubnub").attr("pub-key"),
        subscribe_key: $("#pubnub").attr("sub-key"),
        ssl: false,
    });
    return pubnub;
}


text:
class BaseHookParser(object):
    def __init__(self, request):
        self.request = request

    def cast(self, value):
        try:
            return int(value)
        except:
            return value

    def parse_hooks(self):
        fake = self._extract_fake()
        length = self._extract_length()
        status = self._extract_status()
        errors = self._extract_errors()
        attributes = self._extract_attributes()

        overrides = {}
        if fake is not None:
            overrides.update({"fake": fake})
        if length or length == 0:
            overrides.update({"length": length})
        if status:
            overrides.update({"status": status})
        if errors:
            overrides.update({"errors": errors})
        if attributes:
            overrides.update({"attributes": attributes})

        return overrides

    def _extract_errors(self):
        raise NotImplementedError

    def _extract_attributes(self):
        raise NotImplementedError

    def _extract_length(self):
        raise NotImplementedError

    def _extract_status(self):
        raise NotImplementedError

    def _extract_fake(self):
        raise NotImplementedError

    def parse_bool(self, value):
        if value is None:
            return None
        elif value in ('false', 'False', '0', '[]'):
            return False
        else:
            return bool(value)

class QueryStringHookParser(BaseHookParser):
    """
    Example of valid query string:

      /caterers/1?length=20&name=abc&numberOfDrivers=10&errors=name,description&fake=1

    """
    def __init__(self, request, attributes):
        super(QueryStringHookParser, self).__init__(request)
        self.attributes = attributes

        self.overrides = {}
        for param, value in self.request.GET.iteritems():
            self.overrides[param] = self.cast(value)

    def _extract_errors(self):
        if 'errors' in self.overrides:
            return self.overrides['errors'].split(',')

    def _extract_attributes(self):
        return {attr: val for attr, val in self.overrides.iteritems() if attr in self.attributes.keys()}

    def _extract_length(self):
        return self.overrides.get('length')

    def _extract_status(self):
        return self.overrides.get('status')

    def _extract_fake(self):
        return self.parse_bool(self.overrides.get('fake'))

class HeadersHookParser(BaseHookParser):
    """
    Example of valid headers:

      HOST: local.zerocater.com
      ms-length: 20
      ms-attributes: name=abc;numberOfDrivers=10
      ms-errors: name;description
      ms-fake: 1

    """
    def __init__(self, request):
        super(HeadersHookParser, self).__init__(request)

        self.overrides = {}
        for header, value in self.request.META.iteritems():
            if header.lower().startswith('http_ms_'):
                self.overrides[header[8:].lower()] = self.cast(value)

    def _extract_errors(self):
        if 'errors' in self.overrides:
            return self.overrides['errors'].split(';')

    def _extract_attributes(self):
        if 'attributes' not in self.overrides:
            return None

        attributes = self.overrides['attributes'].split(';')
        attribute_overrides = dict([attribute.split('=') for attribute in attributes])
        for att, value in attribute_overrides.iteritems():
            attribute_overrides[att] = self.cast(value)
        return attribute_overrides

    def _extract_length(self):
        return self.overrides.get('length')

    def _extract_status(self):
        return self.overrides.get('status')

    def _extract_fake(self):
        return self.parse_bool(self.overrides.get('fake'))

class MockServerHookParser(object):
    def __init__(self, request, attributes):
        self.headers_hook_parser = HeadersHookParser(request)
        self.qs_hook_parser = QueryStringHookParser(request, attributes)

    def parse_hooks(self):
        overrides = {}
        overrides.update(self.headers_hook_parser.parse_hooks())
        overrides.update(self.qs_hook_parser.parse_hooks())
        return overrides


text:
package com.hazelcast.sql.impl.plan.node;

import com.hazelcast.sql.impl.SqlDataSerializerHook;
import com.hazelcast.sql.impl.SqlTestSupport;
import com.hazelcast.sql.impl.type.QueryDataType;
import com.hazelcast.test.HazelcastParallelClassRunner;
import com.hazelcast.test.annotation.ParallelJVMTest;
import com.hazelcast.test.annotation.QuickTest;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;

import java.util.Collections;
import java.util.List;

import static org.junit.Assert.assertEquals;

@RunWith(HazelcastParallelClassRunner.class)
@Category({QuickTest.class, ParallelJVMTest.class})
public class EmptyPlanNodeTest extends SqlTestSupport {
    @Test
    public void testState() {
        List<QueryDataType> fieldTypes = Collections.singletonList(QueryDataType.INT);
        EmptyPlanNode node = new EmptyPlanNode(1, fieldTypes);

        assertEquals(1, node.getId());
        assertEquals(new PlanNodeSchema(fieldTypes), node.getSchema());
    }

    @Test
    public void testEquality() {
        int id1 = 1;
        int id2 = 2;

        List<QueryDataType> fieldTypes1 = Collections.singletonList(QueryDataType.INT);
        List<QueryDataType> fieldTypes2 = Collections.singletonList(QueryDataType.BIGINT);

        checkEquals(new EmptyPlanNode(id1, fieldTypes1), new EmptyPlanNode(id1, fieldTypes1), true);
        checkEquals(new EmptyPlanNode(id1, fieldTypes1), new EmptyPlanNode(id2, fieldTypes1), false);
        checkEquals(new EmptyPlanNode(id1, fieldTypes1), new EmptyPlanNode(id1, fieldTypes2), false);
    }

    @Test
    public void testSerialization() {
        EmptyPlanNode original = new EmptyPlanNode(1, Collections.singletonList(QueryDataType.INT));
        EmptyPlanNode restored = serializeAndCheck(original, SqlDataSerializerHook.NODE_EMPTY);

        checkEquals(original, restored, true);
    }
}


text:
using System.Collections.Generic;

using DynamicTranslator.Configuration.Startup;
using DynamicTranslator.Constants;
using DynamicTranslator.LanguageManagement;

namespace DynamicTranslator.Application.Yandex.Configuration
{
    public class YandexTranslatorConfiguration : AbstractTranslatorConfiguration, IYandexTranslatorConfiguration
    {
        public override IList<Language> SupportedLanguages { get; set; }

        public override string Url { get; set; }

        public override TranslatorType TranslatorType => TranslatorType.Yandex;

        public string ApiKey { get; set; }

        public string BaseUrl { get; set; }

        public bool ShouldBeAnonymous { get; set; }

        public string SId { get; set; }
    }
}


text:
/**
 * logic.js
 *
 * Our Demo example.
 *
 * @author Villem Alango <villem.alango@gmail.com>
 * created 16.04.17 12:14
 * @license http://opensource.org/licenses/MIT
 */

'use strict'

const db     = require('./db')
const mailer = require('./mailer')

/**
 * Check if the `message` is already known and if not, then
 *  - mail it around the world and
 *  - store it into db together with the mailer response.
 *
 * @param {string} text
 * @returns {object}
 */
function messageProcessing (text) {
  let storedMessage = db.find(text)

  if (!storedMessage) {
    const response = mailer.send(text)
    storedMessage  = db.store(text, response)
  }
  return storedMessage
}

module.exports = messageProcessing


text:
package com.list.dao;

import java.util.List;

import com.list.model.Tm_Owner;
import com.list.model.Tm_custOmer;
import com.list.model.Tt_linkMan;
import com.list.model.Tt_mroTwo;

public interface MroTwoDao {
	public List<Tt_mroTwo> findByLike(String keyWord, int start , int end) throws Exception;

	public List<Tt_mroTwo> findById(String id) throws Exception;

	public List<Tt_mroTwo> findByTel(String telephone, int end) throws Exception;

	public List<Tt_mroTwo> findByVIN(String VIN, int end) throws Exception;
	/**按开始时间倒叙*/
	public List<Tt_mroTwo> findByVIN(String VIN) throws Exception;
	/**获取查询结果的总数*/
	public long getCountAll() throws Exception;
	/**获取维修次数*/
	public long getCountAll(String vin) throws Exception;
	/**tel获取维修次数*/
	public long getTelCountAll(String tel) throws Exception;

	public String getAllTotal_amount(String vin) throws Exception;
	public String getAllnet_amount(String vin) throws Exception;
	/**增加total_amount,net_amount 删除 labour_amount  assign_labour_hour*/
	public void findFastInsertTwo(MyDBDao mydbdao) throws Exception;

	public List<Tt_mroTwo> findTelORVIN(String telephone, String vin) throws Exception;

}