// Path: android/WALT/app/src/main/java/org/chromium/latency/walt/SimpleLogger.java
// public class SimpleLogger {
//     private static final String LOG_INTENT = "log-message";
//     public static final String TAG = "WaltLogger";
// 
//     private static final Object LOCK = new Object();
//     private static SimpleLogger instance;
// 
//     private StringBuilder sb = new StringBuilder();
//     private LocalBroadcastManager broadcastManager;
// 
//     public static SimpleLogger getInstance(Context context) {
//         synchronized (LOCK) {
//             if (instance == null) {
//                 instance = new SimpleLogger(context.getApplicationContext());
//             }
//             return instance;
//         }
//     }
// 
//     private SimpleLogger(Context context) {
//         broadcastManager = LocalBroadcastManager.getInstance(context);
//     }
// 
//     public synchronized void log(String msg) {
//         Log.i(TAG, msg);
//         sb.append(msg);
//         sb.append('\n');
//         if (broadcastManager != null) {
//             Intent intent = new Intent(LOG_INTENT);
//             intent.putExtra("message", msg);
//             broadcastManager.sendBroadcast(intent);
//         }
//     }
// 
//     public void registerReceiver(BroadcastReceiver broadcastReceiver) {
//         broadcastManager.registerReceiver(broadcastReceiver, new IntentFilter(LOG_INTENT));
//     }
// 
//     public void unregisterReceiver(BroadcastReceiver broadcastReceiver) {
//         broadcastManager.unregisterReceiver(broadcastReceiver);
//     }
// 
//     public String getLogText() {
//         return sb.toString();
//     }
// 
//     public void clear() {
//         sb = new StringBuilder();
//     }
// 
// }
// 
// Path: android/WALT/app/src/main/java/org/chromium/latency/walt/WaltConnection.java
// public interface WaltConnection {
// 
//     void connect();
// 
//     boolean isConnected();
// 
//     void sendByte(char c) throws IOException;
// 
//     int blockingRead(byte[] buffer);
// 
//     RemoteClockInfo syncClock() throws IOException;
// 
//     void updateLag();
// 
//     void setConnectionStateListener(ConnectionStateListener connectionStateListener);
// 
//     interface ConnectionStateListener {
//         void onConnect();
//         void onDisconnect();
//     }
// }


import android.content.Context;
import android.os.Handler;
import android.util.Log;
import org.chromium.latency.walt.R;
import org.chromium.latency.walt.SimpleLogger;
import org.chromium.latency.walt.WaltConnection;
import java.io.InputStream;
import java.text.ParseException;
import java.util.Arrays;
/*
 * Copyright (C) 2016 The Android Open Source Project
 *
 * 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.
 */

package org.chromium.latency.walt.programmer;




public class Programmer {
    private static final String TAG = "Programmer";
// Path: android/WALT/app/src/main/java/org/chromium/latency/walt/SimpleLogger.java
// public class SimpleLogger {
//     private static final String LOG_INTENT = "log-message";
//     public static final String TAG = "WaltLogger";
// 
//     private static final Object LOCK = new Object();
//     private static SimpleLogger instance;
// 
//     private StringBuilder sb = new StringBuilder();
//     private LocalBroadcastManager broadcastManager;
// 
//     public static SimpleLogger getInstance(Context context) {
//         synchronized (LOCK) {
//             if (instance == null) {
//                 instance = new SimpleLogger(context.getApplicationContext());
//             }
//             return instance;
//         }
//     }
// 
//     private SimpleLogger(Context context) {
//         broadcastManager = LocalBroadcastManager.getInstance(context);
//     }
// 
//     public synchronized void log(String msg) {
//         Log.i(TAG, msg);
//         sb.append(msg);
//         sb.append('\n');
//         if (broadcastManager != null) {
//             Intent intent = new Intent(LOG_INTENT);
//             intent.putExtra("message", msg);
//             broadcastManager.sendBroadcast(intent);
//         }
//     }
// 
//     public void registerReceiver(BroadcastReceiver broadcastReceiver) {
//         broadcastManager.registerReceiver(broadcastReceiver, new IntentFilter(LOG_INTENT));
//     }
// 
//     public void unregisterReceiver(BroadcastReceiver broadcastReceiver) {
//         broadcastManager.unregisterReceiver(broadcastReceiver);
//     }
// 
//     public String getLogText() {
//         return sb.toString();
//     }
// 
//     public void clear() {
//         sb = new StringBuilder();
//     }
// 
// }
// 
// Path: android/WALT/app/src/main/java/org/chromium/latency/walt/WaltConnection.java
// public interface WaltConnection {
// 
//     void connect();
// 
//     boolean isConnected();
// 
//     void sendByte(char c) throws IOException;
// 
//     int blockingRead(byte[] buffer);
// 
//     RemoteClockInfo syncClock() throws IOException;
// 
//     void updateLag();
// 
//     void setConnectionStateListener(ConnectionStateListener connectionStateListener);
// 
//     interface ConnectionStateListener {
//         void onConnect();
//         void onDisconnect();
//     }
// }


// Path: android/WALT/app/src/main/java/org/chromium/latency/walt/programmer/Programmer.java
import android.content.Context;
import android.os.Handler;
import android.util.Log;
import org.chromium.latency.walt.R;
import org.chromium.latency.walt.SimpleLogger;
import org.chromium.latency.walt.WaltConnection;
import java.io.InputStream;
import java.text.ParseException;
import java.util.Arrays;

/*
 * Copyright (C) 2016 The Android Open Source Project
 *
 * 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.
 */

package org.chromium.latency.walt.programmer;




public class Programmer {
    private static final String TAG = "Programmer";
    private SimpleLogger logger;