anchor.diff:    m.onChangeMainButtonState.listen((bool isDown) {
       if (isDown) {
         startServer();
  +      startLocalIp();
       } else {
         stopServer();
       }
  
positive.code:       if (!fileList.containsKey(path)) {
          req.socket.close();
        } else {
          response(req.socket, fileList[path]);
        }
      });
    });
  }
  
  void response(hetima.HetiSocket socket, mainview.FileSelectResult f) {
    hetima.ArrayBuilder response = new hetima.ArrayBuilder();
    int index = 0;
    int size = 1024;
  
negative.code: }
  hetima.HetiHttpServer _server = null;
  
  void startLocalIp() {
    (new hetimacl.HetiSocketBuilderChrome()).getNetworkInterfaces().then((List<hetima.HetiNetworkInterface> l) {
      // search 24
      for(hetima.HetiNetworkInterface i in l) {
        if(i.prefixLength == 24 && !i.address.startsWith("127")) {
          m.localIP = i.address;
          return;
        }
      }
      //
      for(hetima.HetiNetworkInterface i in l) {
        if(i.prefixLength == 64) {
          m.localIP = i.address;
          return;
        }
      }
    });
    html.FileSystem s;
  
  }
  