class ArrayTransposeWorker extends Worker {

  public ArrayTransposeWorker(Master master, int id) {
    super(master, id);
  }

  @Override
  ArrayResult executeOperation() {<FILL_FUNCTION_BODY>}
}

    //number of rows in result matrix is equal to number of columns in input matrix and vice versa
    var arrayInput = (ArrayInput) this.getReceivedData();
    final var rows = arrayInput.data[0].length;
    final var cols = arrayInput.data.length;
    var resultData = new int[rows][cols];
    for (var i = 0; i < cols; i++) {
      for (var j = 0; j < rows; j++) {
        //flipping element positions along diagonal
        resultData[j][i] = arrayInput.data[i][j];
      }
    }
    return new ArrayResult(resultData);
  
<methods>public int getWorkerId() ,public void run() ,public void setReceivedData(com.iluwatar.masterworker.system.systemmaster.Master, Input<?>) <variables>private final non-sealed com.iluwatar.masterworker.system.systemmaster.Master master,private Input<?> receivedData,private final non-sealed int workerId