pre-release notes
bug: relnotes were not displayed
0.20.4: cut the release
makeGatewayParams: fix missing 'new' in throwing
SLB parser syntax enhancements

macroParser::addMacro - added := and ?= assignments
macroParser::expand - added %{A}%, %{A:-b}%, %{A:+b}%, %?A% syntaxes
macroParser::strp - wrapper around strpos
dos2unix moved to functions.php
getSLBDefaults result structure change

    getSLBDefaults: changed result key names
    renderSLBDefConfig: new defaults key
    SLBTriplet::prepareParser: idem
    SLBTriplet::prepareParserForRS: idem
addMacro: unify code duplication
new SLB config generation procedure

instead of calling generateConfig for each triplet instance,
generateSLBConfig for triplet list is being called. This increases
performance ~ by 2.

+ generateSLBConfig: function generates config for entire triplet list
~ buildEntityLVSConfig: use generateSLBConfig
+ $parser_class global. Used instead of calling virtual SLBTriplet::createParser

- SLBTriplet::generateConfig
- SLBTriplet::createParser
- SLBTriplet::prepareParser
- SLBTriplet::prepareParserForRS
- MacroParser::pushdefs
- MacroParser::popdefs
bugfix: preg syntax error

MacroParser::expand
Search improvements

buildSearchRedirectURL
showPathAndSearch
fix indentation
new feature: Rackcode filter for RDP-managed objects (#819)
wide use of getOpLink, unified JS conf dialog

serializeFileLinks: moved from functions.php to interface-lib.php, unified
getOpLink: special treatment of need-confirmation class

These functions were using makeHrefProcess & printImageHREF, changed in favour of getOpLink:
	- formatEntityName
	- getQueryString
	- printOpFormIntro
	- render8021QOrderForm
	- renderCactiServersEditor
	- renderChapterEditor
	- renderChaptersEditor
	- renderEditAttrMapForm
	- renderEditAttributesForm
	- renderEditLocationForm
	- renderEditObjectForm
	- renderEditRackForm
	- renderEditUCSForm
	- renderEditVlan
	- renderFileManager
	- renderFileProperties
	- renderFilesForEntity
	- renderIIFOIFCompatEditor
	- renderIPAddressAllocations
	- renderIPForObject
	- renderIPNewNetForm
	- renderLocationRowForEditor
	- renderMuninServersEditor
	- renderNATv4ForObject
	- renderOIFCompatEditor
	- renderObject8021QPorts
	- renderObjectCactiGraphs
	- renderObjectLogEditor
	- renderObjectMuninGraphs
	- renderObjectParentCompatEditor
	- renderPortsForObject
	- renderRSPoolServerForm
	- renderRackspaceRowEditor
	- renderSLBTripletsEdit
	- renderTagRowForEditor
	- renderVLANDomainListEditor
	- renderVLANDomainVLANList
	- renderVLANIPLinks
	- renderVSTListEditor
redirect to main if EntityNotFoundException raised

handle EntityNotFoundException as redirect to main page and show appropriate error message
EntityNotFoundException::dispatch

Conflicts:

	ChangeLog
Fix Spelling In Example
renderVirtualResourcesSummary(): threw exception if hypervisor/resource
pool was not associated with a cluster (#823)
renderVirtualResourcesSummary(): correctly display cluster fields
contained objects were displayed without container's rackspace
allocation information (#825)

getResidentRacksData(): rack data of the parent object was being
excluded
renderPopupPortSelector(): include ports of child objects whose parent
is located in the nearest racks
findSparePorts(): idem
prevent deletion of system-level attribute mappings (#771)