#!/usr/bin/env python
"""
Decode 64-bit address into components
"""
import sys

def main():
    if len(sys.argv) != 2 or not sys.argv[1].startswith('0x'):
        print "%s 0x..." % sys.argv[0]
        sys.exit(1)
    
    address = int(sys.argv[1],16)
    offset = address & 0xfff
    ptl3 = (address >> 12) & 0x1ff
    ptl2 = (address >> 21) & 0x1ff
    ptl1 = (address >> 30) & 0x1ff
    ptl0 = (address >> 39) & 0x1ff
    print "Ptl0:   %3d" % ptl0
    print "Ptl1:   %3d" % ptl1
    print "Ptl2:   %3d" % ptl2
    print "Ptl3:   %3d" % ptl3
    print "Offset: 0x%x" % offset

if __name__ == '__main__':
    main()
