anchor.diff:    querySelector("#sample_text_id").onClick.listen((_) {
       container.children.clear();
   
  -    var slotMachine = new SlotMachineAnimation([0.8, 0.5, 0.7, 0.6, 0.6]);
  +    var slotMachine = new SlotMachineAnimation([0.5, 0.7, 0.5, 0.5, 0.6]);
       container.append(slotMachine.canvasEl);
       container.append(slotMachine.resultEl);
       slotMachine.roll()
  
positive.code:   }
    
    num last_t = 0;
    num _timeFromStartOfRoll;
    List<bool> currentResults;
    
    void update(num timeFromStartOfPage) {
      if (_timeFromStartOfRoll == null && timeFromStartOfPage != 0) {
        _timeFromStartOfRoll = timeFromStartOfPage;
      }
      num dt = timeFromStartOfPage - last_t;
      last_t = timeFromStartOfPage;
  
negative.code:     // Draw the gradient overlay.
      _ctx.fillStyle = _gradient;
      _ctx.fillRect(0, 0, width * slotLines, height * 3);
      
      // Fade in.
      if (_timeOfStartOfRoll != null && last_t - _timeOfStartOfRoll < 1000) {
        _ctx.fillStyle = "rgba(255, 255, 255, ${1 - (last_t - _timeOfStartOfRoll) / 1000})";
        _ctx.fillRect(0, 0, width * slotLines, height * 3);
      }
      
      resultEl.text = currentResultText;
      
  