anchor.diff:    Process.start("pub", arguments, options)
     ..then((p) {
       StringBuffer stderrBuffer = new StringBuffer();
  -    p.stderr.listen((data){
  -      var s = new String.fromCharCodes(data);
  -      stderrBuffer.write(s);
  +    p.stderr.transform(new StringDecoder()).listen((String data) {
  +      stderrBuffer.write(data);
         
         if (pubVerbose) {
  -        print(s);
  +        print(data);
         }
       });
       
       StringBuffer stdoutBuffer = new StringBuffer();
  -    p.stdout.listen((data){
  -      var s = new String.fromCharCodes(data);
  -      stdoutBuffer.write(s);
  +    p.stdout.transform(new StringDecoder()).listen((String data) {
  +      stdoutBuffer.write(data);
         
         if (pubVerbose) {
  -        print(s);
  +        print(data);
         }
         
         if (stdoutBuffer.toString().contains(r"Are you ready to upload your package")) {
  
positive.code: 
  Future<String> promptPassword() {
    var completer = new Completer<String>();
    
    stdout.write("Warning: If you didn't run this via run_update.sh your password will be displayed here until Dart has tty control.\n");
    stdout.write("Watch your back...\n");
    stdout.write("GitHub password for $gituser: ");
  
    stdin.listen((data){
      
      // scroll password out of view just in case...
      stdout.write("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
      
      var str = new String.fromCharCodes(data).replaceAll("\r", "").replaceAll("\n", "");
      
      completer.complete(str);
    });
    
    return completer.future;
  }
  
negative.code:         print("Could not tell if package was uploaded or error happened.");
          completer.complete(false);
        }
      },onError: (error) {
        print("catchError = $error");
        completer.completeError(error);
      });
  