// Path: src/main/java/com/maxmind/minfraud/AbstractModel.java
// public abstract class AbstractModel {
//     /**
//      * @return JSON representation of this object.
//      * @throws IOException if there is an error serializing the object to JSON.
//      */
//     public final String toJson() throws IOException {
//         return Mapper.get().writeValueAsString(this);
//     }
// 
//     @Override
//     public String toString() {
//         // This exception should never happen. If it does happen, we did
//         // something wrong.
//         try {
//             return getClass().getName() + " [ " + toJson() + " ]";
//         } catch (IOException e) {
//             throw new RuntimeException(e);
//         }
//     }
// }


import com.fasterxml.jackson.annotation.JsonProperty;
import com.maxmind.minfraud.AbstractModel;
import java.util.regex.Pattern;
        public final T address(String address) {
            this.address = address;
            return (T) this;
        }

        /**
         * @param address2 The second line of the address
         * @return The builder object.
         */
        public final T address2(String address2) {
            this.address2 = address2;
            return (T) this;
        }

        /**
         * @param name The city associated with the address
         * @return The builder object.
         */
        public final T city(String name) {
            city = name;
            return (T) this;
        }

        /**
         * @param code The ISO 3166-2 subdivision code for the region
         *             associated with the address
         * @return The builder object.
         */
        public final T region(String code) {
            region = code;
// Path: src/main/java/com/maxmind/minfraud/AbstractModel.java
// public abstract class AbstractModel {
//     /**
//      * @return JSON representation of this object.
//      * @throws IOException if there is an error serializing the object to JSON.
//      */
//     public final String toJson() throws IOException {
//         return Mapper.get().writeValueAsString(this);
//     }
// 
//     @Override
//     public String toString() {
//         // This exception should never happen. If it does happen, we did
//         // something wrong.
//         try {
//             return getClass().getName() + " [ " + toJson() + " ]";
//         } catch (IOException e) {
//             throw new RuntimeException(e);
//         }
//     }
// }


// Path: src/main/java/com/maxmind/minfraud/request/AbstractLocation.java
import com.fasterxml.jackson.annotation.JsonProperty;
import com.maxmind.minfraud.AbstractModel;
import java.util.regex.Pattern;

        public final T address(String address) {
            this.address = address;
            return (T) this;
        }

        /**
         * @param address2 The second line of the address
         * @return The builder object.
         */
        public final T address2(String address2) {
            this.address2 = address2;
            return (T) this;
        }

        /**
         * @param name The city associated with the address
         * @return The builder object.
         */
        public final T city(String name) {
            city = name;
            return (T) this;
        }

        /**
         * @param code The ISO 3166-2 subdivision code for the region
         *             associated with the address
         * @return The builder object.
         */
        public final T region(String code) {
            region = code;
            return (T) this;