A Hierarchical Fault Tolerant Routing Protocol for WSNs