<?xml version="1.0"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You 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.
  -->
<antlib>
  <taskdef
     name="un7z"
     classname="org.apache.ant.compress.taskdefs.Un7z"
     />
  <taskdef
     name="unar"
     classname="org.apache.ant.compress.taskdefs.Unar"
     />
  <taskdef
     name="unarj"
     classname="org.apache.ant.compress.taskdefs.Unarj"
     />
  <taskdef
     name="uncpio"
     classname="org.apache.ant.compress.taskdefs.Uncpio"
     />
  <taskdef
     name="undeflate"
     classname="org.apache.ant.compress.taskdefs.Undeflate"
     />
  <taskdef
     name="undump"
     classname="org.apache.ant.compress.taskdefs.Undump"
     />
  <taskdef
     name="untar"
     classname="org.apache.ant.compress.taskdefs.Untar"
     />
  <taskdef
     name="unzip"
     classname="org.apache.ant.compress.taskdefs.Unzip"
     />
  <taskdef
     name="ar"
     classname="org.apache.ant.compress.taskdefs.Ar"
     />
  <taskdef
     name="cpio"
     classname="org.apache.ant.compress.taskdefs.Cpio"
     />
  <taskdef
     name="tar"
     classname="org.apache.ant.compress.taskdefs.Tar"
     />
  <taskdef
     name="zip"
     classname="org.apache.ant.compress.taskdefs.Zip"
     />
  <taskdef
     name="bunzip2"
     classname="org.apache.ant.compress.taskdefs.BUnzip2"
     />
  <taskdef
     name="gunzip"
     classname="org.apache.ant.compress.taskdefs.GUnzip"
     />
  <taskdef
     name="unlzma"
     classname="org.apache.ant.compress.taskdefs.UnLZMA"
     />
  <taskdef
     name="unpack200"
     classname="org.apache.ant.compress.taskdefs.UnPack200"
     />
  <taskdef
     name="unsnappy"
     classname="org.apache.ant.compress.taskdefs.UnSnappy"
     />
  <taskdef
     name="unxz"
     classname="org.apache.ant.compress.taskdefs.UnXZ"
     />
  <taskdef
     name="unz"
     classname="org.apache.ant.compress.taskdefs.UnZ"
     />
  <taskdef
     name="bzip2"
     classname="org.apache.ant.compress.taskdefs.BZip2"
     />
  <taskdef
     name="deflate"
     classname="org.apache.ant.compress.taskdefs.Deflate"
     />
  <taskdef
     name="gzip"
     classname="org.apache.ant.compress.taskdefs.GZip"
     />
  <taskdef
     name="pack200"
     classname="org.apache.ant.compress.taskdefs.Pack200"
     />
  <taskdef
     name="pack200normalize"
     classname="org.apache.ant.compress.taskdefs.Pack200Normalize"
     />
  <taskdef
     name="sevenz"
     classname="org.apache.ant.compress.taskdefs.SevenZ"
     />
  <taskdef
     name="xz"
     classname="org.apache.ant.compress.taskdefs.XZ"
     />
  <taskdef
     name="lzma"
     classname="org.apache.ant.compress.taskdefs.LZMA"
     />

  <typedef
     name="arentry"
     classname="org.apache.ant.compress.resources.ArResource"
     />
  <typedef
     name="arjentry"
     classname="org.apache.ant.compress.resources.ArjResource"
     />
  <typedef
     name="cpioentry"
     classname="org.apache.ant.compress.resources.CpioResource"
     />
  <typedef
     name="dumpentry"
     classname="org.apache.ant.compress.resources.DumpResource"
     />
  <typedef
     name="sevenzentry"
     classname="org.apache.ant.compress.resources.SevenZResource"
     />
  <typedef
     name="tarentry"
     classname="org.apache.ant.compress.resources.TarResource"
     />
  <typedef
     name="zipentry"
     classname="org.apache.ant.compress.resources.ZipResource"
     />

  <typedef
     name="arfileset"
     classname="org.apache.ant.compress.resources.ArFileSet"
     />
  <typedef
     name="arjfileset"
     classname="org.apache.ant.compress.resources.ArjFileSet"
     />
  <typedef
     name="cpiofileset"
     classname="org.apache.ant.compress.resources.CpioFileSet"
     />
  <typedef
     name="dumpfileset"
     classname="org.apache.ant.compress.resources.DumpFileSet"
     />
  <typedef
     name="sevenzfileset"
     classname="org.apache.ant.compress.resources.SevenZFileSet"
     />
  <typedef
     name="tarfileset"
     classname="org.apache.ant.compress.resources.TarFileSet"
     />
  <typedef
     name="zipfileset"
     classname="org.apache.ant.compress.resources.ZipFileSet"
     />
  <typedef
     name="archives"
     classname="org.apache.ant.compress.resources.Archives"
     />
  <typedef
     name="bzip2resource"
     classname="org.apache.ant.compress.resources.BZip2Resource"
     />
  <typedef
     name="deflateresource"
     classname="org.apache.ant.compress.resources.DeflateResource"
     />
  <typedef
     name="gzipresource"
     classname="org.apache.ant.compress.resources.GZipResource"
     />
  <typedef
     name="lzmaresource"
     classname="org.apache.ant.compress.resources.LZMAResource"
     />
  <typedef
     name="pack200resource"
     classname="org.apache.ant.compress.resources.Pack200Resource"
     />
  <typedef
     name="snappyresource"
     classname="org.apache.ant.compress.resources.SnappyResource"
     />
  <typedef
     name="xzresource"
     classname="org.apache.ant.compress.resources.XZResource"
     />
  <typedef
     name="zresource"
     classname="org.apache.ant.compress.resources.ZResource"
     />

  <componentdef
     name="hasusername"
     classname="org.apache.ant.compress.conditions.HasUserName"
     />
  <componentdef
     name="hasgroupname"
     classname="org.apache.ant.compress.conditions.HasGroupName"
     />
  <componentdef
     name="hasuserid"
     classname="org.apache.ant.compress.conditions.HasUserId"
     />
  <componentdef
     name="hasgroupid"
     classname="org.apache.ant.compress.conditions.HasGroupId"
     />
  <componentdef
     name="hasmode"
     classname="org.apache.ant.compress.conditions.HasMode"
     />

  <typedef
     name="devzero"
     classname="org.apache.ant.compress.resources.DevZeroResource"
     />
</antlib>
