function h$exportValue(fp1a,fp1b,fp2a,fp2b,o) {
    var e = { fp1a: fp1a
            , fp1b: fp1b
            , fp2a: fp2a
            , fp2b: fp2b
            , root: o
	        , _key: -1
            };
    h$retain(e);
    return e;
}

function h$derefExport(fp1a,fp1b,fp2a,fp2b,e) {
    if(!e || typeof e !== 'object') return null;
    if(!e.root) return null;
    if(fp1a !== e.fp1a || fp1b !== e.fp1b ||
       fp2a !== e.fp2a || fp2b !== e.fp2b) return null;
    return e.root;
}

function h$releaseExport(e) {
    h$release(e);
    e.root = null;
}

function h$exportValue(fp1a,fp1b,fp2a,fp2b,o) {
  var e = { fp1a: fp1a
          , fp1b: fp1b
          , fp2a: fp2a
          , fp2b: fp2b
          , released: false
          , root: o
          , _key: -1
          };
  h$retain(e);
  return e;
}

function h$derefExport(fp1a,fp1b,fp2a,fp2b,e) {
  if(!e || typeof e !== 'object') return null;
  if(e.released) return null;
  if(fp1a !== e.fp1a || fp1b !== e.fp1b ||
     fp2a !== e.fp2a || fp2b !== e.fp2b) return null;
  return e.root;
}

function h$releaseExport(e) {
  h$release(e);
  e.released = true;
  e.root     = null;
}

make fewer assumptions about exported items, falsy values can now be exported