             return "Diner's Club"
         case .jcb:
             return "JCB"
+        case .maestro:
+            return "Maestro";
+        case .rupay:
+            return "Rupay";
+
         }
     }
     

            self.init(rawValue: 4)
        case "jcb":
            self.init(rawValue: 5)
        default:
            return nil
        }

        case discover
        case dinersClub
        case jcb
        case maestro
        case rupay
    }
    
    public enum CardError: Error {
        case unsupported
        case invalid
    }
    fileprivate class func regularExpression(for cardType: CardType) -> String {
        switch cardType {
        case .amex:
