code: def all(cls, otp=False, ccid=False, u2f=False):
          
          pids = set([
              cls.YUBIKEY,
              cls.NEO_OTP,
              cls.NEO_OTP_CCID,
              cls.NEO_CCID,
              cls.NEO_U2F,
              cls.NEO_OTP_U2F,
              cls.NEO_U2F_CCID,
              cls.NEO_OTP_U2F_CCID,
              cls.NEO_SKY,
              cls.YK4_OTP,
              cls.YK4_U2F,
              cls.YK4_OTP_U2F,
              cls.YK4_CCID,
              cls.YK4_OTP_CCID,
              cls.YK4_U2F_CCID,
              cls.YK4_OTP_U2F_CCID,
              cls.PLUS_U2F_OTP
          ])
  
          if otp:
              pids.difference_update(set([
                  cls.NEO_CCID,
                  cls.NEO_U2F,
                  cls.NEO_U2F_CCID,
                  cls.NEO_SKY,
                  cls.YK4_U2F,
                  cls.YK4_CCID,
                  cls.YK4_U2F_CCID
              ]))
  
          if ccid:
              pids.difference_update(set([
                  cls.YUBIKEY,
                  cls.NEO_OTP,
                  cls.NEO_U2F,
                  cls.NEO_OTP_U2F,
                  cls.NEO_SKY,
                  cls.YK4_OTP,
                  cls.YK4_U2F,
                  cls.YK4_OTP_U2F,
                  cls.PLUS_U2F_OTP
              ]))
  
          if u2f:
              pids.difference_update(set([
                  cls.YUBIKEY,
                  cls.NEO_OTP,
                  cls.NEO_OTP_CCID,
                  cls.NEO_CCID,
                  cls.YK4_OTP,
                  cls.YK4_CCID,
                  cls.YK4_OTP_CCID
              ]))
  
          return pids
docs: Returns a set of all PIDs, with optional filtering