anchor.diff:    }
   }
   
  -int cborEncodeUint32(int value, ByteData buffer, int bufferSize) {
  +int cborEncodeUint32(int value, ByteData buffer, int bufferSize,
  +    [int offset = 0]) {
     assert(value >= 0 && value <= uint32Max);
     if (bufferSize >= 5) {
  -    buffer.setUint8(0, 0x1A);
  +    buffer.setUint8(0, 0x1A + offset);
       buffer.setUint32(1, value);
       return 5;
     } else {
  
positive.code:   return 0;
  }
  
  int cborEncodeUint16(int value, ByteData buffer, int bufferSize) {
    assert(value >= 0 && value <= uint16Max);
    if (bufferSize >= 3) {
      buffer.setUint8(0, 0x19);
      buffer.setUint16(1, value);
      return 3;
    } else {
  
negative.code: const int uint32Max = 2 ^ 32 - 1;
  const int uint64Max = 2 ^ 64 - 1;
  
  int cborEncodeUint8(int value, ByteData buffer, int bufferSize,
      [int offset = 0]) {
    assert(value >= 0 && value <= uint8Max);
    if (value <= 23) {
      if (bufferSize >= 1) {
        buffer.setUint8(0, value + offset);
        return 1;
      }
    } else {
      if (bufferSize >= 2) {
        buffer.setUint8(0, 0x18 + offset);
        buffer.setUint8(1, value);
        return 2;
      }
  