library AddressUtils {

  /**
   * Returns whether there is code in the target address
   * @dev This function will return false if invoked during the constructor of a contract,
   *  as the code is not actually created until after the constructor finishes.
   * @param addr address address to check
   * @return whether there is code in the target address
   */
  function isContract(address addr) internal view returns(bool) {
    uint256 size;
    assembly {
      size: = extcodesize(addr)
    }
    return size > 0;
  }

}
/**
 * Utility library of inline functions on addresses
 */
function isContract(address addr) internal view returns(bool) {
    uint256 size;
    assembly {
      size: = extcodesize(addr)
    }
    return size > 0;
  }
/**
 * Returns whether there is code in the target address
 * @dev This function will return false if invoked during the constructor of a contract,
 *  as the code is not actually created until after the constructor finishes.
 * @param addr address address to check
 * @return whether there is code in the target address
 */