(function(){function e(e,t){for(var n=0,r=e.length;n<r;++n)t(e[n])}function t(e,t){if(!Array.prototype.indexOf){var n=e.length;while(n--)if(e[n]===t)return!0;return!1}return e.indexOf(t)!=-1}function n(e,t,n){var r=e.getCursor(),i=n(e,r),s=i;/^[\w$_]*$/.test(i.string)||(i=s={start:r.ch,end:r.ch,string:"",state:i.state,className:i.string==":"?"python-type":null});if(!o)var o=[];o.push(s);var u=l(i,o);return u=u.sort(),u.length==1&&u.push(" "),{list:u,from:CodeMirror.Pos(r.line,i.start),to:CodeMirror.Pos(r.line,i.end)}}function r(e){return n(e,o,function(e,t){return e.getTokenAt(t)})}function l(n,r){function l(e){e.indexOf(u)==0&&!t(i,e)&&i.push(e)}function c(t){e(a,l),e(f,l),e(s,l),e(o,l)}var i=[],u=n.string;if(r){var h=r.pop(),p;h.type=="variable"?p=h.string:h.type=="variable-3"&&(p=":"+h.string);while(p!=null&&r.length)p=p[r.pop().string];p!=null&&c(p)}return i}CodeMirror.pythonHint=r,CodeMirror.registerHelper("hint","python",r);var i="and del from not while as elif global or with assert else if pass yieldbreak except import print class exec in raise continue finally is return def for lambda try",s=i.split(" "),o=i.toUpperCase().split(" "),u="abs divmod input open staticmethod all enumerate int ord str any eval isinstance pow sum basestring execfile issubclass print superbin file iter property tuple bool filter len range typebytearray float list raw_input unichr callable format locals reduce unicodechr frozenset long reload vars classmethod getattr map repr xrangecmp globals max reversed zip compile hasattr memoryview round __import__complex hash min set apply delattr help next setattr bufferdict hex object slice coerce dir id oct sorted intern ",a=u.split(" ").join("() ").split(" "),f=u.toUpperCase().split(" ").join("() ").split(" ")})();