code: func binarySearchHashMaps(layers []map[uint64]*node, key uint64) (int, *node) {
  	low, high := 0, len(layers)-1
  	diff := 64 - len(layers)
  	var mid int
  	var node *node
  	for low <= high {
  		mid = (low + high) / 2
  		n, ok := layers[mid][key&masks[diff+mid]]
  		if ok {
  			node = n
  			low = mid + 1
  		} else {
  			high = mid - 1
  		}
  	}
  
  	return low, node
  }
docs: // binarySearchHashMaps will perform a binary search of the provided
  // maps to return a node that matches the longest prefix of the provided
  // key.  This will return nil if a match could not be found, which would
  // also return layer 0.  Layer information is useful when determining the
  // distance from the provided node to the leaves.