code: func opcodeWithin(op *parsedOpcode, vm *Engine) error {
  	maxVal, err := vm.dstack.PopInt()
  	if err != nil {
  		return err
  	}
  
  	minVal, err := vm.dstack.PopInt()
  	if err != nil {
  		return err
  	}
  
  	x, err := vm.dstack.PopInt()
  	if err != nil {
  		return err
  	}
  
  	if x >= minVal && x < maxVal {
  		vm.dstack.PushInt(scriptNum(1))
  	} else {
  		vm.dstack.PushInt(scriptNum(0))
  	}
  	return nil
  }
docs: // opcodeWithin treats the top 3 items on the data stack as integers.  When the
  // value to test is within the specified range (left inclusive), they are
  // replaced with a 1, otherwise a 0.
  //
  // The top item is the max value, the second-top-item is the minimum value, and
  // the third-to-top item is the value to test.
  //
  // Stack transformation: [... x1 min max] -> [... bool]