registerTemplate() can't handle properly when ITemplate version is 0
Factory.sol when register one template , and template ' s version is 0, the latestImplementation[templateName] will be address(0) and add other version, "_templateNames" will duplicate\\nWhen version is equal 0 latestImplementation[templateName] don't set\\n```\\n   function _setTemplate(\\n        string memory templateName,\\n        uint256 templateVersion,\\n        address implementationAddress\\n    ) internal {\\n// rest of code\\n\\n        if (latestImplementation[templateName] == address(0)) { /****add other version, _templateNames will duplicate ****/\\n            _templateNames.push(templateName);\\n        }\\n\\n        if (templateVersion > latestVersion[templateName]) {\\n            latestVersion[templateName] = templateVersion;\\n            latestImplementation[templateName] = implementationAddress; /****templateVersion==0 ,  don't set ****/\\n        }\\n\\n    }\\n```\\n
```\\n    function _setTemplate(\\n        string memory templateName,\\n        uint256 templateVersion,\\n        address implementationAddress\\n    ) internal {\\n\\n -      if (templateVersion > latestVersion[templateName]) {\\n +      if (templateVersion > = latestVersion[templateName]) {\\n            latestVersion[templateName] = templateVersion;\\n            latestImplementation[templateName] = implementationAddress; \\n        }\\n```\\n
latestImplementation[templateName] and _templateNames will error. external contracts may think there is no setup, resulting in duplicate setups that keep failing
```\\n   function _setTemplate(\\n        string memory templateName,\\n        uint256 templateVersion,\\n        address implementationAddress\\n    ) internal {\\n// rest of code\\n\\n        if (latestImplementation[templateName] == address(0)) { /****add other version, _templateNames will duplicate ****/\\n            _templateNames.push(templateName);\\n        }\\n\\n        if (templateVersion > latestVersion[templateName]) {\\n            latestVersion[templateName] = templateVersion;\\n            latestImplementation[templateName] = implementationAddress; /****templateVersion==0 ,  don't set ****/\\n        }\\n\\n    }\\n```\\n