// Path: dragonite-proxy/src/main/java/com/vecsight/dragonite/proxy/acl/ACLItemMethod.java
// public enum ACLItemMethod {
//     DIRECT,
//     PROXY,
//     REJECT
// }
// 
// Path: dragonite-proxy/src/main/java/com/vecsight/dragonite/proxy/acl/ACLItemType.java
// public enum ACLItemType {
//     DOMAIN,
//     DOMAIN_SUFFIX,
//     IPv4,
//     IPv4_CIDR,
//     IPv6,
//     IPv6_CIDR
// }
// 
// Path: dragonite-proxy/src/main/java/com/vecsight/dragonite/proxy/exception/InvalidAddressException.java
// public class InvalidAddressException extends Exception {
// 
//     public InvalidAddressException(final String msg) {
//         super(msg);
//     }
// 
// }


import com.vecsight.dragonite.proxy.acl.ACLItemMethod;
import com.vecsight.dragonite.proxy.acl.ACLItemType;
import com.vecsight.dragonite.proxy.exception.InvalidAddressException;
import java.math.BigInteger;
import java.net.InetAddress;
import java.net.UnknownHostException;
/*
 * The Dragonite Project
 * -------------------------
 * See the LICENSE file in the root directory for license information.
 */


package com.vecsight.dragonite.proxy.acl.item;



public class IPv6CIDRACLItem implements ACLItem {

    private final BigInteger lowest;

    private final BigInteger highest;

    private final ACLItemMethod method;

    private static final byte[] MASK_BASE = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};

// Path: dragonite-proxy/src/main/java/com/vecsight/dragonite/proxy/acl/ACLItemMethod.java
// public enum ACLItemMethod {
//     DIRECT,
//     PROXY,
//     REJECT
// }
// 
// Path: dragonite-proxy/src/main/java/com/vecsight/dragonite/proxy/acl/ACLItemType.java
// public enum ACLItemType {
//     DOMAIN,
//     DOMAIN_SUFFIX,
//     IPv4,
//     IPv4_CIDR,
//     IPv6,
//     IPv6_CIDR
// }
// 
// Path: dragonite-proxy/src/main/java/com/vecsight/dragonite/proxy/exception/InvalidAddressException.java
// public class InvalidAddressException extends Exception {
// 
//     public InvalidAddressException(final String msg) {
//         super(msg);
//     }
// 
// }


// Path: dragonite-proxy/src/main/java/com/vecsight/dragonite/proxy/acl/item/IPv6CIDRACLItem.java
import com.vecsight.dragonite.proxy.acl.ACLItemMethod;
import com.vecsight.dragonite.proxy.acl.ACLItemType;
import com.vecsight.dragonite.proxy.exception.InvalidAddressException;
import java.math.BigInteger;
import java.net.InetAddress;
import java.net.UnknownHostException;

/*
 * The Dragonite Project
 * -------------------------
 * See the LICENSE file in the root directory for license information.
 */


package com.vecsight.dragonite.proxy.acl.item;



public class IPv6CIDRACLItem implements ACLItem {

    private final BigInteger lowest;

    private final BigInteger highest;

    private final ACLItemMethod method;

    private static final byte[] MASK_BASE = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};

    public IPv6CIDRACLItem(final String string, final ACLItemMethod method) throws InvalidAddressException {