function FindProxyForURL(url, host) { var lhost = host.toLowerCase(); host = lhost; var privateIP = /^(0|10|127|192\.168|172\.1[6789]|172\.2[0-9]|172\.3[01]|169\.254|192\.88\.99).[0-9.]+$/; // DNS resolution checks if (dnsResolve("gcsdc2.gcstech.org") == "10.1.32.37") { return "DIRECT"; } if (dnsResolve("greenlantern.vgcc.edu") == "10.3.100.254") { return "DIRECT"; } // Google-related services var googleDomains = [ ".gmail.com", ".google.com", "accounts.google.com", ".gstatic.com", ".youtube.com", ".googleapis.com", ".appspot.com", ".googleusercontent.com", ".ggpht.com", ".android.com", ".app-measurement.com", ".gmodules.com", ".googlegroups.com", ".google-analytics.com", "hangouts.google.com", "meets.google.com" ]; // Video services (including Zoom) var videoDomains = [ ".seesaw.me", ".ada.support", ".zoom.us", ".zoom.com" ]; // ConnectED (McGraw-Hill related) var connectedDomains = [ ".mheducation.com", ".mcgraw-hill.com", ".mhedu.com", ".aleks.com", ".mhlearnsmart.com", ".softlayer.net", ".studysync.com", "author.muzzylane.com", "aairs.tegrity.com", ".mhcampus.com" ]; // AP Classroom (College Board related) var apClassroomDomains = [ "prod.idp.collegeboard.org", ".learnosity.com", ".split.io", ".collegeboard.org", ".wistia.com" ]; // Elevate-related domains var elevateDomains = [ ".awsglobalaccelerator.com", ".cloudfront.net", "cdnjs.cloudflare.com", ".intercom.io", ".intercomcdn.com", ".portalelevate.com", "keydatasys.com", ".learnosity.com", "otus.com", ".jsdelivr.net", ".freshworks.com", "c328740.ssl.cf1.rackcdn.com", ".cloudflare.com", ".freshchat.com", "13-248-136-14.portalelevate.com", ".rackcdn.com", ".imathas.com", "cdn.fluence.net", "pro.fontawesome.com", ".intercom.com", ".cdnjs.com", ".rtschannel.com", ".s3.amazonaws.com", ".nr-data.net", ".sectigo.com", "sectigo.com" ]; // General education and misc domains var directDomains = [ ".haikulearning.com", ".myhaikuclass.com", ".khanacademy.org", ".vgcc.edu", ".imathas.com", ".freshworksapi.com", ".assetscdn-web.freshcat.com", ".nr-data.net", ".s3.amazonaws.com", ".intercom.com", ".webpush.freshchat.com", ".freshchat.com", ".rtschannel.com", ".cdnjs.com", ".widget.intercom.io", ".pro.fontawesome.com", ".otus.com", ".portalelevate.com", ".edpuzzle.com", ".ytimg.com", ".youtubeeducation.com", "edpuzzle.imgix.net", ".ncedcloud.org", ".identitymgmt.net", ".instructure.com", ".canvaslms.com", ".inscloudgate.net", ".securly.com", ".awswaf.com", "forms.gle" ]; // Combine all domain arrays dynamically var allDomainArrays = [ googleDomains, videoDomains, connectedDomains, apClassroomDomains, elevateDomains, directDomains ]; var allDomains = [].concat.apply([], allDomainArrays); // Flatten into a single array var pattern = new RegExp("(" + allDomains.map(function(d) { return d.replace(/\./g, "\\."); }).join("|") + ")$", "i"); // Non-domain bypass conditions if (isPlainHostName(host) || shExpMatch(host, "192.0.2.*") || privateIP.test(host)) { return "DIRECT"; } // Domain-based bypass using regex if (pattern.test(host)) { return "DIRECT"; } // IP-based bypass checks (Elevate-specific) var elevateIPs = [ "13.248.129.56", "75.2.60.49", "13.248.136.14", "75.2.115.53", "99.83.232.185", "76.223.3.164", "99.83.150.181", "34.231.245.167", "34.231.139.135", "52.201.75.8", "75.2.64.16", "99.83.232.171", "13.248.223.18", "76.223.73.167", "75.2.53.18", "99.83.236.156", "76.223.3.179" ]; for (var i = 0; i < elevateIPs.length; i++) { if (isInNet(host, elevateIPs[i], "255.255.255.255")) { return "DIRECT"; } } // Default: Send all other traffic to proxy with failover return "PROXY gcstech-pri.zs.ncren.net:9443; PROXY gcstech-sec.zs.ncren.net:9443"; }