// Path: placesautocomplete/src/main/java/com/seatgeek/placesautocomplete/json/JsonParserResolver.java
// public final class JsonParserResolver {
//     public static final PlacesApiJsonParser JSON_PARSER;
// 
//     static {
//         boolean hasGson;
//         try {
//             Class.forName("com.google.gson.Gson");
//             hasGson = true;
//         } catch (ClassNotFoundException e) {
//             hasGson = false;
//         }
// 
//         JSON_PARSER = hasGson ? new GsonPlacesApiJsonParser() : new AndroidPlacesApiJsonParser();
//     }
// 
//     private JsonParserResolver() {
//         throw new RuntimeException("No instances");
//     }
// }
// 
// Path: placesautocomplete/src/main/java/com/seatgeek/placesautocomplete/json/PlacesApiJsonParser.java
// public interface PlacesApiJsonParser {
//     PlacesAutocompleteResponse autocompleteFromStream(InputStream is) throws JsonParsingException;
// 
//     PlacesDetailsResponse detailsFromStream(InputStream is) throws JsonParsingException;
// 
//     List<Place> readHistoryJson(InputStream in) throws JsonParsingException;
// 
//     void writeHistoryJson(OutputStream os, List<Place> places) throws JsonWritingException;
// }


import com.seatgeek.placesautocomplete.json.JsonParserResolver;
import com.seatgeek.placesautocomplete.json.PlacesApiJsonParser;
package com.seatgeek.placesautocomplete.network;


public final class PlacesHttpClientResolver {
    public static final PlacesHttpClient PLACES_HTTP_CLIENT;

    static {
        boolean hasOkHttp;

        try {
            Class.forName("com.squareup.okhttp.OkHttpClient");
            hasOkHttp = true;
        } catch (ClassNotFoundException e) {
// Path: placesautocomplete/src/main/java/com/seatgeek/placesautocomplete/json/JsonParserResolver.java
// public final class JsonParserResolver {
//     public static final PlacesApiJsonParser JSON_PARSER;
// 
//     static {
//         boolean hasGson;
//         try {
//             Class.forName("com.google.gson.Gson");
//             hasGson = true;
//         } catch (ClassNotFoundException e) {
//             hasGson = false;
//         }
// 
//         JSON_PARSER = hasGson ? new GsonPlacesApiJsonParser() : new AndroidPlacesApiJsonParser();
//     }
// 
//     private JsonParserResolver() {
//         throw new RuntimeException("No instances");
//     }
// }
// 
// Path: placesautocomplete/src/main/java/com/seatgeek/placesautocomplete/json/PlacesApiJsonParser.java
// public interface PlacesApiJsonParser {
//     PlacesAutocompleteResponse autocompleteFromStream(InputStream is) throws JsonParsingException;
// 
//     PlacesDetailsResponse detailsFromStream(InputStream is) throws JsonParsingException;
// 
//     List<Place> readHistoryJson(InputStream in) throws JsonParsingException;
// 
//     void writeHistoryJson(OutputStream os, List<Place> places) throws JsonWritingException;
// }


// Path: placesautocomplete/src/main/java/com/seatgeek/placesautocomplete/network/PlacesHttpClientResolver.java
import com.seatgeek.placesautocomplete.json.JsonParserResolver;
import com.seatgeek.placesautocomplete.json.PlacesApiJsonParser;

package com.seatgeek.placesautocomplete.network;


public final class PlacesHttpClientResolver {
    public static final PlacesHttpClient PLACES_HTTP_CLIENT;

    static {
        boolean hasOkHttp;

        try {
            Class.forName("com.squareup.okhttp.OkHttpClient");
            hasOkHttp = true;
        } catch (ClassNotFoundException e) {
            hasOkHttp = false;