helpers/cisco-wlc/MibTranslationCache.ps1
|
#requires -Version 5.1 <# .SYNOPSIS Pre-loaded Cisco wireless MIB translation cache - no MIB files required. .DESCRIPTION All column maps and enum translations for Cisco wireless SNMP entry tables baked in directly from the official MIB definitions: - cLApEntry (CISCO-LWAPP-AP-MIB, 1.3.6.1.4.1.9.9.513.1.1.1.1) - cldcClientEntry (CISCO-LWAPP-DOT11-CLIENT-MIB, 1.3.6.1.4.1.9.9.599.1.3.1.1) - cLWlanConfigEntry (CISCO-LWAPP-WLAN-MIB, 1.3.6.1.4.1.9.9.512.1.1.1.1) - bsnMobileStationEntry (AIRESPACE-WIRELESS-MIB, 1.3.6.1.4.1.14179.2.1.4.1) - cLRogueApEntry (CISCO-LWAPP-ROGUE-MIB, 1.3.6.1.4.1.9.9.610.1.1.6.1.1) - cLRogueAPDetectingAPEntry (CISCO-LWAPP-ROGUE-MIB, 1.3.6.1.4.1.9.9.610.1.1.8.1.1) MIB files in the sibling mibs/ directory are optional and used only as a fallback if a column number is not found in this cache. .NOTES Encoding : UTF-8 with BOM PowerShell: 5.1+ Sources : CISCO-LWAPP-AP-MIB, CISCO-LWAPP-DOT11-CLIENT-MIB, CISCO-LWAPP-WLAN-MIB, CISCO-LWAPP-TC-MIB, CISCO-LWAPP-ROGUE-MIB, AIRESPACE-WIRELESS-MIB (Cisco Systems copyright) #> Set-StrictMode -Version Latest $script:OidToEntryColumn = $null # Shared protocol labels reused across both dot11 MIBs $script:Dot11ProtocolLabels = @{ 1 = '802.11a'; 2 = '802.11b'; 3 = '802.11g'; 4 = 'Unknown'; 5 = 'Mobile' 6 = '802.11n (2.4 GHz)'; 7 = '802.11n (5 GHz)'; 8 = 'Ethernet'; 9 = '802.3' 10 = '802.11ac (5 GHz)'; 11 = 'Wi-Fi 6 (5 GHz)'; 12 = 'Wi-Fi 6 (2.4 GHz)'; 13 = 'Wi-Fi 6 (6 GHz)' } # COLUMN MAPS: { entryName -> { colNumber -> columnName } } $script:CiscoWirelessColumnMaps = @{ 'cLApEntry' = @{ 1= 'cLApSysMacAddress'; 2= 'cLApIfMacAddress'; 3= 'cLApMaxNumberOfDot11Slots' 4= 'cLApEntPhysicalIndex'; 5= 'cLApName'; 6= 'cLApUpTime' 7= 'cLLwappUpTime'; 8= 'cLLwappJoinTakenTime'; 9= 'cLApMaxNumberOfEthernetSlots' 10= 'cLApPrimaryControllerAddressType'; 11= 'cLApPrimaryControllerAddress' 12= 'cLApSecondaryControllerAddressType'; 13= 'cLApSecondaryControllerAddress' 14= 'cLApTertiaryControllerAddressType'; 15= 'cLApTertiaryControllerAddress' 16= 'cLApLastRebootReason'; 18= 'cLApEncryptionEnable'; 19= 'cLApFailoverPriority' 20= 'cLApPowerStatus'; 21= 'cLApTelnetEnable'; 22= 'cLApSshEnable' 23= 'cLApPreStdStateEnabled'; 24= 'cLApPwrInjectorStateEnabled'; 25= 'cLApPwrInjectorSelection' 26= 'cLApPwrInjectorSwMacAddr'; 27= 'cLApWipsEnable'; 28= 'cLApMonitorModeOptimization' 29= 'cLApDomainName'; 30= 'cLApNameServerAddressType'; 31= 'cLApNameServerAddress' 32= 'cLApAMSDUEnable'; 33= 'cLApEncryptionSupported'; 34= 'cLApRogueDetectionEnabled' 35= 'cLApTcpMss'; 36= 'cLApDataEncryptionStatus'; 37= 'cLApNsiKey' 38= 'cLApAdminStatus'; 39= 'cLApPortNumber'; 40= 'cLApRetransmitCount' 41= 'cLApRetransmitTimeout'; 42= 'cLApVenueConfigVenueGroup'; 43= 'cLApVenueConfigVenueType' 44= 'cLApVenueConfigVenueName'; 45= 'cLApVenueConfigLanguage'; 46= 'cLApLEDState' 47= 'cLApTrunkVlan'; 48= 'cLApTrunkVlanStatus'; 49= 'cLApLocation' 50= 'cLApSubMode'; 51= 'cLApAssocCount'; 52= 'cLApAssocFailResourceCount' 53= 'cLApRealTimeStatsModeEnabled'; 54= 'cLApAssociatedClientCount'; 55= 'cLApMemoryCurrentUsage' 56= 'cLApMemoryAverageUsage'; 57= 'cLApCpuCurrentUsage'; 58= 'cLApCpuAverageUsage' 59= 'cLApUpgradeFromVersion'; 60= 'cLApUpgradeToVersion'; 61= 'cLApUpgradeFailureCause' 62= 'cLApMaxClientLimitNumberTrap'; 63= 'cLApMaxClientLimitCause'; 64= 'cLApMaxClientLimitSet' 65= 'cLApFloorLabel'; 66= 'cLApConnectCount'; 67= 'cLApReassocSuccCount' 68= 'cLApReassocFailCount'; 69= 'cLAdjChannelRogueEnabled'; 70= 'cLApAssocFailCountByRate' 71= 'cLApAbnormalOfflineCount'; 72= 'cLApActiveClientCount'; 73= 'cLApAssocFailCountForRssiLow' 74= 'cLApSysNetId'; 75= 'cLApAssocFailTimes'; 76= 'cLApAntennaBandMode' 77= 'cLApHeartBeatRspAvgTime'; 78= 'cLApEchoRequestCount'; 79= 'cLApEchoResponseLossCount' 80= 'cLApModuleInserted'; 81= 'cLApEnableModule'; 82= 'cLApIsUniversal' 83= 'cLApUniversalPrimeStatus'; 84= 'cLApIsMaster'; 85= 'cLApBleFWDownloadStatus' 86= 'cLApDot11XorDartConnectorStatus'; 87= 'cLApCtsSxpDefaultPassword'; 88= 'cLApCtsSxpState' 89= 'cLApCtsSxpMode'; 90= 'cLApCtsSxpListenerMinHoldtime'; 91= 'cLApCtsSxpListenerMaxHoldtime' 92= 'cLApCtsSxpReconcilePeriod'; 93= 'cLApCtsSxpRetryPeriod'; 94= 'cLApCtsSxpSpeakerHoldTime' 95= 'cLApCtsSxpSpeakerKeepAlive'; 96= 'cLApCtsInlineTagStatus'; 97= 'cLApCtsSgaclStatus' 98= 'cLApCtsOverrideStatus'; 103= 'cLApModeClear'; 104= 'cLApSiteTagName' 105= 'cLApRfTagName'; 106= 'cLApPolicyTagName'; 107= 'cLApTagSource' 108= 'cLApUsbModuleName'; 109= 'cLApUsbModuleState'; 110= 'cLApUsbModuleProductId' 111= 'cLApUsbDescription'; 112= 'cLApUsbStateInfo'; 113= 'cLApUsbOverride' 114= 'cLApUsbSerialNumber'; 115= 'cLApUsbMaxPower'; 116= 'cLApLagConfigStatus' 117= 'cLApMonitorModeOptStatus'; 118= 'cLApFilterName' } 'cldcClientEntry' = @{ 1= 'cldcClientMacAddress'; 2= 'cldcClientStatus'; 3= 'cldcClientWlanProfileName' 4= 'cldcClientWgbStatus'; 5= 'cldcClientWgbMacAddress'; 6= 'cldcClientProtocol' 7= 'cldcAssociationMode'; 8= 'cldcApMacAddress'; 9= 'cldcIfType' 10= 'cldcClientIPAddress'; 11= 'cldcClientNacState'; 12= 'cldcClientQuarantineVLAN' 13= 'cldcClientAccessVLAN'; 14= 'cldcClientLoginTime'; 15= 'cldcClientUpTime' 16= 'cldcClientPowerSaveMode'; 17= 'cldcClientCurrentTxRateSet'; 18= 'cldcClientDataRateSet' 19= 'cldcClientHreapApAuth'; 20= 'cldcClient80211uCapable'; 21= 'cldcClientPostureState' 22= 'cldcClientAclName'; 23= 'cldcClientAclApplied'; 24= 'cldcClientRedirectUrl' 25= 'cldcClientAaaOverrideAclName'; 26= 'cldcClientAaaOverrideAclApplied'; 27= 'cldcClientUsername' 28= 'cldcClientSSID'; 29= 'cldcClientSecurityTagId'; 30= 'cldcClientTypeKTS' 31= 'cldcClientIpv6AclName'; 32= 'cldcClientIpv6AclApplied'; 33= 'cldcClientDataSwitching' 34= 'cldcClientAuthentication'; 35= 'cldcClientChannel'; 36= 'cldcClientAuthMode' 37= 'cldcClientReasonCode'; 38= 'cldcClientSessionID'; 39= 'cldcClientApRoamMacAddress' 40= 'cldcClientMdnsProfile'; 41= 'cldcClientMdnsAdvCount'; 42= 'cldcClientPolicyName' 43= 'cldcClientAAARole'; 44= 'cldcClientDeviceType'; 45= 'cldcUserAuthType' 46= 'cldcClientTunnelType'; 47= 'cldcClientMaxDataRate'; 48= 'cldcClientHtCapable' 49= 'cldcClientVhtCapable'; 50= 'cldcClientCurrentTxRate'; 51= 'cldcClientiPSKTag' 52= 'cldcClientMobileStPolicyType' } 'cLWlanConfigEntry' = @{ 1= 'cLWlanIndex'; 2= 'cLWlanRowStatus'; 3= 'cLWlanProfileName'; 4= 'cLWlanSsid' 5= 'cLWlanDiagChan'; 6= 'cLWlanStorageType'; 7= 'cLWlanIsWired'; 8= 'cLWlanIngressInterface' 9= 'cLWlanNACSupport'; 10= 'cLWlanWepKeyChange'; 11= 'cLWlanChdEnable'; 12= 'cLWlan802dot11anDTIM' 13= 'cLWlan802dot11bgnDTIM'; 14= 'cLWlanLoadBalancingEnable'; 15= 'cLWlanBandSelectEnable' 16= 'cLWlanPassiveClientEnable'; 17= 'cLWlanReAnchorRoamedVoiceClientsEnable' 18= 'cLWlanMulticastInterfaceEnable'; 19= 'cLWlanMulticastInterface'; 20= 'cLWlanMulticastDirectEnable' 21= 'cLWlanNACPostureSupport'; 22= 'cLWlanMaxClientsAccepted'; 23= 'cLWlanScanDeferPriority' 24= 'cLWlanScanDeferTime'; 25= 'cLWlanLanSubType'; 26= 'cLWlanWebAuthOnMacFilterFailureEnabled' 27= 'cLWlanStaticIpTunnelingEnabled'; 28= 'cLWlanKtsCacSupportEnabled'; 29= 'cLWlanWifiDirectPolicyStatus' 30= 'cLWlanWebAuthIPv6AclName'; 31= 'cLWlanHotSpot2Enabled'; 32= 'cLWlanMaxClientsAllowedPerRadio' 33= 'cLWlanDhcpDeviceProfiling'; 34= 'cLWlanMacAuthOverDot1xEnabled'; 35= 'cLWlanUserTimeout' 36= 'cLWlanUserIdleThreshold'; 37= 'cLWlanHttpDeviceProfiling'; 38= 'cLWlanHotSpotClearConfig' 39= 'cLWlanRadiusAuthFourthServer'; 40= 'cLWlanRadiusAuthFifthServer'; 41= 'cLWlanRadiusAuthSixthServer' 42= 'cLWlanRadiusAcctFourthServer'; 43= 'cLWlanRadiusAcctFifthServer'; 44= 'cLWlanRadiusAcctSixthServer' 64= 'cLWlanSelfAnchorEnabled'; 65= 'cLWlanUniversalAdmin'; 66= 'cLWlan11acMuMimoEnabled' 67= 'cLWlan11vDisassocImmiEnable'; 73= 'cLWlan11vDisassocTimer'; 74= 'cLWlan11vOpRoamDisassocTimer' 84= 'cLWlan11kAssistedRoamingEnable'; 85= 'cLWlan11kNeighborListEnable'; 86= 'cLWlan11kDualbandNeigListEnable' 87= 'cLWlan11vDMSEnable'; 93= 'cLWlan11vBssTransEnable'; 96= 'cLWlanEapProfileName' 97= 'cLWlanSetEapProfileName'; 98= 'cLWlanMaxClientsAllowedPerAP'; 99= 'cLWlanMdnsMode' 100= 'cLWlanOpportunisticKeyCaching' } 'bsnMobileStationEntry' = @{ 1= 'bsnMobileStationMacAddress'; 2= 'bsnMobileStationIpAddress'; 3= 'bsnMobileStationUserName' 4= 'bsnMobileStationAPMacAddr'; 5= 'bsnMobileStationAPIfSlotId'; 6= 'bsnMobileStationEssIndex' 7= 'bsnMobileStationSsid'; 8= 'bsnMobileStationAID'; 9= 'bsnMobileStationStatus' 11= 'bsnMobileStationMobilityStatus'; 12= 'bsnMobileStationAnchorAddress' 13= 'bsnMobileStationCFPollable'; 14= 'bsnMobileStationCFPollRequest' 15= 'bsnMobileStationChannelAgilityEnabled'; 16= 'bsnMobileStationPBCCOptionImplemented' 17= 'bsnMobileStationShortPreambleOptionImplemented'; 18= 'bsnMobileStationSessionTimeout' 19= 'bsnMobileStationAuthenticationAlgorithm'; 20= 'bsnMobileStationWepState' 21= 'bsnMobileStationPortNumber'; 22= 'bsnMobileStationDeleteAction' 23= 'bsnMobileStationPolicyManagerState'; 24= 'bsnMobileStationSecurityPolicyStatus' 25= 'bsnMobileStationProtocol'; 26= 'bsnMobileStationMirrorMode'; 27= 'bsnMobileStationInterface' 28= 'bsnMobileStationApMode'; 29= 'bsnMobileStationVlanId'; 30= 'bsnMobileStationPolicyType' 31= 'bsnMobileStationEncryptionCypher'; 32= 'bsnMobileStationEapType'; 33= 'bsnMobileStationCcxVersion' 34= 'bsnMobileStationE2eVersion'; 42= 'bsnMobileStationStatusCode'; 43= 'bsnMobileStationAAAOverridePassphrase' } 'cLRogueApEntry' = @{ 1= 'cLRogueApMACAddress'; 2= 'cLRogueApClassType'; 3= 'cLRogueApState' 4= 'cLRogueApStorageType'; 5= 'cLRogueApRowStatus' } 'cLRogueAPDetectingAPEntry' = @{ 1= 'cLRogueAPDetectingAPMacAddress'; 2= 'cLRogueAPDetectingAPSlotId' 3= 'cLRogueAPRadioType'; 4= 'cLRogueAPDetectingAPName' 5= 'cLRogueAPChannelNumber'; 6= 'cLRogueAPSsid' 7= 'cLRogueAPHiddenSsid'; 8= 'cLRogueAPDetectingAPRSSI' 9= 'cLRogueAPContainmentMode'; 10= 'cLRogueAPContainmentChannelCount' 11= 'cLRogueAPContainmentChannels'; 12= 'cLRogueAPDetectingAPLastHeard' 13= 'cLRogueAPDetectingAPWepMode'; 14= 'cLRogueAPDetectingAPPreamble' 15= 'cLRogueAPDetectingAPWpaMode'; 16= 'cLRogueAPDetectingAPWpa2Mode' 17= 'cLRogueAPDetectingAPFTMode'; 18= 'cLRogueAPDetectingAPSNR' 19= 'cLRogueAPChannelWidth'; 20= 'cLRogueAPPhysicalAPSlot' } } # ENUM MAPS: { 'EntryName.ColumnName' -> { intValue -> humanReadableLabel } } $script:CiscoWirelessEnumMaps = @{ # cLApEntry 'cLApEntry.cLApLastRebootReason' = @{ 0='None'; 1='802.11g Mode Change'; 2='IP Address Set'; 3='IP Address Reset' 4='Reboot from Controller'; 5='DHCP Fallback Failure'; 6='Discovery Failure' 7='No Join Response'; 8='Join Denied'; 9='No Config Response' 10='Found Configured Controller'; 11='Image Upgrade Success'; 12='Image Opcode Invalid' 13='Image Checksum Invalid'; 14='Image Data Timeout'; 15='Config File Invalid' 16='Image Download Error'; 17='Reboot from Console'; 18='RAP Over-the-Air' 19='Low Power'; 20='Crash'; 21='Power Spike'; 22='Power Loss'; 23='Power Source Change' 24='Component Failure'; 25='Watchdog Timer Reset'; 26='LSC Enabled'; 27='LSC Disabled' 28='LSC Provision Timeout'; 29='LSC Max Retries Reached'; 30='LSC Load Failure' 31='LSC Join Failure'; 32='CAPWAP Timer Failure'; 33='Static IP Failover' 34='VLAN Tag Failover'; 35='CAPWAP Discovery Request'; 36='CAPWAP Discovery Response' 37='CAPWAP Join Request'; 38='CAPWAP Join Response'; 39='CAPWAP Config Status' 40='CAPWAP Config Status Response'; 41='CAPWAP Config Update Request' 42='CAPWAP Config Update Response'; 43='CAPWAP WTP Event Request' 44='CAPWAP WTP Event Response'; 45='CAPWAP Change State Request' 46='CAPWAP Change State Response'; 47='CAPWAP Echo Request'; 48='CAPWAP Echo Response' 49='CAPWAP Image Data Request'; 50='CAPWAP Image Data Response' 51='CAPWAP Reset Request'; 52='CAPWAP Reset Response' 53='CAPWAP Primary Discovery Request'; 54='CAPWAP Primary Discovery Response' 55='CAPWAP Data Transfer Request'; 56='CAPWAP Data Transfer Response' 57='CAPWAP Clear Config Request'; 58='CAPWAP Clear Config Response' 59='CAPWAP Mobile Config Request'; 60='CAPWAP Mobile Config Response' 61='CAPWAP Path MTU Request'; 62='CAPWAP Path MTU Response'; 63='VLAN Tag Retry' 64='IPv6 Address Set'; 65='Mode Change'; 66='Changed to CAPWAP Mode' 67='Changed to EWC Mode'; 68='Erase Config Command'; 69='OEAP Mode Config Upload' 70='LAG Config Change'; 71='FIPS Mode Change'; 72='Diminished Power Change' 73='SLUB Debug'; 74='LSC Mode: CAPWAP'; 75='LSC Mode: 802.1X'; 76='LSC Mode: All' 77='AP Type Changed to Cloud'; 78='DTLS Init Failure'; 79='PnP: No CAPWAP Back-off' 80='Day-0 Config Failure'; 81='Day-1 Config Failure'; 82='PnP-Triggered Reload' 83='Tri-Radio Support Change'; 84='Indoor Deployment' 85='Changed from WGB to CAPWAP'; 86='Changed from Cloud to CAPWAP'; 87='Changed to WGB Mode' } 'cLApEntry.cLApFailoverPriority' = @{ 1='Low'; 2='Medium'; 3='High'; 4='Critical' } 'cLApEntry.cLApPowerStatus' = @{ 1='Low Power'; 2='15.4W PoE'; 3='16.8W PoE'; 4='Full Power'; 5='External Power'; 6='25.5W PoE'; 7='Mixed Mode' } 'cLApEntry.cLApPwrInjectorSelection' = @{ 1='Unknown'; 2='Installed'; 3='Override' } 'cLApEntry.cLApMonitorModeOptimization' = @{ 1='All'; 2='Tracking'; 3='WIPS'; 4='None' } 'cLApEntry.cLApSubMode' = @{ 1='None'; 2='WIPS'; 3='PPPoE'; 4='PPPoE + WIPS' } 'cLApEntry.cLApAntennaBandMode' = @{ 1='N/A'; 2='Single Band'; 3='Dual Band' } 'cLApEntry.cLApTagSource' = @{ 1='None'; 2='Static'; 3='Filter Engine'; 4='PnP Server'; 5='Default'; 6='Location' } 'cLApEntry.cLApVenueConfigVenueGroup' = @{ 1='Unspecified'; 2='Assembly'; 3='Business'; 4='Educational'; 5='Factory / Industrial' 6='Institutional'; 7='Mercantile'; 8='Residential'; 9='Storage'; 10='Utility / Misc' 11='Vehicular'; 12='Outdoor' } 'cLApEntry.cLApVenueConfigVenueType' = @{ 1='Unspecified'; 2='Unspecified Assembly'; 3='Arena'; 4='Stadium'; 5='Passenger Terminal' 6='Amphitheater'; 7='Amusement Park'; 8='Place of Worship'; 9='Convention Center' 10='Library'; 11='Museum'; 12='Restaurant'; 13='Theater'; 14='Bar'; 15='Coffee Shop' 16='Zoo / Aquarium'; 17='Emergency Coordination Center'; 18='Unspecified Business' 19='Doctor / Dentist Office'; 20='Bank'; 21='Fire Station'; 22='Police Station' 23='Post Office'; 24='Professional Office'; 25='R&D Facility'; 26='Attorney Office' 27='Unspecified Educational'; 28='Primary School'; 29='Secondary School' 30='University / College'; 31='Unspecified Factory/Industrial'; 32='Factory' 33='Unspecified Institutional'; 34='Hospital'; 35='Long-Term Care Facility' 36='Alcohol/Drug Rehab Center'; 37='Group Home'; 38='Prison / Jail' 39='Unspecified Mercantile'; 40='Retail Store'; 41='Grocery Market' 42='Automotive Service Station'; 43='Shopping Mall'; 44='Gas Station' 45='Unspecified Residential'; 46='Private Residence'; 47='Hotel / Motel' 48='Dormitory'; 49='Boarding House'; 50='Unspecified Storage'; 51='Unspecified Utility' 52='Unspecified Vehicular'; 53='Automobile / Truck'; 54='Airplane'; 55='Bus' 56='Ferry'; 57='Ship / Boat'; 58='Train'; 59='Motorbike'; 60='Unspecified Outdoor' 61='Municipal Mesh Network'; 62='City Park'; 63='Rest Area'; 64='Traffic Control' 65='Bus Stop'; 66='Kiosk' } # cldcClientEntry (CLDot11ClientStatus from CISCO-LWAPP-TC-MIB) 'cldcClientEntry.cldcClientStatus' = @{ 1='Idle'; 2='AAA Pending'; 3='Authenticated'; 4='Associated'; 5='Power Save'; 6='Disassociated'; 7='To Be Deleted'; 8='Probing'; 9='Excluded' } 'cldcClientEntry.cldcClientProtocol' = $script:Dot11ProtocolLabels 'cldcClientEntry.cldcAssociationMode' = @{ 1='Unknown'; 2='WEP'; 3='WPA'; 4='WPA2' } 'cldcClientEntry.cldcClientWgbStatus' = @{ 1='Regular Client'; 2='WGB Client'; 3='WGB' } 'cldcClientEntry.cldcClientNacState' = @{ 1='Quarantine'; 2='Access' } 'cldcClientEntry.cldcClientDataSwitching'= @{ 1='Unknown'; 2='Central'; 3='Local' } 'cldcClientEntry.cldcClientAuthentication'=@{ 1='Unknown'; 2='Central'; 3='Local' } 'cldcClientEntry.cldcClientAuthMode' = @{ 0='None'; 1='PSK'; 2='RADIUS'; 3='CCKM'; 4='WAPI PSK'; 5='WAPI Certificate'; 6='FT 802.1X'; 7='FT PSK'; 8='PMF 802.1X'; 9='PMF PSK' } 'cldcClientEntry.cldcClientReasonCode' = @{ 1='Unspecified'; 2='Previous Auth Not Valid'; 3='Deauthentication (Leaving)' 4='Inactivity Timeout'; 5='AP Busy'; 6='Class-2 Frame (Not Auth)'; 7='Class-2 Frame (Not Assoc)' 8='STA Has Left'; 9='Association Without Auth'; 40='Invalid Information Element' 41='Group Cipher Invalid'; 42='Unicast Cipher Invalid'; 43='AKMP Invalid' 44='Unsupported RSN Version'; 45='Invalid RSN IE Capabilities'; 46='Cipher Suite Rejected' 99='Missing Reason Code'; 101='Max Clients Reached'; 105='Max Clients on Radio' 106='Max Clients on WLAN'; 200='Unspecified QoS Failure'; 201='QoS Policy Mismatch' 202='Insufficient Bandwidth'; 203='Invalid QoS Parameters' } 'cldcClientEntry.cldcUserAuthType' = @{ 1='Open'; 2='WEP/PSK'; 3='Web Portal'; 4='SIM/PEAP'; 5='Other' } 'cldcClientEntry.cldcClientTunnelType' = @{ 1='Simple'; 2='PMIPv6'; 3='GTPv2'; 4='EoGRE' } 'cldcClientEntry.cldcClientMobileStPolicyType' = @{ 0='802.1X'; 1='WPA'; 2='WPA2'; 3='WPA2 (VFF)'; 4='N/A'; 5='Unknown'; 6='WPA2 / WPA3'; 7='OSEN'; 8='OSEN within RSN' } # cLWlanConfigEntry 'cLWlanConfigEntry.cLWlanRowStatus' = @{ 1='Active'; 2='Not In Service'; 3='Not Ready'; 4='Create and Go'; 5='Create and Wait'; 6='Destroy' } 'cLWlanConfigEntry.cLWlanLanSubType' = @{ 1='Wireless LAN'; 2='Guest LAN'; 3='Remote LAN'; 4='Other' } 'cLWlanConfigEntry.cLWlanWifiDirectPolicyStatus' = @{ 1='Disabled'; 2='Allow'; 3='Not Allow'; 4='X-Connect Not Allow' } 'cLWlanConfigEntry.cLWlanMdnsMode' = @{ 0='Bridge'; 1='Drop'; 2='Gateway' } # bsnMobileStationEntry 'bsnMobileStationEntry.bsnMobileStationStatus' = @{ 0='Idle'; 1='AAA Pending'; 2='Authenticated'; 3='Associated'; 4='Power Save'; 5='Disassociated'; 6='To Be Deleted'; 7='Probing'; 8='Blacklisted' } 'bsnMobileStationEntry.bsnMobileStationMobilityStatus' = @{ 0='Unassociated'; 1='Local'; 2='Anchor'; 3='Foreign'; 4='Handoff'; 5='Unknown'; 6='Export Anchor'; 7='Export Foreign' } 'bsnMobileStationEntry.bsnMobileStationProtocol' = $script:Dot11ProtocolLabels 'bsnMobileStationEntry.bsnMobileStationAuthenticationAlgorithm' = @{ 0='Open System'; 1='Shared Key'; 2='Unknown'; 128='Open + EAP' } 'bsnMobileStationEntry.bsnMobileStationWepState' = @{ 1='Enabled'; 2='Disabled' } 'bsnMobileStationEntry.bsnMobileStationSecurityPolicyStatus' = @{ 0='Completed'; 1='Not Completed' } 'bsnMobileStationEntry.bsnMobileStationApMode' = @{ 0='Local'; 1='Monitor'; 2='Remote'; 3='Rogue Detector' } 'bsnMobileStationEntry.bsnMobileStationMirrorMode' = @{ 0='Disabled'; 1='Enabled' } 'bsnMobileStationEntry.bsnMobileStationPolicyType' = @{ 0='802.1X'; 1='WPA'; 2='WPA2'; 3='WPA2 (VFF)'; 4='N/A'; 5='Unknown'; 6='WPA2 / WPA3'; 7='OSEN'; 8='OSEN within RSN' } 'bsnMobileStationEntry.bsnMobileStationEncryptionCypher' = @{ 0='CCMP (AES-128)'; 1='TKIP + MIC'; 2='WEP-40'; 3='WEP-104'; 4='WEP-128'; 5='None'; 6='TKIP+WEP-40'; 7='TKIP+WEP-104'; 8='GCMP-128'; 9='GCMP-256'; 10='CCMP-256'; 11='N/A'; 12='Unknown' } 'bsnMobileStationEntry.bsnMobileStationEapType' = @{ 0='EAP-TLS'; 1='EAP-TTLS'; 2='PEAP'; 3='LEAP'; 4='SPEKE'; 5='EAP-FAST'; 6='N/A'; 7='Unknown' } 'bsnMobileStationEntry.bsnMobileStationCcxVersion' = @{ 0='Not Supported'; 1='CCXv1'; 2='CCXv2'; 3='CCXv3'; 4='CCXv4'; 5='CCXv5'; 6='CCXv6' } 'bsnMobileStationEntry.bsnMobileStationE2eVersion' = @{ 0='Not Supported'; 1='E2Ev1'; 2='E2Ev2' } # cLRogueApEntry (CISCO-LWAPP-ROGUE-MIB — deprecated table, still walked on many controllers) 'cLRogueApEntry.cLRogueApClassType' = @{ 1='Friendly'; 2='Malicious'; 3='Unclassified'; 4='Custom' } 'cLRogueApEntry.cLRogueApState' = @{ 1='Pending'; 2='Alert'; 3='Detected LRAD'; 4='Known'; 5='Acknowledge' 6='Contained'; 7='Threat'; 8='Contained Pending'; 9='Known Contained' 10='Trusted Missing'; 11='Initializing' } # cLRogueAPDetectingAPEntry (CISCO-LWAPP-ROGUE-MIB — which APs heard the rogue, with RSSI/SNR) 'cLRogueAPDetectingAPEntry.cLRogueAPRadioType' = @{ 1='802.11b'; 2='802.11a'; 3='802.11a/b/g/n'; 4='UWB'; 5='802.11g' 6='802.11n (2.4 GHz)'; 7='802.11n (5 GHz)'; 8='Unknown'; 9='802.11ac' 10='Wi-Fi 6 (2.4 GHz)'; 11='Wi-Fi 6 (5 GHz)'; 12='Wi-Fi 6 (6 GHz)' } 'cLRogueAPDetectingAPEntry.cLRogueAPHiddenSsid' = @{ 0='Disabled'; 1='Enabled' } 'cLRogueAPDetectingAPEntry.cLRogueAPContainmentMode' = @{ 0='Invalid'; 1='Deauth Broadcast'; 2='CFP'; 3='Client Containment' 4='Ad Hoc Containment'; 5='Max'; 99='Unknown' } 'cLRogueAPDetectingAPEntry.cLRogueAPDetectingAPWepMode' = @{ 0='Disabled'; 1='Enabled' } 'cLRogueAPDetectingAPEntry.cLRogueAPDetectingAPPreamble' = @{ 0='Long'; 1='Short'; 2='Not Supported' } 'cLRogueAPDetectingAPEntry.cLRogueAPDetectingAPWpaMode' = @{ 0='Disabled'; 1='Enabled' } 'cLRogueAPDetectingAPEntry.cLRogueAPDetectingAPWpa2Mode' = @{ 0='Disabled'; 1='Enabled' } 'cLRogueAPDetectingAPEntry.cLRogueAPDetectingAPFTMode' = @{ 0='Disabled'; 1='Enabled' } 'cLRogueAPDetectingAPEntry.cLRogueAPChannelWidth' = @{ 1='5 MHz'; 2='10 MHz'; 3='20 MHz'; 4='+40 MHz (above)'; 5='+40 MHz (below)' 6='+40+80 MHz (above/above)'; 7='+40+80 MHz (above/below)' 8='+40+80 MHz (below/above)'; 9='+40+80 MHz (below/below)' 10='160+40+80 (above/above/above)'; 11='160+40+80 (below/above/above)' 12='160+40+80 (above/below/above)'; 13='160+40+80 (below/below/above)' 14='160+40+80 (above/above/below)'; 15='160+40+80 (below/above/below)' 16='160+40+80 (above/below/below)'; 17='160+40+80 (below/below/below)' } } # PUBLIC FUNCTIONS function Get-CachedColumnMap { [CmdletBinding()] [OutputType([hashtable])] param([Parameter(Mandatory)][string]$Entry) if ($script:CiscoWirelessColumnMaps.ContainsKey($Entry)) { return $script:CiscoWirelessColumnMaps[$Entry] } return $null } function Get-CachedEnumLabel { [CmdletBinding()] [OutputType([string])] param( [Parameter(Mandatory)][string]$Entry, [Parameter(Mandatory)][string]$Column, [Parameter(Mandatory)][AllowNull()]$Value ) if ($null -eq $Value -or [string]::IsNullOrWhiteSpace([string]$Value)) { return '' } $mapKey = "${Entry}.${Column}" $intVal = 0 if (-not [int]::TryParse([string]$Value, [ref]$intVal)) { return [string]$Value } if ($script:CiscoWirelessEnumMaps.ContainsKey($mapKey)) { $map = $script:CiscoWirelessEnumMaps[$mapKey] if ($map.ContainsKey($intVal)) { return $map[$intVal] } } return [string]$Value } function Get-CachedEnumTranslation { [CmdletBinding()] [OutputType([string])] param( [Parameter(Mandatory)][string]$OidBase, [Parameter(Mandatory)][AllowNull()]$Value ) if ($null -eq $Value -or [string]::IsNullOrWhiteSpace([string]$Value)) { return '' } # Build OID->entry.column index on first use if ($null -eq $script:OidToEntryColumn) { $script:OidToEntryColumn = @{} $entryBaseOids = @{ 'cLApEntry' = '1.3.6.1.4.1.9.9.513.1.1.1.1' 'cldcClientEntry' = '1.3.6.1.4.1.9.9.599.1.3.1.1' 'cLWlanConfigEntry' = '1.3.6.1.4.1.9.9.512.1.1.1.1' 'bsnMobileStationEntry' = '1.3.6.1.4.1.14179.2.1.4.1' 'cLRogueApEntry' = '1.3.6.1.4.1.9.9.610.1.1.6.1.1' 'cLRogueAPDetectingAPEntry' = '1.3.6.1.4.1.9.9.610.1.1.8.1.1' } foreach ($entry in $entryBaseOids.Keys) { $base = $entryBaseOids[$entry] $colMap = $script:CiscoWirelessColumnMaps[$entry] foreach ($col in $colMap.Keys) { $script:OidToEntryColumn["$base.$col"] = @{ Entry = $entry; Column = $colMap[$col] } } } } if ($script:OidToEntryColumn.ContainsKey($OidBase)) { $ec = $script:OidToEntryColumn[$OidBase] return Get-CachedEnumLabel -Entry $ec.Entry -Column $ec.Column -Value $Value } return [string]$Value } function Get-CachedOidName { [CmdletBinding()] [OutputType([string])] param([Parameter(Mandatory)][string]$Oid) if ([string]::IsNullOrWhiteSpace($Oid)) { return $null } $null = Get-CachedEnumTranslation -OidBase $Oid -Value 0 # init index if ($script:OidToEntryColumn.ContainsKey($Oid)) { return $script:OidToEntryColumn[$Oid].Column } return $null } function Clear-MibCache { [CmdletBinding()] param() $script:OidToEntryColumn = $null Write-Verbose 'MIB translation cache runtime index cleared.' } function Get-MibCacheStatistics { [CmdletBinding()] [OutputType([PSCustomObject])] param() $colCount = ($script:CiscoWirelessColumnMaps.Values | ForEach-Object { $_.Count } | Measure-Object -Sum).Sum $enumCount = $script:CiscoWirelessEnumMaps.Count $valCount = ($script:CiscoWirelessEnumMaps.Values | ForEach-Object { $_.Count } | Measure-Object -Sum).Sum [PSCustomObject]@{ EntryTables = $script:CiscoWirelessColumnMaps.Count; TotalColumns = $colCount; EnumColumns = $enumCount; TotalEnumValues = $valCount } } # SIG # Begin signature block # MIIr+wYJKoZIhvcNAQcCoIIr7DCCK+gCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC7KvK/CgUF7qik # caWUyY0c7HCkTnCY3us5BjxokRMNI6CCJQ0wggVvMIIEV6ADAgECAhBI/JO0YFWU # jTanyYqJ1pQWMA0GCSqGSIb3DQEBDAUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQI # DBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoM # EUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2Vy # dmljZXMwHhcNMjEwNTI1MDAwMDAwWhcNMjgxMjMxMjM1OTU5WjBWMQswCQYDVQQG # EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMS0wKwYDVQQDEyRTZWN0aWdv # IFB1YmxpYyBDb2RlIFNpZ25pbmcgUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEBAQUA # A4ICDwAwggIKAoICAQCN55QSIgQkdC7/FiMCkoq2rjaFrEfUI5ErPtx94jGgUW+s # hJHjUoq14pbe0IdjJImK/+8Skzt9u7aKvb0Ffyeba2XTpQxpsbxJOZrxbW6q5KCD # J9qaDStQ6Utbs7hkNqR+Sj2pcaths3OzPAsM79szV+W+NDfjlxtd/R8SPYIDdub7 # P2bSlDFp+m2zNKzBenjcklDyZMeqLQSrw2rq4C+np9xu1+j/2iGrQL+57g2extme # me/G3h+pDHazJyCh1rr9gOcB0u/rgimVcI3/uxXP/tEPNqIuTzKQdEZrRzUTdwUz # T2MuuC3hv2WnBGsY2HH6zAjybYmZELGt2z4s5KoYsMYHAXVn3m3pY2MeNn9pib6q # RT5uWl+PoVvLnTCGMOgDs0DGDQ84zWeoU4j6uDBl+m/H5x2xg3RpPqzEaDux5mcz # mrYI4IAFSEDu9oJkRqj1c7AGlfJsZZ+/VVscnFcax3hGfHCqlBuCF6yH6bbJDoEc # QNYWFyn8XJwYK+pF9e+91WdPKF4F7pBMeufG9ND8+s0+MkYTIDaKBOq3qgdGnA2T # OglmmVhcKaO5DKYwODzQRjY1fJy67sPV+Qp2+n4FG0DKkjXp1XrRtX8ArqmQqsV/ # AZwQsRb8zG4Y3G9i/qZQp7h7uJ0VP/4gDHXIIloTlRmQAOka1cKG8eOO7F/05QID # AQABo4IBEjCCAQ4wHwYDVR0jBBgwFoAUoBEKIz6W8Qfs4q8p74Klf9AwpLQwHQYD # VR0OBBYEFDLrkpr/NZZILyhAQnAgNpFcF4XmMA4GA1UdDwEB/wQEAwIBhjAPBgNV # HRMBAf8EBTADAQH/MBMGA1UdJQQMMAoGCCsGAQUFBwMDMBsGA1UdIAQUMBIwBgYE # VR0gADAIBgZngQwBBAEwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybC5jb21v # ZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNAYIKwYBBQUHAQEE # KDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wDQYJKoZI # hvcNAQEMBQADggEBABK/oe+LdJqYRLhpRrWrJAoMpIpnuDqBv0WKfVIHqI0fTiGF # OaNrXi0ghr8QuK55O1PNtPvYRL4G2VxjZ9RAFodEhnIq1jIV9RKDwvnhXRFAZ/ZC # J3LFI+ICOBpMIOLbAffNRk8monxmwFE2tokCVMf8WPtsAO7+mKYulaEMUykfb9gZ # pk+e96wJ6l2CxouvgKe9gUhShDHaMuwV5KZMPWw5c9QLhTkg4IUaaOGnSDip0TYl # d8GNGRbFiExmfS9jzpjoad+sPKhdnckcW67Y8y90z7h+9teDnRGWYpquRRPaf9xH # +9/DUp/mBlXpnYzyOmJRvOwkDynUWICE5EV7WtgwggWNMIIEdaADAgECAhAOmxiO # +dAt5+/bUOIIQBhaMA0GCSqGSIb3DQEBDAUAMGUxCzAJBgNVBAYTAlVTMRUwEwYD # VQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi # BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yMjA4MDEwMDAw # MDBaFw0zMTExMDkyMzU5NTlaMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdp # Q2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERp # Z2lDZXJ0IFRydXN0ZWQgUm9vdCBHNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC # AgoCggIBAL/mkHNo3rvkXUo8MCIwaTPswqclLskhPfKK2FnC4SmnPVirdprNrnsb # hA3EMB/zG6Q4FutWxpdtHauyefLKEdLkX9YFPFIPUh/GnhWlfr6fqVcWWVVyr2iT # cMKyunWZanMylNEQRBAu34LzB4TmdDttceItDBvuINXJIB1jKS3O7F5OyJP4IWGb # NOsFxl7sWxq868nPzaw0QF+xembud8hIqGZXV59UWI4MK7dPpzDZVu7Ke13jrclP # XuU15zHL2pNe3I6PgNq2kZhAkHnDeMe2scS1ahg4AxCN2NQ3pC4FfYj1gj4QkXCr # VYJBMtfbBHMqbpEBfCFM1LyuGwN1XXhm2ToxRJozQL8I11pJpMLmqaBn3aQnvKFP # ObURWBf3JFxGj2T3wWmIdph2PVldQnaHiZdpekjw4KISG2aadMreSx7nDmOu5tTv # kpI6nj3cAORFJYm2mkQZK37AlLTSYW3rM9nF30sEAMx9HJXDj/chsrIRt7t/8tWM # cCxBYKqxYxhElRp2Yn72gLD76GSmM9GJB+G9t+ZDpBi4pncB4Q+UDCEdslQpJYls # 5Q5SUUd0viastkF13nqsX40/ybzTQRESW+UQUOsxxcpyFiIJ33xMdT9j7CFfxCBR # a2+xq4aLT8LWRV+dIPyhHsXAj6KxfgommfXkaS+YHS312amyHeUbAgMBAAGjggE6 # MIIBNjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTs1+OC0nFdZEzfLmc/57qY # rhwPTzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzAOBgNVHQ8BAf8E # BAMCAYYweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5k # aWdpY2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0 # LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcnQwRQYDVR0fBD4wPDA6oDig # NoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9v # dENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQEMBQADggEBAHCg # v0NcVec4X6CjdBs9thbX979XB72arKGHLOyFXqkauyL4hxppVCLtpIh3bb0aFPQT # SnovLbc47/T/gLn4offyct4kvFIDyE7QKt76LVbP+fT3rDB6mouyXtTP0UNEm0Mh # 65ZyoUi0mcudT6cGAxN3J0TU53/oWajwvy8LpunyNDzs9wPHh6jSTEAZNUZqaVSw # uKFWjuyk1T3osdz9HNj0d1pcVIxv76FQPfx2CWiEn2/K2yCNNWAcAgPLILCsWKAO # QGPFmCLBsln1VWvPJ6tsds5vIy30fnFqI2si/xK4VC0nftg62fC2h5b9W9FcrBjD # TZ9ztwGpn1eqXijiuZQwggYaMIIEAqADAgECAhBiHW0MUgGeO5B5FSCJIRwKMA0G # CSqGSIb3DQEBDAUAMFYxCzAJBgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExp # bWl0ZWQxLTArBgNVBAMTJFNlY3RpZ28gUHVibGljIENvZGUgU2lnbmluZyBSb290 # IFI0NjAeFw0yMTAzMjIwMDAwMDBaFw0zNjAzMjEyMzU5NTlaMFQxCzAJBgNVBAYT # AkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxKzApBgNVBAMTIlNlY3RpZ28g # UHVibGljIENvZGUgU2lnbmluZyBDQSBSMzYwggGiMA0GCSqGSIb3DQEBAQUAA4IB # jwAwggGKAoIBgQCbK51T+jU/jmAGQ2rAz/V/9shTUxjIztNsfvxYB5UXeWUzCxEe # AEZGbEN4QMgCsJLZUKhWThj/yPqy0iSZhXkZ6Pg2A2NVDgFigOMYzB2OKhdqfWGV # oYW3haT29PSTahYkwmMv0b/83nbeECbiMXhSOtbam+/36F09fy1tsB8je/RV0mIk # 8XL/tfCK6cPuYHE215wzrK0h1SWHTxPbPuYkRdkP05ZwmRmTnAO5/arnY83jeNzh # P06ShdnRqtZlV59+8yv+KIhE5ILMqgOZYAENHNX9SJDm+qxp4VqpB3MV/h53yl41 # aHU5pledi9lCBbH9JeIkNFICiVHNkRmq4TpxtwfvjsUedyz8rNyfQJy/aOs5b4s+ # ac7IH60B+Ja7TVM+EKv1WuTGwcLmoU3FpOFMbmPj8pz44MPZ1f9+YEQIQty/NQd/ # 2yGgW+ufflcZ/ZE9o1M7a5Jnqf2i2/uMSWymR8r2oQBMdlyh2n5HirY4jKnFH/9g # Rvd+QOfdRrJZb1sCAwEAAaOCAWQwggFgMB8GA1UdIwQYMBaAFDLrkpr/NZZILyhA # QnAgNpFcF4XmMB0GA1UdDgQWBBQPKssghyi47G9IritUpimqF6TNDDAOBgNVHQ8B # Af8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADATBgNVHSUEDDAKBggrBgEFBQcD # AzAbBgNVHSAEFDASMAYGBFUdIAAwCAYGZ4EMAQQBMEsGA1UdHwREMEIwQKA+oDyG # Omh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGlnb1B1YmxpY0NvZGVTaWduaW5n # Um9vdFI0Ni5jcmwwewYIKwYBBQUHAQEEbzBtMEYGCCsGAQUFBzAChjpodHRwOi8v # Y3J0LnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNDb2RlU2lnbmluZ1Jvb3RSNDYu # cDdjMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTANBgkqhkiG # 9w0BAQwFAAOCAgEABv+C4XdjNm57oRUgmxP/BP6YdURhw1aVcdGRP4Wh60BAscjW # 4HL9hcpkOTz5jUug2oeunbYAowbFC2AKK+cMcXIBD0ZdOaWTsyNyBBsMLHqafvIh # rCymlaS98+QpoBCyKppP0OcxYEdU0hpsaqBBIZOtBajjcw5+w/KeFvPYfLF/ldYp # mlG+vd0xqlqd099iChnyIMvY5HexjO2AmtsbpVn0OhNcWbWDRF/3sBp6fWXhz7Dc # ML4iTAWS+MVXeNLj1lJziVKEoroGs9Mlizg0bUMbOalOhOfCipnx8CaLZeVme5yE # Lg09Jlo8BMe80jO37PU8ejfkP9/uPak7VLwELKxAMcJszkyeiaerlphwoKx1uHRz # NyE6bxuSKcutisqmKL5OTunAvtONEoteSiabkPVSZ2z76mKnzAfZxCl/3dq3dUNw # 4rg3sTCggkHSRqTqlLMS7gjrhTqBmzu1L90Y1KWN/Y5JKdGvspbOrTfOXyXvmPL6 # E52z1NZJ6ctuMFBQZH3pwWvqURR8AgQdULUvrxjUYbHHj95Ejza63zdrEcxWLDX6 # xWls/GDnVNueKjWUH3fTv1Y8Wdho698YADR7TNx8X8z2Bev6SivBBOHY+uqiirZt # g0y9ShQoPzmCcn63Syatatvx157YK9hlcPmVoa1oDE5/L9Uo2bC5a4CH2RwwggY+ # MIIEpqADAgECAhAHnODk0RR/hc05c892LTfrMA0GCSqGSIb3DQEBDAUAMFQxCzAJ # BgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxKzApBgNVBAMTIlNl # Y3RpZ28gUHVibGljIENvZGUgU2lnbmluZyBDQSBSMzYwHhcNMjYwMjA5MDAwMDAw # WhcNMjkwNDIxMjM1OTU5WjBVMQswCQYDVQQGEwJVUzEUMBIGA1UECAwLQ29ubmVj # dGljdXQxFzAVBgNVBAoMDkphc29uIEFsYmVyaW5vMRcwFQYDVQQDDA5KYXNvbiBB # bGJlcmlubzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPN6aN4B1yYW # kI5b5TBj3I0VV/peETrHb6EY4BHGxt8Ap+eT+WpEpJyEtRYPxEmNJL3A38Bkg7mw # zPE3/1NK570ZBCuBjSAn4mSDIgIuXZnvyBO9W1OQs5d67MlJLUAEufl18tOr3ST1 # DeO9gSjQSAE5Nql0QDxPnm93OZBon+Fz3CmE+z3MwAe2h4KdtRAnCqwM+/V7iBdb # w+JOxolpx+7RVjGyProTENIG3pe/hKvPb501lf8uBAADLdjZr5ip8vIWbf857Yw1 # Bu10nVI7HW3eE8Cl5//d1ribHlzTzQLfttW+k+DaFsKZBBL56l4YAlIVRsrOiE1k # dHYYx6IGrEA809R7+TZA9DzGqyFiv9qmJAbL4fDwetDeyIq+Oztz1LvEdy8Rcd0J # BY+J4S0eDEFIA3X0N8VcLeAwabKb9AjulKXwUeqCJLvN79CJ90UTZb2+I+tamj0d # n+IKMEsJ4v4Ggx72sxFr9+6XziodtTg5Luf2xd6+PhhamOxF2px9LObhBLLEMyRs # CHZIzVZOFKu9BpHQH7ufGB+Sa80Tli0/6LEyn9+bMYWi2ttn6lLOPThXMiQaooRU # q6q2u3+F4SaPlxVFLI7OJVMhar6nW6joBvELTJPmANSMjDSRFDfHRCdGbZsL/keE # LJNy+jZctF6VvxQEjFM8/bazu6qYhrA7AgMBAAGjggGJMIIBhTAfBgNVHSMEGDAW # gBQPKssghyi47G9IritUpimqF6TNDDAdBgNVHQ4EFgQU6YF0o0D5AVhKHbVocr8G # aSIBibAwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYI # KwYBBQUHAwMwSgYDVR0gBEMwQTA1BgwrBgEEAbIxAQIBAwIwJTAjBggrBgEFBQcC # ARYXaHR0cHM6Ly9zZWN0aWdvLmNvbS9DUFMwCAYGZ4EMAQQBMEkGA1UdHwRCMEAw # PqA8oDqGOGh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGlnb1B1YmxpY0NvZGVT # aWduaW5nQ0FSMzYuY3JsMHkGCCsGAQUFBwEBBG0wazBEBggrBgEFBQcwAoY4aHR0 # cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVibGljQ29kZVNpZ25pbmdDQVIz # Ni5jcnQwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMA0GCSqG # SIb3DQEBDAUAA4IBgQAEIsm4xnOd/tZMVrKwi3doAXvCwOA/RYQnFJD7R/bSQRu3 # wXEK4o9SIefye18B/q4fhBkhNAJuEvTQAGfqbbpxow03J5PrDTp1WPCWbXKX8Oz9 # vGWJFyJxRGftkdzZ57JE00synEMS8XCwLO9P32MyR9Z9URrpiLPJ9rQjfHMb1BUd # vaNayomm7aWLAnD+X7jm6o8sNT5An1cwEAob7obWDM6sX93wphwJNBJAstH9Ozs6 # LwISOX6sKS7CKm9N3Kp8hOUue0ZHAtZdFl6o5u12wy+zzieGEI50fKnN77FfNKFO # WKlS6OJwlArcbFegB5K89LcE5iNSmaM3VMB2ADV1FEcjGSHw4lTg1Wx+WMAMdl/7 # nbvfFxJ9uu5tNiT54B0s+lZO/HztwXYQUczdsFon3pjsNrsk9ZlalBi5SHkIu+F6 # g7tWiEv3rtVApmJRnLkUr2Xq2a4nbslUCt4jKs5UX4V1nSX8OM++AXoyVGO+iTj7 # z+pl6XE9Gw/Td6WKKKswgga0MIIEnKADAgECAhANx6xXBf8hmS5AQyIMOkmGMA0G # CSqGSIb3DQEBCwUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ # bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0 # IFRydXN0ZWQgUm9vdCBHNDAeFw0yNTA1MDcwMDAwMDBaFw0zODAxMTQyMzU5NTla # MGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UE # AxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBUaW1lU3RhbXBpbmcgUlNBNDA5NiBTSEEy # NTYgMjAyNSBDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC0eDHT # CphBcr48RsAcrHXbo0ZodLRRF51NrY0NlLWZloMsVO1DahGPNRcybEKq+RuwOnPh # of6pvF4uGjwjqNjfEvUi6wuim5bap+0lgloM2zX4kftn5B1IpYzTqpyFQ/4Bt0mA # xAHeHYNnQxqXmRinvuNgxVBdJkf77S2uPoCj7GH8BLuxBG5AvftBdsOECS1UkxBv # MgEdgkFiDNYiOTx4OtiFcMSkqTtF2hfQz3zQSku2Ws3IfDReb6e3mmdglTcaarps # 0wjUjsZvkgFkriK9tUKJm/s80FiocSk1VYLZlDwFt+cVFBURJg6zMUjZa/zbCclF # 83bRVFLeGkuAhHiGPMvSGmhgaTzVyhYn4p0+8y9oHRaQT/aofEnS5xLrfxnGpTXi # UOeSLsJygoLPp66bkDX1ZlAeSpQl92QOMeRxykvq6gbylsXQskBBBnGy3tW/AMOM # CZIVNSaz7BX8VtYGqLt9MmeOreGPRdtBx3yGOP+rx3rKWDEJlIqLXvJWnY0v5ydP # pOjL6s36czwzsucuoKs7Yk/ehb//Wx+5kMqIMRvUBDx6z1ev+7psNOdgJMoiwOrU # G2ZdSoQbU2rMkpLiQ6bGRinZbI4OLu9BMIFm1UUl9VnePs6BaaeEWvjJSjNm2qA+ # sdFUeEY0qVjPKOWug/G6X5uAiynM7Bu2ayBjUwIDAQABo4IBXTCCAVkwEgYDVR0T # AQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU729TSunkBnx6yuKQVvYv1Ensy04wHwYD # VR0jBBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGGMBMG # A1UdJQQMMAoGCCsGAQUFBwMIMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcwAYYY # aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8vY2Fj # ZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBDBgNV # HR8EPDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRU # cnVzdGVkUm9vdEc0LmNybDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglghkgBhv1s # BwEwDQYJKoZIhvcNAQELBQADggIBABfO+xaAHP4HPRF2cTC9vgvItTSmf83Qh8WI # GjB/T8ObXAZz8OjuhUxjaaFdleMM0lBryPTQM2qEJPe36zwbSI/mS83afsl3YTj+ # IQhQE7jU/kXjjytJgnn0hvrV6hqWGd3rLAUt6vJy9lMDPjTLxLgXf9r5nWMQwr8M # yb9rEVKChHyfpzee5kH0F8HABBgr0UdqirZ7bowe9Vj2AIMD8liyrukZ2iA/wdG2 # th9y1IsA0QF8dTXqvcnTmpfeQh35k5zOCPmSNq1UH410ANVko43+Cdmu4y81hjaj # V/gxdEkMx1NKU4uHQcKfZxAvBAKqMVuqte69M9J6A47OvgRaPs+2ykgcGV00TYr2 # Lr3ty9qIijanrUR3anzEwlvzZiiyfTPjLbnFRsjsYg39OlV8cipDoq7+qNNjqFze # GxcytL5TTLL4ZaoBdqbhOhZ3ZRDUphPvSRmMThi0vw9vODRzW6AxnJll38F0cuJG # 7uEBYTptMSbhdhGQDpOXgpIUsWTjd6xpR6oaQf/DJbg3s6KCLPAlZ66RzIg9sC+N # Jpud/v4+7RWsWCiKi9EOLLHfMR2ZyJ/+xhCx9yHbxtl5TPau1j/1MIDpMPx0LckT # etiSuEtQvLsNz3Qbp7wGWqbIiOWCnb5WqxL3/BAPvIXKUjPSxyZsq8WhbaM2tszW # kPZPubdcMIIG7TCCBNWgAwIBAgIQCoDvGEuN8QWC0cR2p5V0aDANBgkqhkiG9w0B # AQsFADBpMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/ # BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGltZVN0YW1waW5nIFJTQTQwOTYg # U0hBMjU2IDIwMjUgQ0ExMB4XDTI1MDYwNDAwMDAwMFoXDTM2MDkwMzIzNTk1OVow # YzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMTswOQYDVQQD # EzJEaWdpQ2VydCBTSEEyNTYgUlNBNDA5NiBUaW1lc3RhbXAgUmVzcG9uZGVyIDIw # MjUgMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANBGrC0Sxp7Q6q5g # VrMrV7pvUf+GcAoB38o3zBlCMGMyqJnfFNZx+wvA69HFTBdwbHwBSOeLpvPnZ8ZN # +vo8dE2/pPvOx/Vj8TchTySA2R4QKpVD7dvNZh6wW2R6kSu9RJt/4QhguSssp3qo # me7MrxVyfQO9sMx6ZAWjFDYOzDi8SOhPUWlLnh00Cll8pjrUcCV3K3E0zz09ldQ/ # /nBZZREr4h/GI6Dxb2UoyrN0ijtUDVHRXdmncOOMA3CoB/iUSROUINDT98oksouT # MYFOnHoRh6+86Ltc5zjPKHW5KqCvpSduSwhwUmotuQhcg9tw2YD3w6ySSSu+3qU8 # DD+nigNJFmt6LAHvH3KSuNLoZLc1Hf2JNMVL4Q1OpbybpMe46YceNA0LfNsnqcnp # JeItK/DhKbPxTTuGoX7wJNdoRORVbPR1VVnDuSeHVZlc4seAO+6d2sC26/PQPdP5 # 1ho1zBp+xUIZkpSFA8vWdoUoHLWnqWU3dCCyFG1roSrgHjSHlq8xymLnjCbSLZ49 # kPmk8iyyizNDIXj//cOgrY7rlRyTlaCCfw7aSUROwnu7zER6EaJ+AliL7ojTdS5P # WPsWeupWs7NpChUk555K096V1hE0yZIXe+giAwW00aHzrDchIc2bQhpp0IoKRR7Y # ufAkprxMiXAJQ1XCmnCfgPf8+3mnAgMBAAGjggGVMIIBkTAMBgNVHRMBAf8EAjAA # MB0GA1UdDgQWBBTkO/zyMe39/dfzkXFjGVBDz2GM6DAfBgNVHSMEGDAWgBTvb1NK # 6eQGfHrK4pBW9i/USezLTjAOBgNVHQ8BAf8EBAMCB4AwFgYDVR0lAQH/BAwwCgYI # KwYBBQUHAwgwgZUGCCsGAQUFBwEBBIGIMIGFMCQGCCsGAQUFBzABhhhodHRwOi8v # b2NzcC5kaWdpY2VydC5jb20wXQYIKwYBBQUHMAKGUWh0dHA6Ly9jYWNlcnRzLmRp # Z2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNFRpbWVTdGFtcGluZ1JTQTQwOTZT # SEEyNTYyMDI1Q0ExLmNydDBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vY3JsMy5k # aWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRUaW1lU3RhbXBpbmdSU0E0MDk2 # U0hBMjU2MjAyNUNBMS5jcmwwIAYDVR0gBBkwFzAIBgZngQwBBAIwCwYJYIZIAYb9 # bAcBMA0GCSqGSIb3DQEBCwUAA4ICAQBlKq3xHCcEua5gQezRCESeY0ByIfjk9iJP # 2zWLpQq1b4URGnwWBdEZD9gBq9fNaNmFj6Eh8/YmRDfxT7C0k8FUFqNh+tshgb4O # 6Lgjg8K8elC4+oWCqnU/ML9lFfim8/9yJmZSe2F8AQ/UdKFOtj7YMTmqPO9mzskg # iC3QYIUP2S3HQvHG1FDu+WUqW4daIqToXFE/JQ/EABgfZXLWU0ziTN6R3ygQBHMU # BaB5bdrPbF6MRYs03h4obEMnxYOX8VBRKe1uNnzQVTeLni2nHkX/QqvXnNb+YkDF # kxUGtMTaiLR9wjxUxu2hECZpqyU1d0IbX6Wq8/gVutDojBIFeRlqAcuEVT0cKsb+ # zJNEsuEB7O7/cuvTQasnM9AWcIQfVjnzrvwiCZ85EE8LUkqRhoS3Y50OHgaY7T/l # wd6UArb+BOVAkg2oOvol/DJgddJ35XTxfUlQ+8Hggt8l2Yv7roancJIFcbojBcxl # RcGG0LIhp6GvReQGgMgYxQbV1S3CrWqZzBt1R9xJgKf47CdxVRd/ndUlQ05oxYy2 # zRWVFjF7mcr4C34Mj3ocCVccAvlKV9jEnstrniLvUxxVZE/rptb7IRE2lskKPIJg # baP5t2nGj/ULLi49xTcBZU8atufk+EMF/cWuiC7POGT75qaL6vdCvHlshtjdNXOC # IUjsarfNZzGCBkQwggZAAgEBMGgwVDELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1Nl # Y3RpZ28gTGltaXRlZDErMCkGA1UEAxMiU2VjdGlnbyBQdWJsaWMgQ29kZSBTaWdu # aW5nIENBIFIzNgIQB5zg5NEUf4XNOXPPdi036zANBglghkgBZQMEAgEFAKCBhDAY # BgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3 # AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEi # BCAedv1vEQ+oZUzis5qjFkb/dEKzfktC5NmESgRpAugkVTANBgkqhkiG9w0BAQEF # AASCAgDop/dvhHPUfzAoB9v65yWyv6bqGuxLop32hivd+t1L8YARzXjvE6bbPH7D # CZ4VIbvnb+hmhtvkDZkIeCHs/ANVzZgTIGjgX3azbJpLbgih8h1yIQJWO0F8Ywwg # ls2GZqZI1yhL9JNJXpIdKqaz3NES5d6NmORc6uqEn5VmX+UA0Kek24tw3NzsHi4i # JhsfwvEwqpxNh8uANL4Tg0nhRjoKgcah6QiKN2EVfvz/tfVlictqb/EOk+TqHvLD # twKbrfWLI4KRNleFZmqpvDzkvIpoc7BmseVaqMm8PBlKbX1x/otB+RraCVDFNDrG # Y8tMw0QCi1cTZYSmnlI2q+QsauJ8sziHTvDUPrYEDfjic+whHMTuqd3og1Im7mQu # BNEIq6JDjkqkk1UMrP8maiVHV+wrEAk++0Pj1QJLH82+8fPZPRsG1WnklU5AuwKW # aIUZblIsdqAUIkbMEd660lJf8i+Vv0BxviDWXoWjWx/Tq1lgqtjbCA0VojoTiWmR # NUPlFmf2tUdqr6dcDohrgc4tTh159h51PZ3PlqV7/RkN18gogcm0UvFGYm6gIOog # p0jVAbu99ZP/2ccFnEcWWaEGfnyJoQZnm/InmX19lTnah4vkpD0kLYnE1RkY1Vmk # q11wYTY45bKFbnQrBDojmMCBa17tY5dSukbe7ozIQDHsTlkvgaGCAyYwggMiBgkq # hkiG9w0BCQYxggMTMIIDDwIBATB9MGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5E # aWdpQ2VydCwgSW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBUaW1l # U3RhbXBpbmcgUlNBNDA5NiBTSEEyNTYgMjAyNSBDQTECEAqA7xhLjfEFgtHEdqeV # dGgwDQYJYIZIAWUDBAIBBQCgaTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwG # CSqGSIb3DQEJBTEPFw0yNjA4MDcxMzM3MjVaMC8GCSqGSIb3DQEJBDEiBCAgOwXx # BWv++36JRr5A9q8JsW56cmGR3Ho5u1r00EBADzANBgkqhkiG9w0BAQEFAASCAgAH # S8y1n+Ude1o9ctgIZ1oh6I47uYPy14eQIkTQRpnxsVxTLyDSTEjki3snqqSt7UIe # t3hb94gzjmSL7+2PJoc71gc/kgnjm6Q8boTMfl8+B+sBIvdRBVCWPR+R0fKml32L # DZvUzVRXyUoK0fsx/zVJyjEoXhVbFLFU7/Dagc7ZlKolgSpMbGeoRyQQelr8vGcK # YRqeaLoQGvcDMkDv6nH5O0FayLqXG1cmx2x+Ku58nqg1jRvqI9+28ZLaMxU9TFsN # AFXepwNrYlDn++0BmSeRvrppT9yX1QaapSSFsYw+y7FxFaBu3VcUEd0Mi6OVexZG # 3ZpJdHrOb2cMp6SgTzgtoXzgtnTyLhrmvH39/rq1KMC7ftvDN1DC01/xa7gcCOWr # tyVKm2ZeKhBycdIit0R7gqrdpL66XoIIJjHrzmIdFNT/UkqCs7SUAe77i2s8HdqJ # UiTbs1yhgY6Fm52ZUtvtF2c4V4PZ1Id7N7YYNTfhCGur/RRqDmi2Q09LjanBfbWk # QWEJrKWcFj1LiTJpEEZqwszMW02xx7P+PgLfF5P9sG4f+X+wT9NiFVyz+6HxCSgA # EVMiutWYSo0aSgKjZXxkR7hfgackxiELQSmh37T8k55CG7pXIZrywLbNOD1g2Lu7 # sO70Y83HDmn4HL3DRgYc2gcb5cxLjk9A6V8m458NGw== # SIG # End signature block |