<html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><?php

/**
 * Class wfBinaryList implements an interface to interact with binary lists. These are internally a sorted list of 
 * values of a specific size. The sorted aspect allows for very quick searching.
 */
class wfBinaryList {
	private $size = 0;
	private $list = '';
	
	public function __construct($binary) {
		$this->size = ord(wfWAFUtils::substr($binary, 0, 1));
		$this->list = wfWAFUtils::substr($binary, 1);
	}
	
	public function contains($value) {
		if ($this->size == 0) { return false; }
		$length = wfWAFUtils::strlen($this->list);
		if ($length == 0) { return false; }
		
		$p = wfWAFUtils::substr($value, 0, $this->size);
		
		$c